java- 간단한 스케줄러 만들어보기
2022. 3. 18. 23:53ㆍJAVA
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공부 - 스케줄러만들기 (수정본)
728x90
'JAVA' 카테고리의 다른 글
명품 java 프로그래밍 5장 - Open Challenge (0) | 2022.03.27 |
---|---|
java공부 - 배열에서 나타난 오류(초기화 관련) (0) | 2022.03.23 |
java 공부 - 간단한 예약 시스템 만들기 (0) | 2022.03.18 |
java 공부 - 명품 JAVA 프로그래밍 4장 Open Challenge (0) | 2022.03.17 |
java공부 - 회원관리 프로그램 만들기 (0) | 2022.03.11 |