자바의 클래스를 이용하여 다음과 같이 클래스를 나눠 학점, 평균 구하라.
학생
-------------
이름
학번
국어점수
국어학점
수학점수
수학학점
총점
평균
---------------
생성자(이름 학번)
국어점수수학점수입력
학점계산
총점평균계산
이름학번출력
국어(점수,학점)수학(점수,학점)출력
총점평균출력
---------------
1) 상속을 위한 학생 이름, 학번이 들어간 슈퍼클래스
package class_test01; // 상속을 위한 학생 이름, 학번이 들어간 슈퍼클래스
public class Student_Idcard {
String name;// 이름
String studentNo; //학번
int score[] = new int[4]; // 점수 배열
Student_Idcard(String name, String studentNo, int score[]){ // 생성자
this.name = name;
this.studentNo = studentNo;
this.score= score;
}
Student_Idcard(String name, String studentNo){
// testExample1에서 점수는 input으로 받으므로 2개만 불러들일 생성자
this.name = name;
this.studentNo = studentNo;
}
}
---------------------------------------------------------------------------------------------
2) 슈퍼클래스를 상속하여 학생의 학점, 총점, 평균 계산하는 클래스
package class_test01;
import java.util.Scanner;
public class StudentInfo extends Student_Idcard {
// 학생 이름, 학번, 점수는 슈퍼클래스에서 상속
char grade[] = new char[4]; // 학점 배열
int total, average; // 총점, 평균
StudentInfo(String name, String studentNo, int score[]) {
super(name, studentNo, score); // 슈퍼클래스의 생성자 상속
}
StudentInfo(String name, String studentNo) {
super(name, studentNo); // 슈퍼클래스의 생성자 상속
}
void input() { // 국어점수, 수학점수 입력 메소드
Scanner in = new Scanner(System.in);
System.out.printf("국어점수:");
score[0] = in.nextInt();
System.out.printf("수학점수:");
score[1] = in.nextInt();
System.out.printf("영어점수:");
score[2] = in.nextInt();
System.out.printf("과학점수:");
score[3] = in.nextInt();
}
void Getgrade() { // 학점 계산 메소드
for(int i=0;i<score.length;i++) {
if( score[i] >= 90 ) grade[i] = 'A';
else if( score[i] >= 80 ) grade[i] = 'B';
else if( score[i] >= 70 ) grade[i] = 'C';
else if( score[i] >= 60 ) grade[i] = 'D';
else grade[i] = 'F';
// if의 결과로 배열변수가 사라지지 않으므로 return 값은 없어도 됨
}
}
int getTotal() { // 총점 계산 메소드
for (int i = 0; i < score.length; i++)
total += score[i];
return total;
}
int getAverage() { // 평균 계산 메소드
average = total / score.length;
return average;
}
void prn() { // 출력 메소드
Getgrade(); // 메소드는 이렇게 호출해주지 않으면 작동 안함!!
getTotal();
getAverage();
System.out.println("이름:" + name);
System.out.println("학번:" + studentNo);
System.out.println("국어점수:" + score[0] + " 학점=" + grade[0] + "학점");
System.out.println("수학점수:" + score[1] + " 학점=" + grade[1] + "학점");
System.out.println("영어점수:" + score[1] + " 학점=" + grade[2] + "학점");
System.out.println("과학점수:" + score[1] + " 학점=" + grade[3] + "학점");
System.out.println("총점:" + total + " 평균=" + average);
}
}
package class_test01; // 실행 클래스
public class testExample1 {
public static void main(String[] args) {
StudentInfo obj1 = new StudentInfo("고길동", "1515-6001");
StudentInfo obj2 = new StudentInfo("김둘리", "1623-6542");
obj1.input();
obj1.prn();
obj2.input();
obj2.prn();
}
}
--------------------------------------------------
'자바의 기초문법' 카테고리의 다른 글
String 클래스: substring, indexOf, StringBuilder, StringBuffer (0) | 2015.12.21 |
---|---|
레퍼런스 타입: instanceof, enum 열거타입, values/valueOf 메소드 (0) | 2015.12.18 |
인터페이스 implements (0) | 2015.12.16 |
객체와 클래스: 문제 (0) | 2015.12.15 |
객체와 클래스: 필드, 메소드, 익셉션, 정적구성요소(static) (0) | 2015.12.15 |