Computer Science 1260 – Project 1
June 13, 2016 / Address Book – Part I / Due: ______

Introduction

Our company has been hired to develop a customized Address Book application. We intend to build the application in phases. In the first phase, we will develop a Contact class. An object of this class will eventually represent one entry in the completed Address Book. To test the Contact class and verify that it does what it is intended to do, we must also develop a Contact Demo driver class to demonstrate the functionality of the Contact class. All code you write for this project should be in the addressBook package.

The Contact Class

Each Contact should contain at least the following information:

  1. Contact type: an enumerated type with one of the following values

a.  Family

b.  Church

c.  Friend

d.  BusinessColleague

e.  ServicePerson

f.  Customer

g.  Other

  1. Name
  2. Street Address
  3. City
  4. State (two letter official postal abbreviation such as TN, SC, GA, etc.)
  5. ZipCode
  6. Phone (including area code)
  7. Email (email address)
  8. Photo (the name and relative path of a .jpg file containing the contact’s photo)

The Contact class requires a minimum of two constructors (default and parameterized), appropriate getters and setters, and a toString method that formats all of the Contact information for a user-friendly multiline String that can be displayed (through either System.out or a JOptionPane dialog). The Contact class should not do any input/output.

The Driver Class

The driver should demonstrate the functionality of the Contact class by allowing for entering contact information in response to appropriate prompts, creating a Contact object, possibly modifying one or more of the attributes for the contact, and displaying the contact information as formatted by the Contact’s toString method. Example output can be found in the last section of this document. You are only required to process one Contact at a time for this project.

The driver should handle all input and output. It should be menu-driven. You may use the instructor-provided Menu class and Util class to support the menu-driven aspects of the driver. Instructions for using the Menu class are included in the zipped file provided. The instructions describe using the menu with System.out and they show use with JOptionPane dialogs. You may use either for this project.

When the driver begins, it should prompt for the user’s name using an input dialog from JOptionPane. When the user indicates a desire to quit using the application, display a goodbye/thank you message using a message dialog from JOptionPane, and include the user’s name entered at the beginning of the program.

Project Structure

The structure of your solution should look something like this graphic in the Eclipse Package Explorer.

Documentation

The documentation standards are posted on the course web site. DOCUMENTATION IS NOT OPTIONAL. If your version of Eclipse is set up as we did in the lab on the first day, and if you use Eclipse the way you were taught that day, Eclipse will do much of the documentation for you. However, you must fill in the details (such as the purpose of a method or a parameter). If you did not set up your version of Eclipse properly or you do not use it as you were taught in the lab to use it, you will have to provide all documentation manually.

Penalties for failure to document your code FULLY are severe. They are specified in the documentation policies on the course web site.

Deliverables

An example of a design document and the instructions for creating one are posted on the course web site. The initial design document you create for this assignment is due soon – see web site. Name it according to the Course Facts on the web – for example, 1260-090 – DrawersChester – Project 1 Design.docx.

It is not expected that the initial design document is perfect; as a result, the final project may reflect some design changes (things that you did not consider in the original design). When you make changes in your design, be sure to update the design document to incorporate the changes.

The due date for the completed program including your updated design document is shown on the course website.

·  Include the updated design document in the same zipped folder as your .java files.

·  Name the final submission according to the Course Facts document on the web; for example, 1260-090-DrawersChester – Project1.zip.

·  This zipped file should contain the addressBook folder (with its contents), the util folder (with its contents), and the final design document – and NOTHING else – no extra folders, no extra files, no other zipped files.

·  Do NOT include the entire src folder.

·  The addressBook folder and the util folder should NOT be zipped separately; they should just be included in the zipped folder you submit.

·  Your final submission (shown using 7-zip) should resemble what is shown in this diagram.

Screen-shots of a running solution

Project 1 - ContactsPage 4