We are in need of a phone book which we can store individuals’ first and last names, addresses, and phone numbers. Contacts should be sorted alphabetically.

For the implementation, we will need a class for Contact objects. This Class will contain the attributes for the first and last name, address and phone number.

A Second class will be your AddressBook Container class. This will have an aggregate relationship with the Contact class. This means it will have and maintain the sorted list of Contacts.

The container class can be either a linked list or an array style list. If you choose to make an array style list, you should implement a binary search to find contacts.

When the program starts it should open to a main menu with choices:

  1. Add Contact
  2. Find Contact
  3. Edit Contact
  4. Delete Contact
  5. Display Current Contact

If there is existing data, your list should populate from the list. When you change the list. The data file should be updated.