ver.3 has-a 관계 이용하여 학생 정보 출력
has- a : 포함 관계. ~는 ~을 가지고 있다. 포함하고 있다는 의미
사용자에게 학생 수 입력 받기
입력 받은 수 만큼 반복하여 학생 이름, 성적 입력받기
전체 학생과 성적, 합계, 평균 출
ArrayHasA 클래스는 학생 Student를 포함하고 있어 Has-a 관계가 성립된다.
import java.util.Scanner;
public class ArrayHasA {
StudentScore []student; //StudentScore 클래스를 배열로 받아옴 int index; //입력한 학생 인원 수 받음
ArrayHasA(int index) { //생성자 : 인덱스로 받음 student=new StudentScore[index]; // this.index = index; loading(); }
void loading() { for(int i = 0; i <student.length;i++) { student[i]=new StudentScore(); //생성자 부르자 마자 인덱스 값으로 StudentSccore 객체 생성 student[i].setInput(); //학생 정보 입력 student[i].getAvg(); //평균 구하기 }
}
void setStudent(StudentScore []ae) { this.student = ae; }
void setIndex(int index) { this.index = index; }
StudentScore[] getStudent() { return this.student; }
int getIndex() { return this.index; }
void printer(){//출력하기 위한 메소드 for (int i = 0; i < student.length; i++) { //student index 크기만큼 돌림 System.out.print(student[i].name +"\t"); for (int j = 0; j < student[i].score.length; j++) { //StudentScore 의 인덱스 크기만큼 돌림 System.out.print(student[i].score[j]+"\t"); }
System.out.print(student[i].avg); System.out.println(); }
}
public static void main(String[] args) { // TODO Auto-generated method stub
Scanner sc = new Scanner(System.in); System.out.println("몇명의 학생 정보를 입력하시겠습니까? "); ArrayHasA ah = new ArrayHasA(sc.nextInt()); //입력할 학생 정보 scanner로 받음
System.out.println("-------------성적 출력---------------");
ah.printer(); //성적 출력 메소드 활용 }
}
class StudentScore {
String name; //이름 int []score; //점수(국어, 영어, 수학, 총점) float avg; //평균
StudentScore(){ //생성자 score=new int[4]; }
StudentScore(String name, int []score, float avg){ this.score = score; //초기화 this.name = name; //이름 this.avg = avg; //평균 }
public void setName(String name) { this.name = name; }
public void setScore(int[] arr) { this.score=arr; }
public void setAvg(float avg) { this.avg = avg; }
public String getName() { return this.name; }
public int[] getScore() { return this.score; }
public float getAvg() { //float 형태로 평균 구함 this.avg = (float)score[3]/3; return avg; }
void setInput() { //사용자 이름과 성적 입력 메소드 Scanner sc = new Scanner(System.in);
System.out.print("이름을 입력하세요 : "); this.name = sc.next();
System.out.println("성적을 입력하세요 (국어, 수학, 영어 성적 순):"); score[3]=0;
for(int i = 0; i < score.length-1;i++) { //for 반복하여 숫자 입력 this.score[i]= sc.nextInt(); this.score[3] += score[i]; }
} }
|
'JAVA' 카테고리의 다른 글
추상화 예제 (0) | 2019.06.18 |
---|---|
상속 예제_extends, super, Override (0) | 2019.06.18 |
배열 예제_이름과 성적 출력 (0) | 2019.06.18 |
배열 예제_2차원 배열 (0) | 2019.06.18 |
배열 예제_숫자 출력 (0) | 2019.06.18 |