C语言程序设计报告.docx

上传人:王** 文档编号:994387 上传时间:2024-03-13 格式:DOCX 页数:9 大小:78.35KB
下载 相关 举报
C语言程序设计报告.docx_第1页
第1页 / 共9页
C语言程序设计报告.docx_第2页
第2页 / 共9页
C语言程序设计报告.docx_第3页
第3页 / 共9页
C语言程序设计报告.docx_第4页
第4页 / 共9页
C语言程序设计报告.docx_第5页
第5页 / 共9页
C语言程序设计报告.docx_第6页
第6页 / 共9页
C语言程序设计报告.docx_第7页
第7页 / 共9页
C语言程序设计报告.docx_第8页
第8页 / 共9页
C语言程序设计报告.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
资源描述

《C语言程序设计报告.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告.docx(9页珍藏版)》请在优知文库上搜索。

1、二O一一年九月设计要求题目三通讯录管理系统任务:自学C语言中相关知识,设计出通讯录管理系统。要求如下所述: 建设通讯录信息,信息至少包含编号、姓名、年龄、通讯地址、电子邮箱等;; 能够提供添加、删除和修改通讯录信息的功能,并给出确认是否保存或删除记录的提示信息; 能够提供按姓名或等查询并显示相应记录信息; 将通讯录保存在文件中; 能够按表格方式输出通讯录信息。二、要求为了保证所有的数据可以长期被使用,要求程序能将相关数据存储在外部数据文件中,具体数据格式和文件名、路径等自定;根据所设计的算法,定义相应函数分别实现系统的各子功能模块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来调用课

2、程设计中要求完成的各个功能模块,子程序执行完后可返回到主菜单,继续选择其他功能执行。源程序要求书写标准,构造清晰。重点函数的重点变量,重点功能局部均要求给出清晰的程序注释。程序编译、链接成功后,自己设计实现程序功能的一组或多组测试数据,并严格按照此测试数据进展测试,然后分析测试结果。如果程序不能正常运行或结果不正确,那么需对程序进展单步调试,在调试过程中认真查找算法实现中存在的问题,并加以分析和修正。程序详解首先,定义构造体structstudentlongnUm;用于存储学号Charname20;姓名intage;年龄longtelephoney/号码charadress40;地址charE

3、_mail30;邮箱intQQ12;/增设的QQ一栏structstudent*next;用于存放下一级指针Jfirst;first为第一个节点,继而在其后动态的开创假设干节点。输入函数显示所有记录删除函数插入函数 按学号查找 按姓名查找查找函数选择函数以下是用于链表处理的各个函数:structstudent*creat(structstudent*p)voidprintall(structstudent*head)structstudent*delet(structstudent*head)structstudent*insert(structstudent*head)structstude

4、nt*searchbynum(structstudent*head)structstudent*searchbyname(structstudent*head)structstudent*search(structstudent*head)menu_select()以下是各个函数的详细说明:CreatO函数用于创立链表,其中以n记录节点的个数,并在创立时实现自加,以便于后面函数的处理,其循环输入的实现,依靠库函数mallocO和后面的WhiIe循环。PrintaIl函数用于显示当前的的所有记录,依靠头指针找到链表首地址,有WhiIe循环实现所有记录的输出。DeletO函数用于删除某个记录,删除

5、可以按姓名或学号这两种方式进展的,但本程序中没有这个功能即只可以按学号进展删除(因为学号唯一)。InsertO函数用于插入,同样以头指针找到链表的首地址,并将要插入的学号依次与各个节点中得num比较,然后按顺序将一个节点插入。SearchO函数用于查找,查找函数提供了两种方式,即按姓名查找和按学号查找。在SearCh()函数中可以按提示调用SearChbyname()和SearChbynUmMenu-SelectO函数用于提供函数选项,旨在简化主函数。流程图#include#include#include#include#define LEN :PrinlalISearch Insert ID

