#include <iostream>
#include <string>
using namespace std;
void showmenu();//显示菜单
int addpeople(struct adressbook* abk);//添加联系人
int delepeople(struct adressbook* abk);//删除联系人
void showbooks(struct adressbook* abk);//显示联系人
void clearbooks(struct adressbook* abk);//清空联系人
int revisebooks(struct adressbook* abk);//修改联系人#define MAX 1000
struct people
{string name;string sex;int old;string tel;string adr;
};//联系人结构体
struct adressbook
{struct people person[MAX];int size;
};//通讯录结构体
int main()
{struct adressbook abk;int flag;abk.size = 0;while(1){showmenu();int slect;cin >> slect;switch (slect){case 1:{flag=addpeople(&abk);if (flag == -1)cout << "联系人已满,添加失败" << endl;elsecout << "添加成功" << endl;flag = -1;system("pause");system("cls");}break;case 2:delepeople(&abk);system("pause");system("cls");break;case 3:showbooks(&abk);system("pause");system("cls");break;case 4:{int a=revisebooks(&abk);if (a == 0)cout << "修改成功" << endl;elsecout << "修改失败,查无此人" << endl;}system("pause");system("cls");break;case 5:clearbooks(&abk);system("pause");system("cls");break;case 0:cout << "欢迎下次使用" << endl;return 0;break;default:cout << "输入错误,请重新输入"<<endl;system("pause");system("cls");break;}}return 0;
}
void showmenu()
{cout << "  **************通讯录*************" << endl;cout << "       ***********************" << endl;cout << "       *****1、添加联系人*****" << endl;cout << "       *****2、删除联系人*****" << endl;cout << "       *****3、显示联系人*****" << endl;cout << "       *****4、修改联系人*****" << endl;cout << "       *****5、清空联系人*****" << endl;cout << "       *****0、退出通讯录*****" << endl;cout << "       ***********************" << endl;cout << "请输入你的选择:";
}
int addpeople(struct adressbook* abk)//若联系人已满则返回-1;否则返回0
{if (abk->size >= 1000){cout << "联系人已满" << endl;return -1;}else{cout << "姓名:";cin >> abk->person[abk->size].name;cout << "性别(男 或 女):";cin >> abk->person[abk->size].sex;cout << "年龄:";cin >> abk->person[abk->size].old;cout << "电话号码:";cin >> abk->person[abk->size].tel;cout << "家庭住址:";cin >> abk->person[abk->size].adr;(abk->size)++;return 0;}
}
int delepeople(struct adressbook* abk)
{string m_name;cout << "输入你要删除联系人的姓名:";cin >> m_name;for (int i = 0; i < abk->size; i++){if(abk->person[i].name==m_name){ for (int j = i; j < (abk->size)-1; j++)//将联系人往前挪,覆盖要删除的联系人{abk->person[j].name = abk->person[j + 1].name;abk->person[j].sex = abk->person[j+1].sex;abk->person[j].old = abk->person[j+1].old;abk->person[j].tel = abk->person[j+1].tel;abk->person[j].adr = abk->person[j+1].adr;}(abk->size)--;cout << "删除成功" << endl;return 0;}}cout << "查无此人" << endl;
}
void showbooks(struct adressbook* abk)
{if (abk->size == 0)cout << "当前通讯录为空" << endl;else{for (int i = 0; i < abk->size; i++){cout<<i+1<<"、" << "姓名:" << abk->person[i].name << "  性别:" << abk->person[i].sex << "  年龄:" << abk->person[i].old << "  电话号码:" << abk->person[i].tel << "  家庭住址:" << abk->person[i].adr << endl;}}
}
void clearbooks(struct adressbook* abk)
{abk->size = 0;cout << "成功清空联系人" << endl;
}
int revisebooks(struct adressbook* abk)//找到了并且成功修改返回0;否则返回-1
{string m_name;cout << "请输入你要修改的联系人:";cin >> m_name;for (int i = 0; i < abk->size; i++){if (abk->person[i].name == m_name){cout << "姓名:";cin >> abk->person[i].name;cout << "性别(男  或 女):";cin >> abk->person[i].sex;cout << "年龄:";cin >> abk->person[i].old;cout << "电话号码:";cin >> abk->person[i].tel;cout << "家庭住址:";cin >> abk->person[i].adr;return 0;}}return -1;
}

c语言c++通讯录管理系统代码相关推荐

  1. c语言个人通讯录管理系统实验报告_C语言个人通讯录管理系统课程设计报告

    语言程序设计> C <课程设计报告 _________:__________C 设计题目语言个人通讯录管理系统 摘要 本次课程设计地题目为个人通讯录管理系统, 要求将程序中所输入地联系人姓 ...

  2. C语言家族通讯录管理系统

    C语言家族通讯录管理系统 1.家族通讯录管理系统 1.1 题目简述 家谱能以一种表谱形式记载一个以血缘关系为主体的家族世系繁衍和重要人物事迹,它是中国特有的文化遗产之一;不管行多远,飞多高,家是你永远 ...

  3. c语言源代码_你想要的源代码来啦!C语言实现通讯录管理系统!

    说明: 本系统基于C语言实现班级通讯录管理系统,为小伙伴学习C语言刚入门所做的课程设计.功能包括增.删.查.改等,非常适合初学者练手.通讯录包括的个人信息有姓名.学号.性别.籍贯.政治面貌.手机号.Q ...

  4. c语言个人通讯录管理系统实验报告_C语言实现个人通讯录管理系统

    如何用c语言制作简易的个人通讯录管理系统?想必这是每一位初步学习c语言的同学需要解决的一个大问题.如何将这些数据类型不完全相同的数据元素存储并访问呢?采用结构体便能轻松解决这个问题! #include ...

  5. 个人通讯管理程序C语言,个人通讯录管理系统C语言源程序(优秀版)[1]

    个人通讯录管理系统C语言源程序(优秀版)[1] 更新时间:2017/2/22 1:03:00  浏览量:613  手机版 C语言个人通讯录系统源程序: #include /*头文件*/ #includ ...

  6. C语言实现通讯录管理系统(简易版)

    实现一个通讯录: 通讯录可以用来存储个人信息,当通讯录空间已满时,可以自动扩充通讯录的存储空间,每个人的信息包括:姓名.性别.年龄.电话.住址. 提供方法: 1.添加联系人信息: 2.删除指定联系人信 ...

  7. 为银行设计ATM菜单C语言,ATM银行管理系统代码及程序c语言课程设计【荐】.doc

    ATM银行管理系统代码及程序c语言课程设计[荐].doc #include #include #include #include struct bank{ int account; char name ...

  8. C语言程序设计 | 通讯录管理系统

    通讯录可以用来存储个人的信息,每个人的信息包括:姓名.性别.年龄.电话.住址.而一个通讯录的管理系统,应该至少具备增.删.查.改等几项功能,并要对其进行拓展. 所以我们要实现的功能如下: 添加联系人信 ...

  9. python手机通讯录管理系统代码_[内附完整源码和文档] 基于Java的个人通讯录管理系统...

    摘 要 随着社会的发展,人际关系变得越来越重要,为了保持良好的人际关系,必须常与亲戚朋友,同学同事保持联系,但有时候存在许多限制条件,因此我们需要为了快速查找联系人的信息,节省查找时间,开发通讯录管理 ...

最新文章

  1. 给力2011-东莞市南洋计算机软件有限公司 携手10大厂商提供企业安全有效节省成本解决方案...
  2. 异常 —— throws
  3. [工具]-C语言中字符串的形式打印16进制数据
  4. 一段js动态操作table代码
  5. 怎么把python程序发给别人_想把你写的Python程序发给别人用?打包成exe啊!
  6. 谭浩强c语言规范化的指数形式,C语言程序设计谭浩强第四期末复习重点.docx
  7. HTML5 Canvas中处理图像和视频
  8. delphi webservice 如何 共享 变量_医疗质量|如何实现非药物医嘱闭环管理?
  9. python转置列表代码_转置字典(从字典列表中提取一个键的所有值)
  10. 5G信令7——Service Request
  11. CSDN博客专家证书发放名单(10月已更新)
  12. 移动宽带安装说明一(刘欣)
  13. 【学习笔记】欧拉公式证明(定义法、泰勒公式法)
  14. 一份不悔的爱情 魔兽中那些我们追过的橙色武器_马立杰_新浪博客
  15. 2013年1月CPU性能天梯图
  16. 树莓派4B(Ubuntu 22.04 server)与Windows11网线直连(无显示器)
  17. 编写一个shell脚本,使其能够备份/etc目录下所有文件,并且备份的文件名需要自动生成日期,即产生后缀名形如.backup_20210624的文件。
  18. 在eclipse中修改tomcat端口
  19. Mysql 查询所有的上级,下级
  20. AbsoluteLayout布局

热门文章

  1. git push命令详解
  2. linux自带的二进制查看器
  3. 独家 | 火灾之后,我们能够利用大数据做些什么?
  4. 快捷键FN+F6改为F6
  5. 全桥驱动芯片-市场现状及未来发展趋势
  6. mysql增加列耗时_实战-130W表增加字段耗时
  7. MagickNet 缩图工具
  8. oracle join 优化询,oracle中优化left join的工作心得
  9. “香约宁波”寻觅城市文化味
  10. 机器学习_2逻辑回归