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

宜昌 公司 网站建设推广引流工具

宜昌 公司 网站建设,推广引流工具,页面升级自动跳转,企业网站建设首页要写什么内容【C语言】通讯录的实现(静态版一.前言1.前期准备a.菜单实现b.联系人结构体的构建c.菜单选项的功能d.#define 的定义2.功能的实现a.初始化通讯录b.增加联系人c.显示通讯录d.查找联系人e.修改联系人d.删除联系人3. 总代码test.ccontact.ccontact.h一.前言 本文将会用c语言实现一… 【C语言】通讯录的实现(静态版一.前言1.前期准备a.菜单实现b.联系人结构体的构建c.菜单选项的功能d.#define 的定义2.功能的实现a.初始化通讯录b.增加联系人c.显示通讯录d.查找联系人e.修改联系人d.删除联系人3. 总代码test.ccontact.ccontact.h一.前言 本文将会用c语言实现一个通讯录的系统并且存储若干人的信息每个人的信息包括姓名性别年龄电话号码住址。此通讯录系统的功能包括 1.增加联系人 2.删除对应的联系人 3.查找联系人 4.修改联系人的信息 5.排序此通讯录 6.显示通讯录每个人的信息 。 1.前期准备 建立菜单十分重要可以与用户之间建立联系。 菜单中要包含所以功能以便用户操作。 a.菜单实现 void menu() {printf(******************************\n);printf(***** 1.add 2.del *****\n);printf(***** 3.search 4.show *****\n);printf(**** 4.modify 6.sort ****\n);printf(**** 0.exit ****\n);printf(*****************************\n); }b.联系人结构体的构建 typedef struct PeoInfo {char name[MAX_NAME];int age;char tele[MAX_TELE];char sex[MAX_SEX];char addr[MAX_ADDR]; }PeoInfo;typedef struct Contact {PeoInfo data[MAX];int sz;//记录个数 }Contact; c.菜单选项的功能 利用枚举enum增加可读性 再利用 switch函数实现各自功能。 enum Option {EXIT,//0ADD,//1DEL,//2SEARCH,//3SHOW,//4MODIFY,//5SORT//6 }; 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 SHOW:ShowContact(con);break;case MODIFY:ModifyContact(con);case SORT:SortContact(con);case EXIT:printf(退出程序\n);break;default:printf(选择错误\n);break;}} while (input);return 0; }d.#define 的定义 便于修改数据增加可改性 #define MAX 100 #define MAX_NAME 20 #define MAX_SEX 5 #define MAX_TELE 12 #define MAX_ADDR 302.功能的实现 a.初始化通讯录 void InitContact(Contact* pc) {pc-sz 0;memset(pc-data, 0, sizeof(pc-sz)); } //初始化结构体b.增加联系人 void AddContact(Contact* pc) {if (pc-sz MAX){printf(通讯录已满无法增加\n);return;}printf(请输入名字:);scanf(%s, pc-data[pc-sz].name);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(请输入年龄:);scanf(%d, (pc-data[pc-sz].age)); //注意年龄在这是一个int类型所以传址pc-sz;printf(添加成功\n); }c.显示通讯录 int cmp_by_name(const void* p1, const void* p2) {return strcmp(((PeoInfo*)p1)-name, ((PeoInfo*)p2)-name); } void SortContact(Contact* pc) {qsort(pc-data, pc-sz, sizeof(PeoInfo), cmp_by_name);printf(排序成功\n); }d.查找联系人 查找联系人这边我们需要构建一个函数这个函数需要去根据我们想要寻找的姓名去在通讯录中寻找这个人所对应的位置加入找到了就可以返回对应位置的下标否则返回-1。找到之后就和打印通讯录的操作差不多打印出来就好了。 static int FindByName(const Contact* pc, char name[])//通过名字来找 {for (int i 0;i pc-sz;i){if (0 strcmp(pc-data[i].name, name)){return i;}}return -1; } //寻找或删除联系人下标void SearchContact(Contact* pc) {char name[MAX_NAME] { 0 };printf(请输入要查找人的名字:);scanf(%s, name);int pos FindByName(pc, name);//pos为要寻找的人的下标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); }e.修改联系人 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[pc-sz].name);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(请输入年龄:);scanf(%d, (pc-data[pc-sz].age));printf(修改成功\n); }d.删除联系人 void DelContact(Contact* pc) {char name[MAX_NAME] { 0 };if (pc-sz 0){printf(通讯录为空无法删除\n);return;}printf(要删除人的姓名:);scanf(%s, name);int pos;pos FindByName(pc, name);if (pos -1){printf(要删除人不存在\n);return;}int i 0;for (i pos;i pc-sz-1;i){pc-data[i] pc-data[i 1];}pc-sz--;printf(删除成功\n); }3. 总代码 test.c #includecontact.h void menu() {printf(******************************\n);printf(***** 1.add 2.del *****\n);printf(***** 3.search 4.show *****\n);printf(**** 4.modify 6.sort ****\n);printf(**** 0.exit ****\n);printf(*****************************\n); } enum Option {EXIT,ADD,DEL,SEARCH,SHOW,MODIFY,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 SHOW:ShowContact(con);break;case MODIFY:ModifyContact(con);case SORT:SortContact(con);case EXIT:printf(退出程序\n);break;default:printf(选择错误\n);break;}} while (input);return 0; }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;//姓名 年龄 性别 电话 地址//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);} }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(Contact* 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); } contact.h #define _CRT_SECURE_NO_WARNINGS 1 #pragma once #includestdio.h #includestdlib.h #includestring.h#define MAX 100 #define MAX_NAME 20 #define MAX_SEX 5 #define MAX_TELE 12 #define MAX_ADDR 30typedef struct PeoInfo {char name[MAX_NAME];int age;char tele[MAX_TELE];char sex[MAX_SEX];char addr[MAX_ADDR]; }PeoInfo;typedef struct Contact {PeoInfo data[MAX];int sz;//记录个数 }Contact;void InitContact(Contact* pc);//初始化通讯录 void AddContact(Contact* pc);//增加联系人 void ShowContact(Contact* pc);//显示通讯录 void DelContact(Contact* pc);//删除联系人 void SortContact(Contact* pc);//排序通讯录 void ModifyContact(Contact* pc);//修改联系人信息 void SearchContact(Contact* pc);//查找联系人 感谢阅读
http://www.w-s-a.com/news/927665/

相关文章:

  • 做美食原创视频网站网站开发要多钱
  • 怎么做网站作业哪个网站可兼职做logo
  • asp网站搭建教程做网站备案完成之后需要干什么
  • 无锡外贸网站开发兰州网站在哪备案
  • 广州百度网站建设公司天津建设电工证查询网站
  • 网站建设与管理行业发展情况制作网页动态效果
  • wordpress 特色缩略图临沂seo全网营销
  • 隆昌市住房和城乡建设厅网站做网站用什么字体比较好
  • 惠州网站建设设计18款未成年禁用软件ap入口
  • 班级网站 建设目标如何做好网站建设内容的策划书
  • 网站建设与网页设计期末考试清博舆情系统
  • plone网站开发商城网站建设怎么收费
  • 旺旺号查询网站怎么做公司门户网站项目模版
  • 网站免费一站二站四站上海网站怎么备案表
  • 漫画交流网站怎么做开发微信小程序公司
  • 网站建设马鞍山怎么建立局域网网站
  • 开源 网站开发框架哪些网站可以做图片链接
  • 大良制作网站网站设计的能力要求
  • 前端设计除了做网站还能做什么江苏高校品牌专业建设工程网站
  • 做二手房产网站多少钱用户权限配置wordpress
  • 做亚马逊网站需要租办公室吗小型企业网站模板
  • 网站全屏视频怎么做个人公司注册网上申请
  • 如何k掉别人的网站搜索引擎优化与关键词的关系
  • 百度推广 网站吸引力做网站开发的薪酬怎么样
  • js网站开发工具软件营销方案
  • 做网站的天空网云南省建设厅网站怎么进不去
  • 天津网站排名提升网络营销推广策略包括哪些
  • 网站建设与管理 ppt网站打开是别人的
  • 图片网站怎么做排名怎么分析一个网站seo
  • 伪原创对网站的影响深圳装修公司排名100强