news 2026/4/23 4:58:58

学C++第五天_【通讯录管理系统】

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学C++第五天_【通讯录管理系统】

例题:通讯录管理系统

通讯录是一个可以记录亲人、好友信息的工具。

系统中需要实现的功能如下:

  1. 添加联系人:向通讯录中添加新人,信息包括(姓名、性别、年龄、联系电话、家庭住址),最多记录1000人;
  2. 显示联系人:显示通讯录中所有联系人信息;
  3. 删除联系人:按照姓名进行删除指定联系人;
  4. 查找联系人:按照姓名查看指定联系人信息;
  5. 修改联系人:按照姓名重新修改指定联系人;
  6. 清空联系人:清空通讯录中所有信息;
  7. 退出通讯录:退出当前使用的通讯录;
#include<iostream> using namespace std; #include<string> #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 << "***********************" << endl; } struct Person { string m_Name; int m_Sex; int m_Age; string m_Phone; string m_Address; }; struct Addressbooks { //通讯录中保存的联系人数组 struct Person personArray[MAX]; //当前通讯录保存的人数 int m_Size; }; //1.添加联系人 void addPerson(Addressbooks* abs) { //判断通讯录是否已满 if (abs->m_Size == MAX) { cout << "通讯录已满,无法添加!" << endl; return; } else { //姓名 string name; cout << "请输入姓名:" << endl; cin >> name; abs->personArray[abs->m_Size].m_Name = name; //性别 cout << "请输入性别:" << endl; cout << "1——男" << endl; cout << "2——女" << endl; int sex = 0; while (1) { cin >> sex; if (sex == 1 || sex == 2) { abs->personArray[abs->m_Size].m_Sex = sex; break; } else { cout << "请输入有效数字:" << endl; } } //年龄 cout << "请输入年龄:" << endl; int age = 0; cin >> age; abs->personArray[abs->m_Size].m_Age=age; //电话 cout << "请输入号码:" << endl; string phone; cin >> phone; abs->personArray[abs->m_Size].m_Phone=phone; //家庭住址 cout << "请输入家庭住址:" << endl; string address; cin >> address; abs->personArray[abs->m_Size].m_Address = address; //更新通讯录人数 abs->m_Size++; cout << "添加成功" << endl; system("pause"); system("cls"); } } //2.显示联系人 void showPerson(Addressbooks* abs) { if (abs->m_Size == 0) { cout << "当前记录为空" << endl; } else { for (int i = 0; i < abs->m_Size; i++) { cout << "姓名:" << abs->personArray[i].m_Name << "\t"; cout << "性别:" << (abs->personArray[i].m_Sex==1?"男":"女") << "\t"; cout << "年龄:" << abs->personArray[i].m_Age << "\t"; cout << "联系方式:" << abs->personArray[i].m_Phone << "\t"; cout << "住址:" << abs->personArray[i].m_Address << endl; } } system("pause"); system("cls"); } //检测联系人是否存在 int isExist(Addressbooks*abs,string name) { for (int i = 0; i < abs->m_Size; i++) { if (abs->personArray[i].m_Name == name) { return i;//找到,返回此人数组编号 } } return -1;//未找到,返回-1 } //3.删除联系人 void deletePerson(Addressbooks* abs) { cout << "请输入删除联系人的姓名:" << endl; string name; cin >> name; int ret = isExist(abs, name); if (ret != -1) { for (int i = ret; i < abs->m_Size; i++) { abs->personArray[i] = abs->personArray[i + 1]; } abs->m_Size--; cout << "删除成功" << endl; } else { cout << "未找到该联系人" << endl; } system("pause"); system("cls"); } //4.查找联系人 void findPerson(Addressbooks* abs) { cout << "请输入查找联系人的姓名:" << endl; string name; cin >> name; int ret = isExist(abs, name); if (ret != -1) { cout << "姓名:" << abs->personArray[ret].m_Name << "\t"; cout << "性别:" << (abs->personArray[ret].m_Sex==1?"男":"女") << "\t"; cout << "年龄:" << abs->personArray[ret].m_Age << "\t"; cout << "号码:" << abs->personArray[ret].m_Phone << "\t"; cout << "住址:" << abs->personArray[ret].m_Address << endl; } else { cout << "未找到该联系人" << endl; } system("pause"); system("cls"); } //5.修改指定联系人 void modifyPerson(Addressbooks* abs) { cout << "请输入修改联系人的姓名:" << endl; string name; cin >> name; int ret = isExist(abs, name); if (ret != -1) { string name; cout << "姓名:" << endl; cin >> name; abs->personArray[ret].m_Name = name; int sex = 0; cout << "性别:" << endl; cout << "1——男" << endl; cout << "2——女" << endl; while (1) { cin >> sex; if (sex == 1 || sex == 2) { abs->personArray[ret].m_Sex = sex; break; } cout << "请输入有效数字:" << endl; } int age = 0; cout << "年龄:" << endl; cin >> age; abs->personArray[ret].m_Age = age; string number ; cout << "电话:" << endl; cin >> number; abs->personArray[ret].m_Phone = number; string address; cout << "住址:" << endl; cin >> address; abs->personArray[ret].m_Address = address; cout << "修改成功" << endl; } else { cout << "未找到该联系人" << endl; } system("pause"); system("cls"); } //6.清空联系人 void cleanPerson(Addressbooks* abs) { int justify; cout << "确定清空所有联系人?" << endl; cout << "1——确定" << endl; cout << "2——取消" << endl; while (1) { cin >> justify; if (justify == 1) { abs->m_Size = 0; cout << "通讯录已清空" << endl; break; } else if (justify == 2) { break; } cout << "请输入有效数字" << endl; } system("pause"); system("cls"); } int main() { //创建通讯录结构体变量 Addressbooks abs; //初始化通讯录中当前人员的个数 abs.m_Size = 0; int select ; while (1) { 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; } } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 13:03:33

