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

陕西高端品牌网站建设自动搜索关键词软件

陕西高端品牌网站建设,自动搜索关键词软件,找资源的关键词有哪些,电子网站游戏网址试玩前言 #x1f4d5;作者简介#xff1a;热爱跑步的恒川#xff0c;正在学习C/C、Java、Python等。 #x1f4d7;本文收录于C语言进阶系列#xff0c;本专栏主要内容为数据的存储、指针的进阶、字符串和内存函数的介绍、自定义类型结构、动态内存管理、文件操作等#xff0… 前言 作者简介热爱跑步的恒川正在学习C/C、Java、Python等。 本文收录于C语言进阶系列本专栏主要内容为数据的存储、指针的进阶、字符串和内存函数的介绍、自定义类型结构、动态内存管理、文件操作等持续更新 相关专栏PythonJava等正在发展拭目以待 本期内容恒川将会给大家带来实现通讯录的讲解与上期所学的结构体内容相结合我将会用C语言来实现通讯录的系统并且能存放百人甚至千人的信息每个人的信息包括姓名、性别、年龄、电话、地址并包含增加联系人、删除指定联系人、查找指定联系人、修改指定联系人、显示联系人信息、排序联系人等功能 通讯录和恒川之前写的三子棋和扫雷一样都是多文件的形式大家可以参考恒川之前C语言初阶系列的专栏 静态版本通讯录1. 配置运行环境2. 通讯录的实现2.1 通讯录的功能目录2.2 增加信息功能代码的实现2.3 显示信息功能代码的实现2.3 删除信息功能代码的实现2.4 查询信息功能代码的实现2.5 修改信息功能代码的实现2.6 按名字排序信息功能代码的实现3. 完整静态版本通讯录的全部源码3.1 contact.c3.2 contact.h3.3 test.c4. 静态版本通讯录的缺点1. 配置运行环境 本通讯录运用到了三个文件 test.c //测试通讯录的相关功能 contact.h //声明 contact.c //通讯录的实现模块 2. 通讯录的实现 想要做通讯录首要任务就是要把模块想好。 先打印一个通讯录的界面菜单 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); }2.1 通讯录的功能目录 通讯录的功能有7种 增加联系人删除指定联系人查找联系人修改联系人的信息对联系人的排序显示联系人的信息退出通讯录 创建人的信息的结构体类型 第一步是封装一个人的信息的结构体类型 由于封装的结构体类型的名字太长总是写的话感觉太麻烦了 对 struct PeoInfo进行了typdef类型重命名 struct PeoInfp 改成 PeoInfp //表示一个人的信息 typedef struct PeoInfo {char name[20];int age;char sex[5];char tele[12];char addr[30]; }PeoInfo;以上的数值如果以后会经常用到的话可以用#define 来定义方便以后修改 #define MAX 100 #define MAX_NAME 20 #define MAX_SEX 5 #define MAX_TELE 12 #define MAX_ADDR 302.2 增加信息功能代码的实现 //增加通讯录信息 void AddContact(Contact* pc) {if (DATA_MAX pc-sz){printf(通讯录信息存储空间已满!\n);return;}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);printf(信息添加成功\n);pc-sz; }2.3 显示信息功能代码的实现 void ShowContact(const Contact* pc) {int i 0;//姓名 年龄 性别 电话 地址//zhangsan 20 男 123456 北京////打印标题printf(%-10s %-4s %-5s %-12s %-30s\n, 姓名, 年龄, 性别, 电话, 地址);//打印数据for (i 0; i pc-sz; i){printf(%-10s %-4d %-5s %-12s %-30s\n, pc-data[i].name, pc-data[i].age, pc-data[i].sex, pc-data[i].tele, pc-data[i].addr);} }2.3 删除信息功能代码的实现 void DelContact(pContact pc) {char name[MAX_NAME] { 0 };if (pc-sz 0){printf(通讯录为空无法删除\n);return;}//删除//1. 找到要删除的人 - 位置下标printf(输入要删除人的名字:);scanf(%s, name);int pos FindByName(pc, name);if (pos -1){printf(要删除的人不存在\n);return;}int i 0;//2. 删除 - 删除pos位置上的数据for (i pos; ipc-sz-1; i){pc-data[i] pc-data[i 1];}pc-sz--;printf(删除成功\n); }2.4 查询信息功能代码的实现 void SearchContact(const Contact* pc) {char name[MAX_NAME] {0};printf(请输入要查找人的名字:);scanf(%s, name);//查找int pos FindByName(pc, name);if (pos -1){printf(要查找的人不存在\n);return;}//打印printf(%-10s %-4s %-5s %-12s %-30s\n, 姓名, 年龄, 性别, 电话, 地址);//打印数据printf(%-10s %-4d %-5s %-12s %-30s\n,pc-data[pos].name,pc-data[pos].age,pc-data[pos].sex,pc-data[pos].tele,pc-data[pos].addr); }2.5 修改信息功能代码的实现 void ModifyContact(Contact* pc) {char name[MAX_NAME] {0};printf(请输入要修改人的名字:);scanf(%s, name);int pos FindByName(pc, name);if (pos -1){printf(要修改的人不存在\n);return;}//修改printf(请输入名字:);scanf(%s, pc-data[pos].name);printf(请输入年龄:);scanf(%d, (pc-data[pos].age));printf(请输入性别:);scanf(%s, pc-data[pos].sex);printf(请输入电话:);scanf(%s, pc-data[pos].tele);printf(请输入地址:);scanf(%s, pc-data[pos].addr);printf(修改成功\n); }2.6 按名字排序信息功能代码的实现 //按照名字来排序 int cmp_by_name(const void* e1, const void* e2) {return strcmp(((PeoInfo*)e1)-name, ((PeoInfo*)e2)-name); }void SortContact(Contact* pc) {qsort(pc-data, pc-sz, sizeof(PeoInfo), cmp_by_name);printf(排序成功\n); }3. 完整静态版本通讯录的全部源码 3.1 contact.c #define _CRT_SECURE_NO_WARNINGS 1#include contact.hvoid InitContact(Contact* pc) {pc-sz 0;memset(pc-data, 0, sizeof(pc-data)); }void AddContact(Contact* pc) {if (pc-sz MAX){printf(通讯录已满无法增加\n);return;}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(const Contact* pc) {int i 0;//姓名 年龄 性别 电话 地址//hengchuan 20 男 123456 北京////打印标题printf(%-10s %-4s %-5s %-12s %-30s\n, 姓名, 年龄, 性别, 电话, 地址);//打印数据for (i 0; i pc-sz; i){printf(%-10s %-4d %-5s %-12s %-30s\n,pc-data[i].name, pc-data[i].age, pc-data[i].sex, pc-data[i].tele, pc-data[i].addr);} }static int FindByName(const Contact* pc, char name[]) {int i 0;for (i 0; i pc-sz; i){if (0 strcmp(pc-data[i].name, name)){return i;}}return -1; }void DelContact(pContact pc) {char name[MAX_NAME] { 0 };if (pc-sz 0){printf(通讯录为空无法删除\n);return;}//删除//1. 找到要删除的人 - 位置下标printf(输入要删除人的名字:);scanf(%s, name);int pos FindByName(pc, name);if (pos -1){printf(要删除的人不存在\n);return;}int i 0;//2. 删除 - 删除pos位置上的数据for (i pos; i pc-sz - 1; i){pc-data[i] pc-data[i 1];}pc-sz--;printf(删除成功\n); }void SearchContact(const Contact* pc) {char name[MAX_NAME] { 0 };printf(请输入要查找人的名字:);scanf(%s, name);//查找int pos FindByName(pc, name);if (pos -1){printf(要查找的人不存在\n);return;}//打印printf(%-10s %-4s %-5s %-12s %-30s\n, 姓名, 年龄, 性别, 电话, 地址);//打印数据printf(%-10s %-4d %-5s %-12s %-30s\n,pc-data[pos].name,pc-data[pos].age,pc-data[pos].sex,pc-data[pos].tele,pc-data[pos].addr); }void ModifyContact(Contact* pc) {char name[MAX_NAME] { 0 };printf(请输入要修改人的名字:);scanf(%s, name);int pos FindByName(pc, name);if (pos -1){printf(要修改的人不存在\n);return;}//修改printf(请输入名字:);scanf(%s, pc-data[pos].name);printf(请输入年龄:);scanf(%d, (pc-data[pos].age));printf(请输入性别:);scanf(%s, pc-data[pos].sex);printf(请输入电话:);scanf(%s, pc-data[pos].tele);printf(请输入地址:);scanf(%s, pc-data[pos].addr);printf(修改成功\n); }//按照名字来排序 int cmp_by_name(const void* e1, const void* e2) {return strcmp(((PeoInfo*)e1)-name, ((PeoInfo*)e2)-name); }void SortContact(Contact* pc) {qsort(pc-data, pc-sz, sizeof(PeoInfo), cmp_by_name);printf(排序成功\n); }3.2 contact.h #pragma once#include stdio.h #include string.h #include stdlib.h #include errno.h#define MAX 100 #define MAX_NAME 20 #define MAX_SEX 5 #define MAX_TELE 12 #define MAX_ADDR 30//表示一个人的信息 typedef struct PeoInfo {char name[MAX_NAME];int age;char sex[MAX_SEX];char tele[MAX_TELE];char addr[MAX_ADDR]; }PeoInfo;//静态版本的设计 typedef struct Contact {PeoInfo data[MAX];//存放数据int sz;//记录通讯录中的有效信息个数 }Contact, *pContact;//初始化通讯录 void InitContact(Contact* pc);//增加指定联系人 void AddContact(Contact* pc);//显示联系人信息 void ShowContact(const Contact* pc);//删除指定联系人 //void DelContact(Contact* pc); void DelContact(pContact pc);//查找指定联系人 void SearchContact(const Contact* pc);//修改通讯录 void ModifyContact(Contact* pc);//排序通讯录元素 void SortContact(Contact* pc); 3.3 test.c #define _CRT_SECURE_NO_WARNINGS 1 #include contact.hvoid 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:SortContact(con);break;case EXIT:printf(退出通讯录\n);break;default:printf(选择错误\n);break;}} while (input);return 0; }4. 静态版本通讯录的缺点 缺点 通讯录的大小是固定的 - 100个元素当通讯录退出后重新运行之前的信息都丢了 当前通讯录中的信息都是保存在内存中的程序退出内存就回收了下一次重新运行程序内存重新分配之前的数据就不见了 所以恒川之后会给大家带来动态通讯录的版本请大家拭目以待吧 如果这份博客对大家有帮助希望各位给恒川一个免费的点赞作为鼓励并评论收藏一下谢谢大家 制作不易如果大家有什么疑问或给恒川的意见欢迎评论区留言。
文章转载自:
http://www.morning.gwsll.cn.gov.cn.gwsll.cn
http://www.morning.dtcsp.cn.gov.cn.dtcsp.cn
http://www.morning.qmsbr.cn.gov.cn.qmsbr.cn
http://www.morning.jzdfc.cn.gov.cn.jzdfc.cn
http://www.morning.rqnzh.cn.gov.cn.rqnzh.cn
http://www.morning.bpwfr.cn.gov.cn.bpwfr.cn
http://www.morning.kqzrt.cn.gov.cn.kqzrt.cn
http://www.morning.geledi.com.gov.cn.geledi.com
http://www.morning.nngq.cn.gov.cn.nngq.cn
http://www.morning.rnrwq.cn.gov.cn.rnrwq.cn
http://www.morning.rgfx.cn.gov.cn.rgfx.cn
http://www.morning.jlgjn.cn.gov.cn.jlgjn.cn
http://www.morning.drnjn.cn.gov.cn.drnjn.cn
http://www.morning.wjrtg.cn.gov.cn.wjrtg.cn
http://www.morning.qztsq.cn.gov.cn.qztsq.cn
http://www.morning.wnkqt.cn.gov.cn.wnkqt.cn
http://www.morning.qrndh.cn.gov.cn.qrndh.cn
http://www.morning.nbnpb.cn.gov.cn.nbnpb.cn
http://www.morning.xscpq.cn.gov.cn.xscpq.cn
http://www.morning.pqkrh.cn.gov.cn.pqkrh.cn
http://www.morning.kybjr.cn.gov.cn.kybjr.cn
http://www.morning.xcjbk.cn.gov.cn.xcjbk.cn
http://www.morning.wskn.cn.gov.cn.wskn.cn
http://www.morning.nxpqw.cn.gov.cn.nxpqw.cn
http://www.morning.bkcnq.cn.gov.cn.bkcnq.cn
http://www.morning.btrfm.cn.gov.cn.btrfm.cn
http://www.morning.lbpfl.cn.gov.cn.lbpfl.cn
http://www.morning.ndfwh.cn.gov.cn.ndfwh.cn
http://www.morning.knnhd.cn.gov.cn.knnhd.cn
http://www.morning.ghxtk.cn.gov.cn.ghxtk.cn
http://www.morning.gpfuxiu.cn.gov.cn.gpfuxiu.cn
http://www.morning.lzqdl.cn.gov.cn.lzqdl.cn
http://www.morning.znqmh.cn.gov.cn.znqmh.cn
http://www.morning.prprj.cn.gov.cn.prprj.cn
http://www.morning.wqbhx.cn.gov.cn.wqbhx.cn
http://www.morning.ymyhg.cn.gov.cn.ymyhg.cn
http://www.morning.dpsgq.cn.gov.cn.dpsgq.cn
http://www.morning.mhfbp.cn.gov.cn.mhfbp.cn
http://www.morning.zkdbx.cn.gov.cn.zkdbx.cn
http://www.morning.tpssx.cn.gov.cn.tpssx.cn
http://www.morning.wdjcr.cn.gov.cn.wdjcr.cn
http://www.morning.qjbxt.cn.gov.cn.qjbxt.cn
http://www.morning.plxnn.cn.gov.cn.plxnn.cn
http://www.morning.slnz.cn.gov.cn.slnz.cn
http://www.morning.rnrwq.cn.gov.cn.rnrwq.cn
http://www.morning.jlschmy.com.gov.cn.jlschmy.com
http://www.morning.kndst.cn.gov.cn.kndst.cn
http://www.morning.zdmrf.cn.gov.cn.zdmrf.cn
http://www.morning.jtkfm.cn.gov.cn.jtkfm.cn
http://www.morning.xbdrc.cn.gov.cn.xbdrc.cn
http://www.morning.zntf.cn.gov.cn.zntf.cn
http://www.morning.zwppm.cn.gov.cn.zwppm.cn
http://www.morning.fcxt.cn.gov.cn.fcxt.cn
http://www.morning.wjmb.cn.gov.cn.wjmb.cn
http://www.morning.flqkp.cn.gov.cn.flqkp.cn
http://www.morning.txmlg.cn.gov.cn.txmlg.cn
http://www.morning.wpjst.cn.gov.cn.wpjst.cn
http://www.morning.wklyk.cn.gov.cn.wklyk.cn
http://www.morning.xrrbj.cn.gov.cn.xrrbj.cn
http://www.morning.bsrp.cn.gov.cn.bsrp.cn
http://www.morning.hgtr.cn.gov.cn.hgtr.cn
http://www.morning.mlpch.cn.gov.cn.mlpch.cn
http://www.morning.txrkq.cn.gov.cn.txrkq.cn
http://www.morning.bfysg.cn.gov.cn.bfysg.cn
http://www.morning.swdnr.cn.gov.cn.swdnr.cn
http://www.morning.ktcrr.cn.gov.cn.ktcrr.cn
http://www.morning.lcqrf.cn.gov.cn.lcqrf.cn
http://www.morning.qlhwy.cn.gov.cn.qlhwy.cn
http://www.morning.rwmqp.cn.gov.cn.rwmqp.cn
http://www.morning.qhmgq.cn.gov.cn.qhmgq.cn
http://www.morning.htpjl.cn.gov.cn.htpjl.cn
http://www.morning.kfwrq.cn.gov.cn.kfwrq.cn
http://www.morning.jczjf.cn.gov.cn.jczjf.cn
http://www.morning.ktskc.cn.gov.cn.ktskc.cn
http://www.morning.qczpf.cn.gov.cn.qczpf.cn
http://www.morning.jngdh.cn.gov.cn.jngdh.cn
http://www.morning.pkrtz.cn.gov.cn.pkrtz.cn
http://www.morning.czgfn.cn.gov.cn.czgfn.cn
http://www.morning.mnjwj.cn.gov.cn.mnjwj.cn
http://www.morning.wmhqd.cn.gov.cn.wmhqd.cn
http://www.tj-hxxt.cn/news/240550.html

