[Java] Map을 활용하여 성적 관리프로그램 만들기개발자가 되기까지 (2023.08.16~2024.04.15)/[Basic] Java2023. 10. 9. 23:47
Table of Contents
<문제>
Map을 활용하여 성적 관리프로그램 만들기 |
--menu-- 1. 성적추가 2. 성적조회(전체출력) : 합계/평균 같이 출력 3. 성적조회(과목별 조회) 과목명 search 후, 입력하는 과목 출력 4. 성적수정 : search 후 수정 5. 성적삭제 6. 종료 |
<방법>
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class ScoreManager {
private HashMap<String, Integer> gradeCard = new HashMap<>();
private List<String> menu = new ArrayList<>();
private String subject;
private int score;
public ScoreManager() {
setMenu();
}
// 메뉴 만들기
public void setMenu() {
menu.add("성적추가");
menu.add("전체성적");
menu.add("과목성적");
menu.add("성적수정");
menu.add("성적삭제");
menu.add("종료");
}
//메뉴 출력
public void printMenu() {
System.out.println("--menu--");
int cnt = 1;
for(String tmp : menu) {
System.out.println(cnt+". "+tmp);
cnt++;
}
}
// 6.종료
public void exit() {
System.out.println("시스템을 종료합니다.");
}
// 5.성적삭제
public void delScore(Scanner scan) {
System.out.println("--성적삭제--");
System.out.print("성적삭제 과목명> ");
String name = scan.next();
if(gradeCard.get(name) == null) {
System.out.println("존재하지 않는 과목입니다.");
System.out.println();
return;
} else {
gradeCard.remove(name);
System.out.println("["+name+"] 과목이 삭제되었습니다.");
System.out.println();
}
}
// 4.성적수정
public void editScore(Scanner scan) {
System.out.print("성적수정 과목명> ");
String name = scan.next();
Integer subject = gradeCard.get(name);
if (subject == null) {
System.out.println("존재하지 않는 과목입니다.");
System.out.println();
return;
} else {
System.out.print("수정점수> ");
int reScore = scan.nextInt();
if (score < 0 || score > 100) {
System.out.println("성적 점수가 잘못되었습니다.");
System.out.println();
return;
}
gradeCard.replace(name, reScore);
System.out.println("["+name+"]의 점수 : "+reScore+"점으로 수정되었습니다.");
System.out.println();
}
}
// 3.과목성적
public void subjectScore(Scanner scan) {
System.out.println("--과목성적--");
System.out.print("과목명> ");
String name = scan.next();
Integer subject = gradeCard.get(name);
if(subject == null) {
System.out.println("존재하지 않는 과목입니다.");
System.out.println();
return;
} else {
System.out.println("["+name+"]의 점수 : "+subject+"점");
System.out.println();
}
}
// 2.전체성적
public void totalScore() {
System.out.println("--전체성적--");
Iterator<String> it = gradeCard.keySet().iterator();
int sum = 0;
while(it.hasNext()) {
String subject = it.next();
sum += gradeCard.get(subject);
System.out.println(subject+":"+gradeCard.get(subject));
}
double avg = sum/gradeCard.size();
System.out.println("합계: "+sum+"점, 평균: "+avg+"점");
System.out.println();
}
// 1.성적추가
public void add(Scanner scan) {
int exit = -1;
System.out.println("--성적추가--");
while (exit != 0) {
System.out.print("과목> ");
subject = scan.next();
System.out.print("점수> ");
score = scan.nextInt();
if(score < 0 || score > 100) {
System.out.println("성적 점수가 잘못되었습니다.");
System.out.println();
return;
}
if(gradeCard.get(subject) == null) {
gradeCard.put(subject, score);
}else {
System.out.println("["+subject +"] 이미 존재하는 과목입니다.");
return;
}
System.out.print(">>> 계속(1) / 종료(0)> ");
exit = scan.nextInt();
System.out.println();
}
}
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 HashMap<String, Integer> getGradeCard() {
return gradeCard;
}
public void setGradeCard(HashMap<String, Integer> gradeCard) {
this.gradeCard = gradeCard;
}
}
import java.util.Scanner;
public class GradeCard {
public static void main(String[] args) {
ScoreManager sm = new ScoreManager();
Scanner scan = new Scanner(System.in);
// 메뉴선택
int select = -1;
while(select !=6) {
sm.printMenu(); // 메뉴출력
System.out.print("메뉴선택> ");
select = scan.nextInt();
switch (select) {
case 1: sm.add(scan); break;
case 2: sm.totalScore(); break;
case 3: sm.subjectScore(scan); break;
case 4: sm.editScore(scan); break;
case 5: sm.delScore(scan); break;
case 6: sm.exit(); break;
default: System.out.println("잘못된 접근입니다."); break;
}
}
}
}
[Java] Map을 활용하여 성적 관리프로그램 만들기 끝!
(다음 게시물 예고편)
[Java] List을 활용하여 키오스크 프로그램 만들기
728x90
@rlozlr :: 얼렁뚱땅 개발자
얼렁뚱땅 주니어 개발자
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!