미니프로젝트 진행 중에 hashmap을 사용하여 데이터를 가져오고 출력하게 되었다.
세부 기능을 구현 중에 검색을 만들게 되었다! (개인적으로 추가한 기능, 코드 변수명이 조금 이기적일 수 있다..)
사용자에게 입력을 받은 문자열을 해쉬맵 key 값에 있는지 조건문으로 검사한 뒤 있으면 value 값까지 출력 하는 형태이다!
public static void main(String[] args) {
OpeningSubjectDataset.searchSubjectData();
Iterator<String> keys = OpeningSubjectDataset.sSubjectList.keySet().iterator();
System.out.println("강의 명을 검색하세요. :");
String str = "";
str = sc.nextLine();
OpeningSubjectVO VO1 = OpeningSubjectDataset.sSubjectList.get(str);
if(OpeningSubjectDataset.sSubjectList.containsKey(str)) {
System.out.println("\n[ 수강내역 ]\n");
System.out.println("교과구분 \t\t 과목코드 \t\t 과목명 \t\t 이수학점 \t\t 강의교시 \t\t 교수이름");
System.out.println("---------------------------------------------------------------------------------------------------");
System.out.printf("%-10s\t %10s\t %15s\t %10d\t %20s\t %10s\n", VO1.getSubCurriculum(), VO1.getSubCode(),
VO1.getSubName(), VO1. getSubCredit(), VO1.getSubTime(), VO1.getProfessorVO().getProfessorName());
}else {
System.out.println("검색하신 강의가 없습니다.");
}
}
public class OpeningSubjectDataset {
public static HashMap<String, OpeningSubjectVO> sSubjectList = new HashMap<String, OpeningSubjectVO>();
}
public static void searchSubjectData() {
sSubjectList.put("소프트웨어공학론", new OpeningSubjectVO(10, "소프트웨어공학론", "전필", "목 1,2,3", 1, 3, 3, 1000, 30, 30));
sSubjectList.put("산업공학론", new OpeningSubjectVO(11, "산업공학론", "전필", "금 1,2,3", 2, 2, 3, 2000, 30, 25));
sSubjectList.put("화학실험", new OpeningSubjectVO(12, "화학실험", "교필", "월 1,2,3", 5, 4, 3, 5000, 20, 0));
sSubjectList.put("세포생물학", new OpeningSubjectVO(13, "세포생물학", "전필", "화 1,2,3", 4, 2, 3, 4000, 25, 3));
sSubjectList.put("심리학개론", new OpeningSubjectVO(14, "심리학개론", "교필", "수 1,2,3", 3, 1, 3, 3000, 50, 0));
}
}
public class OpeningSubjectVO {
private int subCode;
private String subName;
private String subCurriculum;
private DepartmentVO majorVO;
private int subGrade;
private int subCredit;
private ProfessorVO professorVO;
private int subMaxNum;
private int subNowNum;
private String subTime;
public OpeningSubjectVO(int subCode, String subName, String subCurriculum, String subTime, int majorCode,
int subGrade, int subCredit, int profId, int subMaxNum, int subNowNum) {
super();
DepartmentDataset.departmentData(); // 학과데이터 삽입
ProfessorDataset.professorData(); // 교수데이터 삽입
this.subCode = subCode;
this.subName = subName;
this.subCurriculum = subCurriculum;
this.subGrade = subGrade;
this.subCredit = subCredit;
this.subMaxNum = subMaxNum;
this.subNowNum = subNowNum;
this.majorVO = DepartmentDataset.departmentList.get(majorCode);
this.professorVO = ProfessorDataset.professorList.get(profId);
this.subTime = subTime;
}
}
'Mini Project' 카테고리의 다른 글
ERD 개념적 모델링 예시 (0) | 2021.07.04 |
---|---|
맥도날드 홈페이지 사례연구 (0) | 2021.06.30 |
html/css만 사용한 자동 배너 슬라이드(맥도날드 메인 페이지 자동 배너 슬라이드 구현) (0) | 2021.06.29 |
학사관리 프로그램 hashmap(해쉬맵)에 데이터 삭제(remove) 적용하여 수강삭제 만들기 (0) | 2021.06.07 |
학사관리 프로그램 클래스 다이어그램(class diagram), 시퀀스 다이어그램(sequence diagram) (0) | 2021.06.06 |