🦁 걸어봐 위엄 라잌어 라이옹/👀 주차별 과제

[대학교멋사🦁/JAVA] Assignment_2회차_3

우주수첩 2023. 4. 28. 06:09
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