java에서 아주 중요한 개념인 Collection 에 속하는 HashMap으로 간단한 성적 관리 프로그램을 구현하겠습니다.

입력에 대한 예외처리는 하지 않았으므로 과목명은 영어(한글), 점수는 숫자만 입력하셔야 예외를 피할 수 있습니다.

 2개의 클래스로 구성되어 있으며, Grade.java 는 main 클래스가 있는 클래스이고 InfoGrade.java 는 점수 데이터를 가지고 있는 클래스 입니다.


 * Grade.java

Grade.txt

 

import java.util.HashMap;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class Grade {
	public static HashMap map = new HashMap();
	
	private static final int EXIT = 0;
	private static final int INSERT = 1;
	private static final int DELETE = 2;
	private static final int INQUIRY = 3;
	private static final int SUM = 4;
	private static final int AVG = 5;
	
	
	public static void main(String[] args) {

		Scanner s = new Scanner(System.in);

		System.out.println(" =============================");
		System.out.println("         성적 관리 프로그램");
		System.out.println(" =============================");
		System.out.println(" 1. 성적 입력");
		System.out.println(" 2. 성적 삭제");
		System.out.println(" 3. 성적 조회");
		System.out.println(" 4. 총점");
		System.out.println(" 5. 평균");
		System.out.println(" 0. 프로그램 종료");
		System.out.println(" =============================");

		while (true) {
			System.out.print(">> ");
			int menu = s.nextInt();

			switch (menu) {

			case EXIT:
				exitGrade();
				break;

			case INSERT:
				insertGrade();
				break;

			case DELETE:
				deleteGrade();
				break;

			case INQUIRY:
				inquiryGrade();
				break;
				
			case SUM:
				sumGrade();
				break;
				
			case AVG:
				avgGrade();
				break;

			}
		}

	}

	private static void exitGrade() {
		System.out.println("프로그램을 종료합니다.");
		System.exit(0);
	}

	private static void insertGrade() {


		Scanner s = new Scanner(System.in);

		System.out.print("과목명: ");
		String name = s.nextLine().trim();
		System.out.print("점수: ");
		InfoGrade score = new InfoGrade();
		score.setScore(s.nextInt());
		
		System.out.println("과목, 점수가 입력되었습니다.");
		map.put(name, score);

	}

	private static void deleteGrade() {
	

		Scanner s = new Scanner(System.in);
		String name = s.nextLine().trim();
		
		System.out.println(name + "을 삭제합니다.");
		map.remove(name);

	}

	private static void inquiryGrade() {
	
		Set> set = map.entrySet();

		for(Map.Entry me : set) {
			System.out.println(me.getKey() + " : " + me.getValue().getScore());
		}
		
		Set set2 = map.keySet();
		for(String key : set2) {
			System.out.println(key + " : " + map.get(key).getScore());
		} 
		
		Iterator it = map.keySet().iterator();
		while(it.hasNext()) {
			String key = it.next();
			System.out.println(key + " : " + map.get(key).getScore());
		}


	}

	private static void sumGrade() {
		
		int sum = 0;
		
		Iterator it = Grade.map.keySet().iterator();
		
		while(it.hasNext()) {
			String key = it.next();
			
			sum += Grade.map.get(key).getScore();
		}
		
		System.out.println("총점: " + sum);
	}
	
	private static void avgGrade() {
		
		float avg = 0;
		
		Iterator it = Grade.map.keySet().iterator();
		
		while(it.hasNext()) {
			String key = it.next();
			
			avg += Grade.map.get(key).getScore();
			
		}
		
		System.out.println("평균: " + avg);
	}
	
}
* InfoGrade.java 

InfoGrade.txt

 
public class InfoGrade {
	
	private int score;
	
	
	public InfoGrade() {
		super();
	}

	public InfoGrade(int score) {
		super();
		this.score = score;
	}

	public int getScore() {
		return score;
	}

	public void setScore(int score) {
		this.score = score;
	}	
	
}


posted by 쪼재