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

查找北京国互网网站建设建设银行网站能变更手机号吗

查找北京国互网网站建设,建设银行网站能变更手机号吗,thinkphp企业网站开发,阿里巴巴网站的pc端和手机端怎么做的通讯录管理系统项目简介 功能说明 控制台黑窗口实现程序需要满足以下几个功能 程序开始运行时首先显示选择菜单界面#xff0c;根据用户输入确定实现何种功能 程序界面 代码实现 多文件实现 和之前写的实战项目类似#xff0c;这里同样采用多文件实现的方式 多文件写代码…通讯录管理系统项目简介 功能说明 控制台黑窗口实现程序需要满足以下几个功能 程序开始运行时首先显示选择菜单界面根据用户输入确定实现何种功能 程序界面 代码实现 多文件实现 和之前写的实战项目类似这里同样采用多文件实现的方式 多文件写代码的方式可以让我们的写的代码的逻辑结构更加清晰一个项目多个文件实现的形式同时也符合实际工作中一个项目的实现过程有利于我们养成良好的编程习惯。 Address_Book.h:内包含项目用到的所有头文件和函数声明以及一些宏定义和结构体声明等 Address_Book.c这个.c文件是用来实现项目中大部分基本函数的不包含main函数的实现 test.c:项目主函数文件项目主要逻辑实现包含main函数 项目逻辑 头文件部分 包含项目所要引用到的所有头文件和一些宏定义 //↓↓↓↓↓引入要用的头文件↓↓↓↓↓ #include stdio.h #includestdlib.h//清屏函数的头文件 #include string.h//↓↓↓↓↓使用到的宏定义↓↓↓↓↓ #define MAX_NUM 100//通讯录最多存储100个联系人 #define FORMAT %-10s %-10s %-10d %-25s %-30s\n #define DATA ptxl-peoples[i].name, ptxl-peoples[i].sex, ptxl-peoples[i].age, ptxl-peoples[i].phoneNumber, ptxl-peoples[i].address //这里定义FORMAT和DATA是为了后面打印显示通讯录方便简洁避免出现同一段代码重复出现多次的情况 //避免代码冗余 通讯录管理系统的实现是基于结构体和结构体数组的。描述一个联系人需要使用到多种类型的数据这就要定义一个描述单个联系人的结构体代码如下 //创建联系人结构体 struct People {char name[20];char sex[4];int age;char phoneNumber[12];//电话号码一般是11位数后面加一位\0char address[30]; };但是描述一个通讯录的多个联系人需要一个结构体数组同时为了更好地统计通讯录中记录的联系人个数也需要一个整型变量count添加一个联系人count加一删除一个联系人count减一为了实现count和通讯录结构体数组之间的绑定关系这里有定义了一个通讯录的结构体结构体成员一个是存储联系人的信息的结构体数组一个是统计联系人个数的整型元素count。 //创建通讯录也就是联系人数组最大容量为MAX_NUM宏定义为100 struct Txl {struct People peoples[MAX_NUM];int count ; };同时头文件也包含项目中函数的声明 //↓↓↓↓↓函数声明↓↓↓↓↓ void menu();//菜单函数 void initiate(struct Txl *ptxl); //初始化通讯录总数为0 void Add(struct Txl* ptxl);//添加联系人的函数 void Show(struct Txl* ptxl);//显示联系人的函数 void Find(struct Txl* ptxl);//查找联系人的函数 void Change(struct Txl* ptxl);//修改联系人的函数 void Delete(struct Txl* ptxl);//删除联系人的函数 void Clear(struct Txl* ptxl);//清空通讯录这里说明一点这些函数的参数都是结构体指针类型的而不是结构体。 是因为结构体传参的时候建议传结构体的地址。 函数在传参的时候参数是需要压栈的会有时间和空间上的系统开销如果传递的是一个结构体对象的时候结构体对象过大参数压栈的系统开销就会比较大会程序导致性能的下降。 内部函数实现 menu函数的实现 menu函数的实现比较简单主要是printf函数代码如下 //打印选择菜单 void menu() {printf(********************************\n);printf(******** 1.添加联系人 ********\n);printf(******** 2.显示联系人 ********\n);printf(******** 3.删除联系人 ********\n);printf(******** 4.查找联系人 ********\n);printf(******** 5.修改联系人 ********\n);printf(******** 6.清空联系人 ********\n);printf(******** 0.退出通讯录 ********\n);printf(********************************\n); }Addstruct Txl *ptxl函数的实现 Add函数主要就是结构体数组的访问操作了但是在这之前要先判断一下通讯录有没有满也就是判断通讯录中的count成员的数值是不是等于MAX_NUM(定义的通讯录的最大容量)如果是输出提示语如果不是则再进行结构体数组中单个结构体成员的访问代码如下 //添加联系人 void Add(struct Txl* ptxl) {if (ptxl-count MAX_NUM){printf(通讯录已满不能再添加联系人了~\n);}else{//添加姓名printf(姓名);scanf(%s, ptxl-peoples[ptxl-count].name);//添加性别printf(性别男 或 女);scanf(%s, ptxl-peoples[ptxl-count].sex);//添加年龄printf(年龄);scanf(%d, ptxl-peoples[ptxl-count].age);//这里要取地址操作符//添加联系电话printf(联系电话);scanf(%s, ptxl-peoples[ptxl-count].phoneNumber);//添加地址printf(地址);scanf(%s, ptxl-peoples[ptxl-count].address);(ptxl-count);printf(添加联系人成功\n);} }Showstruct Txl *ptxl函数的实现 Show函数的实现也比较简单循环访问并打印结构体数组中的成员就好循环的条件是小于通讯录结构体中的count变量的值代码如下 //显示联系人 void Show(struct Txl* ptxl) {int i 0;printf(%-10s %-10s %-10s %-25s %-30s\n, 姓名, 性别, 年龄, 联系电话, 地址);for (i 0; i (ptxl-count); i){printf(FORMAT,DATA);} } Deletestruct Txl *ptxl函数的实现 根据用户输入的姓名信息删除结构体数组中的指定联系人 首先定义一个字符类型的数组接收用户的输入的姓名信息然后遍历结构体数组的每一个元素的name成员用strcmp字符串比较函数对用户输入和结构体数组的每一个元素的name成员进行比较返回值用ret接收返回值为0则进行删除操作就是把结构体数组成员从当前位置开始把后一个元素赋值给前一个元素直到循环遍历完整个结构体数组简单来说就是用后面的元素覆盖前面的元素接着把描述通讯录联系人总数的count进行减一操作 但是这里结构体数组中的最后一个元素并没有被覆盖但是也没有被删除但是因为count的值进行了减一操作所以后面打印结构体数组的时候虽然最后一个元素没有被覆盖没有被删除但是也不会打印出来。 代码如下 //删除联系人 void Delete(struct Txl* ptxl) {char input[20] {0};int i 0;int flag 0;printf(请输入你要删除的联系人姓名);scanf(%s,input);for (i 0; i ptxl-count; i){int ret strcmp(input,ptxl-peoples[i].name);if (ret 0){flag 1;int j 0;int k i;for (j 0; j (ptxl-count) - i-1; j){ptxl-peoples[k] ptxl-peoples[k1];k; }printf(删除联系人成功~\n);ptxl-count--;break;}}if (flag ! 1){printf(没有找到此联系人\n);} }之中还使用了flag来标记字符串是否匹配成功如果成功就进行删除操作并跳出循环否则输出提示。 Findstruct Txl *ptxl函数的实现 Find函数的实现和Delete函数类似也是遍历结构体数组用strcmp函数进行匹配匹配到了就进行打印输出没匹配到就输出提示 //查找联系人 void Find(struct Txl* ptxl) {char input[20] { 0 };printf(请输入你要查找的联系人的姓名);scanf(%s, input);int i 0;int flag 0;//定义一个标志找到了置为1for (i 0; i ptxl-count; i){int ret strcmp(ptxl-peoples[i].name, input);if (ret 0){printf(查找成功该联系人相关信息如下↓↓↓\n);printf(%-10s %-10s %-10s %-25s %-30s\n, 姓名, 性别, 年龄, 联系电话, 地址);printf(FORMAT, DATA);flag 1;break;}}if (flag 0){printf(查找失败通讯录中没有此联系人信息\n);} }后面函数的实现都大同小异框架结构都类似就不再赘述 Changestruct Txl *ptxl函数的实现 //修改联系人 void Change(struct Txl* ptxl) {char input[20] { 0 };printf(请输入你要修改的联系人的姓名);scanf(%s, input);int i 0;int flag 0;for (i 0; i ptxl-count; i){int ret strcmp(ptxl-peoples[i].name, input);if (ret 0){//姓名printf(姓名);scanf(%s, ptxl-peoples[i].name);//添加性别printf(性别男 或 女);scanf(%s, ptxl-peoples[i].sex);//添加年龄printf(年龄);scanf(%d, ptxl-peoples[i].age);//这里要取地址操作符//添加联系电话printf(联系电话);scanf(%s, ptxl-peoples[i].phoneNumber);//添加地址printf(地址);scanf(%s, ptxl-peoples[i].address);printf(联系人信息修改成功\n);flag 1;break;}}if (flag 0){printf(此联系人不在通讯录中无法修改\n);} } Clearstruct Txl *ptxl函数的实现 void Clear(struct Txl* ptxl) {ptxl-count 0;printf(通讯录清空成功~~~\n);//这里只是简单的把结构体txl中的count值设置为0//这样打印的时候就什么都不会打印看起来像是清空了通讯录//实际上内存中还是存在数据的程序结束前并没有把数组中的数据清除//这里具体后面在想办法改善//动态内存管理相关内容 }主程序代码 #include Address_Book.h//包含自己写的头文件int main() {int input 0;struct Txl txl;initiate(txl);do {menu();printf(请选择你要进行的操作-);scanf(%d,input);switch (input){case 1://AddAdd(txl);break;case 2://ShowShow(txl);break;case 3:Delete(txl);break;case 4:Find(txl);break;case 5:Change(txl);break;case 6:Clear(txl);//这里只是简单的把结构体txl中的count值设置为0这样打印的时候就什么都不会打印看起来像是清空了通讯录实际上数据还是存在数组中的break;case 0://Exitprintf(退出系统~~~\n);break;default:printf(选择错误请输入0~6 的数字\n);break;}} while (input);return 0; }思考和总结 以上这一些函数可以用转移表函数指针进行优化他们的参数和返回值类型都一致后面写代码也发现了遍历结构体数组然后用strcmp库函数进行字符串匹配的这些代码多次出现很冗余可以封装成一个函数删除联系人和清空联系人的操作并不是真正意义上的清除了数据和所占用的空间后续可以使用动态内存相关知识进行优化可以给通讯录增加一个排序功能按名字按年龄等修改联系人方面可以优化具体修改什么属性的功能链表实现
http://wiki.neutronadmin.com/news/363747/

