From 57232d702991f6633e086770aaa98bc87d1052b9 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 21:35:58 +0900 Subject: [PATCH 01/22] =?UTF-8?q?feat:=20README.md=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 469 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 469 insertions(+) create mode 100644 docs/README.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 000000000..450e7753a --- /dev/null +++ b/docs/README.md @@ -0,0 +1,469 @@ +# 지하철 노선도 미션 +- 지하철 역과 노선을 관리하는 지하철 노선도 기능을 구현한다. + +
+ +## 🚀 기능 요구사항 + +### 초기 설정 +- 프로그램 시작 시 역, 노선 등 필요한 정보를 미리 셋팅할 수 있다. + +> 아래의 사전 등록 정보로 반드시 초기 설정을 하기 +> +``` + 1. 지하철역으로 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역이 등록되어 있다. + 2. 지하철 노선으로 2호선, 3호선, 신분당선이 등록되어 있다. + 3. 노선에 역이 아래와 같이 등록되어 있다.(왼쪽 끝이 상행 종점) + - 2호선: 교대역 - 강남역 - 역삼역 + - 3호선: 교대역 - 남부터미널역 - 양재역 - 매봉역 + - 신분당선: 강남역 - 양재역 - 양재시민의숲역 + ``` + + + +### 지하철 역 관련 기능 +- 지하철 역을 등록하고 삭제할 수 있다. (단, 노선에 등록된 역은 삭제할 수 없다) +- 중복된 지하철 역 이름이 등록될 수 없다. +- 지하철 역 이름은 2글자 이상이어야 한다. +- 지하철 역의 목록을 조회할 수 있다. + +### 지하철 노선 관련 기능 +- 지하철 노선을 등록하고 삭제할 수 있다. +- 중복된 지하철 노선 이름이 등록될 수 없다. +- 지하철 노선 이름은 2글자 이상이어야 한다. +- 노선 등록 시 상행 종점역과 하행 종점역을 입력받는다. +- 지하철 노선의 목록을 조회할 수 있다. + +### 지하철 구간 추가 기능 +- 지하철 노선에 구간을 추가하는 기능은 노선에 역을 추가하는 기능이라고도 할 수 있다. + - 역과 역사이를 구간이라 하고 이 구간들의 모음이 노선이다. +- 하나의 역은 여러개의 노선에 추가될 수 있다. +- 역과 역 사이에 새로운 역이 추가 될 수 있다. +- 노선에서 갈래길은 생길 수 없다. + + + +### 지하철 구간 삭제 기능 +- 노선에 등록된 역을 제거할 수 있다. +- 종점을 제거할 경우 다음 역이 종점이 된다. +- 노선에 포함된 역이 두개 이하일 때는 역을 제거할 수 없다. + + + +### 지하철 노선에 등록된 역 조회 기능 +- 노선의 상행 종점부터 하행 종점까지 연결된 순서대로 역 목록을 조회할 수 있다. + +
+ +## ✍🏻 입출력 요구사항 +- `프로그래밍 실행 결과 예시`를 참고하여 입출력을 구현한다. +- 기대하는 출력 결과는 `[INFO]`를 붙여서 출력한다. 출력값의 형식은 예시와 동일하게 한다. +- 에러 발생 시 `[ERROR]`를 붙여서 출력한다. (에러의 문구는 자유롭게 작성한다.) + +### 💻 프로그래밍 실행 결과 +#### 역 관리 +``` +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +1 + +## 역 관리 화면 +1. 역 등록 +2. 역 삭제 +3. 역 조회 +B. 돌아가기 + +## 원하는 기능을 선택하세요. +1 + +## 등록할 역 이름을 입력하세요. +잠실역 + +[INFO] 지하철 역이 등록되었습니다. + +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +1 + +## 역 관리 화면 +1. 역 등록 +2. 역 삭제 +3. 역 조회 +B. 돌아가기 + +## 원하는 기능을 선택하세요. +3 + +## 역 목록 +[INFO] 교대역 +[INFO] 강남역 +[INFO] 역삼역 +[INFO] 남부터미널역 +[INFO] 양재역 +[INFO] 양재시민의숲역 +[INFO] 매봉역 +[INFO] 잠실역 + +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +1 + +## 역 관리 화면 +1. 역 등록 +2. 역 삭제 +3. 역 조회 +B. 돌아가기 + +## 원하는 기능을 선택하세요. +2 + +## 삭제할 역 이름을 입력하세요. +잠실역 + +[INFO] 지하철 역이 삭제되었습니다. + +... +``` + +### 노선 관리 + +``` + +... + +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +2 + +## 노선 관리 화면 +1. 노선 등록 +2. 노선 삭제 +3. 노선 조회 +B. 돌아가기 + +## 원하는 기능을 선택하세요. +1 + +## 등록할 노선 이름을 입력하세요. +1호선 + +## 등록할 노선의 상행 종점역 이름을 입력하세요. +강남역 + +## 등록할 노선의 하행 종점역 이름을 입력하세요. +잠실역 + +[INFO] 지하철 노선이 등록되었습니다. + +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +2 + +## 노선 관리 화면 +1. 노선 등록 +2. 노선 삭제 +3. 노선 조회 +B. 돌아가기 + +## 원하는 기능을 선택하세요. +3 + +## 노선 목록 +[INFO] 2호선 +[INFO] 3호선 +[INFO] 신분당선 +[INFO] 1호선 + +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +2 + +## 노선 관리 화면 +1. 노선 등록 +2. 노선 삭제 +3. 노선 조회 +B. 돌아가기 + +## 원하는 기능을 선택하세요. +2 + +## 삭제할 노선 이름을 입력하세요. +1호선 + +[INFO] 지하철 노선이 삭제되었습니다. + +... + +``` + +### 구간 관리 +- 순서는 1부터 시작한다. + +``` +... + +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +3 + +## 구간 관리 화면 +1. 구간 등록 +2. 구간 삭제 +B. 돌아가기 + +## 원하는 기능을 선택하세요. +1 + +## 노선을 입력하세요. +2호선 + +## 역이름을 입력하세요. +잠실역 + +## 순서를 입력하세요. +2 + +[INFO] 구간이 등록되었습니다. + +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +3 + +## 구간 관리 화면 +1. 구간 등록 +2. 구간 삭제 +B. 돌아가기 + +## 원하는 기능을 선택하세요. +2 + +## 삭제할 구간의 노선을 입력하세요. +2호선 + +## 삭제할 구간의 역을 입력하세요. +잠실역 + +[INFO] 구간이 삭제되었습니다. + +... + +``` + +### 지하철 노선도 출력 + +``` +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +4 + +## 지하철 노선도 +[INFO] 2호선 +[INFO] --- +[INFO] 교대역 +[INFO] 강남역 +[INFO] 역삼역 + +[INFO] 3호선 +[INFO] --- +[INFO] 교대역 +[INFO] 남부터미널역 +[INFO] 양재역 +[INFO] 매봉역 + +[INFO] 신분당선 +[INFO] --- +[INFO] 강남역 +[INFO] 양재역 +[INFO] 양재시민의숲역 + +``` + +#### 에러 출력 예시 + +``` +## 메인 화면 +1. 역 관리 +2. 노선 관리 +3. 구간 관리 +4. 지하철 노선도 출력 +Q. 종료 + +## 원하는 기능을 선택하세요. +5 + +[ERROR] 선택할 수 없는 기능입니다. + +## 원하는 기능을 선택하세요. +1 + +## 역 관리 화면 +1. 역 등록 +2. 역 삭제 +3. 역 조회 +B. 돌아가기 + +## 원하는 기능을 선택하세요. +1 + +## 등록할 역 이름을 입력하세요. +강남역 + +[ERROR] 이미 등록된 역 이름입니다. + +## 역 관리 화면 +1. 역 등록 +2. 역 삭제 +3. 역 조회 +B. 돌아가기 + +## 원하는 기능을 선택하세요. + +... + +``` + +
+ +## 🎱 프로그래밍 요구사항 +- 자바 코드 컨벤션을 지키면서 프로그래밍한다. + - 기본적으로 [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html)을 원칙으로 한다. + - 단, 들여쓰기는 '2 spaces'가 아닌 '4 spaces'로 한다. +- indent(인덴트, 들여쓰기) depth를 3이 넘지 않도록 구현한다. 2까지만 허용한다. + - 예를 들어 while문 안에 if문이 있으면 들여쓰기는 2이다. + - 힌트: indent(인덴트, 들여쓰기) depth를 줄이는 좋은 방법은 함수(또는 메소드)를 분리하면 된다. +- 3항 연산자를 쓰지 않는다. +- 함수(또는 메소드)의 길이가 15라인을 넘어가지 않도록 구현한다. + - 함수(또는 메소드)가 한 가지 일만 잘 하도록 구현한다. +- else 예약어를 쓰지 않는다. + - 힌트: if 조건절에서 값을 return하는 방식으로 구현하면 else를 사용하지 않아도 된다. + - else를 쓰지 말라고 하니 switch/case로 구현하는 경우가 있는데 switch/case도 허용하지 않는다. +- 프로그래밍 요구사항에서 별도로 변경 불가 안내가 없는 경우 파일 수정과 패키지 이동을 자유롭게 할 수 있다. +- 예외 상황 시 에러 문구를 출력해야 한다. 단, 에러 문구는 `[ERROR]` 로 시작해야 한다. + +### 프로그래밍 요구사항 - Application +- Application 클래스를 활용해 구현해야 한다. +- Application의 패키지 구조는 변경하지 않는다. +```java +public class Application { + public static void main(String[] args) { + ... + } +} +``` + +### 프로그래밍 요구사항 - Station, Line +- Station, Line 클래스를 활용하여 지하철역과 노선을 구현해야 한다. +- 제공하는 각 클래스의 기본 생성자를 추가할 수 없다. +- 필드(인스턴스 변수)인 name의 접근 제어자 private을 변경할 수 없다. +- 가능하면 setter 메소드(ex. setXXX)를 추가하지 않고 구현한다. + +```java +public class Station { + private String name; + + public Station(String name) { + this.name = name; + } + + public String getName() { + return name; + } + + // 추가 기능 구현 +} + +``` + +### 프로그래밍 요구사항 - StationRepository, LineRepository +- Station과 Line의 상태를 저장할 수 있는 StationRepository, LineRepository를 제공한다. +- 필요 시 StationRepository, LineRepository 이 외 추가로 Repository를 만들 수 있다. +- 추가로 생성되는 객체에 대해서 XXXRepository 네이밍으로 저장 클래스를 추가할 수 있다. +- 객체들의 상태를 관리하기 위해서 XXXRepository 클래스를 활용해 저장 로직을 구현해야 한다. +- 필요에 따라 자유롭게 수정이 가능하다. + +```java +public class StationRepository { + private static final List stations = new ArrayList<>(); + + public static List stations() { + return Collections.unmodifiableList(stations); + } + + public static void addStation(Station station) { + stations.add(station); + } + + public static boolean deleteStation(String name) { + return stations.removeIf(station -> Objects.equals(station.getName(), name)); + } +} +``` + +
+ +## 📈 진행 요구사항 +- 미션은 [java-subway-map-precourse 저장소](https://github.com/woowacourse/java-subway-map-precourse) 를 fork/clone해 시작한다. +- 기능을 구현하기 전에 java-subway-map-precourse/docs/README.md 파일에 구현할 기능 목록을 정리해 추가한다. +- git의 commit 단위는 앞 단계에서 README.md 파일에 정리한 기능 목록 단위로 추가한다. + - [AngularJS Commit Message Conventions](https://gist.github.com/stephenparish/9941e89d80e2bc58a153) 참고해 commit log를 남긴다. +- [프리코스 과제 제출 문서](https://github.com/woowacourse/woowacourse-docs/tree/master/precourse) 절차를 따라 미션을 제출한다. + - [프리코스 과제 FAQ](https://github.com/woowacourse/woowacourse-docs/tree/master/precourse/faq) 문서를 참고하여 진행할 수 있다. +
+ +## 📝 License + +This project is [MIT](https://github.com/woowacourse/java-subway-map-precourse/blob/master/LICENSE.md) licensed. From 63d903495282c74cef9d572f6157aea1f7413ddc Mon Sep 17 00:00:00 2001 From: Park Geonyeol Date: Tue, 15 Dec 2020 21:47:55 +0900 Subject: [PATCH 02/22] =?UTF-8?q?docs:=20=EA=B5=AC=ED=98=84=ED=95=B4?= =?UTF-8?q?=EC=95=BC=ED=95=A0=20=EA=B8=B0=EB=8A=A5=EB=AA=A9=EB=A1=9D=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/README.md | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/docs/README.md b/docs/README.md index 450e7753a..8c3f66415 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,42 @@ +## :memo:구현해야 할 기능목록 + +- [ ] 처음 역, 노선을 세팅 + - [ ] 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역 등록 + - [ ] 노선은 2호선, 3호선, 신분당선 등록 + - [ ] 구간 등록 + +- [ ] 예외 상황 + - [ ] 각 상황에 맞지않는 다른 문자가 입력된 경우 재입력 + +### 역관리 +- [ ] 등록할 역 이름 입력 +- [ ] 역 등록하기 +- [ ] 삭제할 역 입력 + - [ ] 없는 역 이름일 경우 재입력 +- [ ] 역 삭제 +- [ ] 역 이름 출력 + +### 노선 관리 +- [ ] 등록할 노선 이름 입력 + - [ ] 이미 존재하는 노선이면 재입력 +- [ ] 등록할 노선의 상행 종점역 이름 입력 +- [ ] 등록할 노선의 하행 종점역 이름 입력 +- [ ] 노선 등록 +- [ ] 상행 종점역과 하행 종점역으로 구간 등록 +- [ ] 삭제할 노선 입력 + - [ ] 없는 노선일 경우 재입력 +- [ ] 노선 삭제 +- [ ] 노선 출력 + +### 구간 관리 +- [ ] 노선 이름 입력 +- [ ] 역 이름 입력 +- [ ] 등록할 순서 입력 +- [ ] 구간 등록 +- [ ] 삭제할 구간의 노선 입력 +- [ ] 삭제할 구간의 역 입력 +- [ ] 구간 삭제 + # 지하철 노선도 미션 - 지하철 역과 노선을 관리하는 지하철 노선도 기능을 구현한다. From 831e71e8174a8559c1813ab762dd830599d1f201 Mon Sep 17 00:00:00 2001 From: Park Geonyeol Date: Tue, 15 Dec 2020 21:49:44 +0900 Subject: [PATCH 03/22] Update README.md --- docs/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/README.md b/docs/README.md index 8c3f66415..2bb36f003 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,30 +1,30 @@ ## :memo:구현해야 할 기능목록 - [ ] 처음 역, 노선을 세팅 - - [ ] 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역 등록 - - [ ] 노선은 2호선, 3호선, 신분당선 등록 - - [ ] 구간 등록 + - [ ] 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역 등록 + - [ ] 노선은 2호선, 3호선, 신분당선 등록 + - [ ] 구간 등록 - [ ] 예외 상황 - - [ ] 각 상황에 맞지않는 다른 문자가 입력된 경우 재입력 + - [ ] 각 상황에 맞지않는 다른 문자가 입력된 경우 재입력 ### 역관리 - [ ] 등록할 역 이름 입력 - [ ] 역 등록하기 - [ ] 삭제할 역 입력 - - [ ] 없는 역 이름일 경우 재입력 + - [ ] 없는 역 이름일 경우 재입력 - [ ] 역 삭제 - [ ] 역 이름 출력 ### 노선 관리 - [ ] 등록할 노선 이름 입력 - - [ ] 이미 존재하는 노선이면 재입력 + - [ ] 이미 존재하는 노선이면 재입력 - [ ] 등록할 노선의 상행 종점역 이름 입력 - [ ] 등록할 노선의 하행 종점역 이름 입력 - [ ] 노선 등록 - [ ] 상행 종점역과 하행 종점역으로 구간 등록 - [ ] 삭제할 노선 입력 - - [ ] 없는 노선일 경우 재입력 + - [ ] 없는 노선일 경우 재입력 - [ ] 노선 삭제 - [ ] 노선 출력 From d3d0250757a506c8919c838b99c2f632bad9bb92 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 21:51:48 +0900 Subject: [PATCH 04/22] =?UTF-8?q?feat:=20=EC=B2=98=EC=9D=8C=20=EC=97=AD?= =?UTF-8?q?=EC=9D=84=20=EC=84=B8=ED=8C=85=ED=95=98=EB=8A=94=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/MakeSubway.java | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/main/java/subway/MakeSubway.java diff --git a/src/main/java/subway/MakeSubway.java b/src/main/java/subway/MakeSubway.java new file mode 100644 index 000000000..6b95e0ef5 --- /dev/null +++ b/src/main/java/subway/MakeSubway.java @@ -0,0 +1,26 @@ +package subway; + +import subway.domain.Line; +import subway.domain.LineRepository; +import subway.domain.Station; +import subway.domain.StationRepository; + +public class MakeSubway { + public void initSubway() { + Station gyodae = new Station("교대역"); + Station gangnam = new Station("강남역"); + Station yeoksam = new Station("역삼역"); + Station nambuTerminal = new Station("남부터미널역"); + Station yangjae = new Station("양재역"); + Station yangjaeForest = new Station("양재시민의숲역"); + Station maebong = new Station("매봉역"); + + StationRepository.addStation(gyodae); + StationRepository.addStation(gangnam); + StationRepository.addStation(yeoksam); + StationRepository.addStation(nambuTerminal); + StationRepository.addStation(yangjae); + StationRepository.addStation(yangjaeForest); + StationRepository.addStation(maebong); + } +} From 62046da7820bd971f7f149fc392390e5fa211e4c Mon Sep 17 00:00:00 2001 From: Park Geonyeol Date: Tue, 15 Dec 2020 21:52:03 +0900 Subject: [PATCH 05/22] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 2bb36f003..171cf0f6c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ ## :memo:구현해야 할 기능목록 - [ ] 처음 역, 노선을 세팅 - - [ ] 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역 등록 + - [x] 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역 등록 - [ ] 노선은 2호선, 3호선, 신분당선 등록 - [ ] 구간 등록 From 042c74e1851bcf032366616c1e12800a9c77bb49 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 22:03:07 +0900 Subject: [PATCH 06/22] =?UTF-8?q?feat:=20=EB=85=B8=EC=84=A0=EC=9D=84=20?= =?UTF-8?q?=EA=B4=80=EB=A6=AC=ED=95=A0=20=EC=88=98=20=EC=9E=88=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EB=A9=94=EC=86=8C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/domain/Line.java | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index f4d738d5a..a65d4ad49 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -1,15 +1,35 @@ package subway.domain; +import java.util.ArrayList; +import java.util.List; + public class Line { private String name; + private List section = new ArrayList<>(); - public Line(String name) { + public Line(String name, Station upward, Station downward) { this.name = name; + addSection(upward); + addSection(downward); } public String getName() { return name; } - // 추가 기능 구현 + public void addSection(Station station) { + section.add(station); + } + + public void addSection(int index, Station station) { + section.add(index, station); + } + + public List getSection() { + return section; + } + + public void deleteSection(int index) { + section.remove(index); + } } From c52b440ecbfaa5cf25ce0ce6fb13d433794f16ea Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 22:18:51 +0900 Subject: [PATCH 07/22] =?UTF-8?q?feat:=20=EC=B2=98=EC=9D=8C=20=EB=85=B8?= =?UTF-8?q?=EC=84=A0(2=ED=98=B8=EC=84=A0,=203=ED=98=B8=EC=84=A0,=20?= =?UTF-8?q?=EC=8B=A0=EB=B6=84=EB=8B=B9=EC=84=A0),=20=EA=B5=AC=EA=B0=84=20?= =?UTF-8?q?=EB=93=B1=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/MakeSubway.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/java/subway/MakeSubway.java b/src/main/java/subway/MakeSubway.java index 6b95e0ef5..8bba030c3 100644 --- a/src/main/java/subway/MakeSubway.java +++ b/src/main/java/subway/MakeSubway.java @@ -22,5 +22,18 @@ public void initSubway() { StationRepository.addStation(yangjae); StationRepository.addStation(yangjaeForest); StationRepository.addStation(maebong); + + Line secondLine = new Line("2호선", gyodae, yeoksam); + Line thirdLine = new Line("3호선", gyodae, maebong); + Line sinbundangLine = new Line("신분당선", gangnam, yangjae); + + LineRepository.addLine(secondLine); + LineRepository.addLine(thirdLine); + LineRepository.addLine(sinbundangLine); + + secondLine.addSection(2, gangnam); + thirdLine.addSection(3, nambuTerminal); + thirdLine.addSection(3, yangjae); + sinbundangLine.addSection(2, yangjae); } } From d0a57399e36355040350f6d1ab13bf18db757376 Mon Sep 17 00:00:00 2001 From: Park Geonyeol Date: Tue, 15 Dec 2020 22:19:11 +0900 Subject: [PATCH 08/22] Update README.md --- docs/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/README.md b/docs/README.md index 171cf0f6c..f01436146 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,9 +1,9 @@ ## :memo:구현해야 할 기능목록 -- [ ] 처음 역, 노선을 세팅 +- [x] 처음 역, 노선을 세팅 - [x] 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역 등록 - - [ ] 노선은 2호선, 3호선, 신분당선 등록 - - [ ] 구간 등록 + - [x] 노선은 2호선, 3호선, 신분당선 등록 + - [x] 구간 등록 - [ ] 예외 상황 - [ ] 각 상황에 맞지않는 다른 문자가 입력된 경우 재입력 From 32235d8ec13415fd519c388f2da57bb401a6f9bf Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 22:40:53 +0900 Subject: [PATCH 09/22] =?UTF-8?q?feat:=20=EB=A9=94=EC=9D=B8=EC=84=A0?= =?UTF-8?q?=ED=83=9D=EC=97=90=EC=84=9C=20=EC=9E=85=EB=A0=A5=EC=97=90=20?= =?UTF-8?q?=EB=8C=80=ED=95=9C=20=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/Controller/SubwayController.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 src/main/java/Controller/SubwayController.java diff --git a/src/main/java/Controller/SubwayController.java b/src/main/java/Controller/SubwayController.java new file mode 100644 index 000000000..477ba18d8 --- /dev/null +++ b/src/main/java/Controller/SubwayController.java @@ -0,0 +1,46 @@ +package Controller; + +import java.util.Scanner; + +public class SubwayController { + private static String userInput; + + public SubwayController(Scanner scanner) { + run(scanner); + } + + public static void run(Scanner scanner) { + System.out.println("## 메인 화면\n" + + "1. 역 관리\n" + + "2. 노선 관리\n" + + "3. 구간 관리\n" + + "4. 지하철 노선도 출력\n" + + "Q. 종료\n" + + "\n" + + "## 원하는 기능을 선택하세요."); + userInput = scanner.nextLine(); + mainSelect(scanner); + } + + private static void mainSelect(Scanner scanner) { + boolean inputCheck = false; + if (userInput.equals("1")) { + inputCheck = true; + } + if (userInput.equals("2")) { + inputCheck = true; + } + if (userInput.equals("3")) { + inputCheck = true; + } + if (userInput.equals("4")) { + inputCheck = true; + } + if (userInput.equals("Q")) { + inputCheck = true; + } + if (inputCheck == false) { + System.out.println("[ERROR] 올바른 번호를 입력해주세요"); + } + } +} From 8d924918bf7219bf5884c79f7653f7861afd27e5 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 23:01:10 +0900 Subject: [PATCH 10/22] =?UTF-8?q?feat:=20=EB=A9=94=EC=9D=B8=20=ED=81=B4?= =?UTF-8?q?=EB=9E=98=EC=8A=A4=EC=97=90=EC=84=9C=20=EC=8B=A4=ED=96=89?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/Application.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/subway/Application.java b/src/main/java/subway/Application.java index 0bcf786cc..a9a765ae1 100644 --- a/src/main/java/subway/Application.java +++ b/src/main/java/subway/Application.java @@ -1,10 +1,12 @@ package subway; +import Controller.SubwayController; import java.util.Scanner; public class Application { public static void main(String[] args) { final Scanner scanner = new Scanner(System.in); - // TODO: 프로그램 구현 + new MakeSubway().initSubway(); + new SubwayController(scanner); } } From aa228245c81d931c044af73dca461ec88f98ebd1 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 23:03:37 +0900 Subject: [PATCH 11/22] =?UTF-8?q?feat:=20=EC=A7=80=ED=95=98=EC=B2=A0=20?= =?UTF-8?q?=EB=85=B8=EC=84=A0=EB=8F=84=20=EC=B6=9C=EB=A0=A5=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EB=A9=94=EC=86=8C=EB=93=9C=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/Controller/SubwayController.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/main/java/Controller/SubwayController.java b/src/main/java/Controller/SubwayController.java index 477ba18d8..5441381da 100644 --- a/src/main/java/Controller/SubwayController.java +++ b/src/main/java/Controller/SubwayController.java @@ -1,5 +1,10 @@ package Controller; +import subway.domain.Line; +import subway.domain.LineRepository; +import subway.domain.Station; + +import java.util.List; import java.util.Scanner; public class SubwayController { @@ -26,21 +31,41 @@ private static void mainSelect(Scanner scanner) { boolean inputCheck = false; if (userInput.equals("1")) { inputCheck = true; + StationController.runStationController(scanner); } if (userInput.equals("2")) { inputCheck = true; + LineController.runLineController(scanner); } if (userInput.equals("3")) { inputCheck = true; + SectionController.runSectionController(scanner); } if (userInput.equals("4")) { inputCheck = true; + printSubway(); } if (userInput.equals("Q")) { inputCheck = true; + scanner.close(); } if (inputCheck == false) { System.out.println("[ERROR] 올바른 번호를 입력해주세요"); + run(scanner); + } + } + + private static void printSubway() { + System.out.println("## 지하철 노선도"); + List lines = LineRepository.lines(); + for (Line line : lines) { + System.out.println("[INFO] " + line.getName()); + System.out.println("[INFO] ---"); + List stations = line.getSection(); + for (Station station : stations) { + System.out.println("[INFO] " + station.getName()); + } + System.out.println(); } } } From 0c9d4d725211335ed6d4eba27a3277991b9b40a8 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 23:11:24 +0900 Subject: [PATCH 12/22] =?UTF-8?q?fix:=20=EC=98=A4=ED=83=88=EC=9E=90=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/subway/MakeSubway.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/subway/MakeSubway.java b/src/main/java/subway/MakeSubway.java index 8bba030c3..24e71ebdb 100644 --- a/src/main/java/subway/MakeSubway.java +++ b/src/main/java/subway/MakeSubway.java @@ -25,14 +25,14 @@ public void initSubway() { Line secondLine = new Line("2호선", gyodae, yeoksam); Line thirdLine = new Line("3호선", gyodae, maebong); - Line sinbundangLine = new Line("신분당선", gangnam, yangjae); + Line sinbundangLine = new Line("신분당선", gangnam, yangjaeForest); LineRepository.addLine(secondLine); LineRepository.addLine(thirdLine); LineRepository.addLine(sinbundangLine); secondLine.addSection(2, gangnam); - thirdLine.addSection(3, nambuTerminal); + thirdLine.addSection(2, nambuTerminal); thirdLine.addSection(3, yangjae); sinbundangLine.addSection(2, yangjae); } From 2eb845e5b0ae8eb79030dc2ca1bc2f45822874e4 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 23:12:11 +0900 Subject: [PATCH 13/22] =?UTF-8?q?feat:=20=EC=97=AD=20=EB=93=B1=EB=A1=9D?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/Controller/StationController.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 src/main/java/Controller/StationController.java diff --git a/src/main/java/Controller/StationController.java b/src/main/java/Controller/StationController.java new file mode 100644 index 000000000..68cdaad79 --- /dev/null +++ b/src/main/java/Controller/StationController.java @@ -0,0 +1,47 @@ +package Controller; + +import subway.domain.Station; +import subway.domain.StationRepository; + +import java.util.Scanner; + +public class StationController { + public static void runStationController(Scanner scanner) { + System.out.println("## 역 관리 화면\n" + + "1. 역 등록\n" + + "2. 역 삭제\n" + + "3. 역 조회\n" + + "B. 돌아가기\n" + + "\n" + + "## 원하는 기능을 선택하세요."); + + String userInput = scanner.nextLine(); + + boolean inputCheck = false; + if (userInput.equals("1")) { + inputCheck = true; + addStation(scanner); + } + if (userInput.equals("2")) { + inputCheck = true; + } + if (userInput.equals("3")) { + inputCheck = true; + } + if (userInput.equals("B")) { + inputCheck = true; + } + if (inputCheck == false) { + System.out.println("[ERROR] 올바른 번호를 입력해주세요"); + SubwayController.run(scanner); + } + } + + public static void addStation(Scanner scanner) { + System.out.println("## 등록할 역 이름을 입력하세요"); + String name = scanner.nextLine(); + Station station = new Station(name); + StationRepository.addStation(station); + System.out.println("[INFO] 지하철 역이 등록되었습니다."); + } +} From 9ba63fd74653a73c8c5baca06425d59fea6eee2c Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 23:18:49 +0900 Subject: [PATCH 14/22] =?UTF-8?q?feat:=20=EC=97=AD=20=EC=82=AD=EC=A0=9C,?= =?UTF-8?q?=20=EC=97=AD=20=EB=AA=A9=EB=A1=9D=20=EC=B6=9C=EB=A0=A5=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/Controller/StationController.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/main/java/Controller/StationController.java b/src/main/java/Controller/StationController.java index 68cdaad79..a7e3a3186 100644 --- a/src/main/java/Controller/StationController.java +++ b/src/main/java/Controller/StationController.java @@ -3,6 +3,7 @@ import subway.domain.Station; import subway.domain.StationRepository; +import java.util.List; import java.util.Scanner; public class StationController { @@ -24,9 +25,11 @@ public static void runStationController(Scanner scanner) { } if (userInput.equals("2")) { inputCheck = true; + deleteStation(scanner); } if (userInput.equals("3")) { inputCheck = true; + showStation(); } if (userInput.equals("B")) { inputCheck = true; @@ -44,4 +47,20 @@ public static void addStation(Scanner scanner) { StationRepository.addStation(station); System.out.println("[INFO] 지하철 역이 등록되었습니다."); } + + public static void deleteStation(Scanner scanner) { + System.out.println("## 삭제할 역 이름을 입력하세요"); + String name = scanner.nextLine(); + StationRepository.deleteStation(name); + System.out.println("[INFO] 지하철 역이 삭제되었습니다."); + } + + public static void showStation() { + System.out.println("## 역 목록"); + List stations = StationRepository.stations(); + for (Station station : stations) { + System.out.println("[INFO] " + station.getName()); + } + System.out.println(); + } } From 159a1de5e1071c6fe0c8597e7236965117e92ade Mon Sep 17 00:00:00 2001 From: Park Geonyeol Date: Tue, 15 Dec 2020 23:21:35 +0900 Subject: [PATCH 15/22] Update README.md --- docs/README.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/README.md b/docs/README.md index f01436146..9c01580bb 100644 --- a/docs/README.md +++ b/docs/README.md @@ -5,16 +5,16 @@ - [x] 노선은 2호선, 3호선, 신분당선 등록 - [x] 구간 등록 -- [ ] 예외 상황 - - [ ] 각 상황에 맞지않는 다른 문자가 입력된 경우 재입력 +- [x] 예외 상황 + - [x] 각 상황에 맞지않는 다른 문자가 입력된 경우 재입력 ### 역관리 -- [ ] 등록할 역 이름 입력 -- [ ] 역 등록하기 -- [ ] 삭제할 역 입력 +- [x] 등록할 역 이름 입력 +- [x] 역 등록하기 +- [x] 삭제할 역 입력 - [ ] 없는 역 이름일 경우 재입력 -- [ ] 역 삭제 -- [ ] 역 이름 출력 +- [x] 역 삭제 +- [x] 역 이름 출력 ### 노선 관리 - [ ] 등록할 노선 이름 입력 From 8a1fa1596117f8f630fae2adde6e088e77a6df5c Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 23:25:31 +0900 Subject: [PATCH 16/22] =?UTF-8?q?feat:=20=EB=93=B1=EB=A1=9D=EB=90=98?= =?UTF-8?q?=EC=A7=80=20=EC=95=8A=EC=9D=80=20=EC=97=AD=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=EC=9D=BC=20=EA=B2=BD=EC=9A=B0=20=EC=98=88=EC=99=B8=EC=B2=98?= =?UTF-8?q?=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Controller/StationController.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/Controller/StationController.java b/src/main/java/Controller/StationController.java index a7e3a3186..0bc2265f4 100644 --- a/src/main/java/Controller/StationController.java +++ b/src/main/java/Controller/StationController.java @@ -33,10 +33,11 @@ public static void runStationController(Scanner scanner) { } if (userInput.equals("B")) { inputCheck = true; + SubwayController.run(scanner); } if (inputCheck == false) { System.out.println("[ERROR] 올바른 번호를 입력해주세요"); - SubwayController.run(scanner); + StationController.runStationController(scanner); } } @@ -51,8 +52,18 @@ public static void addStation(Scanner scanner) { public static void deleteStation(Scanner scanner) { System.out.println("## 삭제할 역 이름을 입력하세요"); String name = scanner.nextLine(); - StationRepository.deleteStation(name); - System.out.println("[INFO] 지하철 역이 삭제되었습니다."); + List stations = StationRepository.stations(); + boolean flag = false; + for (Station station : stations) { + if(station.getName().equals(name)) flag = true; + } + if(flag) { + StationRepository.deleteStation(name); + System.out.println("[INFO] 지하철 역이 삭제되었습니다."); + } + if (!flag) { + System.out.println("[ERROR] 등록되자않은 역입니다."); + } } public static void showStation() { From c4ded15f18ccac6b204664899524a949fe329869 Mon Sep 17 00:00:00 2001 From: Park Geonyeol Date: Tue, 15 Dec 2020 23:26:03 +0900 Subject: [PATCH 17/22] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 9c01580bb..27e35955b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -12,7 +12,7 @@ - [x] 등록할 역 이름 입력 - [x] 역 등록하기 - [x] 삭제할 역 입력 - - [ ] 없는 역 이름일 경우 재입력 + - [x] 없는 역 이름일 경우 재입력 - [x] 역 삭제 - [x] 역 이름 출력 From 65685628b3078cddbb0ee7fd828b6240edb2471b Mon Sep 17 00:00:00 2001 From: Park Geonyeol Date: Tue, 15 Dec 2020 23:42:00 +0900 Subject: [PATCH 18/22] Update README.md --- docs/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index 27e35955b..d00d6a7a4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -17,7 +17,7 @@ - [x] 역 이름 출력 ### 노선 관리 -- [ ] 등록할 노선 이름 입력 +- [x] 등록할 노선 이름 입력 - [ ] 이미 존재하는 노선이면 재입력 - [ ] 등록할 노선의 상행 종점역 이름 입력 - [ ] 등록할 노선의 하행 종점역 이름 입력 @@ -26,7 +26,7 @@ - [ ] 삭제할 노선 입력 - [ ] 없는 노선일 경우 재입력 - [ ] 노선 삭제 -- [ ] 노선 출력 +- [x] 노선 출력 ### 구간 관리 - [ ] 노선 이름 입력 From 5e3602462d89f7527e2e1a563c60e99f37190989 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 23:43:01 +0900 Subject: [PATCH 19/22] =?UTF-8?q?feat:=20=EB=85=B8=EC=84=A0=20=EB=AA=A9?= =?UTF-8?q?=EB=A1=9D=20=EC=B6=9C=EB=A0=A5=20=EB=A9=94=EC=86=8C=EB=93=9C=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Controller/LineController.java | 54 ++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/main/java/Controller/LineController.java diff --git a/src/main/java/Controller/LineController.java b/src/main/java/Controller/LineController.java new file mode 100644 index 000000000..d5f890dcd --- /dev/null +++ b/src/main/java/Controller/LineController.java @@ -0,0 +1,54 @@ +package Controller; +import subway.domain.Line; +import subway.domain.LineRepository; +import subway.domain.Station; +import subway.domain.StationRepository; + +import java.util.ArrayList; +import java.util.List; +import java.util.Scanner; + +public class LineController { + + public static void runLineController(Scanner scanner) { + System.out.println("## 노선 관리 화면\n" + + "1. 노선 등록\n" + + "2. 노선 삭제\n" + + "3. 노선 조회\n" + + "B. 돌아가기\n" + + "\n" + + "## 원하는 기능을 선택하세요."); + + String userInput = scanner.nextLine(); + boolean inputCheck = false; + if (userInput.equals("1")) { + inputCheck = true; + addLine(scanner); + } + if (userInput.equals("2")) { + inputCheck = true; + } + if (userInput.equals("3")) { + showLine(); + inputCheck = true; + } + if (userInput.equals("B")) { + inputCheck = true; + SubwayController.run(scanner); + } + if (inputCheck == false) { + System.out.println("[ERROR] 올바른 번호를 입력해주세요"); + LineController.runLineController(scanner); + } + } + public static void addLine(Scanner scanner) { + System.out.println("지하철 노선이 등록되었습니다."); + } + static void showLine() { + System.out.println("## 노선 목록"); + List lines = LineRepository.lines(); + for (Line line : lines) { + System.out.println(line.getName()); + } + } +} From 2678cb5b5aa1f2cc093a947f7b2470320c131611 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 23:44:09 +0900 Subject: [PATCH 20/22] =?UTF-8?q?refactor:=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/Controller/StationController.java | 1 + src/main/java/Controller/SubwayController.java | 4 ++++ src/main/java/subway/domain/Station.java | 2 -- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/java/Controller/StationController.java b/src/main/java/Controller/StationController.java index 0bc2265f4..2630ed72a 100644 --- a/src/main/java/Controller/StationController.java +++ b/src/main/java/Controller/StationController.java @@ -63,6 +63,7 @@ public static void deleteStation(Scanner scanner) { } if (!flag) { System.out.println("[ERROR] 등록되자않은 역입니다."); + deleteStation(scanner); } } diff --git a/src/main/java/Controller/SubwayController.java b/src/main/java/Controller/SubwayController.java index 5441381da..6c255ad96 100644 --- a/src/main/java/Controller/SubwayController.java +++ b/src/main/java/Controller/SubwayController.java @@ -32,18 +32,22 @@ private static void mainSelect(Scanner scanner) { if (userInput.equals("1")) { inputCheck = true; StationController.runStationController(scanner); + run(scanner); } if (userInput.equals("2")) { inputCheck = true; LineController.runLineController(scanner); + run(scanner); } if (userInput.equals("3")) { inputCheck = true; SectionController.runSectionController(scanner); + run(scanner); } if (userInput.equals("4")) { inputCheck = true; printSubway(); + run(scanner); } if (userInput.equals("Q")) { inputCheck = true; diff --git a/src/main/java/subway/domain/Station.java b/src/main/java/subway/domain/Station.java index bdb142590..6df2edada 100644 --- a/src/main/java/subway/domain/Station.java +++ b/src/main/java/subway/domain/Station.java @@ -10,6 +10,4 @@ public Station(String name) { public String getName() { return name; } - - // 추가 기능 구현 } From 4c5260d21b9877dd78313fb6aaaa79879adddc21 Mon Sep 17 00:00:00 2001 From: park Date: Tue, 15 Dec 2020 23:44:44 +0900 Subject: [PATCH 21/22] =?UTF-8?q?feat:=20=EA=B5=AC=EA=B0=84=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=20=EC=9E=85=EB=A0=A5=20=ED=81=B4=EB=9E=98=EC=8A=A4=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/Controller/SectionController.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/Controller/SectionController.java diff --git a/src/main/java/Controller/SectionController.java b/src/main/java/Controller/SectionController.java new file mode 100644 index 000000000..1cf213ccc --- /dev/null +++ b/src/main/java/Controller/SectionController.java @@ -0,0 +1,32 @@ +package Controller; + +import java.util.Scanner; + +public class SectionController { + public static void runSectionController(Scanner scanner) { + System.out.println("## 구간 관리 화면\n" + + "1. 구간 등록\n" + + "2. 구간 삭제\n" + + "B. 돌아가기\n" + + "\n" + + "## 원하는 기능을 선택하세요."); + + String userInput = scanner.nextLine(); + + boolean inputCheck = false; + if (userInput.equals("1")) { + inputCheck = true; + } + if (userInput.equals("2")) { + inputCheck = true; + } + if (userInput.equals("B")) { + inputCheck = true; + SubwayController.run(scanner); + } + if (inputCheck == false) { + System.out.println("[ERROR] 올바른 번호를 입력해주세요"); + SectionController.runSectionController(scanner); + } + } +} From 7f835dd4b1e27320f375cfa1f01f4eedbb8f7b2f Mon Sep 17 00:00:00 2001 From: Park Geonyeol Date: Tue, 15 Dec 2020 23:48:22 +0900 Subject: [PATCH 22/22] Update README.md --- docs/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/docs/README.md b/docs/README.md index d00d6a7a4..61e04fbed 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,10 +3,19 @@ - [x] 처음 역, 노선을 세팅 - [x] 교대역, 강남역, 역삼역, 남부터미널역, 양재역, 양재시민의숲역, 매봉역 등록 - [x] 노선은 2호선, 3호선, 신분당선 등록 + - [x] 2호선: 상행(교대역), 하행(역삼역) 등록 + - [x] 3호선: 상행(교대역), 하행(매봉역) 등록 + - [x] 신분당선: 상행(강남역), 하행(양재시민의숲역) 등록 - [x] 구간 등록 + - [x] 2호선: 강남역 + - [x] 3호선: 남부터미널역, 양재역 + - [x] 신분당선: 양재역 +- [x] 누른 숫자에 맞는 기능 화면으로 이동 +- [x] 프로그램 종료 - [x] 예외 상황 - [x] 각 상황에 맞지않는 다른 문자가 입력된 경우 재입력 + - [x] 1, 2, 3, 4, Q가 아닌 문자가 입력된 경우 ### 역관리 - [x] 등록할 역 이름 입력