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 skill sin 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.
Create a contact list application that meets the employer’s following minimum requirements.
Input Requirements
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
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.
Include a promprt 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
Output Requirements
Display the results to the user on screen in a readable and descriptive format(e.g., System.out) by doing the following:
Display all contacts’ first and last names when the “display contacts” command is selected
Include a numeric key for each contact that will be used to invoke the method that displays the contact details.
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).
Identify contacts by type when displaying the details of a contact: business or personal
Design Requirements
Demonstrate the use of collections (e.g. TreeSets, ArrayList).
Demonstrate the use of encapsulation
Demonstrate use of inheritance by doing the following:
Create one abstract class
Create two subclasses
Demonstrate the use of polymorphism by overriding a method of the abstract class in both subclasses (i.e., method that displays contact details).
When you use sources, include all in-text citations and references in APA format.
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.