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

基于顺序表实现通讯录

通讯录

  • 通讯录实现
    • 1.通讯录的联系人结构
    • 2.通讯录初始化和销毁
    • 3.通讯录的增删查改和打印
    • 4.通讯录测试

通讯录实现

1.通讯录的联系人结构

#defineNAME_MAX10#defineSEX_MAX10#definePHONE_MAX50#defineADRESS_MAX100typedefstructperson{charname[NAME_MAX];charsex[SEX_MAX];intage;charphone[PHONE_MAX];charadress[ADRESS_MAX];}person;typedefstructSlistcon;//头文件不能互相包含,可以前置声明一下。

2.通讯录初始化和销毁

voidInitcon(con*c){Init(c);}voidDestroycon(con*c){Destroy(c);}

3.通讯录的增删查改和打印

voidAddcon(con*c){person p={0};printf("请输入你要增加的联系人姓名\n");scanf("%s",p.name);printf("请输入你要增加的联系人姓别\n");scanf("%s",p.sex);printf("请输入你要增加的联系人年龄\n");scanf("%d",&p.age);printf("请输入你要增加的联系人电话\n");scanf("%s",p.phone);printf("请输入你要增加的联系人地址\n");scanf("%s",p.adress);Pushback(c,p);printf("增加成功\n");}intFind(con*c,char*name){for(inti=0;i<c->size;i++){if(0==strcmp(name,c->a[i].name)){returni;}}return-1;}voidDelcon(con*c){charname[NAME_MAX];printf("请输入你要删除的联系人姓名\n");scanf("%s",name);intfind=Find(c,name);if(find<0){printf("该联系人不存在,删除错误\n");return;}Erase(c,find);printf("删除成功\n");}voidFindcon(con*c){charname[NAME_MAX];printf("请输入你要查找的联系人姓名\n");scanf("%s",name);intfind=Find(c,name);if(find<0){printf("该联系人不存在,查找错误\n");return;}printf("查找成功\n");printf("姓名 性别 年龄 电话 住址\n");printf("%s %s %d %s %s\n",c->a[find].name,c->a[find].sex,c->a[find].age,c->a[find].phone,c->a[find].adress);}voidModify(con*c){charname[NAME_MAX];printf("请输入你要修改的联系人姓名\n");scanf("%s",name);intfind=Find(c,name);if(find<0){printf("该联系人不存在,修改错误\n");return;}printf("请输入新的联系人姓名:\n");scanf("%s",c->a[find].name);printf("请输入新的联系人姓别:\n");scanf("%s",c->a[find].sex);printf("请输入新的联系人年龄:\n");scanf("%d",&c->a[find].age);printf("请输入新的联系人电话:\n");scanf("%s",c->a[find].phone);printf("请输入新的联系人住址:\n");scanf("%s",c->a[find].adress);printf("修改成功\n");}voidPrint(con*c){printf("姓名 性别 年龄 电话 住址\n");for(inti=0;i<c->size;i++){printf("%s %s %d %s %s\n",c->a[i].name,c->a[i].sex,c->a[i].age,c->a[i].phone,c->a[i].adress);}}

4.通讯录测试

#include"slist.h"voidmenu(){printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n");printf("xxxxx 1.ADD xxxxx 2.DEL xxxxxx\n");printf("xxxxx 3.FIND xxxxx 4.MODIFY xxx\n");printf("xxxxx 5.PRINT xxxxx 0.exit xxxxx\n");printf("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n");}intmain(){con c;Initcon(&c);intinput=0;do{menu();printf("请输入你要选择的:\n");scanf("%d",&input);switch(input){case1:Addcon(&c);break;case2:Delcon(&c);break;case3:Findcon(&c);break;case4:Modify(&c);break;case5:Print(&c);break;case0:printf("退出游戏\n");break;default:printf("输入错误,请重新选择\n");break;}}while(input);Destroycon(&c);return0;}
http://www.cnnetsun.cn/news/1430179.html

相关文章:

  • 第30次CSP第二题——矩阵运算
  • Nanbeige 4.1-3B Streamlit WebUI一文详解:CSS :has()伪类实现气泡智能对齐
  • RexUniNLU效果展示:中文体育新闻中‘比赛’事件+对阵双方+比分+时间抽取
  • obs studio使用
  • 【无线通信】占用带宽(OBW)的测量与优化实战指南
  • 再论数集相等概念凸显初等数学有几百年重大错误:将无穷多前所未知的伪x轴误为x轴
  • 基于国密 SM3/SM4/SM2 的前后端数据完整性校验实战(附完整代码)
  • 【2026年最新600套毕设项目分享】springboot健康菜谱生成系统(14221)
  • 安卓手机网络共享给MacBook (M1芯片)
  • 3个智能交易技巧:Steam-Economy-Enhancer让库存管理效率提升87%
  • Qwen3-ASR-1.7B在医疗场景的应用:电子病历语音录入系统
  • 我也没想到,Java开发 API接口可以不用写 Controller了
  • 数值特征工程中的四种缩放方法:原理、适用场景与局限性
  • HereSphere VR播放器下载地址与使用教程(Meta Quest 2/3可用)Meta Quest播放器、HereSphere下载、VR视频播放器推荐、Quest 3看片工具、VR本地播放器、
  • 【收藏】500+ AI工具导航,这一站搞定你的AI工具箱!
  • FireRedASR-AED-L代码实例:Python调用FireRedASR-AED-L模型核心接口
  • airPLS算法突破:自适应迭代加权惩罚最小二乘法革新基线校正技术
  • [C语言]指针简介
  • AS3935闪电传感器驱动开发与嵌入式实战指南
  • 如何快速实现Android数据持久化:Tape文件队列库的完整指南
  • 从0到1理解RTAB-Map技术原理:SLAM技术与3D建图实战指南
  • SiameseUIE中文-base实战案例:从微信公众号推文中抽取活动时间与地点
  • 手把手教你用RealSense D435i进行IMU标定(附常见错误解决方案)
  • 4大核心价值解锁帧率自由:genshin-fps-unlock工具全场景技术指南
  • SeqGPT-560M与IDEA集成:智能Java开发环境搭建
  • SeqGPT-560M与卷积神经网络结合:文本与图像的多模态分析
  • 终极Revery动画曲线设计指南:物理引擎的应用实例详解
  • SUNFLOWER MATCH LAB C盘清理与模型存储优化:释放本地开发空间
  • PyTorch分布式训练实战:从DP到DDP的进阶指南
  • Verilog移位操作避坑指南:为什么你的有符号数右移总出错?