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

做铝材哪些网站招聘厦门网页设计公司价格

做铝材哪些网站招聘,厦门网页设计公司价格,windows优化大师怎么用,小程序网站备案目录 实现思路 开始实现 添加增加联系人功能 添加显示联系人信息的功能 添加删除联系人功能 添加查找指定联系人的功能 添加修改指定联系人的功能 测试 代码 Test.c Contact.c Contact.h 实现思路 1.通讯录中保存人的信息#xff1a;名字、年龄、性别、电话、住址… 目录 实现思路 开始实现 添加增加联系人功能 添加显示联系人信息的功能 添加删除联系人功能 添加查找指定联系人的功能 添加修改指定联系人的功能 测试 代码 Test.c Contact.c Contact.h 实现思路 1.通讯录中保存人的信息名字、年龄、性别、电话、住址 2.通讯录的功能 通讯录可以存放100个人的信息增加联系人删除指定联系人修改指定联系人查找指定联系人显示所有联系人的信息排序功能 实现以上思路我们需要创建3个文件 test.c   - 测试通讯录contact.h  - 函数和类型的声明contact.c  - 函数的实现 我们可以以结构体的形式设计保存每个人的信息 struct PeoInfo { //.... } 当通讯录需要存放100个人的信息时我们可以以数组形式存放这些结构体 开始实现 创建3个文件 在头文件Contact.h进行类型的声明 代码 #pragma once//类型的声明typedef struct PeoInfo {char name[20];int age;char sex[5];char tele[12];char addr[30]; }PeoInfo; 写出主函数我们需要在test()中完成我们的整个测试 我们打印菜单同时通过do..while()循环完成功能的选择 注记得加上 #includeContact.h 引用自己的头文件 代码 #define _CRT_SECURE_N0_WARNINGS 1 #includestdio.h #includeContact.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); } void test() {int input 0;//首先得有通讯录PeoInfo data[100];int sz0;//记录通讯录的人数的增加do{menu();printf(请选择:);scanf(%d, input);switch (input){case 1:break;case 2:break;case 3:break;case 4:break;case 5:break;case 6:break;case 0:break;default:break;}} while (input); } int main() {test();return 0; }我们对通讯录部分进行整合封装并初始化 用预处理指令如#define MAX 100让类型声明中的数据可以修改便于维护 将利用枚举代替数字更加直观 添加增加联系人功能 添加显示联系人信息的功能 我们现在已经加了两个功能来运行测试一下 好了测试成功我们继续添加功能 添加删除联系人功能 改进将删除功能中的查询联系人部分封装为函数后续功能需要查询就可以字节调用这个函数提高代码复用性。注这个函数不需要在头文件声明因为该函数只需要在内部使用 添加查找指定联系人的功能 添加修改指定联系人的功能 对于排序功能排序方式有很多种比如按姓名排序按年龄排序等等可以跟据需求来设计这里就不一一实现了。 添加退出功能直接打印退出游戏并跳出。 当选择到非法字符时打印重新选择并跳出选择界面。 到这里一个建议的通讯录就完成了。 让我们来测试一下 测试 测试成功 下面是这个通讯录程序的实现代码 代码 Test.c #define _CRT_SECURE_NO_WARNINGS 1#includecontact.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); } void test() {int input 0;//首先得有通讯录//PeoInfo data[100];//int sz 0;Contact con;InitContact(con);//结构体传参最好传地址do{menu();printf(请选择:);scanf_s(%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://排序//按名字排序//按年龄排序break;case EXIT:printf(退出通讯录\n);break;default:printf(选择错误重新选择\n);break;}} while (input); } int main() {test();return 0; } Contact.c #define _CRT_SECURE_NO_WARNINGS 1 #includecontact.hvoid InitContact(Contact* pc) {assert(pc);//检测指针是否为空指针增强代码的健壮性memset(pc-data, 0, sizeof(pc-data));pc-sz 0; }void AddContact(Contact* pc) {assert(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;//打印列标题printf(%-20s\t%-4s\t%-5s\t%-12s\t%-30s\n, 名字, 年龄,性别, 电话, 地址);for (i 0; i pc-sz; i){printf(%-20s\t%-4d\t%-5s\t%-12s\t%-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) //{ // if (pc-sz 0) // { // printf(通讯录为空无法删除\n); // return; // } // char name[MAX_NAME] { 0 }; // assert(pc); // //删除 // printf(请输入要删除的人的名字:); // scanf(%s, name); // // //找到要删除的人//遍历 // int i 0; // int del 0; // int flag 0; // for (i 0; i pc-sz; i) // { // if (strcmp(pc-data[i].name, name)0)//strcmp()用于比较两个字符串是否相等相等返回0 // { // del i; // flag 1; // break; // } // } // if (flag 0) // { // printf(要删除的联系人不存在\n); // return; // } // // // //删除坐标为del的联系人 // for (i del; i pc-sz-1; i) // { // pc-data[i] pc-data[i 1]; // } // pc-sz--; // printf(成功删除联系人\n); //}//****************//******************* //封装查询函数 int FindByName(const Contact* pc, char name[]) {//找到要删除的人//遍历int i 0;for (i 0; i pc-sz; i){if (strcmp(pc-data[i].name, name) 0)//strcmp()用于比较两个字符串是否相等相等返回0{return i;//找到了}}return -2;//找不到 } //*****************************//删除过程中有查询步骤查询可以单独封装为函数其他功能也可以使用这个函数void DelContact(Contact* pc) {if (pc-sz 0){printf(通讯录为空无法删除\n);return;}char name[MAX_NAME] { 0 };assert(pc);//删除printf(请输入要删除的人的名字:);scanf(%s, name);//找到要删除的人//遍历int del FindByName(pc, name);if (del 0){printf(要删除的联系人不存在\n);return;}int i 0;//删除坐标为del的联系人for (i del; i pc-sz - 1; i){pc-data[i] pc-data[i 1];}pc-sz--;printf(成功删除联系人\n); }//添加查询指定联系人的功能 void SearchContact(const Contact* pc) {assert(pc);char name[MAX_NAME] { 0 };printf(请输入要查找联系人的名字:);scanf(%s, name);int pos FindByName(pc, name);if (pos -2)printf(要查找的人不存在\n);else{printf(%-20s\t%-4s\t%-5s\t%-12s\t%-30s\n, 名字, 年龄, 性别, 电话, 地址);//打印数据printf(%-20s\t%-4d\t%-5s\t%-12s\t%-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) {assert(pc);char name[MAX_NAME] { 0 };printf(请输入要修改人的名字:);scanf(%s, name);int pos FindByName(pc, name);if (pos -1)printf(要修改的人不存在\n);else{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);}} Contact.h #pragma once#include stdio.h #include string.h #include assert.h#define MAX 100 #define MAX_NAME 20 #define MAX_SEX 5 #define MAX_TELE 12 #define MAX_ADDR 30//枚举 代替数字更加直观 enum OPTION {EXIT,//0ADD,//1DEL,//2SEARCH,//3MODIFY,//4SHOW,//5SORT//6 };//类型的声明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[100];int sz; }Contact;//函数声明 // //初始化通讯录 void InitContact(Contact* pc);//增加联系人 void AddContact(Contact* pc);//显示所有联系人的信息 void ShowContact(const Contact* pc);//只打印不涉及修改信息所以加const//删除指定联系人 void DelContact(Contact* pc);//查找指定联系人 void SearchContact(Contact* pc);//修改指定联系人 void ModifyContact(Contact* pc);
http://www.pierceye.com/news/588278/

