프로그래밍/JAVA

2023-07-04 학습일지 git

뚜또꾸뭉 2023. 7. 4. 16:36
반응형

목차

1. 복습하기

2. 배우기

3. 이해하기

1.복습하기

프로그램을 쓸 때 스토리보드를 짠다. 각 동작이 어떻게 이루어질지를 짜는 것인데, 이게 기본방식이라고 한다. 

여기서 이해가 안됐던 점은

package ex02;

import java.util.*;

public class Sungjuk {
	public static void run() {
		Scanner s = new Scanner(System.in);
		List<ScoreVO> array = new ArrayList<>();
		ScoreVO score = new ScoreVO("2023-1", "홍길동", 90, 77, 80);
		array.add(score);
		score = new ScoreVO("2023-2", "심청이", 98, 96, 85);
		array.add(score);
		score = new ScoreVO("2023-3", "강감찬", 89, 92, 97);
		array.add(score);
		int count = 3;
		boolean run = true;
		while (run) {
			System.out.println("\n\n******* 성적관리 *****************************");
			System.out.println("--------------------------------------------");
			System.out.println("1.입력 |2.조회 |3.목록 |4.수정 |5.삭제 |0.종료");
			System.out.println("--------------------------------------------");
			System.out.print("선택>");
			String menu = s.nextLine();
			switch (menu) {
			case "0":
				run = false;
				System.out.println("프로그램이 종료됩니다!");
				break;
			case "1"://입력
				score = new ScoreVO();
				score.setNo("2023-"+(count+1));
				System.out.println("학번>"+score.getNo());
				System.out.print("이름> ");
				score.setName(s.nextLine());
				System.out.print("국어점수> ");
				score.setKor(Integer.parseInt(s.nextLine()));//이건 interger메소드를 parseint로 파싱하라는 뜻인데, 넥스트라인으로 입력받는 스트링을
				System.out.print("영어점수> ");
				score.setEng(Integer.parseInt(s.nextLine()));
				System.out.print("수학점수> ");
				score.setMat(Integer.parseInt(s.nextLine()));
				System.out.println("입력완료!");
				array.add(score);
				count++;
				break;
				
			case "2":
				System.out.print("조회할 이름>");
				String search = s.nextLine();
				boolean find = false;
				for (ScoreVO vo : array) {
					if (search.equals(vo.getName())) {
						vo.setTot(vo.getKor()+vo.getEng()+vo.getEng());
						vo.setAvg(vo.getTot()/3.);
						vo.setGrade(getGrade(vo.getAvg()));
						vo.print_port();
					}
					
				}
				
				break;
			case "3":// 목록
				for (ScoreVO vo : array) {
					vo.setTot(vo.getKor() + vo.getEng() + vo.getMat());
					vo.setAvg(vo.getTot() / 3.);
					String grade = getGrade(vo.getAvg());
					vo.setGrade(grade);
					vo.print_land();
				}
				break;
			case "4":
				break;
			case "5":
				break;
			default:
				System.out.println("메뉴를 다시 선택하세요!");
			}
		}

	}

	// 학점구하기 이건 메서드이기때문에 객체가 따로 들어가지 않는다.
	public static String getGrade(double avg) {
		String grade = "";
		if (avg >= 90) {
			if (avg >= 95) {
				grade = "A+";
			} else {
				grade = "A0";
			}
		} else if (avg >= 80) {
			if (avg >= 85) {
				grade = "B+";
			} else {
				grade = "B0";
			}
		} else if (avg >= 70) {
			if (avg >= 75) {
				grade = "C+";
			} else {
				grade = "C0";
			}
		} else if (avg >= 60) {
			if (avg >= 65) {
				grade = "D+";
			} else {
				grade = "D0";
			}
		} else {
			grade = "F";
		}
		return grade;
	}
}

 

 

 

run()

getGrade() 메서드를 두개를 선언해놓은건데.

여기는 자바빈이라는 데이터이다. 그래서 지금 ScoreVO가 데이터베이스,클래스를 설정하는 곳, Sungjuk에서 실행메서드를 만들고, Main()에서 실행한다. 

 

package ex02;

public class ScoreVO { //성적관리를 위한 자바빈

	private String no;
	private String name;
	private int kor;
	private int eng;
	private int mat;
	private int tot;
	private double avg;
	private String grade;
	