6、elet#defineNULLQ#defineSHU%dn%sn%5dn%ldn%sn%sn%sintn;structstudent(longnum;charname20;intage;longtelephone;charadress40J;charE-mail30;intQQ12;structstudent*next;first;structstudent*creat(structstudent*p)创立链表的函数,即输入函数(structstudent*head;structstudent*pl,*p2;n=0;先给n赋值0pl=p2=(structstudent*)malIoc(LEN)

7、;强制类型转换Printf(ttt*请输入用户信息*n);printf(,ttt输入学号:n”);scanf(%ld,num);Printfettt输入姓名:n);scanf(,%sp1-name);printf(,ttt输入年龄An”);scanf(,%dp1-age);printf(,ttt输入:nn);scanf(,%ld,telephone);printf(,ttt输入地址n);scanf(%sp1-adress);printf(,ttt输入E-mailn,);scanf(,%sp1-E_mail);printf(,ttt输入QQn);scanf(,%sp1-QQ)40head=NUL

8、L;while(pl-num!=O)(n=n+l;实现n的自加,记录节点的个数if(n=l)head=pl;elsep2-next=pl;p2=pl;pl=(structstudent*)malloc(LEN);printf(,ttt请输入用户信息*3num);Primf(ttt输入姓名:n);scanf(,%s,p1-name);printf(ttt输入年龄:n);scanf(,%d,pl-age);printf(ttt输入:nn);scanf(,%ld,pl-telephone);printf(ttt输入地址n);scanf(,%s,p1-adress);printf(,ttt输入E-ma

9、il:nH);scanf(,%s,p1-E_mail);printf(,ttt输入QQn);scanf(,%s,p1-QQ);p2-next=NULL;return0;voidprintall(structstudent*head)显示所有记录(structstudent*p;printf(,n全部的记录如下n:);p=head;doprintf(SHU,p-num,p-name,p-age,p-telephone,p-adress,p-E-mail,p-QQ);p=p-next;while(p!=NULL);)/80structstudent*delet(structstudent*head

10、)/删除函数(longnum;PrindC请输入要删除的号码:n,);scanf(,%ld,num&pl-next!=NULL)2=pl;pl-next;)if(num=p1-num)(if(pl=head)要删除的节点为首节点head=pl-next;elsep2-next=pl-next;printf(,deletz%dn,num);n=n-l;节点减一1elseprintf(,%d未找到该节点!n,num);returnhead;)structstudent*insert(structstudent*head)插入函数(structstudent*stud;structstudent*p

11、,*pl,*p2;pl=head;=studp指向的是要插入的节点if(head=O)(head=p;p0-next=NULL120)else(while(pO-numpl-num)&(pl-next!=NULL)(2=pl;pl=pl-next;1if(p-numnum)(if(head=pl)head=p,插入到原来第一个节点之前elsep2-next=p;p-next=pl;/插入到p2所指的节点之后n=n+l;returnhead;structstudent*searchbynum(structstudent*head)按学号查找(longnumb;Printf(请输入要删除的号码:n

12、,);scanf(,%ld,fenumb);structstudent*p;p=head147scanf(%ld,num)p=p-next;elseprintf(SHU,p-num,p-name,p-age,p-telephone,p-adress,p-E-mail,p-QQ);returnhead;)structstudent*searchbyname(structstudent*head)按姓名查找(chara100;PrMf(请输入要查找的姓名:n);scanf(,%s,a);structstudent*p;p=head;scanf(,%s,a);if(strcmp(a,p-name)!

13、=0)p=p-next;elseprintf(SHU,p-num,p-name,p-age,p-telephone,p-adress,p-E-mail,p-QQ);returnhead;)structstudent*search(structstudent*head)(charchoic;PriIHf(tttl-按号码查找2-按姓名查找”);Primfrttt请选择:”);choic=getch();switch(choic)(caserr:searchbynum(&first);break;case2:SearChbyname(&first);break;1returnhead;inimenu_select()chars80J;inta;定义整形变量system(cls);Printf(tt*欢迎进入通讯管理界面*nn);printf(ttt. pr

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > C/C++资料

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!