-
9주차_시간표 관리 프로그램 짜보기1학년/자바 공부 2022. 9. 1. 13:49
시간표를 관리해주는 프로그램을 자바로 만들어보자 . 마지막에는 GUI프로그래밍 까지 해서 안드로이드 앱 까지 만들어 보는 목표.
고민1일차
- 시간표관리 프로그램
- 메뉴 1 > 시간표 전체 보기
- 메뉴 2 > 선택 요일 시간표 보기
- 원하는 요일 선택 후 시간표 보여주기
- 처음으로 돌아가기 or 선택 요일의 과목을 하나 선택하여 선택 과목의 정보 출력
- 메뉴 3 > 시간표 추가
- 시간표 추가 >
- 메뉴 4 > 시간표 삭제
- 시간표 삭제 >
- 원하는 요일과 교시의 시간표를 삭제
- 메뉴 5 > 시간표 정보 추가
-
- 강의실 정보 , 2. 시간 정보 , 3. 교수 이름 정보 , 4. 과제 정보 중 선택하여 입력
- -정보는 입력하지 않았으므로 처음 상태는 모두 미입력으로 표시
대략적인 큰~~~ 틀은 이렇게 . 코드 짜면서 엄청 추가 할 예정
근데 이게 객체지향 프로그래밍을 하려니까 코드를 어떻게 짜야할 지 전체적 그림을 다 그려다보니 어렵다....
먼저 클래스를 어떻게 나누는가 ? > 인터페이스 클래스 ( 메뉴들을 상속 할 부모 클랫 ) / 메뉴 1 ,2,3,4,5.... 클래스 ( 인터페이스 클래스를 상속한다 , )
메뉴 1 클래스 > see_all 메스드로 시간표 전체를 볼 수 있게...한다.
메뉴 2 클래스 > pick_day 메서드로 시간표의 원하는 요일을 선택하게 한다 . 저장된 요일의 시간표를 보여준다.
pick_after로 요일선택 후 처음으로 돌아갈 지 또 요일을 선택할 지 결정하게 한다 ( main 에서 반복시켜줌 )
메뉴 3 클래스 > add 메서드로 시간표를 추가할 수 있게 만든다.
메뉴 4 클래스 > delete 메서드로 시간표를 삭제할 수 있게 한다.
여기서 잠깐, 메뉴3과 5가 겹치는데 어쩐담...
일단 오늘 해결해야 할 것 > 시간표정보를 어디다 담을건지. ... 배열에다 담으면 크기가 넘 커져서 구릴 것 같아서 다른 방법을 찾는 중인데 arraylist? 가 ,,,,
일단 스터디 코드리뷰 받은 후 코드 +
package 하소연study과제.assign9; import java.util.Arrays; import java.util.Scanner; class Lobby{ //private 정보 private String name; private String day; private String teacher; public Lobby (){ super(); this.name = name; this.day = day; this.teacher = teacher; } public String getName(){ return name; } public void setName(String name){ this.name = name; } public String getDay(){ return day; } public void setDay(String day){ this.day = day; } public String getTeacher(){ return teacher; } public void setTeacher(String teacher){ this.teacher = teacher; } } public class assign9 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int ch = 0; boolean end = false; Lobby lb = new Lobby(); String[][] lists = {{"월요일"," 1 "," 2 "," 3 "," 4 "," 5 "," 6 "," 7 "," 8 "," 9 "}, {"화요일"," 1 "," 2 "," 3 "," 4 "," 5 "," 6 "," 7 "," 8 "," 9 "}, {"수요일"," 1 "," 2 "," 3 "," 4 "," 5 "," 6 "," 7 "," 8 "," 9 "}, {"목요일"," 1 "," 2 "," 3 "," 4 "," 5 "," 6 "," 7 "," 8 "," 9 "}, {"금요일"," 1 "," 2 "," 3 "," 4 "," 5 "," 6 "," 7 "," 8 "," 9 "} }; while(true){ //if (end) break; System.out.println("==========메뉴=========="); System.out.println("[1] : 시간표 전체 보기"); System.out.println("[2] : 선택 요일 시간표 확인"); System.out.println("[3] : 시간표 추가 "); System.out.println("[4] : 시간표 삭제"); System.out.println("[5] : 저장하고 끝내기"); System.out.println("==========메뉴=========="); System.out.println("메뉴 선택 : "); ch = sc.nextInt(); if(ch == 1){ System.out.println("요일 1교시 2교시 3교시 4교시 5교시 6교시 7교시 8교시"); for(int i = 0 ; i < lists.length; i++){ System.out.println(Arrays.toString(lists[i])); } } else if( ch == 2){ System.out.println("조회할 요일을 입력해주세요(입력 예시: 월요일 > 1, 화요일 >2 ,...) :"); int input_day = sc.nextInt(); System.out.println("[1]해당 요일 전체보기"); System.out.println("[2]해당 요일 선택 교시 보기"); int choice = sc.nextInt(); if(choice == 1){ for(int i = 1;i<10;i++){ System.out.println(lists[choice][i]); } } else if(choice == 2){ System.out.println("해당 요일의 조회할 교시를 선택해주세요 (입력 예시> 1) :"); int input_time = sc.nextInt(); System.out.println(lists[input_day-1][input_time]); } } else if(ch == 3){ System.out.println("추가할 과목의 요일을 선택하세요.(입력 예시 : 월요일 > 1 , 화요일 > 2 , ... "); int input_day = sc.nextInt(); System.out.println("추가할 요일의 교시를 입력하세요(입력 예시 : 1교시 > 1 , 2교시 > 2 ,..."); int input_time = sc.nextInt(); lists[input_day-1][input_time] = sc.next(); // 위 코드 대신에 Lobby newLobby = new Lobby(); // setDay(input_day); } else if(ch == 4){ System.out.println("삭제할 과목의 요일을 선택하세요.(입력 예시 : 월요일 > 1 , 화요일 > 2 , ... "); int input_day = sc.nextInt(); System.out.println("삭제할 요일의 교시를 입력하세요(입력 예시 : 1교시 > 1 , 2교시 > 2 ,..."); int input_time = sc.nextInt(); lists[input_day-1][input_time] = input_time+"교시"; } else if(ch == 5) break; // end = true; } } } // 추가해야 할 것 // ++ 코드 짜다보니 클래스 이용 x <<이거 고치기 ... // ++ 시간표 전체 보기에서 요일별로 세로로 출력하는 법 > 배열 구조 바꾸기 // ++ ch 2 에서 요일 선택할 때 1 2 숫자말고 string으로 적을 수 있게 만들기 // ++ 지정교수 이름과 과목정보를 어떻게 숨겨서 넣는가 > arraylist활용해서 >로비를 사용해서 정보를 // 한번에담고 메서드를 사용해서 필요한거만 출력하게끔 // ++ 간격 조정 > 신경x // ++ 실행하고 다시 껏다 켜면 초기화 되어있다. 초기화 x 방법? >> 파일입출력 // ++ 수강과목 중복생각하기
728x90'1학년 > 자바 공부' 카테고리의 다른 글
11주차_추상클래스, 예외처리 (0) 2022.09.02 8일차_클래스의 상속, 오버라이딩 + 실습 (0) 2022.08.23 6일차_클래스,메서드,랜덤 클래스를 활용한 자동차 프로그램 코드 (0) 2022.08.02 4일차_메서드와 클래스 다시 정리 + 클래스와 메서드를 이용한 객체지향 프로그래밍 맛보기 (0) 2022.07.27 4일차_배열, 문자열, Int class , 아스키코드 (0) 2022.07.27 - 시간표관리 프로그램