JAVA

ArrayList를 활용한 간단한 성적 산출 프로그램

본투비곰손 2022. 7. 21. 22:42
728x90
package ch24; // 서버클래스

import java.util.ArrayList;

public class Student {
	int studentId;
	String studentName; // 변수를 선언해주고
	
	ArrayList<Subject> subjectList; // 배열도 변수로 선언한다 Subject는 배열형식으로 참조변수인 class 만들어준다.
	
	Student(int studentId, String studentName){
		this.studentId= studentId;
		this.studentName= studentName; // Student를 생성해준다.
		
		subjectList = new ArrayList<>(); // subjectList new생성자를 사용하여 생성한다.
	}
	public void addSubject(String name, int point) {
		Subject subject = new Subject();
		subject.setName(name);
		subject.setScore(point);
		subjectList.add(subject); //addSubject라는 매서드를 만들어준다.
	}
	public void showScoreInfo(){  // showScortInfo 매서드를 만들어준다.
		int total = 0; // 합계를 구하기위한 total을 선언
		for(Subject subject : subjectList) { // subjectList에서 하나씩 subject로 가져오겠다는 의미
			total += subject.getScore(); // total에 subjectList에서 가져온subject의 score를 더해서 total에 넣어준다.
			System.out.println(studentName + "학생의"+ subject.getName()+"과목의 성적은"+subject.getScore()+"입니다.");
		}// 각각의 점수를 출력하겠다.
		System.out.println(studentName + "학생의 총점은 " + total+"입니다."); // 총합을 구하겠다.
	}
	
}

 

package ch24; //참조변수 클래스
 
public class Subject {

	private String name;  // 변수 선언 
	private int score;
	public String getName() { // private 변수이기때문에 get과 set을 사용
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getScore() {
		return score;
	}
	public void setScore(int score) {
		this.score = score;
	}
	
	
}

 

package ch24; //사용자 영역

public class StudentSubjectTest {

	public static void main(String[] args) {

		Student studentLee = new Student(1001,"lee"); //studentLee를 생성하고 
			studentLee.addSubject("국어",100); //매서드를 사용하여 그 값을 입력
			studentLee.addSubject("영어", 80);
		
		Student	studentKim = new Student(1002,"kim"); //studentKim를 생성하고 그 값을 입력
				studentKim.addSubject("국어",80);
				studentKim.addSubject("수학", 70);
				studentKim.addSubject("과학", 60);//매서드를 사용하여 그 값을 입력
				studentLee.showScoreInfo(); //매서드를 사용하여 결과 출력
				System.out.println ("==============");
				studentKim.showScoreInfo();//매서드를 사용하여 결과 출력
	}

}
728x90