From d6cd418c5e1d7f50d8cd86355c35a2bbfa005771 Mon Sep 17 00:00:00 2001 From: youngsil Date: Mon, 14 Dec 2020 21:16:47 +0900 Subject: [PATCH 1/2] =?UTF-8?q?readme=20=EA=B8=B0=EB=8A=A5=EA=B5=AC?= =?UTF-8?q?=ED=98=84=20=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/README.md b/README.md index 597ae6f36..71a7d7935 100644 --- a/README.md +++ b/README.md @@ -467,3 +467,53 @@ public class StationRepository { ## 📝 License This project is [MIT](https://github.com/woowacourse/java-subway-map-precourse/blob/master/LICENSE.md) licensed. + +
+ +## 구현할 기능 목록 +- 메인 화면 출력 기능 +- 메뉴 선택전 출력 기능 +- 메뉴 선택 기능 +

+- 역 관리 화면 출력 기능 +- 역 메뉴 선택 기능 +

+- 역 등록전 출력 기능 +- 역 입력 기능 +- 역 이름 중복 확인 기능 +- 역 이름 길이 확인 기능 +- 역 등록 결과 출력 기능 +

+- 역 목록 조회 기능 +

+- 역 삭제 기능 +- 역 이름 존재 확인 기능 +- 역 노선 등록 확인 기능 +- 역 삭제 결과 출력 기능 +

+- 돌아가기 기능 +- 종료하기 기능 +

+- 노선 관리 화면 출력 기능 +- 노선 입력 기능 +

+- 노선 등록전 출력 기능 +- 노선 입력 기능 +- 노선 이름 중복 확인 기능 +- 노선 이름 길이 확인 기능 +- 노선 상행 종점 입력전 출력 기능 +- 노선 상행 종점 입력 기능 +- 노선 하행 종점 입력전 출력 기능 +- 노선 하행 종점 입력 기능 +- 노선 등록 결과 출력 기능 +

+- 노선 목록 조회 기능 +

+- 노선 삭제 기능 +- 노선 존재 확인 기능 +- 노선 삭제 결과 출력 기능 +

+- 구간 등록 기능 +- 구간 삭제 기능 +

+- 지하철 노선도 출력 기능 \ No newline at end of file From 84ba17a7e2c61e607705af89e44b7ed36832e041 Mon Sep 17 00:00:00 2001 From: youngsil Date: Tue, 15 Dec 2020 23:26:46 +0900 Subject: [PATCH 2/2] not success --- src/main/java/subway/Application.java | 39 ++++++++++++++++++ .../subway/controller/LineController.java | 8 ++++ .../subway/controller/MainController.java | 41 +++++++++++++++++++ .../java/subway/controller/MapController.java | 8 ++++ .../subway/controller/SectionController.java | 9 ++++ .../subway/controller/StationController.java | 8 ++++ src/main/java/subway/domain/Line.java | 12 ++++++ .../java/subway/domain/LineRepository.java | 25 +++++++++-- .../java/subway/domain/StationRepository.java | 25 +++++++++-- src/main/java/subway/init/InitData.java | 41 +++++++++++++++++++ src/main/java/subway/ui/CommonUI.java | 13 ++++++ src/main/java/subway/ui/LineUI.java | 11 +++++ src/main/java/subway/ui/MainUI.java | 30 ++++++++++++++ src/main/java/subway/ui/MapUI.java | 9 ++++ src/main/java/subway/ui/SectionUI.java | 11 +++++ src/main/java/subway/ui/StationUI.java | 11 +++++ 16 files changed, 293 insertions(+), 8 deletions(-) create mode 100644 src/main/java/subway/controller/LineController.java create mode 100644 src/main/java/subway/controller/MainController.java create mode 100644 src/main/java/subway/controller/MapController.java create mode 100644 src/main/java/subway/controller/SectionController.java create mode 100644 src/main/java/subway/controller/StationController.java create mode 100644 src/main/java/subway/init/InitData.java create mode 100644 src/main/java/subway/ui/CommonUI.java create mode 100644 src/main/java/subway/ui/LineUI.java create mode 100644 src/main/java/subway/ui/MainUI.java create mode 100644 src/main/java/subway/ui/MapUI.java create mode 100644 src/main/java/subway/ui/SectionUI.java create mode 100644 src/main/java/subway/ui/StationUI.java diff --git a/src/main/java/subway/Application.java b/src/main/java/subway/Application.java index 0bcf786cc..7457a8c74 100644 --- a/src/main/java/subway/Application.java +++ b/src/main/java/subway/Application.java @@ -1,10 +1,49 @@ package subway; +import subway.controller.*; +import subway.init.InitData; +import subway.ui.*; + import java.util.Scanner; public class Application { + private static final String MAIN_MENU_QUIT_VALUE = "Q"; + private static final String MAIN_MENU_SELECT_STATION = "1"; + private static final String MAIN_MENU_SELECT_LINE = "2"; + private static final String MAIN_MENU_SELECT_SECTION = "3"; + private static final String MAIN_MENU_SELECT_MAP = "4"; + public static void main(String[] args) { final Scanner scanner = new Scanner(System.in); // TODO: 프로그램 구현 + InitData.startInitWork(); + while(true) { + MainUI.printScreen(); + String select = MainController.selectMenu(scanner); + if(select.equals(MAIN_MENU_QUIT_VALUE)) { + MainUI.printQuit(); + break; + } + executeMenu(select, scanner); + } + } + + private static void executeMenu(String select, Scanner scanner) { + if(select.equals(MAIN_MENU_SELECT_STATION)) { + StationUI.printScreen(); + StationController.selectMenu(scanner); + } + if(select.equals(MAIN_MENU_SELECT_LINE)) { + LineUI.printScreen(); + LineController.selectMenu(scanner); + } + if(select.equals(MAIN_MENU_SELECT_SECTION)) { + SectionUI.printScreen(); + SectionController.selectMenu(scanner); + } + if(select.equals(MAIN_MENU_SELECT_MAP)) { + MapUI.printScreen(); + MapController.selectMenu(scanner); + } } } diff --git a/src/main/java/subway/controller/LineController.java b/src/main/java/subway/controller/LineController.java new file mode 100644 index 000000000..eacf1dd6c --- /dev/null +++ b/src/main/java/subway/controller/LineController.java @@ -0,0 +1,8 @@ +package subway.controller; + +import java.util.Scanner; + +public class LineController { + public static void selectMenu(Scanner scanner) { + } +} diff --git a/src/main/java/subway/controller/MainController.java b/src/main/java/subway/controller/MainController.java new file mode 100644 index 000000000..81cb61e4a --- /dev/null +++ b/src/main/java/subway/controller/MainController.java @@ -0,0 +1,41 @@ +package subway.controller; + +import java.util.Scanner; + +public class MainController { + private static final int INPUT_LENGTH = 1; + private static final int MIN_MAIN_MENU_VALUE = 1; + private static final int MAX_MAIN_MENU_VALUE = 4; + private static final String QUIT_VALUE = "Q"; + private static final String INFO = "[INFO] "; + private static final String ERROR = "[ERROR] "; + private static final String INPUT_VALUE_ERROR_MESSAGE = "입력값이 잘못되었습니다."; + + public static String selectMenu(Scanner scanner) { + String input = scanner.next(); + validateInput(input); + return input; + } + + private static void validateInput(String input) { + if(input.equals(QUIT_VALUE)) { + return; + } + if(input.length() == INPUT_LENGTH && Character.isDigit(input.charAt(0))) { + int select = Integer.parseInt(input); + if(select >= MIN_MAIN_MENU_VALUE && select <= MAX_MAIN_MENU_VALUE) { + return; + } + } + printError(INPUT_VALUE_ERROR_MESSAGE); + } + + private static void printError(String message) { + System.out.println(ERROR + message); + throw new IllegalStateException(); + } + + private static void printInfo(String message) { + System.out.println(INFO + message); + } +} diff --git a/src/main/java/subway/controller/MapController.java b/src/main/java/subway/controller/MapController.java new file mode 100644 index 000000000..5b6e54b2e --- /dev/null +++ b/src/main/java/subway/controller/MapController.java @@ -0,0 +1,8 @@ +package subway.controller; + +import java.util.Scanner; + +public class MapController { + public static void selectMenu(Scanner scanner) { + } +} diff --git a/src/main/java/subway/controller/SectionController.java b/src/main/java/subway/controller/SectionController.java new file mode 100644 index 000000000..560e8d9f7 --- /dev/null +++ b/src/main/java/subway/controller/SectionController.java @@ -0,0 +1,9 @@ +package subway.controller; + +import java.util.Scanner; + +public class SectionController { + public static void selectMenu(Scanner scanner) { + + } +} diff --git a/src/main/java/subway/controller/StationController.java b/src/main/java/subway/controller/StationController.java new file mode 100644 index 000000000..08247629d --- /dev/null +++ b/src/main/java/subway/controller/StationController.java @@ -0,0 +1,8 @@ +package subway.controller; + +import java.util.Scanner; + +public class StationController { + public static void selectMenu(Scanner scanner) { + } +} diff --git a/src/main/java/subway/domain/Line.java b/src/main/java/subway/domain/Line.java index f4d738d5a..5b37bb88e 100644 --- a/src/main/java/subway/domain/Line.java +++ b/src/main/java/subway/domain/Line.java @@ -1,5 +1,8 @@ package subway.domain; +import java.util.ArrayList; +import java.util.List; + public class Line { private String name; @@ -12,4 +15,13 @@ public String getName() { } // 추가 기능 구현 + private List stationList = new ArrayList<>(); + + public void add(Station station) { + stationList.add(station); + } + + public int size() { + return stationList.size(); + } } diff --git a/src/main/java/subway/domain/LineRepository.java b/src/main/java/subway/domain/LineRepository.java index 49132ddb6..eebea45de 100644 --- a/src/main/java/subway/domain/LineRepository.java +++ b/src/main/java/subway/domain/LineRepository.java @@ -1,9 +1,6 @@ package subway.domain; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Objects; +import java.util.*; public class LineRepository { private static final List lines = new ArrayList<>(); @@ -19,4 +16,24 @@ public static void addLine(Line line) { public static boolean deleteLineByName(String name) { return lines.removeIf(line -> Objects.equals(line.getName(), name)); } + + public static boolean contains(String name) { + for(int i=0; i findByName(String name) { + for(int i=0; i stations = new ArrayList<>(); @@ -19,4 +16,24 @@ public static void addStation(Station station) { public static boolean deleteStation(String name) { return stations.removeIf(station -> Objects.equals(station.getName(), name)); } + + public static boolean contains(String name) { + for(int i=0; i findByName(String name) { + for(int i=0; i