본문 바로가기
Backend/JAVA

[JAVA] 학과 프로그램 #4 - 점수 기능 추가하기(+파일)

by 그적 2020. 9. 20.

이전 학과 프로그램 내용을 습득해야 알 수 있는 내용이다. jihyeong-ji99hy99.tistory.com/86 를 보고 오도록 하자.

 

점수 기능 추가하기

1) 데이터 결정 : 학생의 점수 이므로 SRP 원칙에 의해 학생 클래스에서 담당
2) 기능 추가 : 점수 입력, 출력, 검색 기능

Department 클래스
- void readScores() 메서드 : 학생 이름 출력 후, 점수 입력
- void searchScore() 메서드 : 점수 구간에 해당하는 학생 출력

// Department 클래스
void run(){
	readAll();
	printAll();
	inputScore();
}
void inputScore(){
	System.out.println("학생 점수 입력");
	for(Student st : studentList){
	   st.inputScores(s);
	}
}

// Student 클래스
int score;
void inputScores(Scanner s){
	System.out.printf("%s : ", name);	// 입력 대신 score=randnextInt(100)+1; 
	score = s.nextInt();
}

// equals 말고 사용할 수 있는 메서드 >> 부분동일
string(변수).contains(kwd);
string(변수).startsWith(kwd);
string(변수).endsWith(kwd);

 

기능 묶기

// Department 클래스
void run() {
		readAll();
		int menu;
		while(true) {
			System.out.print("(1) 전체 출력 (2) 점수 입력 ");
			System.out.print("(3) 검색, (0) 종료");
			menu = s.nextInt();
			switch(menu) {
			case 1: printAll(); break;
			case 2: inputScores(); break;
			case 3: searchMenu(); break;
			default: break;
			}
		}
		
	}
	
	void searchMenu() {
		int menu;
		while(true) {
			System.out.print("(1) 학번/이름 검색 (2) 통합검색 ");
			System.out.print("(3) 점수 검색 (0) 종료");
			menu = s.nextInt();
			switch(menu) {
			case 1:
			case 2: search(); break;
			case 3: inputScores(); break;
			default: break;
			}
		}
	}

** switch문은 값이 몇개 안되고, 조건들끼리 겹치는 것이 없을 때 사용한다.
    if문을 여러개 사용하는 것보다 효율적이고, 가독성이 좋다.

Department.java
0.00MB
Student.java
0.00MB

댓글