인터페이스를 활용해서 프로그램 만들기
1. 문제 정의
이 학교에는 5명의 학생들이 수업을 듣습니다.
과목은 국어, 수학이 있고 각 학생들은 두 과목을 모두 수강하고 있습니다.
전공은 국어교육학과와 컴퓨터공학 두 가지가 있습니다.
국어교육학과는 국어가 필수 과목이고 컴퓨터 공학은 수학이 필수 과목입니다.
이번 학기에 성적이 아래와 같이 나왔습니다.
--------------------------------------------------------------------------------------
이름 학번 전공 필수과목 국어점수 수학점수
--------------------------------------------------------------------------------------
스티븐잡스 202126 국어교육학과 국어 95 56
이순신 202127 컴퓨터공학과 수학 95 98
리누스토발즈 202128 국어교육학과 국어 100 88
제임스고슬링 202129 국어교육학과 국어 89 95
이도 202130 컴퓨터공학과 수학 83 56
학점을 부여하는 방식은 2가지가 있습니다.
-단순히 A~F를 부여하는 방법
-S~F를 부여하는 방법
-일반 과목이라면 A~F
-필수 과목이라면 S~F로 분류
필수과목학점
S A B C D F
-------------------------------------------------------------
95~100 90~94 80~89 70~79 60~69 60미만
일반과목학점
A B C D F
---------------------------------------------------------
90~100 80~89 70~79 55~69 55미만
학점 결과를 아래와 같이 나올 수 있도록 구현하세요.
2. UML (클래스 관계도) 그리기
과목은 -> 학생 리스트를 가지고 있다.
학생은 -> 점수 리스트를 가지고 있다.
각 점수는 -> 과목과 학생 정보를 포함한다.
학생 하나는 필수 과목을 가진다. (major)
3. Student, Score, Subject 클래스 생성
Student 클래스
Score 클래스
Subject 클래스
4. 학점 평가 설계하고 구현하기
-BasicEvaluation : 일반 과목
-MajorEvaluation : 필수 과목
5. GradeEvaluation 인터페이스, 인터페이스를 구현하는 BasicEvaluation, MajorEvaluation 클래스 생성
6. 학생 리스트, 과목 리스트가 있는 School 클래스 생성
-학교가 유일한 객체이므로 싱글톤 패턴으로 구현.
7. 학점 계산하는 Report 클래스 생성
8. 학생, 과목, 점수 등을 생성하고 리포트 클래스를 생성하여 성적과 학점을 출력하는 UIMain 클래스 생성
9. 결과
'📒 education archive > 🎀JAVA' 카테고리의 다른 글
[국비학원 기록/자바] 스레드02. 제어 메서드, join(),interrupt(),wait(),notify(),notifyAll() (0) | 2021.10.31 |
---|---|
[국비학원 기록/자바] 쓰레드01. 프로세스, 스레드(Thread)장점, 단점,우선순위 (0) | 2021.10.31 |
[국비학원 기록/자바] I/O 입출력, 입력 스트림, 출력 스트림, 기반 스트림, 보조 스트림 (0) | 2021.10.21 |
[국비 학원 기록/자바] 예외처리 종류, try catch, throw, throws (0) | 2021.10.21 |
[국비학원 기록/자바] 람다식, 스트림 (0) | 2021.10.19 |