728x90
반응형
2022.10.27 - [JAVA/예제] - [JAVA] HashMap를 활용한 학생관리
[JAVA] HashMap를 활용한 학생관리
Student.class package Ex02; public class Student { private String name; private String department; private String id; private double avg; public Student() { // TODO Auto-generated constructor stub }..
jjh93.com
이 예제를 HashMap을 이용해 바꾸어 본 것이다.
Student.class
package Ex02;
public class Student {
private String name;
private String department;
private String id;
private double avg;
public Student() {
// TODO Auto-generated constructor stub
}
public Student(String name, String department, String id, double avg) {
this.name = name;
this.department = department;
this.id = id;
this.avg = avg;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getDepartment() {
return department;
}
public void setDepartment(String department) {
this.department = department;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public double getAvg() {
return avg;
}
public void setAvg(double avg) {
this.avg = avg;
}
}
StudentManager.class
package Ex02;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.StringTokenizer;
public class StudentManager {
private Scanner sc = new Scanner(System.in);
private HashMap<String, Student> dept = new HashMap<>();
public void read() {
System.out.println("학생 이름, 학과, 학번, 학점평균 입력하세요.");
for(int i=0; i<4; i++) {
System.out.print(">>");
String text = sc.nextLine(); //한줄 단위로 입력
StringTokenizer st = new StringTokenizer(text, ",");
String name = st.nextToken().trim(); //공백제거된 이름
String department = st.nextToken().trim();
String id = st.nextToken().trim();
double avg = Double.parseDouble(st.nextToken().trim()); //double로 형변환
Student student = new Student(name, department, id, avg);
dept.put(name, student);
}
}
private void printAll() {
Set<String> key = dept.keySet(); //키 값을 가져온는 메소드
Iterator<String> it = key.iterator();
System.out.println("-------------------");
while(it.hasNext()) {
String name = it.next();
Student student = dept.get(name);
System.out.println("이름 : " + student.getName());
System.out.println("학과 : " + student.getDepartment());
System.out.println("학번 : " + student.getId());
System.out.println("학점평균 : " + student.getAvg());
System.out.println("-------------------");
}
}
public void processQuery() {
while(true) {
System.out.println("학생 이름 >> ");
String name = sc.nextLine();
if(name.equals("그만")) {
return;
}
Student student = dept.get(name);
if(student == null)
System.out.println(name + "학생은 존재하지 않습니다.");
else {
System.out.print(student.getName() + ", ");
System.out.print(student.getDepartment() + ", ");
System.out.print(student.getId() + ", ");
System.out.print(student.getAvg());
}
}
}
public void run() {
read();
printAll();
processQuery();
}
public static void main(String[] args) {
StudentManager man = new StudentManager();
man.run();
}
}
728x90
반응형
'JAVA > 예제' 카테고리의 다른 글
[JAVA] HashMap를 활용한 장학생선발 (0) | 2022.10.27 |
---|---|
[JAVA] HashMap를 활용한 포인트관리 (0) | 2022.10.27 |
[JAVA] HashMap을 이용한 입력 및 검색 (0) | 2022.10.27 |
[JAVA] HashMap을 이용한 학생검색 (0) | 2022.10.27 |
[JAVA] Thread를 활용한 버블게임 (0) | 2022.10.26 |
댓글