	public String getNo() {
		return no;
	}
	public void setNo(String no) {
		this.no = no;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getKor() {
		return kor;
	}
	public void setKor(int kor) {
		this.kor = kor;
	}
	public int getEng() {
		return eng;
	}
	public void setEng(int eng) {
		this.eng = eng;
	}
	public int getMat() {
		return mat;
	}
	public void setMat(int mat) {
		this.mat = mat;
	}
	public void setTot(int tot) {
		this.tot = tot;
	}
	public int getTot() {
		return kor+eng+mat;
	}

	public void setAvg(double avg) {
		this.avg = avg;
	}
	
	public double getAvg() {
		return avg;
	}

	public String getGrade() {
		return grade;
	}
	public void setGrade(String grade) {
		this.grade = grade;
	}
	
	public void print_land() {
		System.out.printf("%s\t%s\t%d\t%d\t%d\t%d\t%.2f\t%s\n",no,name,kor,eng,mat,tot,avg,grade);
	}
	
	@Override
	public String toString() {
		return "ScoreVO [no=" + no + ", name=" + name + ", kor=" + kor + ", eng=" + eng + ", mat=" + mat + ", tot="
				+ getTot() + ", avg=" + getAvg() + ", grade=" + grade + "]";
	}
	
	public ScoreVO() {
		
	}
	public ScoreVO(String no, String name, int kor, int eng, int mat) {
		super(); //상위 위의것을 얘기하는것, 없어도됨.
		this.no = no;
		this.name = name;
		this.kor = kor;
		this.eng = eng;
		this.mat = mat;
	}
	public void print_port() {//세로출력
		System.out.println("학번: "+no);
		System.out.println("이름: "+name);
		System.out.println("국어: "+kor);
		System.out.println("영어: "+eng);
		System.out.println("수학: "+mat);
		System.out.println("총점: "+tot);
		System.out.printf("평균: %.2f\n",avg);
		System.out.println("학점: "+mat);

	}
	//세로출력은 검색 목록출력은 전체
	
	

}

 

 

 

 

 

이게 굉장히 중요한데, 나는 무조건 평균값과 토탈값을 입력해야 하는 줄 아는데 이미 조회,목록 단에서 평균,토탈값을 출력할 수 있는 메서드를 만들어놓았으므로 그럴 필요가 없다. 

score.setMat(Integer.parseInt(s.nextLine()));

integer.parseint는 입력받은 String을 int로 변환하는 메서드이다. 

 

 

2. 배우기

 

깃허브에 업로드하기. 

 

git bash here누르면 유닉스의 창이 뜬다.

여기에 각종 명령어를 입력하면 됨.

나의 자바 폴더를 깃에 업로드하기 전에 이렇게 하면 된다. 

이미 올려져 있는 것들은 그대로 있고 새로 올리기 위해선

git add .

git commit -m "버전이름"

git push origin master

 

이렇게만 하면 된다.

 

있는걸 받으려면 해당되는 폴더에 

git clone https://github.com/dorisuni/ex03.git

이런식으로 하면 된다.

 

GitHub - dorisuni/ex03: final project

final project. Contribute to dorisuni/ex03 development by creating an account on GitHub.

github.com

이미 있는걸 끌어오기위해선 git pull origin master 

 

이번에는 이렇게 있는 패키지를 깃허브에 업로드해보도록 하겠음.

 

잘 업로드되었다.

 

해당 소스코드는 다음과 같다. 

 

package ex03;

public class Main {

