<>通讯录管理系统

敲了几个小时代码,终于完成了,啊~~~途中遇到种种bug,但是经过一次又一次的调试,还是成功做出了如下几个功能:

<>0、退出通讯录

<>1、添加联系人

<>2、显示联系人

<>3、删除联系人

<>4、查找联系人

<>5、修改联系人

<>6、清空联系人

初学C++没多久,这也是第一次尝试做,代码还有待优化,适合初学者借鉴,噗哈哈。也希望能有热心大佬、小佬们能帮我指出错误,自己测试了蛮多,应该没太大问题。

源码如下,需要的小伙伴自行拿走,当然能点个赞鼓励鼓励最好啦!
#include<iostream> using namespace std; #include<string> #define Max 100
//创建联系人结构体 struct person { string name; int age = 0; int sex = 0;//1->男 2->女
string phone; }; //创建通讯录结构体 struct addressBooks { //联系人结构体数组 struct person
personArr[Max]; //通讯录中当前记录联系人个数 int size = 0; }; 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; }
//1、添加联系人 void addPerson(struct addressBooks* abs) { //通讯录已满,就不能再添加 if (abs->
size== Max) { cout << "通讯录已满,无法添加!" << endl; return; } else {//添加具体联系人 //姓名 cout
<< "请输入姓名:" << endl; string name; cin >> name; abs->personArr[abs->size].name =
name; //性别 cout << "请输入性别:" << endl; cout << "1---男" << endl; cout << "2---女" <<
endl; int sex = 0; while (1) { cin >> sex; if (sex == 1 || sex == 2) { abs->
personArr[abs->size].sex = sex; break; } cout << "输入有误,请重新输入!" << endl; } //年龄
cout<< "请输入年龄:" << endl; int age = 0; cin >> age; abs->personArr[abs->size].age
= age; //电话 cout << "请输入电话:" << endl; string phone; cin >> phone; abs->personArr
[abs->size].phone = phone; //更新一下通讯录中成员人数 abs->size++; cout << "添加成功!" << endl;
system("pause");//暂停 system("cls");//清屏 } } //检测联系人是否存在 int detectPerson(struct
addressBooks* abs, string name) { for (int i = 0; i < abs->size; i++) { if (name
== abs->personArr[i].name) {//找到联系人 return i;// i 返回联系人再数组中的位置 } } return -1;
//未找到联系人返回 -1 } //2、显示联系人 void showBooks(struct addressBooks abs) { if (abs.size
== 0) { cout << "联系人为空!" << endl; } else { cout << "当前联系人名单:" << endl; for (int
i= 0; i < abs.size; i++) { cout << "姓名:" << abs.personArr[i].name << "\t性别:" <<
(abs.personArr[i].sex==1?"男":"女")//=1则输出 男 否则输出 女 << "\t年龄:" << abs.personArr[i]
.age << "\t电话:" << abs.personArr[i].phone << endl; } } system("pause");//暂停
system("cls");//清屏 } //3、删除联系人人 void deletePerson(struct addressBooks* abs) {
cout<< "请输入要删除联系人姓名:" << endl; string name; int y = 0; cin >> name; y=
detectPerson(abs, name);//检测联系人是否存在 if (y != -1) {//找到联系人,进行删除 for (int i = y; i
< abs->size; i++) { //数据前移一位 abs->personArr[i] = abs->personArr[i + 1]; } abs->
size--;//更新通讯录人数 cout << "删除成功!" << endl; } else {//未找到联系人 cout << "未找到联系人" <<
endl; } system("pause");//暂停 system("cls");//清屏 } //4、查找联系人 void findPerson(
struct addressBooks abs) { string name; int n = 0;//用来存0、1 0代表没找到联系人,1代表找到联系人
cout<< "输入要查找联系人姓名:"; cin >> name; for (int i = 0; i < abs.size; i++) { if (name
== abs.personArr[i].name) {//找到联系人 cout << "姓名:" << abs.personArr[i].name <<
"\t性别:" << (abs.personArr[i].sex == 1 ? "男" : "女")//=1则输出 男 否则输出 女 << "\t年龄:" <<
abs.personArr[i].age << "\t电话:" << abs.personArr[i].phone << endl; n = 1; } if
(i+1 == abs.size && n == 1) {//循环找完才结束函数,可将名字相同的联系人都找出,n=1说明找到了联系人 system(
"pause");//暂停 system("cls");//清屏 } if (i + 1 == abs.size && n == 0) {//n=0
说明未找到联系人 cout << "未找到联系人!" << endl; system("pause");//暂停 system("cls");//清屏 } }
} //5、修改联系人 void alterPerson(struct addressBooks* abs) { cout <<
"请输入要修改的联系人的姓名:" << endl; string name; int y = 0; cin >> name; y = detectPerson(
abs, name);//检测联系人是否存在 if (y != -1) {//找到联系人,进行修改 //姓名 cout << "请输入姓名:" << endl;
string name; cin >> name; abs->personArr[y].name = name; //性别 cout << "请输入性别:"
<< endl; cout << "1---男" << endl; cout << "2---女" << endl; int sex = 0; while (1
) { cin >> sex; if (sex == 1 || sex == 2) { abs->personArr[y].sex = sex; break;
} cout << "输入有误,请重新输入!" << endl; } //年龄 cout << "请输入年龄:" << endl; int age = 0;
cin>> age; abs->personArr[y].age = age; //电话 cout << "请输入电话:" << endl; string
phone; cin >> phone; abs->personArr[y].phone = phone; cout << "修改成功!" << endl; }
else {//未找到联系人! cout << "未找到联系人!" << endl; } system("pause");//暂停 system("cls");
//清屏 } //6、清空联系人 void emptyBooks(struct addressBooks *abs) { for (int i = 0; i
<= abs->size; i++) { //数据前移一位 abs->personArr[i] = abs->personArr[i + 1]; } abs->
size= 0;//清空后联系人为0个; cout << "联系人已清空!" << endl; system("pause"); system("cls");
} int main() { //创建通讯录 struct addressBooks abs; //初始化通讯录中当前人数 abs.size = 0; int
select= 0; while (1) { showMenu();//功能菜单显示 cout << "选择要使用的功能(输入序号):" << endl;
cin>> select; if (select >=0 && select <7) { switch (select) { case 1:addPerson(
&abs); //1、添加联系人 break; case 2:showBooks(abs); //2、显示联系人 break; case 3:
deletePerson(&abs); //3、删除联系人 break; case 4:findPerson(abs); //4、查找联系人 break;
case 5:alterPerson(&abs); //5、修改联系人 break; case 6:emptyBooks(&abs); //6、清空联系人
break; case 0: { //0、退出通讯录 cout << "欢迎下次使用!" << endl; system("pause"); return 0;
} } } else { cout << "没有这个选项!请重新输入!" << endl; system("pause"); system("cls"); }
} return 0; }

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信