본문 바로가기
자바과정/Java

Java 실습(성적처리프로그램:클래스) - 5일차

by Parkej 2021. 2. 3.

--- StudentScore 클래스

/*
 * 성적처리프로그램
 * 입력 : 이름, 국, 영, 수
 * 연산 : 총점, 평균
 * 출력 : 이름, 국, 영, 수, 총, 평
 */
//import java.util.Scanner;
public class StudentScore {

	private String name;
	private int []score; //= new int[4];//국 영 수 총
	private float avg;

	public StudentScore() {
		name = "";
		score = new int[4];
		avg = 1.f;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	public void setScore(int i, int score) {
		this.score[i] = score;
	}
	
	public void setAvg(float data) {
		avg = data;
	}
	
	public void seTotal(int score) { // 총점 
		// 출력할때 getScore에서 마지막 인덱스를 쓰기 위함임.
		this.score[3] += score;
	}

	public String getName() {
		return name;
	}
	public int[] getScore() {
		return score;
	}
	public float getAvg() {
		return avg = score[3]/3.0f;
	}
	


}

 

 

--- StudentScoreMag 클래스

import java.util.Scanner;

public class StudentScoreMag {

	private StudentScore [] stu;


	//생성자 (constructor)
	public StudentScoreMag(int a) {
		this.stu = new StudentScore[a];
	}

	// setter를 이용해서 써보기
	//method
	//		public void setA(int a) {
	//			this.stu = stu[a];
	//		}
	// getter
	
	public StudentScore[] getA() {
		return stu;
	}
	
	public static void main(String[] args) {
		//		int a;
		Scanner sc = new Scanner(System.in); // 객체선언

		System.out.print("사람 수 입력 : "); 
		StudentScoreMag ssm = new StudentScoreMag(sc.nextInt()); 
		// 입력을 객체 생성에 받아 생성자에서 배열 수가 선언과 동시에 초기화됨.

		// 입력
		for(int i=0;i<ssm.getA().length;i++) {
			ssm.getA()[i] = new StudentScore();
			System.out.println("학생 이름 : ");
			ssm.getA()[i].setName(sc.next());
			for(int j=0;j<ssm.getA()[i].getScore().length-1;j++) {
				System.out.println("성적 입력(국 영 수) : ");
				ssm.getA()[i].setScore(j,sc.nextInt());
				ssm.getA()[i].seTotal(ssm.getA()[i].getScore()[j]);
			}

		}

		// 출력
		for(int i=0;i<ssm.getA().length;i++) {
			System.out.println(ssm.getA()[i].getName());
			for(int j=0;j<ssm.getA()[i].getScore().length;j++) {
				System.out.println(ssm.getA()[i].getScore()[j]);
			}
			//System.out.println(ae.getTotal());
			System.out.println(ssm.getA()[i].getAvg());
		}
	}



}

/*
 * 몇사람의 성적처리?
 * 
 */
반응형

댓글