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

网站及app开发wordpress用户发文章

网站及app开发,wordpress用户发文章,网站公司logo设计,中国制造网下载这两天学完系统调用和标准IO#xff0c;之前的通讯录可以进行一些改进#xff0c;将数据保存到文件中(图我这里就不发了)。 原理#xff1a;每次启动程序时先从预设文件中以只读的形式读取保存的通讯录信息#xff0c;然后将读取到的信息导入到结构体中#xff1b;每次执…这两天学完系统调用和标准IO之前的通讯录可以进行一些改进将数据保存到文件中(图我这里就不发了)。 原理每次启动程序时先从预设文件中以只读的形式读取保存的通讯录信息然后将读取到的信息导入到结构体中每次执行退出时先将预设文件以更新方式打开并将文件中之前保存的信息清空然后将结构体的数据保存到文件中去再退出程序。 还有在文件写入时和读取时先写入读取保存数据的总个数让程序知道有多少数据要写入读取然后保存每个数据的字节数程序会根据每个数据的字节数来进行保存最后再保存数据。 与之前版本相比改动的只有主函数中加入了读取文件和写入数据这两个步骤还有的变动就是结构体从一个变成了两个将指针从原来一个结构体中分离出来方便数据从文件中的导入导出。下面是代码免得你们往前翻我把之前的代码都修改了考过来 头文件 head.h 唯一修改的就是结构体 #ifndef HEAD_H_ #define HEAD_H_#include stdlib.h #include stdio.h #include string.h #include unistd.h // sleep函数头文件 #include sys/types.h #include sys/stat.h #include fcntl.h#define uint unsigned int #define OK 0 #define ERROR -1 #define MALLOC_ERROR -2 #define N 20 typedef int ElementType; typedef struct data {ElementType ID; // ID号char Name [N]; // 姓名char Mobile_Phone [N]; // 手机号码char Home_Address [N]; // 家庭住址char Company_Tell [N]; // 公司电话}Data; typedef struct _Node {Data data;struct _Node* next; // 节点指针 }Node;typedef Node* PNode; // 重命名节点指针类型//显示操作界面 int Interface_Display ();//添加好友信息 (尾插法) int Add_Friend (PNode head, ElementType num);//显示所有好友信息 int Friend_Information (PNode head);//查找好友 int Search_Friend (PNode head, char* Name);//删除好友 void Delete_Friend (PNode head, char* Name);#endif源文件 head.c 关于结构体的部分要进行修改 #include head.h//显示操作界面 int Interface_Display () {system (clear);printf (\t*****************************************\n);printf (\t~ 欢迎使用通讯录 ~\n);printf (\t~ ~\n);printf (\t~ 1 添加好友信息 ~\n);printf (\t~ 2 列表好友信息 ~\n);printf (\t~ 3 搜索好友 ~\n);printf (\t~ 4 删除好友 ~\n);printf (\t~ 5 退出 ~\n);printf (\t~ ~\n);printf (\t~ ~\n);printf (\t~ 作者believe ~\n);printf (\t*****************************************\n);printf ( \n);printf ( \n);printf (\t请输入对应数字选择相应功能); }//添加好友信息 (尾插法) int Add_Friend (PNode head, ElementType num) {if (NULL head){return ERROR;}//创建一个新的结点PNode p (PNode) malloc(sizeof(Node)/sizeof(char));if (NULL p){return MALLOC_ERROR;}//将新数据赋给新结点system(clear); printf (\t*************添加好友***************\n);p-data.ID num;printf (\t好友的ID为%d\n, p-data.ID);printf (\n);printf (\t请输入好友的名字);scanf (%s, p-data.Name);printf (\n);printf (\t请输入好友的手机号);scanf (%s, p-data.Mobile_Phone);printf (\n);printf (\t请输入好友的家庭住址);scanf (%s, p-data.Home_Address);printf (\n);printf (\t请输入好友的公司电话);scanf (%s, p-data.Company_Tell);printf (\n);p-next NULL;//找到最后一个结点PNode Ptmp; //将头结点地址给临时指针PtmpPtmp head;while (Ptmp-next){Ptmp Ptmp-next;}Ptmp-next p;return OK;}//显示所有好友信息 int Friend_Information (PNode head) {if (NULL head){return ERROR;}PNode p head-next;printf (\tID\t姓名\t\t手机号\t\t住址\t\t\t公司电话\n);while (p){printf (\t%d\t%s\t\t%s\t\t%s\t\t\t%s\n, p-data.ID, p-data.Name,p-data.Mobile_Phone, p-data.Home_Address, p-data.Company_Tell);p p-next;}putchar(\n);return OK; }//通过名字查找好友 int Search_Friend (PNode head, char* Name) {PNode p head;PNode q NULL;if ((NULL ! p) NULL ! (p-next)){while (p-next) {q p-next;if ((NULL ! q) 0 (strcmp(q-data.Name, Name))){printf (\t好友信息: \n\tID:%d\n\t姓名: %s\n\t手机号码: %s\n\t家庭地址%s\n\t公司电话: %s\n, q-data.ID, q-data.Name, q-data.Mobile_Phone, q-data.Home_Address, q-data.Company_Tell);}else{printf (\t对不起您的通讯录没有该好友\n);}p p-next;}}/* 另一种做法if (NULL head){return ERROR;}PNode p;int flag 1;for (p head-next; p ! NULL; p p-next){if (0 strcmp(p-data.Name, Name)){flag 0;printf (\t好友信息\n\tID: %d\n\t姓名: %s\n\t手机号码: %s\n\t家庭地址: %s\n\t公司电话: %s\n, p-data.ID, p-data.Name, p-data.Mobile_Phone, p-data.Home_Address, p-data.Company_Tell);}}fi (flag){printf (\t对不起您的通讯录没有该好友\n);}putchar(\n);*/return OK; }//删除好友 void Delete_Friend (PNode head, char* Name) {PNode p head;PNode q NULL;while (NULL ! p NULL ! (p-next)){q p-next;if (NULL ! q 0 strcmp(q-data.Name, Name)){p-next q-next;free(q);int j;printf (\t正在删除\n);printf (\t请稍候);fflush (stdout); //强制刷新缓存输出显示for (j 0; j 2; j){sleep (1); //linux使用sleep参数为秒printf (.);fflush(stdout); //强制刷新缓存输出显示}printf (\n);printf (\t该好友已成功删除\n);}else if (NULL q-next 0 ! strcmp(q-data.Name, Name)){printf (\t您的通讯录没有该好友\n);}p p-next;} } 主函数 main.c 加入了数据的读取和写入已标明 /******************************************************************* 需求制作一个电子通讯录通过该通讯录能录入好友ID号、姓名(英文)、手 机号码家庭住址公司电话。 模块主界面主要显示软件功能A)添加好友信息 B)列表好友信息。(包含排序功能) C)搜索好友 D)删除好友A)用户输入INSERT命令后让用户输入好友信息。添加成功或失败都需提示B)用户输入DISPLAY命令后好友信息升序排列C)用户输入SEARCH命令后让用户输入将要搜索好友姓名查询。如果未搜索到请友好提示。如果搜索到显示处该好友信息D)用户输入DELETE命令后让用户输入将要删除好友姓名删除如果存在同名的多个好友则列表出所有同名的好友信息让用户通过输入ID号删除提示用户删除成功。 **********************************************************************/ #include head.hint main () {int Function;int i 0;char Name[N];int cho;// 创建头结点并为其分配空间PNode head_node (PNode) malloc(sizeof(Node)/sizeof(char));if (NULL head_node){return MALLOC_ERROR;}head_node-next NULL;/****************************************************************打开存放信息的文件并将里面的数据导入到链表中区 ****************************************************************/// 以只读方式打开存放信息的文件FILE *fp1 fopen (student.txt, r); if (NULL fp1) { printf (fopen); return -1; } PNode tmp head_node; int count; int ret; // 保存读记录的个数并判断是否读到文件结尾如果读到文件结尾// 它返回一个非0 的值ret fread (count, sizeof(int), 1, fp1); if(ret ! 0) { for (i 0; i count; i) {// 创建新结点用来保存读取的数据Node *node (Node*)malloc(sizeof(Node)/sizeof(char)); int len; fread (len, sizeof(int), 1, fp1); // 读取数据长度fread ((node-data), len, 1, fp1); // 读取数据 node-next NULL; while (tmp-next) // 向后遍历{ tmp tmp-next; } tmp-next node; // 将结点导入链表中 } } if (ret 0 !feof(fp1)) // 读取失败{ perror (fread); return -1; } fclose (fp1); // 关闭刚刚打开的文件 /****************************************************************文件导入链表结束关闭文件 ****************************************************************/ i 1; // i初始化i既是ID编号while (1){Interface_Display (); // 主界面scanf (%d, Function);switch (Function) // 功能选择{case 1: // 添加好友{Function 0;Add_Friend (head_node, i);int j;printf (\t正在添加\n);printf (\t请稍候);fflush (stdout); // 强制刷新缓存输出显示for (j 0; j 2; j){sleep (1); // Linux 使用sleep参数为秒printf (.);fflush (stdout); // 强制刷新缓存输出显示}printf (\n);printf (\t添加成功\n);printf (\t返回主菜单请输入1);scanf (%d, cho);if (1 cho){break;}else{printf (\t对不起您的输入有误请重新输入);scanf (%d, cho);break;}break;} case 2: // 显示好友信息{system (clear);printf (\t***********好友信息******************\n);printf (\n);Friend_Information (head_node);Function 0;printf (\t返回主菜单请输入1);scanf (%d, cho);if (1 cho){break;}else{printf (\t对不起您的输入有误请重新输入);scanf (%d, cho);break;}break;}case 3: // 查找好友{system (clear);printf (\t*************查找好友*************\n);printf (\t请输入您要查找的好友姓名:);scanf (%s, Name);printf (\n);int j; printf (\t正在查找\n);printf (\t请稍候);fflush (stdout); // 强制刷新缓存输出显示for (j 0; j 2; j){sleep (1); // Linux 使用sleep参数为秒printf (.);fflush (stdout); // 强制刷新缓存输出显示}printf (\n);Search_Friend (head_node, Name);printf (\t返回主菜单请输入1);scanf (%d, cho);if (1 cho){break;}else{printf (\t对不起您的输入有误请重新输入);scanf (%d, cho);break;}break;}case 4: //删除好友{system (clear);printf (\t*************删除好友*************\n);printf (\t请输入要删除好友的姓名:);scanf (%s, Name);printf (\n);Delete_Friend (head_node, Name);printf (\t返回主菜单请输入1);scanf (%d, cho);if (1 cho){break;}else{printf (\t对不起您的输入有误请重新输入);scanf (%d, cho);break;}break;} case 5: //退出通讯录{/****************************************************************退出程序前将链表中的数据导入到文件中去 ****************************************************************/// 以更新方式打开存放信息的文件打开时会清空文件FILE *fp2 fopen (student.txt, wb); if(NULL fp2) { printf (fopen); return -1; } tmp head_node-next; // tmp为第一个结点count 0; // 用来存放链表长度while(tmp) // 求链表长度{ count; tmp tmp-next; }// 要写入数据的个数fwrite(count, sizeof(int), 1, fp2); tmp head_node; // tmp初始化while (tmp-next) { Node* p tmp-next; tmp-next p-next; // 写入数据的长度 int len sizeof(p-data); fwrite (len, sizeof(int), 1, fp2); //写入数据 fwrite ((p-data), sizeof(Data), 1, fp2); free (p); } fclose (fp2); /****************************************************************数据保存结束即将退出程序 ****************************************************************/Function 0;system (clear);exit (0);}default: //输入有误{Function 0;printf (\t对不起您的输入有误请重新输入);scanf (%d, Function);break;} } } return 0; }
http://www.sadfv.cn/news/224131/

