// 이름 클래스
package Day5;
// 이름입력 데이터 클래스
public class NameStudent {
private String name;
// setter
public void setName(String name) {
this.name = name;
}
// getter
public String getName() {
return name;
}
}
// 과목 입력 클래스
package Day5;
// 과목 입력 데이터 클래스
public class Subject {
private int []score; // 입력받을 과목 필드 선언
private float avg;
private int tot;
// private int tot;
// private float avg;
// 과목은 사용자가 가져다 쓸거임
public Subject() {
}
// 과목 수 선언
public Subject(int a) {
tot = 0;
score = new int[a];
}
// 과목 연산
public void setScore(int i, int score) {
this.score[i] = score;
}
public int[] getScore() {
return this.score;
}
// 총점
public int getTotal() {
for(int i=0;i<score.length;i++) {
tot += score[i];
}
return tot;
}
// 평균
public float getAvg() {
return (float)tot/getScore().length;
}
}
// 메인 클래스
package Day5;
import java.util.Scanner;
public class StudentScoreMag {
// 연산 담당
private NameStudent name; // name 타입을 쓴다. 대기상태
private Subject sub;
// 생성자 초기화 및 객체 생성
// 오버로딩
public StudentScoreMag() {
name = new NameStudent();
// name의 메소드를 이용하기 위한 객체 생성
}
public StudentScoreMag(int a) {
sub = new Subject(a);
// sub의 메소드를 이용하기 위한 객체 생성
}
// NameStudent 클래스 사용
public void setName(String n) {
this.name.setName(n);
}
public String getName() {
return this.name.getName();
}
// main
public static void main(String[] args) {
char str;
Scanner sc = new Scanner(System.in);
StudentScoreMag ssm = new StudentScoreMag();
// Name 객체 생성
do {
// 이름 입력
System.out.print("학생 이름 : ");
ssm.setName(sc.next());
// 과목 수 입력
System.out.print("과목 수 입력 : ");
StudentScoreMag ssm1 = new StudentScoreMag(sc.nextInt());
for(int i=0;i<ssm1.sub.getScore().length;i++) {
System.out.printf("%d번 과목점수 입력 : ",i+1);
ssm1.sub.setScore(i, sc.nextInt());
// ssm1.sub를 통한 Subject 객체 접근
}
// 출력
System.out.println("이름 : " + ssm.getName());
for(int i=0;i<ssm1.sub.getScore().length;i++) {
System.out.println((i+1)+"번 과목 점수 : " +ssm1.sub.getScore()[i]);
}
System.out.println("총점수 : "+ssm1.sub.getTotal());
System.out.println("평균 : "+ssm1.sub.getAvg());
System.out.println();
System.out.print("Continue?(y/n) : ");
str = sc.next().charAt(0);
if(str == 'n' || str == 'N') {
System.out.println("End");
break;
}
}while(str == 'y' || str == 'Y');
}
}
반응형
'자바과정 > Java' 카테고리의 다른 글
Java 기초 - 7일차 (0) | 2021.02.15 |
---|---|
Java 실습(상속클래스) - 6일차 (0) | 2021.02.04 |
Java 실습(성적처리프로그램:클래스) - 5일차 (0) | 2021.02.03 |
Java 기초 - 5일차 (0) | 2021.02.03 |
Java 실습(한사람 성적처리:메소드, 생성자) - 4일차 (0) | 2021.02.02 |
댓글