当前位置: 首页 > news >正文

C++小项目: 通讯录管理系统

#include <iostream>
#include <string>
using namespace std;
const int MAX=1000;//联系人结构体
struct Person{string name;int gender;int age;int phoneNum;string address;
};
//通讯录结构体
struct addressBook{Person array[MAX];int size;
};//函数声名
void showMenu();//菜单界面
void quit(); //0.退出通讯录
void addPerson(addressBook* p); //1.添加联系人
void showPerson(const addressBook *p); //2.显示联系人
void deletePerson(addressBook *p,string d_name);//3.删除联系人
int findPerson (addressBook *p,string f_name); //4.查找联系人
void modifyPerson(addressBook *p,string m_name);//5.修改联系人
void cleanPerson(addressBook *p);//6.清除联系人//主函数
int main(){int select;addressBook user1;user1.size=0;while(true){showMenu();cin >> select;switch(select){case 1:addPerson(&user1);system("pause");system("cls");break;case 2:showPerson(&user1);system("pause");system("cls");break;case 3:{string d_name;cout << "请输入删除对象的姓名" << endl;cin >> d_name;deletePerson(&user1,d_name);system("pause");system("cls");break;}    case 4:{string i_name;cout << "请输入查找对象的姓名:" << endl;cin >> i_name;int f_result=findPerson(&user1,i_name);if(f_result != -1){cout << "姓名: " << user1.array[f_result].name ;cout << " 性别: " << (user1.array[f_result].gender==1? "男":"女");cout << " 年龄: " << user1.array[f_result].age;cout << " 电话号码: " << user1.array[f_result].phoneNum;cout << " 地址: " << user1.array[f_result].address << endl;}   system("pause");system("cls");               break;}case 5:{string i_m_name;cout << "请输入修改对象的姓名:" << endl;cin >> i_m_name;modifyPerson(&user1,i_m_name);system("pause");system("cls");break;}case 6:cleanPerson(&user1);system("pause");system("cls");break;case 0:quit();return 0;}}system("pause");return 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;}//0.退出通讯录
void quit(){cout << "已退出通讯录" << endl;system("pause");
}//1.添加联系人:依次写入
void addPerson(addressBook *p){cout << "姓名:" << endl;cin >> p->array[p->size].name;cout << "性别 (1--男,2--女):" << endl;while(true){cin >> p->array[p->size].gender;if(p->array[p->size].gender!=1&&p->array[p->size].gender!=2){cout << "输入错误,请重试:" <<endl;continue;}elsebreak;}cout << "年龄:" << endl;cin >> p->array[p->size].age;cout << "电话号码:" << endl;cin >> p->array[p->size].phoneNum;cout << "地址:" << endl;cin >> p->array[p->size].address;p->size++;
}//2.显示联系人
void showPerson(const addressBook *p){if(p->size==0){cout << "请先输入联系人" << endl;return;}for (int i=0;i<p->size;i++){cout << "姓名: " << p->array[i].name ;cout << " 性别: " << (p->array[i].gender==1? "男":"女");cout << " 年龄: " << p->array[i].age;cout << " 电话号码: " << p->array[i].phoneNum;cout << " 地址: " << p->array[i].address << endl;}}//3.删除联系人
void deletePerson (addressBook *p,string d_name){int tagNum = findPerson(p,d_name);if(tagNum==-1){return;}else{for(int i=tagNum;i<p->size;i++){p->array[i]=p->array[i+1];}p->size--;cout << "删除指定联系人成功" << endl;}
} //4.查找联系人
int findPerson (addressBook *p,string f_name){int f_num =0;if(p->size==0){cout << "请先输入联系人" << endl;return -1;}else{for(;f_num<p->size;f_num++){if(p->array[f_num].name==f_name){break;}if(f_num==p->size-1){cout << "查无此人" << endl;return -1;}}}return f_num;
}//5.修改联系人
void modifyPerson(addressBook *p,string m_name){int tagNum = findPerson(p,m_name);if(tagNum==-1){return;}else{cout << "姓名:" << endl;cin >> p->array[tagNum].name;cout << "性别 (1--男,2--女):" << endl;while(true){cin >> p->array[tagNum].gender;if(p->array[tagNum].gender!=1&&p->array[tagNum].gender!=2){cout << "输入错误,请重试:" <<endl;continue;}elsebreak;}cout << "年龄:" << endl;cin >> p->array[tagNum].age;cout << "电话号码:" << endl;cin >> p->array[tagNum].phoneNum;cout << "地址:" << endl;cin >> p->array[tagNum].address;}}//6.清空联系人
void cleanPerson(addressBook* p){p->size=0;cout << "已清除联系人" <<endl;
}
http://www.jsqmd.com/news/290026/

相关文章:

  • 为什么 loss 几乎没用:微调里最容易让人“自嗨”的指标
  • LoRA 不是“免费午餐”:你省下的算力,往往会在别的地方还回去
  • ABC242Ex Random Painting 题解
  • 2026年正规的防火卷帘门生产厂家与无机卷帘门品牌的优质选择
  • 大数据领域存算分离:云环境下的最佳实践
  • Flink与Elasticsearch集成:实时大数据搜索方案
  • uv vs pip:为什么现代Python包管理工具能快100倍?
  • 「LUCKY STUN穿透」使用webhook自动修改 qbittorrent 的监听端口
  • 大数据领域数据预处理:优化数据存储与管理的关键
  • android MQTT封装
  • 「LUCKY STUN穿透」使用邮件通知端口变化情况
  • 「LUCKY STUN穿透」在Windows下使用VNT组网为非HTTP服务固定STUN穿透端口
  • 2026年 强磁磁铁厂家推荐排行榜,方块强磁、橡胶磁铁,工业级高吸附力磁体源头工厂精选
  • 【Azure APIM】APIM的自建网关如何解决自签名证书的受信任问题呢?(方案三)
  • AI大模型微调指南:告别“炼丹”玄学,用数据与科学打造专属模型
  • 安全加固相关内容
  • 2026年优质建筑材料检测服务商推荐与机构选择指南
  • Product Hunt 每日热榜 | 2026-01-23
  • FPGA教程系列-Vivado Aurora 8B/10B IP核接口解析 - 实践
  • TB132FU原厂刷机包免费下载_CN_ZUI_16
  • 2026年磁铁厂家推荐排行榜:铁氧体/钕铁硼/无线充/耐高温/单面/瓦形/沉头孔/方形/圆形/异形/圆环磁铁,源头实力与创新应用深度解析
  • 如何进行员工绩效评估
  • 区块链去中心化存储的Prompt工程:提示工程架构师的数据管理
  • Ubuntu 上搜狗输入法突然“消失 / 只能英文”的排查与修复教程
  • 亲测好用10个AI论文平台,助你轻松搞定本科生毕业论文!
  • 2026研究生必备10个降AI率工具
  • 深入解析:【要闻周报】网络安全与数据合规 11-21
  • 2026年 印刷机厂家推荐排行榜:丝网印刷机/线路板印刷机/全自动印刷机/CCD全自动印刷机/亚克力印刷机/大尺寸印刷机,高精度与高效能智造之选
  • Spark机器学习库MLlib:大数据AI应用开发指南
  • 深度测评自考必备AI论文平台TOP10