Skip to content

cmg1411/java-subway-map-precourse

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

지하철 노선도 미션


시나리오

  • 메인 화면에서 역, 노선, 구간 작업, 노선도 보기, 종료의 다섯 항목중 원하는 항목을 입력할 수 있다.

  • 역 관리에는 역 등록, 역 삭제, 역 조회, 돌아가기의 네 항목을 선택할 수 있다.

    • 역 등록
      • 역 이름을 입력한다.
      • 역이 등록된다.
    • 역 삭제를 선택한다.
      • 역 이름을 입력한다.
      • 역이 삭제된다.
    • 역 조회를 선택한다.
      • 등록된 역의 이름들을 볼 수 있다.
    • 돌아가기를 선택하면 메인화면으로 돌아간다.
  • 노선 관리에는 노선 등록, 노선 삭제, 노선 조회, 돌아가기 네 항목을 선택할 수 있다.

    • 노선 등록을 선택한다.

      • 등록할 노선 이름을 입력한다.

      • 노선의 상행 종점역을 입력한다.

      • 노선의 하행 종점역을 입력한다.

      • 노선이 등록된다.

    • 노선 삭제를 선택한다.

      • 삭제할 노선 이름을 입력한다.

      • 노선을 삭제된다.

    • 노선 조회를 선택한다.

      • 등록된 노선의 이름들을 볼 수 있다.
    • 돌아가기를 선택하면 메인 화면으로 돌아간다.

  • 구간 관리에는 구간등록, 구간 삭제, 돌아가기의 세가지 항목을 선택할 수 있다.

    • 구간 등록을 선택한다.
      • 노선을 입력한다.
      • 역 이름을 입력한다.
      • 노선에서 역의 순서를 입력한다.
      • 노선의 해당 구간에 역이 등록된다.
    • 구간 삭제를 선택한다.
      • 삭제할 구간의 노선을 입력한다.
      • 삭제할 구간의 역 이름을 입력한다.
      • 구간이 삭제된다.
  • 지하철 노선도 출력은 전체 노선도를 아래 형식으로 출력한다.


## 지하철 노선도
[INFO] 2호선
[INFO] ---
[INFO] 교대역
[INFO] 강남역
[INFO] 역삼역

[INFO] 3호선
[INFO] ---
[INFO] 교대역
[INFO] 남부터미널역
[INFO] 양재역
[INFO] 매봉역

[INFO] 신분당선
[INFO] ---
[INFO] 강남역
[INFO] 양재역
[INFO] 양재시민의숲역

  • 종료를 선택하면 프로그램을 종료한다.


기능 목록

  • 처음 덤프 데이터를 저장한다.
  • 메인, 역, 노선, 구간의 메뉴들을 객체로 관리한다.
  • 컨트롤러로 메인, 역, 노선, 구간의 메뉴에서 선택에 따라 분기한다.
  • 메인 메뉴를 출력한다.
  • 예외는 [ERROR] 를 붙인다.
  • [예외] 역, 노선의 이름은 2자 이상이어야 한다.
  • [예외] 역, 노선의 이름은 한글이나 숫자여야 한다.
  • 메인 메뉴는 1,2,3,4,Q의 입력으로 선택할 수 있다.
    • [입력 예외] 1,2,3,4,Q외에는 예외를 발생한다.

  • 역관리의 메뉴를 출력한다.
  • 입력받은 메뉴를 실행한다.
  • 역을 등록한다.
    • 이름을 입력받는다.
      • [예외] 이름은 2자 이상이다.
      • [예외] 중복된 이름은 가질 수 없다.
      • [예외] 이름은 문자여야한다.
    • 입력 받은 이름으로 역을 추가한다.
    • 추가 완료 메세지를 출력한다.
  • 지하철 역을 이름으로 삭제한다.
    • 이름을 입력받는다.
      • [예외] 노선에 등록된 역은 삭제할 수 없다.
      • [예외] 등록되지 않은 역은 삭제할 수 없다.
    • 이름의 역을 삭제한다.
    • 삭제완료 메세지를 출력한다.
  • 지하철 역 조회를 선택하면 모든 역 목록을 출력한다.
    • 정보 출력은 [INFO]를 붙여 출력하며 다음 모든 사항에도 적용된다.

  • 노선관리의 메뉴를 출력한다.
  • 입력받은 메뉴를 실행한다.
  • 지하철 노선을 등록한다.
    • 노선 이름을 입력받는다.
      • [예외] 중복된 이름을 등록할 수 없다.
      • [예외] 이름은 문자여야 한다.
      • [예외] 이름은 2자 이상이다.
    • 상행 종점역과 하행 종점역을 입력받는다.
      • [예외] 등록된 역만 입력이 가능하다.
      • [예외] 상행 종점역과 하행 종점역은 같을 수 없다.
    • 지하철 노선을 추가한다.
    • 추가 완료 메세지를 출력한다.
  • 노선을 삭제한다.
    • 노선 이름을 입력받는다.
      • [예외] 이름은 문자여야 한다.
    • 이름과 일치하는 노선을 삭제한다.
      • [예외] 일치하는 노선이 없으면 예외를 발생한다.
    • 삭제완료 메세지를 출력한다.
  • 노선 조회를 선택하면 모든 노선을 출력한다.

  • 구간 관리의 메뉴를 출력한다.
  • 입력받은 메뉴를 실행한다.
  • 구간을 추가한다.
    • 노선 이름을 입력받는다.
      • [예외 처리] 없는 노선의 이름은 예외 처리한다.
    • 역 이름을 입력받는다.
      • [예외 처리] 없는 역의 이름은 예외 처리한다.
      • [예외 처리] 이미 노선에 있는 역은 예외 처리한다.
    • 순서를 입력받는다.
      • [예외 처리] 숫자가 아니면 예외 처리한다.
      • [예외 처리] 1보다 작거나, 노선에 있는 역의 수보다 크면 예외 처리한다.
    • 구간을 등록하고 완료 메세지를 출력한다.
  • 구간을 삭제한다.
    • 노선을 입력한다.
      • [예외 처리] 없는 노선의 이름은 예외 처리한다.
    • 역을 입력한다.
      • 종점을 제거할 경우 다음 역이 종점이 된다.
      • [예외 처리] 노선에 없는 역의 이름은 예외 처리한다.
      • [예외 처리] 노선에 포함된 역이 두개 이하일 때는 역을 제거할 수 없다.
    • 구간을 삭제하고 완료 메세지를 출력한다.

  • 지하철 노선도 출력을 선택하면 모든 노선의 모든 역을 순서대로 출력한다.
  • 노선간에 구분을 위해 공백을 출력한다.

  • 메인 메뉴에서 Q를 입력하면 프로그램을 종료한다.
  • 서브 메뉴에서 B를 입력하면 메인 메뉴로 돌아간다.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%