public class Sungjuk {
String hakbun;
String name;
int age;
int kor;
int eng;
int math;
int total;
double avg;
char hakjum;
boolean ageCheck(int number) {
if(19 < number && number < 40) {
return true;
} else {
System.out.println("19부터 40까지의 나이를 입력하세요.");
return false;
} //유효성 검사 메소드
}
boolean jumsuCheck(int jumsu) {
if(0<= jumsu && jumsu <= 100) {
return true;
} else {
System.out.println("0부터 100까지의 점수를 입력하세요.");
return false;
}
} // 유효성 검사 메소드
void print() {
System.out.println("==" + name + "님의 성적결과==");
System.out.println("1. 학번 :" + hakbun);
System.out.println("2. 성명 :" + name);
System.out.println("3. 나이 :" + age);
System.out.println("4. 국어 :" + kor);
System.out.println("5. 영어 :" + eng);
System.out.println("6. 수학 :" + math);
cal();
System.out.println("7. 총점 :" + total);
System.out.println("8. 평균 :" + avg);
System.out.println("9. 학점 :" + hakjum);
} //-- print 메소드
void cal() {
total = kor + eng + math;
avg = total / 3.0;
if (avg >= 90) {
hakjum = 'A';
} else if (avg >= 80) {
hakjum = 'B';
} else if (avg >= 70) {
hakjum = 'C';
} else if (avg >= 60) {
hakjum = 'D';
} else {
hakjum = 'F';
}
} //-- 학점 계산 메소드
}
코드 실행
import java.util.Scanner;
public class Main_Sungjuk {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Sungjuk sungjuk = new Sungjuk();
String status = " "; //나이, 숫자 상태 판별
System.out.println("1. 학번 :");
String str = scanner.nextLine();
sungjuk.hakbun = str;
System.out.println("2. 성명 :");
str = scanner.nextLine();
sungjuk.name = str;
try {
status = "나이";
System.out.println("3. 나이 :");
str = scanner.nextLine();
int age = Integer.parseInt(str);
if(!sungjuk.ageCheck(age)) {
scanner.close();
return;
} else {
sungjuk.age = age;
}
status = "점수";
System.out.println("4. 국어 :");
str = scanner.nextLine();
int kor = Integer.parseInt(str);
sungjuk.kor = kor;
if(!sungjuk. jumsuCheck(kor)) {
scanner.close();
return;
} else {
sungjuk.kor = kor;
}
System.out.println("5. 영어 :");
str = scanner.nextLine();
int eng = Integer.parseInt(str);
sungjuk.eng = eng;
System.out.println("6. 수학 :");
str = scanner.nextLine();
int math = Integer.parseInt(str);
sungjuk.math = math;
sungjuk.print();
} catch (NumberFormatException e) {
if("나이".equals(status)) {
System.out.println("입력하신" + str + "은 제대로 된 나이가 아닙니다.");
} else {
System.out.println("입력하신" + str + "은 제대로 된 점수가 아닙니다.");
}
scanner.close();
return;
}
scanner.close();
}
}
학점 이름, 나이, 과목 점수를 입력하면 점수 총점과 평균, 학점을 계산해서 입력해주는 프로그램을 만들었다.
혼자 만들 때는 값을 정확하게 입력하다 보니까... 사용자가 값을 잘못 입력할거라는 생각을 잘 안했었는데, 이런 것까지 체크해서 오류를 없애는게 중요한 것 같다!
좀 더 중복을 줄이고 파악하기 쉬운 코드를 만들고 싶다..
변수 이름 짓는 걸 좀 더 명확하게 생각해봐야겠다!