Problem

Create a command line TODO list program. Prompt your client. The first character/symbol they enter will be the command. Follow that with a space. Finally, enter the todo list item. Example: "+ Study for Final" (don't enter the quotes). This causes Study for Final to be entered into the TODO list with todays date. You will need to have the following fields at a minimum: TODO itself, date added, and TODO Identification number, but you can add as many other fields as you wish.

Requirements

  • No C libraries (no .h).
  • No global variables or analogues of global variables.
  • No standard template library anything.
  • Create a alphabetic menu to handle program options.
  • Don't forget to put a header on your source file.
  • No compiler warnings.
  • Only allow valid letters or symbols as input for this menu. Upper and lower case if appropriate. Re-prompt in event of error. Can you do this without displaying an actual menu?
  • Style guide elements apply: comments, layout, Program Greeting, Source File Header, and variables etc. etc. In your program greet- ing function, be sure to display the current date. Get this from the system hardware.
  • Create at least 1 object.
  • All objects must have a component testing method which runs at least 2 diagnostic tests on that object. Include this in main() right after the program greeting.

Specifications

// Specification C1 - Overload <<

Overload the stream insertion operator to output a TODO.

//Specification C2 - Overload >>

Overload thestream extraction operator to input a TODO.

// Specification C3 - Test TODO's

Generate at least 5 TODO's in your component testing method.

//Specification C4 - TODO array

Put your TODO's in a dynamic array of TODOs

// Specification B1 - + Symbol

Allow the user to enter tasks with a "+" symbol.

// Specification B2 - ? Symbol

Allow the user to display all tasks with a ? symbol.

// Specification B3 - - symbol

Allow the user to remove a task with a "-" symbol (use an ID num- ber to remove the TODO). This doesn't necessary mean you need to delete it immediately.

Specification B4 - Persistence

Have your TODO list survive program termination by dumping the TODO's to disk when program ends. Load the data when the program first runs - if the file exists.

// Specification A1 - Overload Copy Constructor

Overload the default copy constructor to handle your TODO's. Do this even if you dont have any pointers in your TODO ob- ject/struct. This is a great method to put in your component test- ing method.

// Specification A2 - Overload Assignment Operator

To handle TODO assignment.

// Specification A3 - System Date

Pull the date for your TODO record directly from the system date method.

// Specification A4 - Overload Constructor

Allow empty input for an add from the menu. However, empty adds trigger the regular constructor which creates a test record filled with obviously dummy data. When the client actually enters data during an add, trigger an overloaded constructed filling it with the data supplied by the client.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.