600.108 Intro Programming Lab Week 12 PROBLEM STATEMENT ----------------------------------------------------------------- This week you will be writing a set of 4 classes (using inheritance) and an interface to support a personal planner application. Only put the minimal amount into each class, so that they will adequately support each other and main. The driver program is already written for you and posted on the course website, but you may make changes if you want: http://www.cs.jhu.edu/~joanne/cs108/week12.java There is also a Time class on the course website that you may use: http://www.cs.jhu.edu/~joanne/cs108/Time.java The ultimate goal is to create a Planner which can hold different kinds of jobs that you need to do. The simplest type is a Task, such as laundry or haircut, etc. The next level of job is essentially a task that has a deadline (called DueDo in this system). Each one of these, in addition to the actual job (such as "doing Java homework") has a deadline which consists of a date and time. The third level is an Appointment which is something to do, at a specific date and [start] time, that also has a location and expected end time. Phase 1) Read through the coding phases below, and then draw a UML-like diagram with all the classes and interfaces your solution will use and the relationships between. Phase 2) Create a base Task class which can be used to create objects that represent things to do. Include a read method which gets pertinent info from the keyboard. Get this to compile with the relevant parts of the driver program (comment out the other parts). Phase 3) Create a DueDo class which extends the Task class by adding members related to a deadline (time and date). Get this to compile with the relevant parts of the driver program. Phase 4) Create an Appointment class which extends the Task class by adding members related to a location, a date, a start time, and an end time. Get this to compile with the relevant parts of the driver program. Phase 5) Download the Database interface from the lab webpage (www.cs.jhu.edu/~joanne/cs108/Database.java). Now create a Planner class which implements the Database interface and contains a set of Tasks. Your Planner should be implemented such that it holds at most 1000 things at any given time. Get this to compile with the full driver program. You do not have to write complete implementations for the Database methods that aren't used in the driver program. ************************************************** MAKE SURE YOU DELETE YOUR FILES OFF THE LAB COMPUTER WHEN DONE!!! FAILURE TO DO SO IS AN ETHICS VIOLATION! **************************************************