gwooden_코린이

java_문제03_221129(7일차) 본문

java/7일차

java_문제03_221129(7일차)

gwooden22 2022. 11. 29. 15:27
728x90

학생 관리 프로그램 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++;

728x90

'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
Comments