Here's The Programming Instructions:

Using Classes, design an online address book to keep track of the names, addresses, phone numbers, and dates of birth of family members, close friends, and certain business associates. Your program should be able to handle a maximum of 500 entries.

a. Define a class, addressType, that can store a street address, city, state, and ZIP code. Use the appropriate functions to print and store the address. Also, use constructors to automatically intialize the data members.

b. Define a class extPersonType using the class personType(as shown below), the class dataType (as shown below), and the class addressType. Add a data member to this class to classify the person as a family member, friend, or business associate. Also, add and store the appropriate information. Use constructors to automatically intialize the data members.

c. Define the class addressBookType using the peviously defined classes. An object of the type addressBookType should be able to process a maximum of 500 entries.

The program should perform the following operations:

(i) Load the data into the address book from a disk.
(ii) Sort the address book by last name.
(iii) Search for a person by last name.
(iv) Print the address, phone number, and date of birth (if it exists) of a given person
(v) Print the names of the people whose birthdays are in a given month.
(vi) Print the names of all the people between two last names.
(vii) Depending on the user's request, print the names of all family members friends, or business associates.

class personType
void print() const;
//Function to output the first name and last name
//in the form of firstName lastName.

void setName(string first, string last);
//Function to set firstName and lastName according
//to the parameters.
//Postcondition: firstName = first; lastName = last

string getFirstName() const;
//Function to return the first name.
//Postcondition: The value of the data member firstName
// is returned.

string getLastName() const;
//Function to return the last name.
//Postcondition: The value of the data member lastName
// is returned.

personType(string first = "", string last ="");
//Sets firstName and lastName according to the parameters.
//The default values of the parameters are empty strings.
//Postcondition: firstName = first; lastName = last

string firstName;
string lastName;

class dateType
void setDate (int month, int day, int year);
//Function to set date.
//The data members dMonth, dDay, and dYear are set
//according to the parameters.
//Postcondition: dMonth = monh; dDay = day;
// dYear = year

int getDay() const;
//Function to return the day.
//Postcondition: The value of dDay is returned.

int getMonth() const;
//Function to return the month.
//Postcondition: The value of dMonth is returned.

int getYear() const;
//Function to return the year.
//Postcondition: The value of dYear is returned.

void printDate() const;
//Function to output the date in the form mm-dd-yyyy.

dateType(int month = 1, int day = 1, int year = 1900);
//constructor to set the date
//The data members dMonth, dDay, and dYear are set
//according to the parameters.
//Postcondition: dMonth = month; dDay = day;
// dYear = year
//If no values are specified, the default values are
//used to intialize the data members.

int dMonth; //variable to store the month
int dDay; //variable to store the day
int dYear; //variable to store the year