用最简单的方法实现“通信录管理系统”

it2023-07-15  81

#include <iostream> #include <string> using namespace std; const int MAX = 1000; struct SinglePerson { string name; string PhoneNumber; string sex; int age; }; struct PhoneBook { SinglePerson Member[MAX]; int Sequence; }; // 1. 显示菜单选项 void MenuShow() { cout << "******************************" << endl; cout << "***** 0 - 清空整个通讯录 *****" << endl; cout << "***** 1 - 添加新联系人 *****" << endl; cout << "***** 2 - 显示所有联系人 *****" << endl; cout << "***** 3 - 查找指定联系人 *****" << endl; cout << "***** 4 - 删除指定联系人 *****" << endl; cout << "***** 5 - 退出通讯录 *****" << endl; cout << "***** 6 - 修改联系人信息 *****" << endl; cout << "******************************" << endl; } // 2. 添加新联系人 void AddPerson(struct PhoneBook* Book) { // <1> 姓名 string NewName; cout << "请输入姓名:"; cin >> NewName; Book->Member[Book->Sequence].name = NewName; // <2> 电话号码 string NewPhoneNumber; cout << "请输入电话号码:"; cin >> NewPhoneNumber; Book->Member[Book->Sequence].PhoneNumber = NewPhoneNumber; // <3> 性别 string NewSex; cout << "请输入性别:"; cin >> NewSex; while (1) { if (NewSex == "男" || NewSex == "女") { Book->Member[Book->Sequence].sex = NewSex; break; } else { cout << "输入无效请重新输入" << endl; } } // <4> 年龄 int NewAge; cout << "请输入年龄:"; cin >> NewAge; Book->Member[Book->Sequence].age = NewAge; // <5> 更新通讯录人员个数 Book->Sequence++; cout << "录入成功" << endl; } // 3. 显示所有联系人 void ShowAllMember(struct PhoneBook* Book) { if (Book->Sequence == 0) { cout << "通讯录为空" << endl; } else { for (int i = 0; i < Book->Sequence; i++) { cout << "姓名:" << Book->Member[i].name << '\t'; cout << "性别:" << Book->Member[i].sex << '\t'; cout << "年龄:" << Book->Member[i].age << '\t'; cout << "电话:" << Book->Member[i].PhoneNumber << endl; } } } // 4. 修改指定联系人的信息 void ChangeMumberInfor(struct PhoneBook* Book, string name) { for (int i = 0; i < Book->Sequence; i++) { if (Book->Member[i].name == name) { cout << "姓名:" << '\t'; cin >> Book->Member[i].name; cout << "性别:" << '\t'; cin >> Book->Member[i].sex; cout << "年龄:" << '\t'; cin >> Book->Member[i].age; cout << "电话:" << '\t'; cin >> Book->Member[i].PhoneNumber; cout << endl; } else { cout << "查找失败" << endl; } } } // 5_1. 查找指定联系人的位置 int SearchMumber(struct PhoneBook* Book, string name) { int i = 0; for (; i < Book->Sequence; i++) { if (Book->Member[i].name == name) { return i; } } if (i >= Book->Sequence) { return -1; } } // 5_2. 删除指定联系人 void DeleteMumber(struct PhoneBook* Book, string name) { int temp = 0; if (int i = SearchMumber(Book, name); i == -1) { cout << "查无此人" << endl; return; } for (int i = SearchMumber(Book, name); i < Book->Sequence; i++) { Book->Member[i] = Book->Member[i + 1]; // 数据前移 } Book->Sequence--; cout << "删除成功" << endl; } // 6. 清空联系人 void ClearPerson(struct PhoneBook* Book) { Book->Sequence = 0; // 进行逻辑清空 cout << "清空成功" << endl; } void main() { PhoneBook abs; abs.Sequence = 0; int ret = 0; int work = 0; string name; while (1) { MenuShow(); cin >> work; switch (work) { case 0: // 清空所有联系人 ClearPerson(&abs); break; case 1: // 添加新联系人 AddPerson(&abs); break; case 2: // 显示所有联系人 ShowAllMember(&abs); break; case 3: // 查找指定联系人 { cout << "请输入想要查找的指定联系人:"; cin >> name; ret = SearchMumber(&abs, name); cout << (ret == -1 ? "查无此人" : "找到该联系人") << endl; break; } case 4: // 删除指定联系人 { cout << "请输入想要删除的指定联系人:"; cin >> name; DeleteMumber(&abs, name); break; } case 5: // 退出通讯录 { return; } case 6: // 修改联系人信息 { cout << "请输入想要修改的指定联系人:"; cin >> name; ChangeMumberInfor(&abs, name); break; } default: break; } system("pause"); // 输入任意键结束本次循环 system("cls"); // 清空屏幕从头再来 } }

 

最新回复(0)