相关文章:

  • 宝安做棋牌网站建设哪家好建设外贸网站的细节
  • 中国做的最好的网站有哪些自己做网站详细步骤
  • 网络营销推广网站网站建设案例公司
  • 如何看别人网站用什么做的南通网站建设入门
  • 历史看过的网站百度搜索引擎下载免费
  • 推广学校网站怎么做wordpress 商城站下载地址
  • 做蛋糕有哪些网站免费企业一键建站网站
  • 一个内部网站如何做外网映射wordpress太臃肿
  • 邢台企业网站建设公司中文 wordpress
  • 做科技申报看什么网站产品宣传推广方案
  • 长春做网站新格公司网站做动态虚线
  • 微信小程序个人网站开发wordpress开头
  • 网站空间需要备案吗商丘企业网站建设服务
  • 网站上的在线答题是怎么做的网站建设考试知识点
  • 做网站及小程序需要会哪些技能建设工程检测中心网站
  • 网站集约化建设网站如何做tag
  • 网站运营教程东莞广告公司有哪些
  • 惠州市住房和城乡建设局网站最新新闻热点事件素材2022
  • 东莞网站建设营销平台的做网站找谁
  • 济南网站建设 行知科技国外网站建设接单
  • 中铁建设集团有几个局正规网络公司关键词排名优化
  • 河南海绵城市建设网站潍坊网站建设价格低
  • 常州做网站价格wordpress 附件管理
  • 灯网一家专门做灯的网站购买网站模板
  • 网站开发 职位描述建设企业官方网站企业登录
  • 青岛seo网站排名做网站需要理解什么
  • 深圳大型论坛网站建设自己做网站视频教程
  • 网站内容建设评估赣州做网站公司哪家好
  • 深圳服务网站建设昆明网站网站建设
  • 省级建设网站风云榜小说排行榜