相关文章:

  • html网站标题怎么做的最近的重要新闻
  • 工程建设信息网站资质公告网站申请备案要多久
  • 门户网站的首页模板店铺设计图片
  • 怎样创建网站品牌设计需要多少钱
  • 网站收录手机网页编辑器中文版
  • 网站必须做诚信认证吗网站建设要固定ip网络吗
  • 网站加强阵地建设与管理弄个app要花多少钱
  • 网站模版设计小程序开发公司网
  • 怎么把自己做的网站上传到网上黑龙江省建设协会网站
  • 盐城市住房和城乡建设局门户网站包装设计是什么
  • 网站建设教程书籍免费下载网站源码分享
  • 做的图怎么上传到网站阜宁哪家专业做网站
  • 衡水购物网站制作wordpress 媒体路径
  • 课程培训网站模板下载找哪个公司做网站推广最好
  • 网站做交互设计如何提高网站访问速度的文章
  • 怎样将视频放在网站里做公司做网站需要准备什么
  • 招工做的网站宁波网站建设服务公司电话
  • wordpress 表格 链接seo新手教程
  • 网站建设 需要ae吗网站后台用户管理系统
  • 有哪些做数据分析的网站教做甜品的网站
  • 做个网站出来要多少钱ui交互设计做什么
  • 怎么做谷歌这样的网站台州制作网站软件
  • 做家居的网站win xp 个人网站免费建设
  • 建设投资公司网站昆明行业网站建设
  • 怎么做课题组网站google app下载
  • 做网站营销网站建设基础心得
  • 允许发外链的网站梅州建站公司
  • 网站文章展示是做怎么重庆企业seo
  • 网站输入卡密提取怎么做企业网站建设服务公司
  • 网站建设公司公司介绍百度商桥接入网站