	public static void main(String[] args) {
		Sale.run();
	}

}
package ex03;

import java.util.*;

public class Sale {
	public static void run() {
		//샘플데이터
		List<SaleVO> array = new ArrayList<SaleVO>();
		SaleVO sale = new SaleVO(100,"냉장고",250,10);
		array.add(sale);
		sale = new SaleVO(101,"TV",220,15);
		array.add(sale);
		sale = new SaleVO(102,"에어컨",280,15);
		array.add(sale);
		int last = 102;
		Scanner s = new Scanner(System.in);
		boolean run = true;
		while (run) {
			System.out.println("\n\n******* 재고관리 *****************************");
			System.out.println("--------------------------------------------");
			System.out.println("1.입력 |2.조회 |3.목록 |4.수정 |5.삭제 |0.종료");
			System.out.println("--------------------------------------------");
			System.out.print("선택>");
			String menu = s.nextLine();
			switch (menu) {
			case "0":
				run = false;
				System.out.println("프로그램이 종료됩니다!");
				break;
			case "1":
				sale = new SaleVO();
				sale.setCode(++last);
				System.out.println("상품코드>"+sale.getCode());
				System.out.println("상품이름> ");
				sale.setName(s.nextLine());
				System.out.print("상품가격> ");
				sale.setPrice(Integer.parseInt(s.nextLine()));
				System.out.print("재고수량> ");
				sale.setQnt(Integer.parseInt(s.nextLine()));
				array.add(sale);
				break;
			case "2":
				System.out.print("조회번호> ");
				int search = Integer.parseInt(s.nextLine());
				boolean find =false;
				for(SaleVO vo:array) {
					if(search==vo.getCode()) {
						vo.setSum(vo.getPrice()*vo.getQnt());
						find =true;
						System.out.println("상품이름:" + vo.getName());
						System.out.println("상품가격:" + vo.getPrice());
						System.out.println("재고수량:" + vo.getQnt());
						System.out.println("상품금:" + vo.getSum());
					}
				}if(!find) {
					System.out.println("찾을 수 없는 번호입니다.");
				}
				break;
			case "3":
				for(SaleVO vo:array) {
					vo.setSum(vo.getPrice()*vo.getQnt());
					vo.print_land();
				}
				System.out.println(array.size()+"개 상품이 등록되었습니다.");
				break;
			case "4":	
				System.out.print("수정번호>");
				find = false;
				String update = s.nextLine();
				for (SaleVO vo: array) {
					if(Integer.parseInt(update)==vo.getCode()) {
						find = true;
						System.out.print("상품이름: "+vo.getName()+">");
						String newName = s.nextLine();
						if(newName!="") vo.setName(newName);
						System.out.print("상품가격: "+vo.getPrice()+">");
						String newPrice = s.nextLine();
						if(newPrice!="") vo.setPrice(Integer.parseInt(newPrice));
						String newQnt = s.nextLine();
						System.out.print("재고수량: "+vo.getQnt()+">");
						if(newQnt!="") vo.setQnt(Integer.parseInt(newQnt));
						System.out.println("수정완료!");
					}
				}if(!find) {
					System.out.println("없는 번호입니다.");
				}
				break;
			case "5":	
				System.out.print("삭제번호>");
				String delete = s.nextLine();
				find = false;
				for (SaleVO vo: array) {
					if(Integer.parseInt(delete)==vo.getCode()) {
						find = true;
						array.remove(vo);
						System.out.println("삭제완료");
						break;
					}
				}
				if(!find) System.out.println("없는 번호입니다.");
				break;
			}//switch
		}//while
	}//run
}//class

 

package ex03;

import java.util.*;

public class Sale {
	public static void run() {
		//샘플데이터
		List<SaleVO> array = new ArrayList<SaleVO>();
		SaleVO sale = new SaleVO(100,"냉장고",250,10);
		array.add(sale);
		sale = new SaleVO(101,"TV",220,15);
		array.add(sale);
		sale = new SaleVO(102,"에어컨",280,15);
		array.add(sale);
		int last = 102;
		Scanner s = new Scanner(System.in);
		boolean run = true;
		while (run) {
			System.out.println("\n\n******* 재고관리 *****************************");
			System.out.println("--------------------------------------------");
			System.out.println("1.입력 |2.조회 |3.목록 |4.수정 |5.삭제 |0.종료");
			System.out.println("--------------------------------------------");
			System.out.print("선택>");
			String menu = s.nextLine();
			switch (menu) {
			case "0":
				run = false;
				System.out.println("프로그램이 종료됩니다!");
				break;
			case "1":
				sale = new SaleVO();
				sale.setCode(++last);
				System.out.println("상품코드>"+sale.getCode());
				System.out.println("상품이름> ");
				sale.setName(s.nextLine());
				System.out.print("상품가격> ");
				sale.setPrice(Integer.parseInt(s.nextLine()));
				System.out.print("재고수량> ");
				sale.setQnt(Integer.parseInt(s.nextLine()));
				array.add(sale);
				break;
			case "2":
				System.out.print("조회번호> ");
				int search = Integer.parseInt(s.nextLine());
				boolean find =false;
				for(SaleVO vo:array) {
					if(search==vo.getCode()) {
						vo.setSum(vo.getPrice()*vo.getQnt());
						find =true;
						System.out.println("상품이름:" + vo.getName());
						System.out.println("상품가격:" + vo.getPrice());
						System.out.println("재고수량:" + vo.getQnt());
						System.out.println("상품금:" + vo.getSum());
					}
				}if(!find) {
					System.out.println("찾을 수 없는 번호입니다.");
				}
				break;
			case "3":
				for(SaleVO vo:array) {
					vo.setSum(vo.getPrice()*vo.getQnt());
					vo.print_land();
				}
				System.out.println(array.size()+"개 상품이 등록되었습니다.");
				break;
			case "4":	
				break;
			case "5":	
				break;
			}//switch
		}//while
	}//run
}//class

 

 

반응형

'프로그래밍 > JAVA' 카테고리의 다른 글

2023-07-12 JAVA ORACLE  (0) 2023.07.13
2023-07-03 수업일지  (0) 2023.07.03
2023-06-29 수업일지  (0) 2023.06.29
2023-06-28 학습일지  (0) 2023.06.29
2023-06-27 학습일지  (0) 2023.06.28