1. 중간 평가에 제출한 프로그램
1. 오직 입력만을 처리하는 Main 클래스
package 김성수2a;
import java.text.ParseException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws ParseException {
Scanner sc = new Scanner(System.in);
Handler handler = new Handler();
Calendar calendar;
int select, check;
String show_Result;
String name;
String date;
System.out.println("==============일정 관리 프로그램 실행==============\n");
do {
System.out.println("\t<Simple Todo List> (작성자 : 김성수)\n");
System.out.println("1. 목록 | 2. 추가 | 3. 완료 처리 | 4. 삭제 | 0. 종료");
System.out.print("\t실행시킬 메뉴 번호를 입력하세요 : ");
select = sc.nextInt();
System.out.println();
sc.nextLine();
switch(select) {
case 1:
show_Result = handler.showList();
if(show_Result == "") System.out.println("--------------| 데이터가 비어 있습니다!! |--------------\n");
else {
System.out.println("\t<현재 저장된 일정 리스트>");
System.out.println(show_Result);
}
break;
case 2:
System.out.print("업로드 시킬 일정 파일명을 입력하세요 : ");
name = sc.nextLine();
System.out.print("날짜를 입력하세요 ※예시(괄호는 제외합니다) [xxxx.xx.xx] : ");
date = sc.nextLine();
calendar = new Calendar(name, date);
check = handler.uploadList(calendar);
System.out.println(check == 1 ? "입력이 완료되었습니다." : "입력 실패!!");
System.out.println();
break;
case 3:
System.out.print("일정이 끝난 파일명 입력 : ");
name = sc.nextLine();
show_Result = handler.update(name);
System.out.println(show_Result);
break;
case 4:
System.out.print("삭제할 일정 파일명 입력 : ");
name = sc.nextLine();
check = handler.delete(name);
System.out.println(check == 1 ? "삭제가 완료되었습니다." : "그런 이름의 데이터는 존재하지 않습니다!!");
System.out.println();
break;
case 0:
System.out.println("===========================================");
System.out.println("\t일정 관리 프로그램이 종료됩니다.");
break;
default:
System.out.println("옳바른 메뉴를 선택하지 않았습니다. 다시 입력해주세요!!\n");
}
System.out.println("\n\n\n\n\n\n");
} while(select != 0);
sc.close();
}
}
2. 부가 기능을 구현하는 함수들을 모아놓은 Handler 클래스
package 김성수2a;
public class Handler {
Calendar[] arr = new Calendar[5];
String showList() {
String result = "";
for(int i = 0; i < arr.length; i++) {
if(arr[i] != null) {
result += arr[i].toString() + "\n";
}
}
return result;
}
int uploadList(Calendar calendar) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] == null) {
arr[i] = calendar;
return 1;
}
else if(arr[i].list_Name.equals(calendar.list_Name)) {
return 0;
}
}
return 0;
}
String update(String name) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] != null && name.equals(arr[i].list_Name)) {
if(arr[i].complete == true) return "이미 완료처리 된 일정입니다.\n";
arr[i].complete = true;
return "일정이 완료처리 되었습니다.\n";
}
}
return "그런 이름의 데이터가 존재하지 않습니다\n";
}
int delete(String name) {
for(int i = 0; i < arr.length; i++) {
if(arr[i] != null && name.equals(arr[i].list_Name)) {
arr[i] = null;
return 1;
}
}
return 0;
}
}
3. 객체를 생성하는 Calendar 클래스
package 김성수2a;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Calendar {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
String list_Name;
Date date;
boolean complete;
Calendar(String list_Name, String date) throws ParseException {
this.list_Name = list_Name;
this.date = sdf.parse(date);
}
public String toString() {
String result = String.format("[%s] %-20s\t%s", sdf.format(date) , list_Name ,complete == true ? "[완료]" : "");
return result;
}
}