|
//PhoneBook01.cpp #include <iostream.h> #include <string.h> int const MAX_LEN = 10; const char *testNames[] = {"Bob", "Tom", "Ann", "Ron", "Ben", "Ken", "Rob", "Sam", "Don", "Dan", "Tim"}; const int MAX_NAMES = sizeof(testNames)/sizeof(testNames[0]); const char *testPhones[] = {"111-1111", "222-2222", "333-3333", "444-4444"}; const int MAX_PHONES = sizeof(testPhones)/sizeof(testPhones[0]); const char *testGroups[] = {"111-1111", "222-2222", "333-3333", "444-4444"}; const int MAX_GROUPS = sizeof(testGroups)/sizeof(testGroups[0]); struct CPhoneEntry { char name[MAX_LEN+1]; char phone[14+1]; char group[10+1]; int key; CPhoneEntry *next; }; class CPhoneBook { private: CPhoneEntry *first; CPhoneEntry *last; int count; public: CPhoneBook(void); bool insertAtEnd(char name[], char phone[], char group[], int key); void display(void); CPhoneBook(char ch); //~CPhoneBook(void); CPhoneEntry * searchByName(char name[]); void sortByName(void); bool insert(CPhoneEntry entry); bool modifyPhone(char name[], char newPhone[]); }; void CPhoneBook::display(void) { CPhoneEntry *p; cout << "Phone Book[" << count << "]\n"; p = first; while (p != NULL) { cout << p->name << endl; cout << p->phone << endl; cout << p->group << endl; cout << p->key << endl; cout << "--------\n"; p = p->next; }; } bool CPhoneBook::insertAtEnd(char name[], char phone[], char group[], int key) { CPhoneEntry *p; p = new CPhoneEntry; if (NULL == p) return false; strcpy(p->name, name); strcpy(p->phone, phone); strcpy(p->group, group); p->key = key; p->next = NULL; if (NULL == first) { first = p; last = p; } else { last->next = p; last = p; } count++; return true; } void testInsertAtEnd(void) { CPhoneBook myBook; myBook.display(); myBook.insertAtEnd("John", "231-7000", "friend", 1); myBook.display(); myBook.insertAtEnd("Tom", "231-7001", "enemy", 1); myBook.display(); } CPhoneBook::CPhoneBook(void) { count = 0; first = NULL; last = NULL; } void main(void) { testInsertAtEnd(); } |