본문 바로가기
JAVA/예제

[JAVA] 일정관리 프로그램

by JJH0100 2022. 10. 11.
728x90
반응형

코드

import java.util.Scanner;
class Day{
	private String work; //하루의 할 일을 나타내는 문자열
	public String getWork() {
		return work;
	}
	public void setWork(String work) {
		this.work = work;
	}	
	public void show() {
		if(work == null)
			System.out.println("할 일이 없습니다.");
		else
			System.out.println(work + "계획이 있습니다.");
   }

}
public class MonthSchedule {
	private Day[] days; // Day 객체 배열
	private Scanner sc;
	private int nDays;
	
	public MonthSchedule(int nDays) { //명시적 생성자
		this.nDays = nDays;
		this.days = new Day[nDays]; // 객체 31개가 생성
		
		for(int i=0; i<days.length; i++) {
			days[i] = new Day();
		}
		sc = new Scanner(System.in); //스캐너 객체 생성
	}
	private void input(){
		System.out.println("11월 날짜(1~31)? >> ");
		int day = sc.nextInt();
		System.out.println("할일(빈칸없이 입력) >> ");
		String work = sc.next();
		day--;
		
		if(day < 0 || day > nDays) {
			System.out.println("잘못된 날짜를 입력 하셨습니다.");
			return;
		}
		
		days[day].setWork(work);
	}
	private void view(){
		System.out.println("날짜(1~31일) >> ");
		int day = sc.nextInt();
		day--;
		if(day < 0 || day > nDays) {
			System.out.println("잘못된 날짜를 입력 하셨습니다.");
			return;
		}
		System.out.print((day+1) + "일의 할 일은 ");
		days[day].show();
	}
	private void finish(){
		System.out.println("프로그램을 종료합니다");		
	}
	public void run() {
		System.out.println("이번달 스케줄 관리 프로그램");
		while(true) {
			System.out.println("스케줄(1:입력, 2:보기, 3:끝내기) >> ");
			int menu = sc.nextInt();
			switch(menu) {
			case 1:
				input();
				break;
			case 2:
				view();
				break;
			case 3:
				finish();
				return;
			default:
				System.out.print("잘못 입렵 하셨습니다.");
			}
			System.out.println();
		}
	}
	public static void main(String[] args) {
		MonthSchedule oct = new MonthSchedule(31); //10월달의 할일
		oct.run();		
	}
}

결과

728x90
반응형

'JAVA > 예제' 카테고리의 다른 글

[JAVA] swing을 사용한 txt파일 저장  (0) 2022.10.25
[JAVA] 전화번호북  (0) 2022.10.11
[JAVA] 단어사전  (0) 2022.10.11
[JAVA] 계산기  (0) 2022.10.11
[JAVA] Array의 역순재배치  (0) 2022.10.06

댓글