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

手机wap网站模板 带后台河北省任免

手机wap网站模板 带后台,河北省任免,做网站无需备案,wordpress多个页面前言#xff1a;生活中处处都会看到或是用到通讯录#xff0c;今天我们就通过C语言来简单的模拟实现一下通讯录。 鸡汤#xff1a;跨越山海#xff0c;终见曙光#xff01; 链接:gitee仓库#xff1a;代码链接 目录 主函数声明部分初始化通讯录实现扩容的函数增加通讯录所…前言生活中处处都会看到或是用到通讯录今天我们就通过C语言来简单的模拟实现一下通讯录。 鸡汤跨越山海终见曙光 链接:gitee仓库代码链接 目录 主函数声明部分初始化通讯录实现扩容的函数增加通讯录所需要人显示通讯录选择删除的人查找需要找的人修改通讯录 通讯录的实现 当然了在模拟实现一个通讯录前我们依然需要一个大致的框架。 可以保存至少100人的信息增加人的信息删除指定人的信息查找指定人的信息修改指定联系人的信息排序通讯录的信息这个等作者以后时间充足了再来实现显示所有联系人的信息 当然了既然是实现一个通讯录这样的功能我们把在写这个功能的时候把它分成三个模块 主函数 话不多说看代码 实现一个功能当然还是从主函数开始写这个主函数的大体思路我们在之前的三子棋功能中也实现过想要看的可以点这个链接:[三子棋] (https://blog.csdn.net/m0_64826370/article/details/132393038?spm1001.2014.3001.5501/) 创建一个通讯录我们需要创建联系人的信息,我们可以选择用结构体来存放 //类型的声明 typedef struct PeoInfo {char name[NAME_MAX];//保存姓名int age;char sex[SEX_MAX];//性别char tele[TELE_MAX];//电话char addr[ADDR_MAX];//地址 }PeoInfo;//创建通讯录将联系人记录下来 typedef struct Contact {PeoInfo* data;//存放数据int sz;//记录当前通讯录中存在的人的信息个数int capacity;//记录的是通讯录的当前容量 }Contact;主函数部分 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h #include contact.h //通讯录的基本功能void menu() {printf(***************************************\n);printf(**** 1.add 2.del **********\n);printf(**** 3.search 4.modify **********\n);printf(**** 5.show 6.sort **********\n);printf(**** 0.exit **********\n);printf(***************************************\n); } enum Option//使用枚举增加代码的可读性 {EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT }; int main() {int input 0;Contact con;InitContact(con);//创建一块通讯录的同时初始化一块通讯录do{menu();printf(请输入你的选择);scanf(%d, input);switch (input){case ADD://增加AddContact(con);break;case DEL://减少DelContact(con);break;case SEARCH://删除SearchContact(con);break;case MODIFY://修改ModifyContact(con);break;case SHOW://显示ShowContact(con);break;case SORT://排序//qsortbreak;case EXIT://退出DestroyContact(con);//销毁空间printf(退出\n);break;default:printf(输入错误请重新输入\n);break;}} while (input);return 0; }声明部分 #pragma once #include assert.h #include stdio.h #include stdlib.h #include string.h #define NAME_MAX 20 #define SEX_MAX 5 #define TELE_MAX 12 #define ADDR_MAX 30 #define MAX 100 #define DEFAULT_SZ 3 #define DEFAULT_INC 2//类型的声明 typedef struct PeoInfo {char name[NAME_MAX];//保存姓名int age;char sex[SEX_MAX];//性别char tele[TELE_MAX];//电话char addr[ADDR_MAX];//地址 }PeoInfo; ;//动态 typedef struct Contact {PeoInfo* data;//存放数据int sz;//记录当前通讯录中存在的人的信息个数int capacity;//记录的是通讯录的当前容量 }Contact;//初始化通讯录 void InitContact(Contact* pc);//增加联系人 void AddContact(Contact* pc);void DestroyContact(Contact* pc); //显示所有联系人 void ShowContact(Contact* pc);//删除指定联系人 void DelContact(Contact* pc);//查找指定联系人 void SearchContact(Contact* pc);//修改指定联系人 void ModifyContact(Contact* pc);//销毁通讯录 void DestroyContact(Contact* pc);初始化通讯录 void InitContact(Contact* pc) {assert(pc);pc-sz 0;pc-capacity DEFAULT_SZ;pc-data calloc(pc-capacity, sizeof(PeoInfo));//开辟一个能存放当前容量的空间if (pc-data NULL)//判断开辟是否成功{perror(calloc);return;}memset(pc-data, 0, sizeof(pc-data));//将开辟的空间全部初始化为0 } 实现扩容的函数 void CheckCapacity(Contact* pc)//给通讯录增容 {if (pc-sz pc-capacity)//判断是否是需要增容{PeoInfo* ptr (PeoInfo*)realloc(pc-data, (pc-capacity DEFAULT_INC) * sizeof(PeoInfo));//扩容if (ptr ! NULL)//判断是否增容成功{pc-data ptr;pc-capacity DEFAULT_INC;printf(增容成功\n);}else{perror(AddContact-realloc);return;}} }增加通讯录所需要人 void AddContact(Contact* pc)//增容 {assert(pc);CheckCapacity(pc);//增加信息printf(请输入名字);scanf(%s, pc-data[pc-sz].name);printf(请输入年龄);scanf(%d, pc-data[pc-sz].age);printf(请输入性别);scanf(%s, pc-data[pc-sz].sex);printf(请输入电话);scanf(%s, pc-data[pc-sz].tele);printf(请输入地址);scanf(%s, pc-data[pc-sz].addr);pc-sz;printf(增加成功\n); }显示通讯录 void ShowContact(Contact* pc)//显示通讯录 {assert(pc);if (pc-sz 0){printf(通讯录为空无需打印\n);return;}int i 0;//名字 年龄 性别 电话 地址printf(%-20s%-5s%-5s%-12s%-30s\n, 名字, 年龄, 性别, 电话, 地址);for (i 0; i pc-sz; i){//打印每个人信息printf(%-20s%-5d%-5s%-12s%-30s\n,pc-data[i].name, pc-data[i].age, pc-data[i].sex, pc-data[i].tele, pc-data[i].addr);} }选择删除的人 void DelContact(Contact* pc)//删除所需要删除的人 {char name[NAME_MAX];assert(pc);if (pc-sz 0){printf(通讯录为空无法删除\n);return;}//找到联系人printf(输入删除人的名字);scanf(%s, name);//找到名字为name的人int ret FindByName(pc, name);//找到这个人所在的位置if (ret -1){printf(要删除得到人不存在\n);return;}//删除这个人int i 0;for (i ret; i pc-sz - 1; i)//删除这个人并让后面的数往前走{pc-data[i] pc-data[i 1];}pc-sz--;printf(删除成功\n); }查找需要找的人 void SearchContact(Contact* pc)//查找人 {assert(pc);char name[NAME_MAX];printf(输入查找人的名字);scanf(%s, name);//找到名字为name的人int ret FindByName(pc, name);if (ret -1){printf(要查找的人不存在\n);return;}//显示出来printf(%-20s%-5s%-5s%-12s%-30s\n, 名字, 年龄, 性别, 电话, 地址);printf(%-20s%-5d%-5s%-12s%-30s\n,pc-data[ret].name, pc-data[ret].age, pc-data[ret].sex, pc-data[ret].tele, pc-data[ret].addr); }修改通讯录 void ModifyContact(Contact* pc)//修改通讯录 {assert(pc);char name[NAME_MAX];printf(输入要修改人的名字);scanf(%s, name);//找到名字为name的人int ret FindByName(pc, name);if (ret -1){printf(要修改的人不存在\n);return;}//修改printf(请输入名字);scanf(%s, pc-data[ret].name);printf(请输入年龄);scanf(%d, pc-data[ret].age);printf(请输入性别);scanf(%s, pc-data[ret].sex);printf(请输入电话);scanf(%s, pc-data[ret].tele);printf(请输入地址);scanf(%s, pc-data[ret].addr); }通讯录的实现 #define _CRT_SECURE_NO_WARNINGS #include contact.h//动态 void InitContact(Contact* pc) {assert(pc);pc-sz 0;pc-capacity DEFAULT_SZ;pc-data calloc(pc-capacity, sizeof(PeoInfo));//开辟一个能存放当前容量的空间if (pc-data NULL)//判断开辟是否成功{perror(calloc);return;}memset(pc-data, 0, sizeof(pc-data));//将开辟的空间全部初始化为0 }void CheckCapacity(Contact* pc)//给通讯录增容 {if (pc-sz pc-capacity)//判断是否是需要增容{PeoInfo* ptr (PeoInfo*)realloc(pc-data, (pc-capacity DEFAULT_INC) * sizeof(PeoInfo));//扩容if (ptr ! NULL)//判断是否增容成功{pc-data ptr;pc-capacity DEFAULT_INC;printf(增容成功\n);}else{perror(AddContact-realloc);return;}} } void DestroyContact(Contact* pc)//删除通讯录 {free(pc-data);//释放所开辟的空间pc-data NULL;pc-capacity 0;pc-sz 0; } void AddContact(Contact* pc)//增容 {assert(pc);CheckCapacity(pc);//增加信息printf(请输入名字);scanf(%s, pc-data[pc-sz].name);printf(请输入年龄);scanf(%d, pc-data[pc-sz].age);printf(请输入性别);scanf(%s, pc-data[pc-sz].sex);printf(请输入电话);scanf(%s, pc-data[pc-sz].tele);printf(请输入地址);scanf(%s, pc-data[pc-sz].addr);pc-sz;printf(增加成功\n); }void ShowContact(Contact* pc)//显示通讯录 {assert(pc);if (pc-sz 0){printf(通讯录为空无需打印\n);return;}int i 0;//名字 年龄 性别 电话 地址printf(%-20s%-5s%-5s%-12s%-30s\n, 名字, 年龄, 性别, 电话, 地址);for (i 0; i pc-sz; i){//打印每个人信息printf(%-20s%-5d%-5s%-12s%-30s\n,pc-data[i].name, pc-data[i].age, pc-data[i].sex, pc-data[i].tele, pc-data[i].addr);} }int FindByName(Contact* pc, char name[])//查找人判断这个人的位置与是否存在 {assert(pc);int i 0;for (i 0; i pc-sz; i){if (strcmp(pc-data[i].name, name) 0){return i;}}return -1;//找不到 } void DelContact(Contact* pc)//删除所需要删除的人 {char name[NAME_MAX];assert(pc);if (pc-sz 0){printf(通讯录为空无法删除\n);return;}//找到联系人printf(输入删除人的名字);scanf(%s, name);//找到名字为name的人int ret FindByName(pc, name);//找到这个人所在的位置if (ret -1){printf(要删除得到人不存在\n);return;}//删除这个人int i 0;for (i ret; i pc-sz - 1; i)//删除这个人并让后面的数往前走{pc-data[i] pc-data[i 1];}pc-sz--;printf(删除成功\n); }void SearchContact(Contact* pc)//查找人 {assert(pc);char name[NAME_MAX];printf(输入查找人的名字);scanf(%s, name);//找到名字为name的人int ret FindByName(pc, name);if (ret -1){printf(要查找的人不存在\n);return;}//显示出来printf(%-20s%-5s%-5s%-12s%-30s\n, 名字, 年龄, 性别, 电话, 地址);printf(%-20s%-5d%-5s%-12s%-30s\n,pc-data[ret].name, pc-data[ret].age, pc-data[ret].sex, pc-data[ret].tele, pc-data[ret].addr); }void ModifyContact(Contact* pc)//修改通讯录 {assert(pc);char name[NAME_MAX];printf(输入要修改人的名字);scanf(%s, name);//找到名字为name的人int ret FindByName(pc, name);if (ret -1){printf(要修改的人不存在\n);return;}//修改printf(请输入名字);scanf(%s, pc-data[ret].name);printf(请输入年龄);scanf(%d, pc-data[ret].age);printf(请输入性别);scanf(%s, pc-data[ret].sex);printf(请输入电话);scanf(%s, pc-data[ret].tele);printf(请输入地址);scanf(%s, pc-data[ret].addr); }好了今天的内容博主就讲到这里了如果有讲的不好的地方欢迎各位到评论区留言如果觉得博主讲的不错就送上一个三连吧~谢谢各位
http://www.w-s-a.com/news/965136/