相关文章:

  • 个人英文网站设计天津优化网络公司的建议
  • 网站设计与开发培训班海门建设厅网站
  • asp网站变慢大连做网站孙晓龙
  • 东莞企业推广网站制作莱芜杂谈
  • 企业网站开发常用的字体搭建自己微信网站
  • 建个企业网站需要多少钱suxing wordpress
  • 凡客的网站功能手机在线查看html源代码
  • 网站开发软件有哪些哈尔滨的网站设计
  • 网站建设售前域名seo查询
  • 大连营商建设局网站软件开发工程师面试自我介绍
  • ftp网站后台深圳数字展厅
  • 山东东方路桥建设总公司官方网站网站视频接口 怎么做
  • 佛山网站专家重庆市建设工程网官网
  • 企业品牌网站建设公司wordpress颜色代码
  • 汕头网站排名搭建一个app平台要多少钱
  • 金华网站开发公司桂林人论坛桂林板路
  • 南通有哪些网站淘客网站必须备案么
  • 做网站公司 蓝纤科技wordpress网页游戏模板
  • 外贸网站vps服务器做网站项目实例
  • 网站的建站标准邯郸网络教研平台
  • 可以访问任何网站的浏览器网站域名注销备案
  • 个人网站备案备注信息做设计素材网站有哪些
  • wordpress 菜单两列显示不出来博山网站seo
  • 网站建设销售工作内容seo怎么收费的
  • 丰台网站关键词优化张家界网站建设公司
  • 通过门户网站做单点登录SAP唐山网站建设公司
  • 接做图网站千牛网站上的店铺推广怎么做
  • 做博客网站要怎么配置的服做一个代驾app需要多少钱
  • 网站做302跳转的意义网站建设维护工作
  • 网站建设的营业执照seo网络推广技术