Assignment IV: To Do List

Submission

This is one of 4 options for Assignment IV: Application.

Please zip your entire directory and submit it via moodle by Monday 4/30 at 11:59pm.

To do list

Using a priority queue, create a To do list application. The goal of this assignment is to go from a high-level description of the application to a working implementation, so these instructions are purposely not going to outline what specific classes, methods, etc. to have.

Expected behavior and requirements

Using the command line or a GUI, allow the user to:

  • enter tasks with due dates (e.g., 04-30-18)
  • get (and remove) the task with the most imminent due date

Create documentation (at the very least a basic README.txt file) that explains what your program does and how to use it.

Process

Here are some tips for how to create this program.

  1. Come up with your design:
    1. From the user perspective
      1. What does the expected interaction with the program look like? This is sometimes called storyboarding.
    2. From the implementation perspective
      1. What classes do you need?
      2. For each class, what properties and methods do you need?
        1. For the methods, write a javadoc comment and method declaration for the expected behavior/interaction.
  2. Create the skeleton files for your classes with stubs for methods.
  3. For each method:
    1. Write pseudocode for how to implement the expected behavior dictated by the javadoc comment.
    2. Your pseudocode becomes comments which you then implement with lines of code
  4. Test and debug!

Implementation hints

  • use your Assignment I: Heaps implementation or the java.util.PriorityQueue implementation
  • you may want to refer to the java.util.Date and java.text.DateFormat classes
    • you should be able to use the Java API to find all the information required to interact with these classes
    • however, if you want a hint, here is some sample code that interacts with the user to get date information as input and create a Date instance