相关文章:

  • 不需要网站备案的空间网站推广的基本方法是哪四个
  • 如何检查网站死链劳动仲裁院内部网站建设
  • 江西省住房和城乡建设网站合同管理系统
  • 网站建设质量保证福州网络推广
  • 高唐网站建设公司广州南站在哪个区
  • 广西柳州网站制作公司郴州网红打卡景点
  • 做网站要固定ip拍摄公司宣传片制作
  • 专业微网站电话号码做软件难吗
  • 邢台网站制作哪家强上海做网站设计
  • 大连网站建设外贸wordpress添加文章属性
  • 商城网站建设合同范本网上哪里可以免费学编程
  • 服务器公司网站博客wordpress怎么编辑
  • 网站建设网络推广柯西乡塘网站建设
  • 企业做网站需要多少钱企业资质查询系统官网
  • 网站建设需要知识百度统计数据
  • 自已如何做网站建设通网站会员共享密码
  • 做网站学习什么wordpress 文件夹
  • 前端移动网站开发wordpress图文混排
  • 企业网站建站那种好商城类网站怎么优化
  • 手机微网站怎么制作的网上找设计师
  • 网站建设包括哪些方面学校网站 建设
  • 贵阳网站优化公司建筑设计师用什么软件
  • 网站建设的小说静态网页模板免费网站
  • 芜湖建设厅官方网站wordpress自动设置缩略图
  • 推荐网站网页湛江网站建设哪家优惠多
  • 传奇网站免费空间网店装修店面
  • 网站改版 重新收录湖南建筑信息一体化管理平台
  • 可以做直播卖产品的网站陕西省建设银行网站
  • 搭建网站的英语seo优化专员招聘
  • 做网站深紫色搭配什么颜色网站的在线支付怎么做