通讯录管理系统(C++练手)

    技术2022-07-11  80

    功能

    添加联系人:添加新人,信息包括姓名、性别、年龄、联系电话、家庭住址,最多纪录1000人;显示联系人:显示所有联系人信息;删除联系人:按照姓名删除指定联系人;查找联系人:按照姓名查看指定联系人;修改联系人:按照姓名重新修改指定联系人;清空联系人:清空通讯录所有信息;退出通讯录:退出当前使用的通讯录; #include <iostream> using namespace std; //Windows中: // system("pause") 请按任意键继续;Linux无法使用; // system("cls") 清屏操作; //Linux中: // 使用 pause() 需要包含头文件 #include <unistd.h> ; #define MAX 1000 //显示菜单界面 void showMenu() { cout << "***********************" << endl; cout << "***** 1、添加联系人 *****" << endl; cout << "***** 2、显示联系人 *****" << endl; cout << "***** 3、删除联系人 *****" << endl; cout << "***** 4、查找联系人 *****" << endl; cout << "***** 5、修改联系人 *****" << endl; cout << "***** 6、清空联系人 *****" << endl; cout << "***** 0、退出通讯录 *****" << endl; cout << "***********************" << endl; } //联系人结构体 struct person { string name; int sex; //1.男;2.女 int age; string phone; string address; }; //通讯录结构体 struct book { person personArr[MAX]; int size; //通讯录中的人数 }; //1、添加联系人 void addPerson(book *arr) //(book arr[])也可以 { if (arr->size == MAX) { cout << "通讯录已满,无法添加!" << endl; } else { cout << "请输入姓名:"; cin >> arr->personArr[arr->size].name; cout << "请输入性别(1--男,2--女):"; int sex = 0; while (1) { cin >> sex; if (sex == 1 || sex == 2) { arr->personArr[arr->size].sex = sex; break; } else { cout << "输入错误,请重新输入:" << endl; } } cout << "请输入年龄:"; cin >> arr->personArr[arr->size].age; cout << "请输入电话:"; cin >> arr->personArr[arr->size].phone; cout << "请输入地址:"; cin >> arr->personArr[arr->size].address; arr->size++; cout << "添加成功!" << endl; } // system("pause"); // system("cls"); } //2、显示联系人 void showPerson(book *arr) { if (arr->size == 0) { cout << "当前通讯录为空!" << endl; } else { for (int i = 0; i < arr->size; i++) { cout << "姓名:" << arr->personArr[i].name << "\t" << "性别:" << (arr->personArr[i].sex == 1 ? "男" : "女") << "\t" << "年龄:" << arr->personArr[i].age << "\t" << "电话:" << arr->personArr[i].phone << "\t" << "地址:" << arr->personArr[i].address << endl; } } // system("pause"); // system("cls"); } //检测联系人是否存在 int checkPerson(book *arr, string name) { for (int i = 0; i < arr->size; i++) { if (arr->personArr[i].name == name) { return i; } } return -1; } //3、删除联系人 void deletePerson(book *arr) { string name; cout << "请输入删除联系人姓名:"; cin >> name; int index = checkPerson(arr, name); if (index == -1) { cout << "该联系人不存在!" << endl; } else { for (int i = index; i < arr->size - 1; i++) { arr->personArr[i] = arr->personArr[i + 1]; } arr->size--; cout << "删除成功!" << endl; } // system("pause"); // system("cls"); } //4、查找联系人 void findPerson(book *arr) { string name; cout << "请输入查找联系人姓名:"; cin >> name; int index = checkPerson(arr, name); if (index == -1) { cout << "该联系人不存在!" << endl; } else { cout << "姓名:" << arr->personArr[index].name << "\t" << "性别:" << (arr->personArr[index].sex == 1 ? "男" : "女") << "\t" << "年龄:" << arr->personArr[index].age << "\t" << "电话:" << arr->personArr[index].phone << "\t" << "地址:" << arr->personArr[index].address << endl; } // system("pause"); // system("cls"); } //5、修改联系人 void modifyPerson(book *arr) { string name; cout << "请输入修改联系人姓名:"; cin >> name; int index = checkPerson(arr, name); if (index == -1) { cout << "该联系人不存在!" << endl; } else { cout << "请输入姓名:"; cin >> arr->personArr[index].name; cout << "请输入性别(1--男,2--女):"; int sex = 0; while (1) { cin >> sex; if (sex == 1 || sex == 2) { arr->personArr[arr->size].sex = sex; break; } else { cout << "输入错误,请重新输入:" << endl; } } cout << "请输入年龄:"; cin >> arr->personArr[index].age; cout << "请输入电话:"; cin >> arr->personArr[index].phone; cout << "请输入地址:"; cin >> arr->personArr[index].address; cout << "修改成功!" << endl; } // system("pause"); // system("cls"); } //6、清空联系人 void clearPerson(book *arr) { cout << "是否真的要清空通讯录?(y--是,n--否)" << endl; char option = 0; while (1) { cin >> option; if (option == 'y') { arr->size = 0; cout << "已清空通讯录!" << endl; return; } else if (option == 'n') { return; } else { cout << "输入错误请重新输入" << endl; } } // system("pause"); // system("cls"); } int main() { int num; book ab; ab.size = 0; while (1) { // system("clr"); showMenu(); cin >> num; switch (num) { case 1: //1、添加联系人 addPerson(&ab); break; case 2: //2、显示联系人 showPerson(&ab); break; case 3: //3、删除联系人 deletePerson(&ab); break; case 4: //4、查找联系人 findPerson(&ab); break; case 5: //5、修改联系人 modifyPerson(&ab); break; case 6: //6、清空联系人 clearPerson(&ab); break; case 0: //0、退出通讯录 cout << "谢谢使用!再见!" << endl; // system("pause"); return 0; break; default: break; } } return 0; }
    Processed: 0.011, SQL: 9