JAVA
[Java] 클래스를 이용한 간단한 성적관리 프로그램
메가구글
2023. 4. 4. 17:03
1. 문제
객체 배열을 사용하여 n명 학생의 성적을 국어, 수학, 영어에 대해 받아서 성적을 처리하는 프로그램을작성하시오.
사용자에게 이름, 국어, 수학, 영어를 입력받아서 처리하시오.
2. 코드
import java.util.Scanner;
class Student{
String name;
int math;
int english;
int korean;
public Student(String name,int math,int english,int korean){
this.name = name;
this.math=math;
this.english=english;
this.korean=korean;
}
public double SumOfGrade(){
return math+korean+english;
}
public double Average(){
return (math+korean+english)/3;
}
}
public class ClassGrade {
public static void main(String[] args) {
// TODO Auto-generated method stub
int studentNum = 0; //입력받을 학생 수
Scanner scanner = new Scanner(System.in); //학생정보 스캐너
Scanner sc = new Scanner(System.in); //학생수 스캐너
System.out.println("학생 수를 입력해주세요");
studentNum = sc.nextInt();
System.out.println("이름 수학 영어 국어 순으로 (홍길동 100 100 100)과 같이 입력하시오");
Student [] student = new Student[studentNum]; //학생수만큼 Student 객체 생성
//이름, 성적을 Scanner로 입력받는다.
for(int i=0;i<student.length;i++){
String name = scanner.next();
int math = scanner.nextInt();
int english = scanner.nextInt();
int korean = scanner.nextInt();
student[i] = new Student(name,math,english,korean); //student에 값 넘겨주기
}
System.out.println("\t"+"\t"+"##성적표##");
System.out.println("==============================================");
System.out.println("이름"+"\t"+"수학"+"\t"+"영어"+"\t"+"국어"+"\t"+"총점"+"\t"+"평균");
System.out.println("==============================================");
for(int i=0;i<student.length;i++)
{
System.out.print(student[i].name +"\t"+student[i].math +"\t"+student[i].english +"\t"+student[i].korean+"\t");
System.out.print(student[i].SumOfGrade()+"\t");
System.out.println(student[i].Average());
}
System.out.println("==============================================");
scanner.close();
sc.close();
}//end of main
}
3. 코드 설명
Student 클래스
- 인스턴스 변수로 name, math, english, korean을 가진다.
- 생성자 public Student(String name,int math,int english,int korean)에서 값을 가져와 인스턴스 변수를 초기화시킨다.
- 인스턴스 변수의 값을 가져왔다면 SumofGrade나 Average를 이용해 합계와 평균을 계산한다.
ClassGrade 클래스 (main 함수)
- studentNum은 입력받을 학생 수이다.
- Scanner를 이용해 입력받을 정보를 얻는다.
- studentNum의 정보를 얻었다면 Student [] student = new Student[studentNum]를 통해 학생 수 만큼 객체를 생성한다.
- 그러면 for문은 학생수만큼 돌게 된다. 그게 for(int i=0;i<student.length;i++)이 부분이다. (대략 43줄쯤)
- 값을 입력해주고 student[i] = new Student(name,math,english,korean);를 통해 각 객체에 생성자로 하여금 초기화하게 한다.
- 각 객체 배열에 데이터가 들어갔다면 이를 이용한 메소드 합계, 평균을 이용해 프로그램을 완성한다.
여기서 "\t"은 탭으로 탭만큼 띄워쓰기를 하게 한다.
그리고 Scanner를 사용했다면 마지막에 닫아주는걸 잊지 말자.