ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 9주차_시간표 관리 프로그램 짜보기
    1학년/자바 공부 2022. 9. 1. 13:49

    시간표를 관리해주는 프로그램을 자바로 만들어보자 . 마지막에는 GUI프로그래밍 까지 해서 안드로이드 앱 까지 만들어 보는 목표.

     

    고민1일차

    1. 시간표관리 프로그램
      • 메뉴 1 > 시간표 전체 보기
      • 메뉴 2 > 선택 요일 시간표 보기
      • 원하는 요일 선택 후 시간표 보여주기
      • 처음으로 돌아가기 or 선택 요일의 과목을 하나 선택하여 선택 과목의 정보 출력
      ( 강의실, 시간 , 교수, 과제가 무엇이 있는지 (없다면 없다고 표시) ))
      • 메뉴 3 > 시간표 추가
      • 시간표 추가 >
      -원하는 요일과 교시를 선택하여 추가
      • 메뉴 4 > 시간표 삭제
      • 시간표 삭제 >
      • 원하는 요일과 교시의 시간표를 삭제
      • 메뉴 5 > 시간표 정보 추가
        1. 강의실 정보 , 2. 시간 정보 , 3. 교수 이름 정보 , 4. 과제 정보 중 선택하여 입력
      *모든 선택지에 처음으로 돌아가는 선택지를 포함
    2. -정보는 입력하지 않았으므로 처음 상태는 모두 미입력으로 표시

    대략적인 큰~~~ 틀은 이렇게 . 코드 짜면서 엄청 추가 할 예정 

    근데 이게 객체지향 프로그래밍을 하려니까 코드를 어떻게 짜야할 지 전체적 그림을 다 그려다보니 어렵다....

    먼저 클래스를 어떻게 나누는가 ? > 인터페이스 클래스 ( 메뉴들을 상속 할 부모 클랫 ) / 메뉴 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

    댓글

Designed by Tistory.
티스토리 친구하기