Address book java application and user guide

This assignment contains two (2) parts: Address Book Java Application and User Guide. You must submit both sections for the completion of this assignment.

Part I: Address Book Java Application
Imagine that you have been hired to write an object-oriented Java application (either console or GUI) that works as a fully functional address book.

1. Create an application that:
a. reads the contents of your address book file (CSV format).
b. searches the address book.
c. enters contacts into the address book.
d. deletes contacts from the address.
e. edits contacts of the address book.
f. saves changes (additions, deletions, edits) made to the address book to a file (CSV format).

Part II: User Guide
Along with your application, your submission should include a user guide.

2. Create a user guide that includes:
a. a description of the functionality of your overall address book system.
b. screenshots that will demonstrate how to use your address book system.
c. a technical discussion regarding how each component works.

Your assignment must follow these formatting requirements:

Be typed, double spaced, using Times New Roman font (size 12), with one-inch margins on all sides; citations and references must follow APA or school-specific format. Check with your professor for any additional instructions.
Include a cover page containing the title of the assignment, the student’s name, the professor’s name, the course title, and the date. The cover page and the reference page are not included in the required assignment page length.

The specific course learning outcomes associated with this assignment are:

Demonstrate the proper use and application of syntax in the Java programming language.
Demonstrate the ability to design, compile, implement, test, and debug simple programs in Java.
Compare and contrast classes and objects in Java.
Construct classes through systematic procedures.
Demonstrate the ability to manipulate numbers and character strings in Java.
Discuss the concepts of inheritance and polymorphism.
Discuss exception handling and basic file input / output.
Describe and implement iteration in Java.
Compare and contrast arrays and array lists in Java.
Discuss object-oriented design principles.
Write clearly and concisely about Java programming using proper writing mechanics and technical style conventions.