반응형
** 성적관리 프로그램 ver 0.1 **
1. 성적입력
2. 성적출력
3. 종료
> _1
// 1 메뉴를 선택했을 경우
<1 번째 학생의 성적을 입력하세요>
국어성적 : _
영어성적 : _
수학성적 : _
<2 번째 학생의 성적을 입력하세요>
국어성적 : _
영어성적 : _
수학성적 : _
<3 번째 학생의 성적을 입력하세요>
국어성적 : _
영어성적 : _
수학성적 : _
// 2번 메뉴를 선택했을 경우
1 - 국어:30, 영어:40, 수학:80, 총점:150, 평균 50.00
2 - 국어:50, 영어:60, 수학:100, 총점: , 평균
3 - 국어:90, 영어:80, 수학:95, 총점: , 평균:
과목별 평균 : 국어:40.33, 영어:55.55, 수학:60.35
package Ex1struct;
import java.util.Scanner;
public class Ex17성적관리프록램 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
boolean loop = true;
final int INPUT = 1; // 상수형 변수를 사용하므로써
final int OUTPUT = 2; // switch문의 가독성을 높임
final int EXIT = 3;
Exam[] exams = new Exam[3]; // 클래스배열 3개를 만들고
for (int i = 0; i < 3; i++)
exams[i] = new Exam(); // 클래스를 통해 객체를 3개만들고
EXIT: while (loop) {
System.out.println("** 성적관리 프로그램 ver 0.1 **");
System.out.println("1. 성적입력");
System.out.println("2. 성적출력");
System.out.println("3. 종료");
System.out.println(">");
int menu = scan.nextInt();// ?
if (menu > 3 || menu < 1) {
System.out.println("1~3까지의 숫자를 입력해주세요");
System.out.println();
continue;
}
switch (menu) {
case INPUT:
for (int i = 0; i < 3; i++) {
System.out.printf("<%d 번째 학생의 성적을 입력하세요>\n", i + 1);
System.out.println("국어성적 : ");
exams[i].kor = scan.nextInt();
System.out.println("영어성적 : ");
exams[i].eng = scan.nextInt();
System.out.println("수학성적 : ");
exams[i].math = scan.nextInt();
int korScore = exams[i].kor; // 안이뻐서
int engScore = exams[i].eng;
int mathScore = exams[i].math;
if (korScore > 100 || korScore < 0) {
i--;
System.out.println("0~100범위안에서 입력해주세요");
}
else if (engScore > 100 || engScore < 0) {
i--;
System.out.println("0~100범위안에서 입력해주세요");
}
else if (mathScore > 100 || mathScore < 0) {
i--;
System.out.println("0~100범위안에서 입력해주세요");
}
}
break;
case OUTPUT:
// 평균과 총점은 OUTPUT에서만 사용되는 변수이므로 여기에서 선언.
for (int i = 0; i < 3; i++) {
int total = exams[i].kor + exams[i].eng + exams[i].math;
float average = (exams[i].kor + exams[i].eng + exams[i].math) / 3.0f;
System.out.printf("%d - 국어: %d, 영어: %d, 수학:%d, 총점:%d, 평균: %5.2f\n"
, i + 1, exams[i].kor,exams[i].eng, exams[i].math, total, average);
}
// 과목별 평균
float korAverage = (exams[0].kor + exams[1].kor + exams[2].kor) / 3.0f;
float engAverage = (exams[0].eng + exams[1].eng + exams[2].eng) / 3.0f;
float mathAverage = (exams[0].math + exams[1].math + exams[2].math) / 3.0f;
System.out.printf("과목별 평균 : 국어:%5.2f, 영어:%5.2f, 수학:%5.2f\n"
, korAverage, engAverage, mathAverage);
break;
case EXIT:
System.out.println("국민 93657105757 유성일");
break EXIT;
}//switch
}//while
}// main
}// class
반응형
'웹 프로그래밍 기초 > 자바기반의 웹&앱 응용SW 개발자' 카테고리의 다른 글
자바기반의 웹&앱 응용 SW개발자 양성과정 12일차 -23 (0) | 2020.03.12 |
---|---|
자바기반의 웹&앱 응용 SW개발자 양성과정 11일차 -22 (0) | 2020.03.11 |
자바기반의 웹&앱 응용 SW개발자 양성과정 10일차 -20 (0) | 2020.03.10 |
자바기반의 웹&앱 응용 SW개발자 양성과정 10일차 -19 (0) | 2020.03.10 |
자바기반의 웹&앱 응용 SW개발자 양성과정 9일차 -18 (0) | 2020.03.09 |
댓글