系统需求
通讯录是一个可以记录亲人、好友信息的工具。
系统中需要实现的功能如下:
-
添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
-
显示联系人:显示通讯录中所有联系人信息
-
删除联系人:按照姓名进行删除指定联系人
-
查找联系人:按照姓名查看指定联系人信息
-
修改联系人:按照姓名重新修改指定联系人
-
清空联系人:清空通讯录中所有信息
-
退出通讯录:退出当前使用的通讯录
-
代码实现:
#include<iostream> #define MAX 1000 using namespace std; struct Person { //名字 string m_Name; //性别 int m_Sex; //年龄 int m_Age; //电话 string m_Phone; //地址 string m_Addr; }; struct Addressbooks { Person personArry[MAX]; //通讯录中当前记录联系人个数 int m_Size; }; 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; } void addPerson(Addressbooks* p) { if (p->m_Size == MAX) { cout << "通讯录已满,无法添加" << endl; system("pause"); system("cls"); return; } else { string name; cout << "请输入姓名:" << endl; cin >> name; p->personArry[p->m_Size].m_Name = name; cout << "请输入性别:1--男 2--女" << endl; int sex = 0; while (true) { cin >> sex; if (sex == 1 || sex == 2) { p->personArry[p->m_Size].m_Sex = sex; break; } else { cout << "您输入的有误,请重新输入" << endl; } } cout << "请输入年龄:" << endl; int age; cin >> age; p->personArry[p->m_Size].m_Age = age; cout << "请输入电话号码:" << endl; string phone; cin >> phone; p->personArry[p->m_Size].m_Phone = phone; cout << "请输入地址:" << endl; string addr; cin >> addr; p->personArry[p->m_Size].m_Addr = addr; p->m_Size++; cout << "添加联系人成功" << endl; system("pause"); system("cls"); } } void showPerson(Addressbooks *p) { if(p->m_Size==0) { cout << "当前没有存放任何信息" << endl; } else { for (int i = 0; i < p->m_Size; i++) { cout << "姓名:"<<p->personArry[i].m_Name << "\t"; cout << "性别:" << (p->personArry[i].m_Sex==1?"男":"女") << "\t"; cout << "年龄:" << p->personArry[i].m_Age << "\t"; cout << "电话:" << p->personArry[i].m_Phone << "\t"; cout << "地址:" << p->personArry[i].m_Addr << endl; } } system("pause"); system("cls"); } int isExist(Addressbooks* p, string name) { for (int i = 0; i < p->m_Size; i++) { if(name==p->personArry[i].m_Name) { return i; } } return -1; } void deletePerson(Addressbooks* p) { cout << "请输入您要删除的人名" << endl; string name; cin >> name; int a=isExist(p,name); if(a!=-1) { for(int i=a;i<p->m_Size;i++) { p->personArry[i] = p->personArry[i + 1]; } p->m_Size--; cout << "删除成功" << endl; } else { cout << "查无此人" << endl; } system("pause"); system("cls"); } void findPerson(Addressbooks* p) { cout << "请输入您要查找的人名" << endl; string name; cin >> name; int a = isExist(p, name); if (a == -1) { cout << "查无此人" << endl; } else { cout << "姓名:"<<p->personArry[a].m_Name << "\t"; cout << "性别:" << p->personArry[a].m_Sex << "\t"; cout << "年龄:" << p->personArry[a].m_Age<< "\t"; cout << "电话:" << p->personArry[a].m_Phone << "\t"; cout << "地址:" << p->personArry[a].m_Addr << "\t"; } system("pause"); system("cls"); } void modifyPerson(Addressbooks* p) { cout << "请输入您想修改的人名" << endl; string name; cin >> name; int a = isExist(p, name); if(a==-1) { cout << "查无此人" << endl; } else { cout << "请输入姓名:" << endl; cin >> name; p->personArry[a].m_Name = name; cout << "请输入性别:1--男 2--女" << endl; int sex = 0; while (true) { cin >> sex; if (sex == 1 || sex == 2) { p->personArry[a].m_Sex = sex; break; } else { cout << "您输入的有误,请重新输入" << endl; } } cout << "请输入年龄:" << endl; int age; cin >> age; p->personArry[a].m_Age = age; cout << "请输入电话号码:" << endl; string phone; cin >> phone; p->personArry[a].m_Phone = phone; cout << "请输入地址:" << endl; string addr; cin >> addr; p->personArry[a].m_Addr = addr; } system("pause"); system("cls"); } void cleanPerson(Addressbooks* p) { cout << "确定要清空您的所有联系人吗?" << endl; cout << "1---是的 2---我再想想" << endl; int a; while (true) { cin >> a; if (a != 1&& a != 2) { cout << "输入有误,请重新输入您的选择" << endl; } else if(a==1) { p->m_Size = 0; cout << "通讯录已清空" << endl; break; } else { cout << "您的数据将保留" << endl; break; } } system("pause"); system("cls"); } int main() { Addressbooks abs; abs.m_Size = 0; int select = 0; while(true) { //菜单的调用 showMenu(); cin >> select; switch (select) { case 1:addPerson(&abs);//添加联系人 break; case 2:showPerson(&abs);//显示联系人 break; case 3:deletePerson(&abs);//删除联系人 break; case 4:findPerson(&abs);//查找联系人 break; case 5:modifyPerson(&abs);//修改联系人 break; case 6:cleanPerson(&abs);//清空联系人 break; case 0://推出通讯录 cout << "欢迎下次使用" << endl; system("pause"); return 0; break; default: break; } } system("pause"); return 0; }