University of Calgary

address book

Address Book
Source: Jared Hopf, 2003
Description:
This program is to create an indespensible address book to keep track of all your contacts.
The address book should contain (but not be limited to) the following attributes about a person inside the book:
First name.
Last name.
Address.
City.
Province.
Postal Code.
Country.
Phone (Home).
Phone (Cell).
E-mail.
Data about a person can be entered from either the keyboard or a data file.  The data in the file is to be arranged in the file in the same order as the bullet list and each record is to be seperated by spaces.  For example:
Alex
Summers
1401 Graymalkin Lane NW
Westchester
AB
X3C 3E4
Canada
403-282-5454
403-299-8595
hvk@xinstitute.com

Scott
Summers
1401 Graymalkin Lane NW
Westchester
AB
X3C 3E4
Canada
403-288-5454
403-265-8595
cyke@xinstitute.com

......
Of course you are free to add more detail about a person if you want.  (EG.  Birthday, Phone (Work), Title, Company, etc).  But the above list is a minimum.
Similarly, the address book itself should have options for the user to choose from, these are as follows:
Read from file.
Write to file.
Display listing.
Add Contact.
Find Contact.
Edit Contact.
Delete Contact.
Sort Contacts.  (Last, First, Address, ...)
Again if there are other options that you feel are needed, then add them in.

Minimum Requirements:
Address Book that will read a list of contacts from a data file, display them, and write them out to a file.

Optional Requirments:
Adding other listed functions.
Adding new functions.
Adding new data fields. 
Next level: being able to load old data files with the missing addition data fields.  (Data versioning. In header of data file.)
Sorting contacts by other field priorities.
Operators to check for ==, <, >, <=, >=, !=.  (C++)
Link Listing
Different Sort method other than bubble sort.  (Selection, Binary, Merge, Quick)

Concepts:
2D Arrays.
Basic Class functions ( encapsulation, polymorphism, etc)
Operator overloading.
Copy/Clone Constructor
Sorting
File I/O
I/O
Compairisions
Strings
Data Handling (Strings vs Numbers)

Optional Concepts:
Link Lists.
Memory management.
Sorting methods.



Updated: August 10, 2005 11:21 PM