通讯录管理系统说明书内容摘要:

1 添加记录 2 删除记录 *\n)。 printf( * 3 修改记录 4 查询记录 *\n)。 printf( * 5 显示记录 6 保存记录 *\n)。 printf( * 0 退出系统 *\n)。 printf( 15 *************************************************************\n)。 } void printhead() /*格式化输出表头 */ { printf(HEADER1)。 printf(HEADER2)。 printf(HEADER3)。 } void printdata(Node *pp) /*格式化输出表中数据 */ { Node* p。 p=pp。 printf(FORMAT,DATA)。 } /*显示单链表 l中存储的联系人记录,内容为 person结构中定义的内容 */ void Disp(Link l) { Node *p。 p=lnext。 /*l 存储的是单链表中头结点的指针,该头结点没有存储联系人信息,指针域指向的后继结点才有联系人信息 */ if(!p) /*p==NULL,NUll在 stdlib中定义为 0*/ { printf(\n=====没有记录 !\n)。 return。 } printf(\n\n)。 printhead()。 /*输出表格头部 */ while(p) /*逐条输出链表中存储的联系人信息 */ { printdata(p)。 p=pnext。 /*移动直下一个结点 */ printf(HEADER3)。 } } /************************************************************* 作用:用于定位链表中符合要求的节点,并返回指向该节点的指针 参数: findmess[]保存 要查找的具体内容。 nameornum[]保存按什么查找。 在单链表 l中查找。 **************************************************************/ 16 Node* Locate(Link l,char findness[],char nameornum[]) { Node *r。 if(strcmp(nameornum,num)==0) /*按编号查询 */ { r=lnext。 while(r) { if(strcmp(r,findness)==0) /*若找到 findmess值的学号*/ return r。 r=rnext。 } } else if(strcmp(nameornum,name)==0) /*按姓名查询 */ { r=lnext。 while(r) { if(strcmp(r,findness)==0) /*若找到 findmess 值的联系人姓名 */ return r。 r=rnext。 } } else if(strcmp(nameornum,address)==0) /*按地址查询 */ { r=lnext。 while(r) { if(strcmp(r,findness)==0) /*若找到 findmess值的联系人地址 */ return r。 r=rnext。 } } return 0。 /*若未找到,返回一个空指针 */ } /*输入字符串 */ void stringinput(char *t,int lengths,char *attention) { char n[255]。 do{ 17 printf(attention)。 /*显示提示信息 */ scanf(%s,n)。 /*输入字符串 */ if(strlen(n) lengths)printf(\n 超过设定长度 ! \n)。 /*进行长 度校验,超过lengths值重新输入 */ }while(strlen(n) lengths)。 strcpy(t,n)。 /*将输入的字符串拷贝到字符串 t中 */ } /*输入 age中的数字 */ int numberinput(char *attention) { int t=0。 printf(attention)。 scanf(%d,amp。 t)。 return t。 } /*增加联系人记录 */ void Add(Link l) { Node *p,*r,*s。 /*实现添加操作的临时的结构体指针变量 */ char flag=0,num[6]。 r=l。 s=lnext。 Disp(l)。 /*先打印出已有的联系人信息 */ while(rnext!=NULL) r=rnext。 /*将指针移至于链表最末尾,准备添加记录 */ while(l) /*一次可输入多条记录,直至输入学号为 0的记录结点添加操作 */ { while(l) /*输入学编号,保证该编号没有被使用,若输入编号为 0,则退出添加记录操作 */ { stringinput(num,6,输入编号 (按 39。 039。 返回主菜单 ):)。 /*格式化输入编号并检验 */ flag=0。 if(strcmp(num,0)==0) /*输入为 0,则退出添加操作,返回主界面 */ {return。 } s=lnext。 while(s) /*查询该编号。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。