본문 바로가기

Mini Project

학사관리 프로그램 hashmap(해쉬맵)에 데이터 삭제(remove) 적용하여 수강삭제 만들기

학사관리 프로그램 중에 수강삭제 부분을 맡게 되었다.

hashmap에 데이터를 저장받고 저장받은 데이터를 삭제하게 되는 과정이다. 삭제 전에 수강신청이 이뤄져야한다.(데이터가 있어야 하기 때문에)

사용되는 데이터 셋과 VO는 hashmap으로 검색 만들기 글과 동일하다.

import java.util.Iterator;
import java.util.Scanner;

import model.dao.CourseRegistrationDataset;
import model.dao.OpeningSubjectDataset;
import model.vo.CourseRegistrationVO;
import model.vo.OpeningSubjectVO;

public class DeleteSubject {
   static Scanner sc = new Scanner(System.in);
   
   public DeleteSubject() {
             // showRegisterSubject();
            RemoveSubject();
   }
  
   public void RemoveSubject() { // 수강과목 삭제

      try {
         int scSubCode = Integer.parseInt(ConInput("삭제할 강의코드를 입력해주세요."));
         OpeningSubjectVO registerSubVO = OpeningSubjectDataset.oSubjectList.get(scSubCode);
         if(CourseRegistrationDataset.registerCourseList.containsKey(scSubCode)) { // 강의 코드가 유효한지 검사
            CourseRegistrationDataset.registerCourseList.remove(scSubCode);
            registerSubVO.setSubNowNum(registerSubVO.getSubNowNum()-1); // 삭제할 강의에서 신청인원 -1 하기
            CourseRegistrationVO.nowCredit -= registerSubVO.getSubCredit(); // 현재수강학점에서 삭제할 수강학점 빼기
            
            System.out.println("정상적으로 삭제되었습니다.");
            showRegisterSubject();
         }else {   
            System.out.println("잘못된 강의코드 입니다. ");
            RemoveSubject();
         }
      }catch(NumberFormatException e) { // 예외 처리
         System.out.println("잘못된 강의코드 입니다.");
            RemoveSubject();   
      }
   }
   
}