五、设计查找联系人功能
在AddressBook.h头文件中声明一个查找联系人信息是否存在的函数int isExist(pAddressBooks, string);并在AddressBook.cpp源文件中定义相关的功能。其代码如下所示
// 判断联系人是否存在 int isExist(pAddressBooks addrBook, string name) { for (int i = 0; i < addrBook->size; i++) { if (addrBook->personArray[i].name == name) return i; } return -1; return 0; }
在AddressBook.h头文件中声明一个查找联系人信息的函数void findPerson(pAddressBooks); 并在AddressBook.cpp源文件中定义相关的功能。
其查找联系人信息是根据联系人的姓名查找的,先调用isExist函数对联系人信息的是否存在进行判断,如果在通讯录中查找到联系人信息,则显示联系人的相关的信息。
其代码如下所示
// 查找联系人信息 void findPerson(pAddressBooks addrBook) { cout << "输入要查找联系人的姓名: "; string name; cin >> name; int judgeNameIndex = isExist(addrBook, name); if (judgeNameIndex != -1) { cout << "通讯录中姓名是 " << name << " 的联系人的信息如下" << endl; cout << "姓名: " << addrBook->personArray[judgeNameIndex].name << endl; cout << "性别: " << addrBook->personArray[judgeNameIndex].sex << endl; cout << "年龄: " << addrBook->personArray[judgeNameIndex].age << endl; cout << "电话: " << addrBook->personArray[judgeNameIndex].phone << endl; cout << "住址: " << addrBook->personArray[judgeNameIndex].address << endl << endl; } else cout << "通讯录中不存在姓名是 " << name << " 的联系人!!!" << endl; system("pause"); system("cls"); }
在main函数中,在case 3:语句后面调用查找联系人信息的findPerson函数,如下所示
case 3: findPerson(addrBook); // 查找联系人 break;
然后调试结果如下所示
1、先添加联系人信息
2、在选择查找联系人信息
当输入姓名在通讯录中不存在时的情况
当输入姓名在通讯录中存在时的情况
如上图,系统可以正确查找我们刚刚输入的联系人信息,并且可以正确判断输入的姓名在通讯录中是否存在的功能。已经完成了查找联系人功能的设计
六、设计修改联系人功能
在AddressBook.h头文件中声明一个添加修改联系人信息的函数void modifyPerson(pAddressBooks);并在AddressBook.cpp源文件中定义相关的功能。
其修改联系人信息是根据联系人的姓名查找的,先调用isExist函数对联系人信息的是否存在进行判断,如果在通讯录中查找到联系人信息,则修改联系人的相关的信息。
其代码如下所示
// 修改联系人信息 void modifyPerson(pAddressBooks addrBook) { cout << "输入要修改联系人的姓名: "; string name; cin >> name; int judgeNameIndex = isExist(addrBook, name); if (judgeNameIndex != -1) { cout << "输入姓名是 " << name << " 的信息" << endl; string name; cout << "输入姓名: "; cin >> name; addrBook->personArray[judgeNameIndex].name = name; string sex; cout << "输入性别: "; cin >> sex; addrBook->personArray[judgeNameIndex].sex = sex; int age; cout << "输入年龄: "; cin >> age; addrBook->personArray[judgeNameIndex].age = age; string phone; cout << "输入联系电话: "; cin >> phone; addrBook->personArray[judgeNameIndex].phone = phone; string address; cout << "输入地址: "; cin >> address; addrBook->personArray[judgeNameIndex].address = address; cout << "修改联系人信息成功!!!" << endl; } else cout << "通讯录中不存在姓名是 " << name << " 的联系人!!!" << endl; system("pause"); system("cls"); }
在main函数中,在case 4:语句后面调用显示联系人信息的showPerson函数,如下所示
case 4: modifyPerson(addrBook); // 修改联系人 break;
然后调试结果如下所示
1、先添加联系人信息
2、在选择修改联系人信息
当输入姓名在通讯录中不存在时的情况
当输入姓名在通讯录中存在时的情况
如上图,系统可以正确修改我们刚刚输入的联系人信息,并且可以正确判断输入的姓名在通讯录中是否存在的功能。已经完成了修改联系人功能的设计。
七、设计删除联系人功能
在AddressBook.h头文件中声明一个删除联系人信息的函数void deletePerosn(pAddressBooks);并在AddressBook.cpp源文件中定义相关的功能。
其删除联系人信息是根据联系人的姓名查找的而且是删除一个联系人的信息,先调用isExist函数对联系人信息的是否存在进行判断,如果在通讯录中查找到联系人信息,则删除联系人的相关的信息。
其代码如下所示
// 删除联系人信息 void deletePerosn(pAddressBooks addrBook) { cout << "输入要删除联系人的姓名: "; string name; cin >> name; int judgeNameIndex = isExist(addrBook, name); if (judgeNameIndex != -1) { for (int i = judgeNameIndex; i < addrBook->size; i++) addrBook->personArray[i] = addrBook->personArray[i + 1]; addrBook->size--; cout << "删除联系人是 " << name << " 成功!!!" << endl; } else cout << "通讯录中不存在姓名是 " << name << " 的联系人!!!" << endl; system("pause"); system("cls"); }
在main函数中,在case 5:语句后面调用显示联系人信息的showPerson函数,如下所示
case 5: deletePerosn(addrBook); // 删除联系人 break;
然后调试结果如下所示
1、先添加两个联系人信息,两个人的联系信息如下
2、在选择修改联系人信息
当输入姓名在通讯录中不存在时的情况
当输入姓名在通讯录中存在时的情况
如上图,系统可以正删除改我们刚刚输入的联系人信息,并且可以正确判断输入的姓名在通讯录中是否存在的功能。已经完成了删除联系人功能的设计。
八、设计清空联系人功能
在AddressBook.h头文件中声明一个清空联系人信息的函数void cleanPerson(pAddressBooks);并在AddressBook.cpp源文件中定义相关的功能。
其清空联系人信息是删除通讯录中所有的联系人信息。
其代码如下所示
// 清空联系人信息 void cleanPerson(pAddressBooks addrBook) { addrBook->size = 0; cout << "通讯录的联系人信息已全部清空!!!" << endl; system("pause"); system("cls"); }
在main函数中,在case 6:语句后面调用显示联系人信息的showPerson函数,如下所示
case 6: cleanPerson(addrBook); // 清空联系人 break;
然后调试结果如下所示
1、先添加两个联系人信息,两个人的联系信息如下
2、在选择清空联系人信息,其结果如下
如上图,系统可以正清空我们刚刚输入的联系人信息,完成了清空联系人功能的设计。
总结
到这里我们完成了通讯录系统功能的设计。在设计的工程中,我们主要使用了C语言的函数,循环、指针、结构体等知识,并使用了简单的C++语言的输入输出语句。