09x通讯录管理系统

admin 2025年2月8日13:02:35评论5 views字数 5530阅读18分26秒阅读模式

关注公众号,后台回复 找书+ C++Primer 获取C++相关电子书。

系统需求

通讯录是一个可以记录亲人、好友信息的工具。 本教程主要利用C++来实现一个通讯录管理系统 系统中需要实现的功能如下:

  • 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址)最多记录1000人
  • 显示联系人:显示通讯录中所有联系人信息
  • 删除联系人:按照姓名进行删除指定联系人
  • 查找联系人:按照姓名查看指定联系人信息
  • 修改联系人:按照姓名重新修改指定联系人
  • 清空联系人:清空通讯录中所有信息
  • 退出通讯录:退出当前使用的通讯录

新建项目

09x通讯录管理系统
image-20250207115820092

菜单功能

添加已进入终端的菜单,输出所有可以实现的功能,暂时先不写功能。

// AddressBookManagementSystem.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include<iostream>usingnamespacestd;voidshowMenu()//显示菜单{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;}intmain(){ showMenu();}
09x通讯录管理系统
image-20250207120910016

退出功能

先系欸一个函数,用于退出时显示退出系统的提示“欢迎下次使用”。

voidexitSystem()//退出系统{cout << "欢迎下次使用" << endl; system("pause");exit(0);  //退出程序,全部退出}

然后再主程序中根据选择,执行相应的功能。

