package quiz2.ex01.score;
//수정하기를 구체적으로 나누기
import java.util.Scanner;
public class MainEntry_2 {
static String name;
static int kor;
static int eng;
static int com;
static int tot;
static double avg;
static char grade;
public static void main(String[] args) {
ScoreManager_2 sm = new ScoreManager_2();
Scanner sc = new Scanner(System.in);
int edit_num;
try {
while (true) {
System.out.println("\n\n*-*-*-*-* 메뉴 *-*-*-*-*");
System.out.println("1. 학생 정보 입력");
System.out.println("2. 학생 정보 삭제");
System.out.println("3. 학생 정보 수정");
System.out.println("4. 모든 학생 보기");
System.out.println("5. 종료");
System.out.println("----------------------");
System.out.print(" >> ");
int inNum = sc.nextInt();
try {
switch (inNum) {
case 1:
System.out.println("\n*-*-*-* 1. 학생 정보 입력 *-*-*-*");
inScore();
sm.ScoreAdd(name, kor, eng, com, tot, avg, grade);
System.out.println("* 입력완료");
break;
case 2:
if(sm.list.isEmpty()) {
System.out.println("삭제할 학생이 없습니다.");
continue;
}
System.out.println("\n*-*-*-* 2. 학생 정보 삭제 *-*-*-*");
sm.display();
System.out.println("---------------------------");
System.out.print("삭제할 학생의 번호를 입력하세요 >> ");
inNum = sc.nextInt();
sm.ScoreRmv(inNum);
System.out.print("삭제되었습니다.");
break;
case 3:
if(sm.list.isEmpty()) {
System.out.println("수정할 학생이 없습니다.");
continue;
}
System.out.println("\n*-*-*-* 3. 학생 정보 수정 *-*-*-*");
sm.display();
System.out.println("---------------------------");
System.out.print("수정할 학생의 번호를 입력하세요 >> ");
inNum = sc.nextInt();
// do { //=>1)do ~ while 이용
while (true) { //=>2)while 이용
System.out.println("수정할 학생의 정보를 입력하세요.(1.이름, 2.국어점수, 3.영어점수, 4.전산점수)");
edit_num = sc.nextInt();
switch (edit_num) {
case 1: // 이름수정
// editName();
System.out.println("수정할 이름을 입력해주세요=>");
sm.list.get(inNum - 1).setName(sc.next());
System.out.println("수정되었습니다.");
// sm.ScoreCh(inNum, name, kor, eng, com);
break;
case 2: // 국어점수 수정
System.out.println("국어점수를 입력해주세요=>");
sm.list.get(inNum - 1).setKor(sc.nextInt());
System.out.println("수정되었습니다.");
break;
case 3: // 영어점수 수정
System.out.println("영어점수를 입력해주세요=>");
sm.list.get(inNum - 1).setEng(sc.nextInt());
System.out.println("수정되었습니다.");
break;
case 4: // 전산점수 수정
System.out.println("전산점수를 입력해주세요=>");
sm.list.get(inNum - 1).setEng(sc.nextInt());
System.out.println("수정되었습니다.");
break;
default:
System.out.println("수정할 정보의 번호를 다시 입력해주세요.");
continue;
} // in switch end
System.out.println("계속 수정하시겠습니까?");
String con = sc.next();
if (con.equalsIgnoreCase("n")) {
break;
}
} //in while end
// } while (edit_num != 1 && edit_num != 2 && edit_num != 3 && edit_num != 4); // do while end
break;
case 4:
if(sm.list.isEmpty()) {
System.out.println("저장된 학생정보가 없습니다.");
continue;
}
System.out.println("\n*-*-*-* 4. 모든 학생 보기 *-*-*-*");
sm.display();
break;
case 5:
System.out.println("\n* 프로그램을 종료합니다.");
System.exit(0);
break;
default:
System.out.println("\nerr)잘못입력하셨습니다. 다시 입력해주세요.");
} // out switch end
} catch (Exception e) {
System.out.println("err) 없는 학생입니다. 다시 입력해주세요.");
} // try catch
} // out while end
} catch (Exception e) {
System.out.println("err) 잘못 입력하셨습니다. 프로그램을 종료합니다.");
} // try catch
}
public static void inScore() {
Scanner sc = new Scanner(System.in);
System.out.print("학생 이름을 입력해주세요: ");
name = sc.next();
do {
System.out.println("학생의 국어점수를 입력하세요(0~100점사이값만 넣으세요) : ");
kor = sc.nextInt();
} while ((kor < 0) || (kor > 100));
do {
System.out.println("학생의 영어점수를 입력하세요(0~100점사이값만 넣으세요) : ");
eng = sc.nextInt();
} while ((eng < 0) || (eng > 100));
do {
System.out.println("학생의 전산점수를 입력하세요(0~100점사이값만 넣으세요) : ");
com = sc.nextInt();
} while ((com < 0) || (com > 100));
process(name, kor, eng, com);
}
// 계산처리
public static void process(String name, int kor, int eng, int com) {
tot = kor + eng + com;
avg = tot / 3.0;
grade(avg);
} // process end
public static void grade(double avg) {
if (avg <= 100 && avg > 90) {
grade = 'A';
} else if (avg <= 90 && avg > 80) {
grade = 'B';
} else if (avg <= 80 && avg > 70) {
grade = 'C';
} else if (avg <= 70 && avg > 60) {
grade = 'D';
} else
grade = 'F';
} // grade end
}