Reference no: EM131270025
Assignmetn
Introduction:
As a competent programmer, your ability to develop programs that implement inheritance, polymorphism, and collections will help you design and develop applications to meet customer requirements. This project is an opportunity for you to peer behind the scenes at how a program may function and will help you apply object- oriented programming skills in a familiar, real-world scenario.
Scenario:
You have been assigned by your employer to create a computer application to help employees manage their contact list. Users must be able to store two types of contacts: business and personal. Both types have common fields as well as properties unique to them. The application needs to accept and store contacts by type. Your team lead has required that you use an object-oriented design for the application. You are encouraged to consider usability of the system when designing the user interface. It is up to you if you want to use a menu-driven or graphical user interface; however, the approach needs to create an inheritance relationship for the contacts in order to facilitate evolving this application to easily add new contact types in the future.
Requirements:
Note: Submit all .java and .class files in one zipped folder.
Note: To complete this project, you will need the latest Java SE Development Kit (JDK). This includes the Java Runtime Environment (JRE) and command line development tools that are useful for developing applets and applications. It is recommended that you complete this project using NetBeans Integrated Development Environment. To download this program, see the web link below.
Create a contact list application that meets the employer's following minimum requirements.
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.
3. Include a prompt that allows the user to enter the following identifiable information when the "add a personal contact" command is selected:
• first name
• last name
• address
• phone number
• e-mail address
• date of birth
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).