intmain(){int select = 0//创建用户选择的变量while (true) {  showMenu(); //调用显示菜单函数cin >> select; //用户输入选择switch (select)  {case1//添加联系人  功能还没写好,先暂时breakbreak//跳出当前switch循环,继续下一次while循环,但是不退出程序case2//显示联系人break;case3//删除联系人break;case4//查找联系人break;case5//修改联系人break;case6//清空联系人break;case0//退出系统   exitSystem();break;default:break;  } } system("pause");return0;}
09x通讯录管理系统
image-20250207131030350

添加联系人

功能描述: 实现添加联系人功能,联系人上限为1000人,联系人信息包括(姓名、性别、年龄、联系电话、家庭住址) 添加联系人实现步聚:

  • 设计联系人结构体
  • 设计通讯录结构体
  • main函数中创建通讯录
  • 封装添加联系人函数
  • 测试添加联系人功能

设计联系人结构体

structPersonConnect {//通讯录结构体string PName; //姓名int PSex; //性别 1 男 2 女int PAge; //年龄string PPhone; //电话string PAddress; //住址};structAddDressBooks {    PersonConnect personArray[1000]; //通讯录中保存1000个联系人int pSize; //通讯录中人员个数 };

创建通讯录

voidaddPerson(AddDressBooks * abs)//添加联系人{//判断通讯录是否已满,如果满了,提示已满,否则添加联系人if (abs->pSize == 1000) {cout << "通讯录已满,无法添加" << endl;return; }else {//添加联系人string name;cout << "请输入姓名:" << endl;cin >> name;abs->personArray[abs->pSize].PName = name;//添加联系人性别int sex;cout << "请输入性别:1男2女" << endl;while (true)  {cin >> sex;if (sex == 1 || sex == 2)//1男2女 1 2 为合法输入    {abs->personArray[abs->pSize].PSex = sex;break;   }cout << "输入有误,请重新输入" << endl  }//添加联系人年龄int age;cout << "请输入年龄:" << endl;cin >> age;abs->personArray[abs->pSize].PAge = age;//添加联系人电话string phone;cout << "请输入电话:" << endl;cin >> phone;abs->personArray[abs->pSize].PPhone = phone;//添加联系人地址string address;cout << "请输入地址:" << endl;cin >> address;abs->personArray[abs->pSize].PAddress = address;abs->pSize++; //增加通讯录中人员个数cout << "添加成功" << endl; }} ---case1//添加联系人   addPerson(&abs); //通过地址传递,可以利用abs的地址,直接操作abs的数据break//跳出当前switch循环,继续下一次while循环,但是不退出程序
09x通讯录管理系统
image-20250207133627313

觉得滚动这么长,太难看了,加一个清屏功能。

cout << "添加成功" << endl;system("pause"); //按任意键继续system("cls"); //清屏

显示联系人

voidshowPerson(AddDressBooks* abs)//显示联系人{//判断通讯录中人员个数是否为0,如果为0,提示记录为空,否则显示联系人信息if (abs->pSize == 0) {cout << "当前记录为空" << endl; }else {for (int i = 0; i < abs->pSize; i++)  {cout << "姓名:" << abs->personArray[i].PName << "t";cout << "性别:" << (abs->personArray[i].PSex == 1 ? "男" : "女") << "t"//三目运算符cout << "年龄:" << abs->personArray[i].PAge << "t";cout << "电话:" << abs->personArray[i].PPhone << "t";cout << "地址:" << abs->personArray[i].PAddress << endl//最后endl能控制都在一行  } } system("pause"); system("cls"); //清屏}---case2//显示联系人showPerson(&abs); 
09x通讯录管理系统
image-20250207134421381

查找联系人

intisExist(AddDressBooks* absstring name)//判断联系人是否存在,存在返回在通讯录中的位置,不存在返回-1{for (int i = 0; i < abs->pSize; i++) {if (abs->personArray[i].PName == name)  {return i;  } }return-1;}voidfindPerson(AddDressBooks* abs)//查找联系人{cout << "请输入查找的姓名:" << endl;string name;cin >> name;int ret = isExist(abs, name);if (ret != -1) {cout << "姓名:" << abs->personArray[ret].PName << "t";cout << "性别:" << (abs->personArray[ret].PSex == 1 ? "男" : "女") << "t"//三目运算符cout << "年龄:" << abs->personArray[ret].PAge << "t";cout << "电话:" << abs->personArray[ret].PPhone << "t";cout << "地址:" << abs->personArray[ret].PAddress << endl//最后endl能控制都在一行 }else {cout << "查无此人" << endl; } system("pause"); system("cls"); //清屏}---case4//查找联系人   findPerson(&abs);
09x通讯录管理系统
image-20250207135915495
09x通讯录管理系统
image-20250207135936006
09x通讯录管理系统
image-20250207135949330

删除联系人功能

---case3//删除联系人    deletePerson(&abs);break;
09x通讯录管理系统
image-20250207134833210
09x通讯录管理系统
image-20250207140156897
09x通讯录管理系统
image-20250207140208251
09x通讯录管理系统
image-20250207140220701

修改联系人

voidmodifyPerson(AddDressBooks* abs)//修改联系人{cout << "请输入修改的姓名:" << endl;string name;cin >> name;int ret = isExist(abs, name);if (ret != -1) {   //添加联系人string name;cout << "请输入姓名:" << endl;cin >> name;abs->personArray[ret].PName = name;//添加联系人性别int sex;cout << "请输入性别:1男2女" << endl;while (true)  {cin >> sex;if (sex == 1 || sex == 2)//1男2女 1 2 为合法输入    {abs->personArray[ret].PSex = sex;break;   }cout << "输入有误,请重新输入" << endl;  }//添加联系人年龄int age;cout << "请输入年龄:" << endl;cin >> age;abs->personArray[ret].PAge = age;//添加联系人电话string phone;cout << "请输入电话:" << endl;cin >> phone;abs->personArray[ret].PPhone = phone;//添加联系人地址string address;cout << "请输入地址:" << endl;cin >> address;abs->personArray[ret].PAddress = address;cout << "修改成功" << endl; }else {cout << "查无此人" << endl; } system("pause"); //按任意键继续 system("cls"); //清屏}
09x通讯录管理系统
image-20250207140720975
09x通讯录管理系统
image-20250207141053846
09x通讯录管理系统
image-20250207140819263
09x通讯录管理系统
image-20250207141007070

清空联系人

voidcleanPerson(AddDressBooks* abs)//清空联系人{abs->pSize = 0//将通讯录中人员个数置为0 不读取,没有标,但是会在内存,访问不到就行cout << "通讯录已清空" << endl; system("pause"); system("cls"); //清屏}
09x通讯录管理系统
image-20250207141233001

打包项目

09x通讯录管理系统
image-20250207141915893

配置管理器改为Release,选择生成 > 生成解决方案 或按下快捷键Ctrl+Shift+B来生成项目。

09x通讯录管理系统
image-20250207142038241

🔔 想要获取更多网络安全与编程技术干货?

关注 泷羽Sec-静安 公众号,与你一起探索前沿技术,分享实用的学习资源与工具。我们专注于深入分析,拒绝浮躁,只做最实用的技术分享!💻

扫描下方二维码,马上加入我们,共同成长!🌟

👉 长按或扫描二维码关注公众号

09x通讯录管理系统

或者直接回复文章中的关键词,获取更多技术资料与书单推荐!📚

原文始发于微信公众号(泷羽Sec-静安):09x通讯录管理系统

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年2月8日13:02:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   09x通讯录管理系统https://cn-sec.com/archives/3712673.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息