728x90
학생의 성적을 관리하는 프로그램인 StudentManager은 인터페이스입니다.
이 인터페이스를 분석하여 Student class와 StudentManager의 구현체를 완성하세요
조건 : list와 인터페이스를 활용하여 과제를 완성합니다.
# StudentManager : Interface
package week2.assignment_3;
public interface StudentManager {
void addStudent(Student student);
void updateStudent(String name, double score);
void deleteStudent(String name);
void printAllStudents();
}
# Student : class
package week2.assignment_3;
import java.util.HashMap;
import java.util.Map;
public class Student{
String name;
double score;
public Student(String name, double score) {
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public double getScore() {
return score;
}
public void setName(String name) {
this.name = name;
}
public void setScore(double score) {
this.score = score;
}
}
# StudentManagementImplement : Class
package week2.assignment_3;
import java.util.ArrayList;
import java.util.List;
public class StudentManagerImplement implements StudentManager{
private List<Student> studentList = new ArrayList<>();
@Override
public void addStudent(Student student) {
studentList.add(student);
}
@Override
public void updateStudent(String name, double score) {
for(Student st : studentList){
if(st.getName().equals(name)){
st.setScore(score);
}
}
}
@Override
public void deleteStudent(String name) {
studentList.removeIf(student -> student.getName().equals(name));
// for(int i=0;i< studentList.size();i++){
// if(studentList.get(i).getName().compareTo(name)==0){
// studentList.remove(i);
// break;
// }
// }
}
@Override
public void printAllStudents() {
for(Student st : studentList){
System.out.printf("%s 학생의 점수는 %.2f점 입니다.\n",st.getName(),st.getScore());
}
System.out.println();
}
}
# Main : class
package week2.assignment_3;
import java.util.ArrayList;
import java.util.List;
public class Main{
public static void main(String args[]){
StudentManagerImplement STI = new StudentManagerImplement();
STI.addStudent(new Student("강영현", 100));
STI.addStudent(new Student("최상엽", 95));
STI.addStudent(new Student("신예찬", 77.7));
STI.addStudent(new Student("윤도운", 50.4));
STI.addStudent(new Student("이민호", 88.8));
STI.printAllStudents();
// 점수 변경
STI.updateStudent("신예찬",100);
STI.printAllStudents();
//기록 삭제
STI.deleteStudent("이민호");
STI.printAllStudents();
}
}
# 출력
강영현 학생의 점수는 100.00점 입니다.
최상엽 학생의 점수는 95.00점 입니다.
신예찬 학생의 점수는 77.70점 입니다.
윤도운 학생의 점수는 50.40점 입니다.
이민호 학생의 점수는 88.80점 입니다.
// 신예찬 점수 50.40 -> 100
강영현 학생의 점수는 100.00점 입니다.
최상엽 학생의 점수는 95.00점 입니다.
신예찬 학생의 점수는 100.00점 입니다.
윤도운 학생의 점수는 50.40점 입니다.
이민호 학생의 점수는 88.80점 입니다.
// 이민호 삭제
강영현 학생의 점수는 100.00점 입니다.
최상엽 학생의 점수는 95.00점 입니다.
신예찬 학생의 점수는 100.00점 입니다.
윤도운 학생의 점수는 50.40점 입니다.
+) 수정
과제에서 Implement와 같은 추가적인 클래스를 만드는 것이 명시 되어있지 않아서 그냥 Main 클래스에 때려 박았었는데
같이 스터디 하는 친구가 클래스를 하나 더 파서 implement를 했길래 과제 맹근 사람한테 물어보니까
암묵적으로 implement를 하는 클래스를 하나 더 만들거라고 생각하여 얘기를 안했다고 한다 ㅇㅅㅇ...
나... 아무래도 객체 지향 공부... 처음부터 다시 다 해야할지도...?
728x90
'🦁 걸어봐 위엄 라잌어 라이옹 > 👀 주차별 과제' 카테고리의 다른 글
[대학교멋사🦁/OOD] 2. 다형성 추상화 (0) | 2023.05.04 |
---|---|
[대학교멋사🦁/OOD] 1. 객체 | 캡슐화 (1) | 2023.05.04 |
[대학교멋사🦁/JAVA] Assignment_2회차_2 (0) | 2023.04.28 |
[대학교멋사🦁/JAVA] Assignment_2회차_1 (0) | 2023.04.28 |
[대학교멋사🦁/Backend] Assignment_week1 (0) | 2023.04.03 |