명품 JAVA 프로그래밍

명품 JAVA 프로그래밍 7장 실습문제 9

anycoding 2021. 12. 1. 22:17
반응형

문제

하나의 학생 정보는 Student 클래스 표현한다. Student 클래스에는 이름, 학과, 학번, 학점 평균을 나타내는 필드가 있다. 여기서 학번을 String 타입으로 선언한다. 키보드에서 학번 정보를 5개 입력받아 학번을 '키' 로 하여 HashMap<String, Student>에 저장하고 학번으로 학생 정보를 검색하여 출력하는 프로그램을 작성하라. 다음과 같은 해시맵을 이용하라.

 

예시 해쉬맵

HashMap<String, Student> dept = new HashMap<String, Student>();

 

소스 코드

import java.util.HashMap;
import java.util.Scanner;

class Student{
	private String name;
	private String department;
	private double Score;
	Student(String name,String department,double Score){
		this.name = name;
		this.department = department;
		this.Score = Score;
	}
	public void Print(){
		System.out.println("학생 이름 : "+name);
		System.out.println("학과 이름 : "+department);
		System.out.println("학점 : "+Score);
	}
}

public class Main9 {
	public static void main(String[] args) {
		HashMap<String, Student> dept = new HashMap<String,Student>();
		Scanner s = new Scanner(System.in);
		System.out.println("학생 5명의 정보를 입력하시오");
		for(int i = 0;i<5;i++)
		{
			System.out.print("학생 이름 : ");
			String name = s.nextLine();
			System.out.print("학과 이름 : ");
			String department = s.nextLine();
			System.out.print("학번 : ");
			String studentID = s.nextLine();
			System.out.print("학점 : ");
			double score = s.nextDouble();
			s.nextLine();
			Student temp = new Student(name,department,score);
			dept.put(studentID,temp);
		}
		
		System.out.print("검색할 학생의 학번을 입력하시오 : ");
		String find = s.nextLine();
		
        System.out.println();
       	
		if(dept.containsKey(find)) {
			System.out.println("학번 : " + find);
			dept.get(find).Print();
		}
		else {
			System.out.println("학생이 존재하지 않습니다.");
		}
		s.close();
	}

}

 

결과

학생 5명의 정보를 입력하시오
학생 이름 : 유관순
학과 이름 : 독립
학번 : 19021216
학점 : 4.5
학생 이름 : 이순신
학과 이름 : 무예
학번 : 15450428
학점 : 4.5
학생 이름 : 세종대왕
학과 이름 : 훈민정음
학번 : 13970515
학점 : 4.5
학생 이름 : 백범 김구
학과 이름 : 독립
학번 : 18760829
학점 : 4.5
학생 이름 : 안중근
학과 이름 : 독립
학번 : 18790902
학점 : 4.5

검색할 학생의 학번을 입력하시오 : 18790902
학번 : 18790902
학생 이름 : 안중근
학과 이름 : 독립
학점 : 4.5
반응형