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

前端开发师flash网站优化

前端开发师,flash网站优化,网站建设套餐电话,北理工网站开发与应用答案前言 我们还是像以前一样,分为三个文件来书写,分别是contact.h,contact.c,test.c 分别用来声明函数,实现函数和测试函数功能,现在就让我们开始吧. 1.基本逻辑 首先我们定义通讯录里的数据,我们定义为结构体 typedef struct PeoInfo {char name[NAME_MAX];int age;char sex[SEX_… 前言 我们还是像以前一样,分为三个文件来书写,分别是contact.h,contact.c,test.c 分别用来声明函数,实现函数和测试函数功能,现在就让我们开始吧. 1.基本逻辑 首先我们定义通讯录里的数据,我们定义为结构体 typedef struct PeoInfo {char name[NAME_MAX];int age;char sex[SEX_MAX];char tele[TELE_MAX];char addr[ADDR_MAX]; }PeoInfo; 然后我们希望这个通讯录有100条数据,我们也定义成一个结构体 typedef struct Contact {PeoInfo data[100];int sz;//人的信息个数 }Contact; 接着就是经典设计一份菜单,然后switch case语句来选择要实现的功能 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);} 为了增强代码的可读性,我们将原来的case后面的数转换成了枚举常量. enum Option {EXIT,ADD,DEL,SEARCH,MODIFY,SHOW,SORT }; 接下来就是主函数部分,我们使用一个do while语句来保证循环可以一直进行 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:break;default:printf(输入错误,请重新输入\n);}} while (input);return 0; } 下面我们开始写函数. 为了方便修改通讯录中个人信息的大小,我们定义了一些宏来解决. //类型的声明 #define NAME_MAX 20 #define SEX_MAX 5 #define TELE_MAX 12 #define ADDR_MAX 30 #define MAX 1002.函数功能的实现 2.1初始化通讯录 void InitContact(Contact* pc) {assert(pc);pc-sz 0;memset(pc-data, 0, sizeof(pc-data)); } 2.2 添加功能 void AddContact(Contact* pc) {assert(pc);if (pc-sz MAX){printf(通讯录已满,无法增加);return;}printf(请输入名字:\n);scanf(%s, pc-data[pc-sz].name);printf(请输入年龄:\n);scanf(%d, (pc-data[pc-sz].age));printf(请输入性别:\n);scanf(%s, (pc-data[pc-sz].sex));printf(请输入电话:\n);scanf(%s, (pc-data[pc-sz].tele));printf(请输入地址:\n);scanf(%s, (pc-data[pc-sz].addr));pc-sz;printf(增加成功\n); } 2.3 展示功能  void ShowContact(const Contact* pc) {assert(pc);if (pc-sz 0){printf(通讯录为空,无需打印\n);return;}printf(%-20s%-5s%-5s%-12s%-30s\n, 名字, 年龄, 性别, 电话, 地址);for (int 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);} } 2.4 查找函数 由于下面要实现的查找功能,修改删除功能都需要先找到该条数据,所以我们以姓名查找为例,定义一个查找函数.这样也能增强代码的复用性. 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; } 2.5 删除联系人  注:数组中的元素的删除不了的,只能覆盖,所以把后面的向前覆盖即可. void DelContact(Contact* pc) {char name[NAME_MAX];assert(pc);if (pc-sz 0){printf(通讯录为空,无法删除\n);}printf(请输入要删除的人的名字\n);scanf(%s, name);//找到名字叫name的人int ret FindByName(pc, name);//找到返回下标,找不到返回-1if (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); }2.6 查找联系人 void SearchContact(Contact* pc) {assert(pc);char name[NAME_MAX];printf(请输入要查找的人的姓名\n);int ret FindByName(pc-data, name);if (ret -1){printf(要查找的人不存在\n);return;}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); } 2.7 修改联系人 void ModifyContact(Contact* pc) {assert(pc);char name[NAME_MAX];scanf(%s, name);int ret FindByName(pc, name);if (ret -1){printf(要修改的人的信息不存在\n);return;}//修改的逻辑else{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);printf(修改完成\n);}} 2.8 按照姓名排序联系人 static int sort_by_name(const void* e1, const void* e2) {return strcmp(((PeoInfo*)e1)-name, ((PeoInfo*)e2)-name); }void SortContact(Contact* pc) {if (pc-sz 0){printf(一个人没有你排什么顺序啊小丑\n);}qsort(pc-data, pc-sz, sizeof((pc-data)[0]), sort_by_name);ShowContact(pc); } 2.9 test.c #define _CRT_SECURE_NO_WARNINGS#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:SortContact(con);break;case EXIT:break;default:printf(输入错误,请重新输入\n);}} while (input);return 0; } 2.10 contact.c #define _CRT_SECURE_NO_WARNINGS #include contact.hvoid InitContact(Contact* pc) {assert(pc);pc-sz 0;memset(pc-data, 0, sizeof(pc-data)); } void AddContact(Contact* pc) {assert(pc);if (pc-sz MAX){printf(通讯录已满,无法增加);return;}printf(请输入名字:\n);scanf(%s, pc-data[pc-sz].name);printf(请输入年龄:\n);scanf(%d, (pc-data[pc-sz].age));printf(请输入性别:\n);scanf(%s, (pc-data[pc-sz].sex));printf(请输入电话:\n);scanf(%s, (pc-data[pc-sz].tele));printf(请输入地址:\n);scanf(%s, (pc-data[pc-sz].addr));pc-sz;printf(增加成功\n); }void ShowContact(const Contact* pc) {assert(pc);if (pc-sz 0){printf(通讯录为空,无需打印\n);return;}printf(%-20s%-5s%-5s%-12s%-30s\n, 名字, 年龄, 性别, 电话, 地址);for (int 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);}printf(请输入要删除的人的名字\n);scanf(%s, name);//找到名字叫name的人int ret FindByName(pc, name);//找到返回下标,找不到返回-1if (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(请输入要查找的人的姓名\n);int ret FindByName(pc-data, name);if (ret -1){printf(要查找的人不存在\n);return;}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];scanf(%s, name);int ret FindByName(pc, name);if (ret -1){printf(要修改的人的信息不存在\n);return;}//修改的逻辑else{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);printf(修改完成\n);}} static int sort_by_name(const void* e1, const void* e2) {return strcmp(((PeoInfo*)e1)-name, ((PeoInfo*)e2)-name); }void SortContact(Contact* pc) {if (pc-sz 0){printf(一个人没有你排什么顺序啊小丑\n);}qsort(pc-data, pc-sz, sizeof((pc-data)[0]), sort_by_name);ShowContact(pc); } 2.11 contact.h #define _CRT_SECURE_NO_WARNINGS #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 100typedef 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[100];int sz;//人的信息个数 }Contact;//初始化通讯录 void InitContact(Contact* pc); //增加联系人 void AddContact(Contact* pc); //显示联系人 void ShowContact(const Contact* pc); //删除联系人 void DelContact(Contact* pc); //查找联系人 void SearchContact(Contact* pc); //修改联系人 void ModifyContact(Contact* pc); //排序联系人 void SortContact(Contact* pc);
http://www.w-s-a.com/news/20467/

相关文章:

  • 如何查询网站建设时间wordpress 框架解析
  • 网站建设年终总结网站建设公司顺义
  • 网页给别人做的 网站后续收费吗获取更多付费流量
  • 金融交易网站建设金融 网站建设
  • 长沙网站建设联系电话怎么做表格
  • 网站怎么做域名实名认证龙华网站 建设信科网络
  • 企业网站规划方案网站是做排行榜
  • 万维网网站个人申请网站
  • 我想做网站怎么做昆山网站建设 全是乱码
  • 单位做网站怎么做圣诞树html网页代码
  • 网页开发与网站开发企业网站托管服务常用指南
  • 一站式服务图片临沂做进销存网站
  • 鸣蝉智能建站标准物质网站建设模板
  • 电商网站建设技术员的工作职责商业网站制作价格
  • 网站html模板免费下载公司的网站建设费用入什么科目
  • 高中生做网站网页网页制作教程零基础学会
  • 做金融网站有哪些要求WordPress站内搜索代码
  • 济南网站怎么做seowordpress注册发邮件
  • 珠海网站设计平台东莞市手机网站建设平台
  • 网站开发文档合同怎么在wordpress导航条下方加入文字广告链接
  • 网站建设需怎么做有网站怎么做企业邮箱
  • 网站制作流程视频教程小程序多少钱一年
  • 暗网是什么网站花都网站建设哪家好
  • 贵州网站开发流程晋江论坛手机版
  • 网站建设丿金手指谷哥14阿里巴巴官网电脑版
  • 网站开发招聘信息匿名ip访问网站受限
  • 网站转app工具网站规划建设与管理维护大作业
  • flash是怎么做网站的.net购物网站开发
  • 烟台网站建设求职简历品质商城网站建设
  • 做百度外链哪些网站权重高点做网站具备的条件