相关文章:

  • ftp两个网站子域名的绑定郑州网站推广公司
  • 安庆网站设计哈尔滨工程招标信息网
  • 精湛的佛山网站设计太原网站建设培训
  • 邹城市住房和建设局网站深圳比较好的vi设计公司
  • 企业网站建设维护方案一元购物网站怎么做
  • 网站建设优化公司哪家好兰州做网站公司es5188
  • jsp网站开发工资住建网查询
  • 长沙建网站需要多少钱夹江移动网站建设
  • 淄博网站制作高端网站后台任务
  • 营销型网站源码成都网站建设seo
  • 天津网上商城网站建设专业的猎头公司
  • 西平县住房城乡建设局网站西部数码网站管理助手3.0
  • 承德市网站建设WordPress电影资源分享下载站
  • 专注于网络推广及网站建设wordpress离线发布功能
  • 营销型网站案例提高wordpress打开速度
  • 怎么样做一个网站自己个人网站后台怎么做
  • 源码站免费找客户网站
  • idc空间商网站源码知名的网站建设
  • 什么叫网站降权建设网站租服务器
  • 网站后台模板怎样使用站长平台
  • 写一个app需要多少钱龙岩seo包年系统排行榜
  • 科技公司企业网站建设手机360网站seo优化
  • 做翻译 英文网站黑色时尚橱柜网站源码
  • wordpress 主机要求珠海百度推广优化
  • 台山网站建设哈尔滨网站建设收费
  • 卖主机 服务器的网站wordpress自动标签内联
  • 28创业商机网seo在线优化技术
  • 建设银行网站查询余额世界杯球队最新排名
  • 网站对联广告做戒指网站的logo照片
  • 网站开发 项目计划书网页设计产品介绍页面的制作