gwooden_코린이
java_문제03_221129(7일차) 본문
학생 관리 프로그램 3명
name, kor, eng, math, sum, avg, rank <-클래스
이름, 국어, 영어, 수학, 합계, 평균, 등수
등수는 평균을 기준으로 1등, 2등, 3등 순으로 정리
이름, 국어, 영어, 수학 => 스캐너로 입력 받기 [생성자 또는 메서드로 처리 <-- 편한 방식으로]
sum(), avg() <-- 합계, 평균 메서드
합계/평균 메서드 실행 -> sum, avg 저장
출력 : ex)
showInfo() <-- 출력 메서드
<학생정보 출력>
이름 국어 영어 수학 합계 평균 등수
---------------------------------------------------
홍길동 100 80 90 270 90 1등
홍길동 100 80 90 270 90 1등
홍길동 100 80 90 270 90 1등
Main 클래스
--학생정보 입력 --
1번째 학생 이름 :
1번째 학생 국어 :
1번째 학생 영어 :
1번째 학생 수학 :
-1번째 학생 입력 완료-
2번째 학생 이름 :
2번째 학생 국어 :
2번째 학생 영어 :
2번째 학생 수학 :
-2번째 학생 입력 완료-
3번째 학생 이름 :
3번째 학생 국어 :
3번째 학생 영어 :
3번째 학생 수학 :
-3번째 학생 입력 완료-
합계 계산 처리
평균 계산 처리
showInfo()
이름 국어 영어 수학 합계 평균 등수
---------------------------------------------------
홍길동 100 80 90 270 90
홍길동 100 80 90 270 90
홍길동 100 80 90 270 90
마지막 등수 처리 <--Main 클래스에서 작업
showInfo()
이름 국어 영어 수학 합계 평균 등수
---------------------------------------------------
홍길동 100 80 90 270 90 1
홍길동 100 80 90 270 90 2
홍길동 100 80 90 270 90 3
package 문제03;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Student[] students = new Student[3]; //배열방
String name;
int kor;
int eng;
int math;
int i ,j;
Scanner sc = new Scanner(System.in); //입력 할 수 있게 스캐너 기능 추가
System.out.println("===학생 정보 입력===");
/**첫 번째 반복문 시작**/
for(i=0; i<students.length; i++) { //i가 3 보다 작을 때 까지 반복 실행
System.out.print(i + 1 + "번째 학생 이름을 입력 : ");
name = sc.next();
System.out.print(i + 1 + "번째 학생 국어 점수 : ");
kor = sc.nextInt();
System.out.print(i + 1 + "번째 학생 영어 점수 : ");
eng = sc.nextInt();
System.out.print(i + 1 + "번째 학생 수학 점수 : ");
math = sc.nextInt();
//Student 클래스에서 this 값을 가져온다.
//학생 마다 정보를 따로 담아야 되기 때문에 students[i]로
//반복 할때 마다 i 값이 바뀜
//students[0], students[1], students[2] 순으로 값이 넣어짐
students[i] = new Student(name, kor, eng, math);
/**첫 번째 반복문 끝**/
/**두 번째 반복문 시작**/
}
for (i = 0; i < students.length; i++) {
students[i].sum();
students[i].avg();
}
/**두 번째 반복문 끝**/
System.out.println("이름 국어 영어 수학 총합 평균 순위");
for (i = 0; i < students.length; i++) {
for (j = 0; j < students.length; j++) {
if (students[i].avg < students[j].avg) {
students[i].rank++;
}
}
}
for (i = 0; i < students.length; i++) {
students[i].showInfo();
}
}
}
===학생 정보 입력=== 1번째 학생 이름을 입력 : 가 1번째 학생 국어 점수 : 50 1번째 학생 영어 점수 : 60 1번째 학생 수학 점수 : 70 2번째 학생 이름을 입력 : 나 2번째 학생 국어 점수 : 60 2번째 학생 영어 점수 : 70 2번째 학생 수학 점수 : 80 3번째 학생 이름을 입력 : 다 3번째 학생 국어 점수 : 70 3번째 학생 영어 점수 : 80 3번째 학생 수학 점수 : 90 이름 국어 영어 수학 총합 평균 순위 가 50 60 70 180 60 3 나 60 70 80 210 70 2 다 70 80 90 240 80 1 |
package 문제03;
public class Student {
String name; //이름
int kor; //국어점수
int eng; //영어점수
int math; //수학점수
int sum; //합계
int avg; //평균 점수
int rank; //등수
public Student(String name, int kor, int eng, int math) {
this.name = name;
this.kor = kor;
this.eng = eng;
this.math = math;
this.sum = 0;
this.rank = 1;
}
public void sum() {
sum = kor+eng+math;
}
public void avg() {
avg = sum/3;
}
public void showInfo() {
System.out.println(name+" "+kor+" "+eng+" "+math+" "+sum+" "+avg+" "+rank);
}
}
rank 값 구할때
이중 for 문을 이용한 rank++;
'java > 7일차' 카테고리의 다른 글
java_익명 구현 객체_221129(7일차) (0) | 2022.11.29 |
---|---|
java_인터페이스_221129(7일차) (0) | 2022.11.29 |
java_문제02_221129(7일차) (0) | 2022.11.29 |
java_상속+오버라이딩_221129(7일차) (0) | 2022.11.29 |
java_final_221129(7일차) (0) | 2022.11.29 |