First Programming Assignment Computer Science 477/677 September 14, 1999 Design and implement a program to provide a personal diary for someone. Your program will provide the following functions: 1. Capability to create a diary entry including these sections: a. today's date (automatically supplied by the program) or another date (provided by the user); b. a list of up to ten keywords given by the user. Y²his field is optional; c. A text of up to 12,000 characters; d. A password of up to twenty characters including letters numbers, blanks, and punctuation. This field is optional. 2. Capability to create, and change an overall password of up to two characters including letters, blanks, numbers, and punctuation. If a password is created, this password must be entered to access any of the other program functions or to change the password to a new character string; 3. Capability to display any diary entry by date, date-range, or by keyword; 4. Capability to print any diary entry displayed; 5. Capability to edit any diary entry and accept or reject the editing changes. If the changes are accepted, the changed entry replaces the old entry in your file. Otherwise the old entry remains. Your program must be able to support at least 500 diary entries of at least an average 2,500 characters each. IF a diary entry has an individual password, the user must enter that password to access that particular entry (including in displays, edits, or prints). You may use whatever object-oriented language you wish for implementation. You must submit the following items for grading: 1. Your object-oriented design of the entire program using techniques described in class and the textbook; 2. A commented program listing; 3. A description of the testing you did to gain confidence that the program works correctly. Your program is worth 100 points. It will be graded according to the following: 1. Design: a. Comprehensive (covers the entire requirements) 12 points b. Clear and easy to follow 8 points c. Includes correct static description of the program structure 15 points d. Includes correct dynamic description of each scenario execution 15 points 2. PROGRAM Listing: a. Well-commented 10 points b. Completely Object-oriented 10 points c. Program is complete 5 points d. Program is well-structured 5 points 3. Tests a. Cover all scenarios 10 points b. Designed to uncover errors 10 points