package com.kh.practice.student.model.vo;
public class Student {
private String name;
private String subject;
private int score;
public Student() {
}
public Student(String name, String subject, int score) {
this.name = name;
this.subject = subject;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
}
public String inform() {
return "이름 : " + name + "/ 과목 : " + subject + "/ 점수 : " + score;
//return String.format("이름 : %s / 과목 : %s / 점수 : %d", name, subject, score);
}
}
package com.kh.practice.student.controller;
import com.kh.practice.student.model.vo.Student;
public class StudentController {
//5개의 객체배열을 위의 샘플 데이터의 값으로 초기화 해주는 기본 생성자
private Student[] sArr = new Student[5];
public static final int CUT_LINE = 60;
public StudentController() {
//방법1
//Student s0 = new Student("김길동", "자바", 100);
//Student s1 = new Student("박길동", "디비", 50);
//Student s2 = new Student("이길동", "화면", 85);
//Student s3 = new Student("정길동", "서버", 60);
//Student s4 = new Student("홍길동", "자바", 20);
//방법 2
sArr[0] = new Student("김길동", "자바", 100);
sArr[1] = new Student("박길동", "디비", 50);
sArr[2] = new Student("이길동", "화면", 85);
sArr[3] = new Student("정길동", "서버", 60);
sArr[4] = new Student("홍길동", "자바", 20);
// sArr[0] ---> Student s0 = new Student("김길동", "자바", 100);
}
//getter의 역할을 하는 메소드
public Student[] printStudent() {
return sArr;
}
public int sumScore() {
//객체 배열의 점수의 합을 반환
//Student 클래스에 점수를 저장하는 변수 score
int total = 0;
//방법1
for(int i=0; i<sArr.length; i++) {
total += sArr[i].getScore();
}
return total;
/*
* 방법2 : 향상된 for문
* int t2=0;
* for(Student s : sArr){
* t2 += s.getScore();
* }
*/
}
public double[] avgScore() {
//1. double 배열을 만들기
double[]avg = new double[2];
//2. sumScore의 리턴값을 0번째 인덱스에 저장
avg[0]= sumScore();
avg[1]= sumScore()/ sArr.length;
//3. 합의 평균을 1번째 인덱스에 저장
//4.배열리턴
return avg;
}
}
package com.kh.practice.student.view;
import com.kh.practice.student.controller.StudentController;
import com.kh.practice.student.model.vo.Student;
public class StudentMenu {
private StudentController ssm = new StudentController();
public StudentMenu() {
// 학생정보와 성적, 결과 출력하는 기본생성자
// StudentController printStudent()의 반환 값을 통해 학생 정보 출력
System.out.println("========== 학생 정보 출력 ==========");
Student[] sArr = ssm.printStudent();
for (int i = 0; i < sArr.length; i++) {
String info = sArr[i].inform();
System.out.println(info);
}
// 향상된 for문으로 사용해보기
// for(Student s : sArr){
// String info = s.inform();
// System.out.println(info);
// }
// StudentController에 avgScore()를 통해 점수 합계와 평균 출력
System.out.println("========== 학생 성적 출력 ==========");
double[] avg = ssm.avgScore();
System.out.println("학생 점수 합계 : " + (int) avg[0]);
System.out.println("학생 점수 평균 : " + avg[1]);
// 학생의 점수가 CUT_LINE 미만이면 재시험 대상, 이상이면 통과 출력
System.out.println("========== 성적 결과 출력 ==========");
int cutLine = StudentController.CUT_LINE;
for (int i = 0; i < sArr.length; i++) {
if (sArr[i].getScore() < cutLine) {
System.out.println(sArr[i].getName() + "학생의 재시험 대상입니다.");
} else {
System.out.println(sArr[i].getName() + "학생은 통과입니다.");
}
}
}
}
package com.kh.practice.student.run;
import com.kh.practice.student.view.StudentMenu;
public class Run {
public static void main(String[] args) {
StudentMenu sm = new StudentMenu();
}
}