保姆级Windows版宝塔面板搭建教程:新手也能轻松上手运维

作为一名长期和服务器打交道的开发者&#xff0c;我深知新手配置Windows服务器环境的痛苦——手动安装IIS、PHP、MySQL&#xff0c;光是解决各种依赖冲突和端口占用问题&#xff0c;就能耗掉大半天时间。而宝塔面板的出现&#xff0c;直接把复杂的运维操作变成了"点点点&q…

作者头像 李华
网站建设 2026/4/18 16:38:12

Python 绘制动态跳动爱心|情人节专属浪漫代码,新手零基础也能上手

马上就是情人节&#xff0c;程序员的浪漫从一行行代码开始&#xff01;今天分享一款纯 Python 内置库实现的动态跳动爱心&#xff0c;无需复杂第三方依赖&#xff0c;黑色背景搭配粒子化爱心&#xff0c;自带自然的跳动节奏和柔和光晕&#xff0c;既适合送给心仪的人制造惊喜&a…

作者头像 李华
网站建设 2026/4/17 13:17:08

C++基于微服务脚手架的视频点播系统---客户端(3)

这是即时通讯系统开发实战的第三篇技术指南。在前两篇中&#xff0c;我们完成了项目架构设计、环境搭建、启动页开发以及主窗口的基础外观定制&#xff08;去边框、加阴影&#xff09;。本篇将深入探讨客户端界面的布局策略&#xff0c;剖析 Qt 布局系统的核心机制&#xff0c;…

作者头像 李华
网站建设 2026/4/21 10:56:55

数字孪生解决方案推荐哪家?实战案例解析

数字孪生——这个听起来有点科幻的词&#xff0c;其实早已悄悄潜入我们现实世界的各个角落。它远不止是三维建模或者虚拟仿真那么简单&#xff0c;更像是以数据为血脉、模型为骨架、智能为神经的“数字生命体”&#xff0c;在虚拟空间中持续生长&#xff0c;与现实物体同步呼吸…

作者头像 李华
网站建设 2026/4/18 3:49:12

Java自学党狂喜!飞算JavaAI,告别无效内耗,解锁高效自学新姿势

Java自学党最大的痛点&#xff0c;莫过于“无人指导、报错难修”——自学过程中&#xff0c;大多依靠网上的教程与案例代码&#xff0c;“抄代码”成为主要的学习手段&#xff0c;但频繁遭遇“抄代码也崩”的困境&#xff0c;加上没有专业老师指导&#xff0c;报错后只能反复百…

作者头像 李华