java- 간단한 스케줄러 만들어보기

2022. 3. 18. 23:53JAVA

728x90

 

public class Day {
	private String work;
	
	public void setWork(String work) {
		this.work = work;
	}
	public String getWork() {
		return work;
	}
	public void show() {
		if(work == null) {
			System.out.println("오늘 일정 없습니다.");
		}else {
			System.out.println("오늘 일정 : " + work);
		}
	}

}
import java.util.Scanner;


class MonthSchedule {
	
	int month;
	
	int dayCount;
	
	Day[] day;
	
	
	public MonthSchedule(int month, int dayCount) {
		this.month = month;
		this.dayCount = dayCount;
		this.day = new Day[dayCount];
		for(int i=0;i<day.length;i++) { 
			day[i] = new Day();
		}
		// 출력할 때는 dayCount +1 해줌
	}
	
	public void input(int day,String work) {// 입력하고픈 날짜
		this.day[day].setWork(work);
	}
	public void view(int day) {
		this.day[day].getWork();
	}
	public void finish() {
		System.out.println("프로그램을 종료하겠습니다!");
		System.exit(0);
	}
	
}

public class Scheduler {
	
	

	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		System.out.println("안녕하세요~");
		System.out.println("어떤 스케줄러를 사용할 건 가요?");
		while(true) {
			
			System.out.print("월 입력 : (프로그램 종료 시 - > 0)");
			int month = scan.nextInt();
			switch(month) {
			case 0:
				System.out.println("프로그램을 종료하겠습니다!");
				System.exit(0);
			case 1:
				MonthSchedule january = new MonthSchedule(1,31);
				int a=0;
				while(a == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 뒤로가기 -> 3");
					int choice1 = scan.nextInt();
					if (choice1 == 3) {
						a =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day1 = scan.nextInt();
					switch(choice1) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							january.day[day1-1].setWork(work);
							break;
						case 2:
							System.out.println(january.day[day1-1].getWork());
							break;
					}
				}
				
				break;
			case 2:
				MonthSchedule february = new MonthSchedule(2,28);
				int b=0;
				while(b == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice2 = scan.nextInt();
					if (choice2 == 3) {
						b =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day2 = scan.nextInt();
					
					switch(choice2) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							february.day[day2-1].setWork(work);
							break;
						case 2:
							System.out.println(february.day[day2-1].getWork());
							break;
					
					}
				}
				break;
			case 3:
				MonthSchedule march = new MonthSchedule(3,31);
				int c=0;
				while(c == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice3 = scan.nextInt();
					if (choice3 == 3) {
						c =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day3 = scan.nextInt();
					
					switch(choice3) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							march.day[day3-1].setWork(work);
							break;
						case 2:
							System.out.println(march.day[day3-1].getWork());
							break;
					}
				}
				break;
			case 4:
				MonthSchedule april = new MonthSchedule(4,30);
				int d=0;
				while(d == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice4 = scan.nextInt();
					if (choice4 == 3) {
						d =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day4 = scan.nextInt();
					
					switch(choice4) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							april.day[day4-1].setWork(work);
							break;
						case 2:
							System.out.println(april.day[day4-1].getWork());
							break;
					}
				}
				break;
			case 5:
				MonthSchedule may = new MonthSchedule(5,31);
				
				int f=0;
				while(f == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice5 = scan.nextInt();
					if (choice5 == 3) {
						f =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day5 = scan.nextInt();
					
					switch(choice5) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							may.day[day5-1].setWork(work);
							break;
						case 2:
							System.out.println(may.day[day5-1].getWork());
							break;

					}
				}
				break;
			case 6:
				MonthSchedule june = new MonthSchedule(6,30);
				int g=0;
				while(g == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice6 = scan.nextInt();
					if (choice6 == 3) {
						g =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day6 = scan.nextInt();
					
					switch(choice6) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							june.day[day6-1].setWork(work);
							break;
						case 2:
							System.out.println(june.day[day6-1].getWork());
							break;
					}
				}
				break;
			case 7:
				MonthSchedule july = new MonthSchedule(7,31);
				int h=0;
				while(h == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice7 = scan.nextInt();
					if (choice7 == 3) {
						h =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day7 = scan.nextInt();
					
					switch(choice7) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							july.day[day7-1].setWork(work);
							break;
						case 2:
							System.out.println(july.day[day7-1].getWork());
							break;
					}
				}
				break;
			case 8:
				MonthSchedule august = new MonthSchedule(8,30);
				int i=0;
				while(i == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice8 = scan.nextInt();
					if (choice8 == 3) {
						i =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day8 = scan.nextInt();
					
					switch(choice8) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							august.day[day8-1].setWork(work);
							break;
						case 2:
							System.out.println(august.day[day8-1].getWork());
							break;
					}
				}
				break;
			case 9:
				MonthSchedule september = new MonthSchedule(9,31);
				int j=0;
				while(j == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice9 = scan.nextInt();
					if (choice9 == 3) {
						j =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day9 = scan.nextInt();
					
					switch(choice9) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							september.day[day9-1].setWork(work);
							break;
						case 2:
							System.out.println(september.day[day9-1].getWork());
							break;
					}
				}
				break;
			case 10:
				MonthSchedule october = new MonthSchedule(10,30);
				int k=0;
				while(k == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice10 = scan.nextInt();
					if (choice10 == 3) {
						k =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day10 = scan.nextInt();
					
					switch(choice10) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							october.day[day10-1].setWork(work);
							break;
						case 2:
							System.out.println(october.day[day10-1].getWork());
							break;
					}
				}
				break;
			case 11:
				MonthSchedule november = new MonthSchedule(11,31);
				int l=0;
				while(l == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice11 = scan.nextInt();
					if (choice11 == 3) {
						l =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day11 = scan.nextInt();
				
					switch(choice11) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							november.day[day11-1].setWork(work);
							break;
						case 2:
							System.out.println(november.day[day11-1].getWork());
							break;
					}
				}
				break;
			case 12:
				MonthSchedule december = new MonthSchedule(12,30);
				int m=0;
				while(m == 0) {
					System.out.println("스케줄 입력(수정) -> 1, 스케줄 보기 -> 2, 프로그램 종료 -> 3");
					int choice12 = scan.nextInt();
					if (choice12 == 3) {
						m =1 ;
						break;
					}
					System.out.print("일 입력 : ");
					int day12 = scan.nextInt();
					
					switch(choice12) {
						case 1:
							System.out.println("할 일을 입력해주세요 : ");
							String work = scan.next();
							december.day[day12-1].setWork(work);
							break;
						case 2:
							System.out.println(december.day[day12-1].getWork());
							break;
					}
				}
				break;
			}
		
		}
	}
}

결론부터 말하자면, 상당히 불만족스러운 코드다. 뭔가 체계가 안 잡혀서 그때그때 보이는 에러를 해결한 느낌이다.

가장 큰 에러는 객체를 재생성하여 정보가 저장이 안된다는 에러 , 물론 해결은 했다.

 

 

얻은 것 : 클라스의 필드를 통해 객체배열을 접근할 수 있다 -> 객체배열을 선언만 하고 MonthSchedule 생성자에서 배열을 만들었다.

while문을 빠져나오는 두가지 방법 break 또는 while의 조건

switch case break는 한 몸이다.

 

코드를 다시 개선해보겠다!

2차원 객체배열을 사용해 코드를 다시 짜보겠다.

개선 하려면 컬렉션을 사용해야 할 것같다.

아쉽지만 나중으로 미루고 꼭 나중에 다시!!

 

이상입니다.

 

2022.05.03 - [JAVA] - java공부 - 스케줄러만들기 (수정본)

 

java공부 - 스케줄러만들기 (수정본)

2022.03.18 - [JAVA] - java- 간단한 스케줄러 만들어보기 java- 간단한 스케줄러 만들어보기 public class Day { private String work; public void setWork(String work) { this.work = work; } public String g..

rasony.tistory.com

 

728x90