A. Input Requirements 1. Include a prompt that allows the user to enter a command from the following four options, repeating the process of displaying the menu screen until the user has selected ‚??quit.‚?? ‚?Ę add a business contact ‚?Ę add a personal contact ‚?Ę display contacts ‚?Ę quit 2. Include a prompt that allows the user to enter the following identifiable information when the ‚??add a business contact‚?? command is selected: ‚?Ę first name ‚?Ę last name ‚?Ę address ‚?Ę phone number ‚?Ę e-mail address ‚?Ę job title ‚?Ę organization
Note: You are not required to store the contact information as persistent data in a database.
B. Output Requirements 1. Display the results to the user on screen in a readable and descriptive format (e.g., System.out) by doing the following: a. Display all contacts‚?? first and last names when the ‚??display contacts‚?? command is selected. b. Include a numeric key for each contact that will be used to invoke the method that displays the contact details. 2. Include a prompt that allows the user to enter the numeric key to display all details of the contact in a readable and descriptive format (e.g., System.out, output to a text file using FileWriter). a. Identify contacts by type when displaying the details of a contact: business or personal.
C. Design Requirements 1. Demonstrate use of collections (e.g., TreeSets, ArrayList). 2. Demonstrate use of encapsulation. 3. Demonstrate use of inheritance by doing the following: a. Create one abstract class. b. Create two subclasses. 4. Demonstrate use of polymorphism by overriding a method of the abstract class in both subclasses (i.e., method that displays contact details).