通讯录管理系统毕业论文.doc

上传人:仙人指路1688 文档编号:3994433 上传时间:2023-03-30 格式:DOC 页数:27 大小:165KB
返回 下载 相关 举报
通讯录管理系统毕业论文.doc_第1页
第1页 / 共27页
通讯录管理系统毕业论文.doc_第2页
第2页 / 共27页
通讯录管理系统毕业论文.doc_第3页
第3页 / 共27页
通讯录管理系统毕业论文.doc_第4页
第4页 / 共27页
通讯录管理系统毕业论文.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《通讯录管理系统毕业论文.doc》由会员分享,可在线阅读,更多相关《通讯录管理系统毕业论文.doc(27页珍藏版)》请在三一办公上搜索。

1、濮阳职业技术学院毕业论文系别:物理与机电工程系,班级:08应用电子,学生: 学号:0805316078指导教师: 课程:C语言 通讯录管理系统指导思想:通过毕业论文工作使大学生对C语言的基本知识、基础理论、基本技能得到提高,毕业论文工作是高职培养阶段教学质量的综合训练和检验。 目 录毕业论文课题和指导思想1摘要3第一章 设计的目的和意义4第二章 系统分析51、系统总体结构分析52、数据类型的选择53、主要函数原型54、调用到的函数65、模块的设计与介绍6第三章 模块介绍和总体实现71、增加模块72、删除模块83、输入模块104、查找模块105、总体实现11第四章 调试与测试141.输入程序进行

2、编译、运行142、增加联系人143、联系人输出154、删除联系人155、查找联系人166、退出16总结17参考资料18附录(源代码)19摘 要 当今时代,网络已经成为人们生活中不可缺少的一部分,世界上的第三媒体Internet ,它打破了地域时间限制,改变了人们的工作和生活方式,制作站点是企业和个人的宣传自己的重要手段,同时也学习信息的重要手段,今年来,随着网络用户要求的不断提高及计算机科学的迅速发展,特别是数据库技术在Internet中的广泛应用,Web站点向用户提供的服务将越来越丰富,越来越人性化.计算机在管理中应用的普及,利用计算机实现各种管理势在必行,对于机关单位来说,利用计算机支持高

3、效率完成通讯录,是适应社会制度要求、推动机关单位信息利用计算机支持高效率完成通讯管理,是适应现在社会制度要求、推动机关单位信息管理走向科学化、规范化的必要条件。随着社会的发展及知识经济时代的到来,管理信息系统在各行各业发挥着越来越重要的作用。通信录管理系统是典型的信息管理系统。通信录管理系统的水平,是衡公司发展水平的一个重要指标。通信录管理系统工作烦琐,包含了大量的信息数据,因此就需要一个完善的职工信息管理系统来实现对这些数据的有效管理,满足公司管理者的需求。关键字:通讯录; 管理信息系统; MIS; Visual Basic;第一章 设计的目的和意义通讯录管理系统是典型的管理系统(MIS),

4、其开发主要包括数据库的建立和维护前端应用程序的开发两个方面。对于前者要求建立起数据库一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,我们使用MICROSOFT公司的VISUAL,BASIC开发工具,利用其提供的各种面向对象的开发工具,尤其是数据窗口这一能方便而简洁操纵数据库的智能化对象,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统。 将网络和通讯录管理结合起来。使得组会人员对参考人员的实际情况一目了然,经过详细的系统调查,开发出的操作简单而且方便使用的一个通讯系统。实现参会代表的动态管

5、理,使得对信息的管理更加方便,同时计算机具有手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好。这样组会人员在工作起来效率高,可以不用再做大量的记录。从而大大减轻了机关单位职员的工作量。运用数据结构中的算法思想作数据结构,结合C语言基本知识,编写一个通讯录管理系统。通过完成本课题,进一步熟悉C语言的基本知识,并掌握数据结构的一些基本算法思想,掌握C语言的文件操作(包括从磁盘读入和向磁盘写入内容),进一步熟悉指针的用法,数组的建立运用和函数的调用等。 加深对数据结构的理解,提高算法设计的能力,锻炼编程的能力用C语言编写一个通讯录管理系统软件,要求能实现通讯录管理系统

6、中增加新记录, 删除记录, 显示通讯录的所有信息, 按名字查询信息, 保存通讯录,退出系统。第二章 系统分析1、系统总体结构分析根据实际情况,我们使用原型法,即以少量代价快速地构造一个可执行的软件系统模型,使用户和开发人员可以较快的确定需求,然后采用循环进化的开发方式,对系统模型作连续的精化,将系统需具备的性质逐渐加上去,直到所有的性质全部满足。以下为系统逻辑模型图:用户系统管理员系统逻辑图 2-12、数据类型的选择struct lianxirenchar name20;char address50;char age5;char tele20;char e_mail30;3、主要函数原型cha

7、r caidan();/菜单void add();/增加联系人函数void print(struct lianxiren a,int);/输入所有联系人void dele(struct lianxiren a,int);/删除联系人void chazhao(struct lianxiren a,int);/查找联系人void chazhao_name(struct lianxiren a,int n);/用名字查找void chazhao_age(struct lianxiren a,int n);/用年龄查找4、调用到的函数通过switch(表达式)case 常量表达式1:语句1case 常

8、量表达式2:语句2case 常量表达式n:语句n调用六个函数。void add();void print(struct lianxiren a,int);void dele(struct lianxiren a,int);void chazhao(struct lianxiren a,int);void chazhao_name(struct lianxiren a,int n);void chazhao_age(struct lianxiren a,int n);5、模块设计与介绍对本系统的功能进行分析后可作如下的模块化设计:输入模块实现功能:按顺序将有姓名(name )、地址(addres

9、s)、年龄(age)、电话(tel)、电子邮箱(E-mail)依次输入,并建立链表将其连接。当输入数据完毕时Enter,输入结束。删除模块实现功能:在已经存储的文件中删除指定的通信录信息,并释放内存空间。删除所有相关通信录信息。查找模块实现功能:在已经存储的文件中查找指定的通信录信息。可以按照查找姓名或方法进行。输出模块实现功能:在输入特定的文件名之后,输出该文件中所包含的全部通信录信息。添加模块实现功能:添加相应信息保存操作,链表中的信息以文件形式被长期。保存。主序模块实现功能:完成系统的界面处理,包括开始界面和主菜单界面。第三章 模块介绍和总体实现1、 Add( )增加模块建立链表的具体操

10、作就是逐一输入各结点数据,并建立其前后相链的关系。void add()int i;FILE *fp;if(fp=fopen(通讯录.txt,a)=NULL)printf(无法打开文件,按任意键退出!n);char a;scanf(%c,&a);exit(0);int num;printf(您想要增加几个联系人:n);scanf(%d,&num);struct lianxiren t50;printf(请输入联系人信息n);printf(名字地址年龄电话电子邮箱n);printf(-n);for(i=0;inum;i+)scanf(%s%s%s%s%s,ti.name ,ti.address ,

11、ti.age ,ti.tele ,ti.e_mail );printf(_n);for(i=0;inext,后把next指向p-next。在释放p指针。要完成的是链表的删除操作,只需修改链表中要删除结点的前一个结点的链指针。使之指向被删除结点的后面一个结点即可。 void dele(struct lianxiren a,int n)struct lianxiren temp5;char mingzi20;int i,j=0,s=0;printf(输入你要删除人得名字:);scanf(%s,mingzi);printf(n);for(i=0;in;i+)if(strcmp(mingzi,ai.n

12、ame)!=0)strcpy(tempj.name,ai.name);strcpy(tempj.address,ai.address);strcpy(tempj.age,ai.age);strcpy(tempj.tele,ai.tele);strcpy(tempj.e_mail,ai.e_mail);j+;else s+;printf(你要删除得人得信息是:n);printf(-n);printf(名字地址 年龄 电话邮箱n);printf(-n);printf(%-8s%-10s%-8s%-15s%-20sn,ai.name,ai.address,ai.age,ai.tele,ai.e_ma

13、il);FILE *fp;if(fp=fopen(通讯录.txt,w)=NULL)printf(无法打开文件,按任意键退出!n);char a;scanf(%c,&a);exit(0);for(i=0;ij;i+)fprintf(fp,n);fprintf(fp,%s%s%s%s%s,tempi.name,tempi.address,tempi.age,tempi.tele,tempi.e_mail);if(s!=0) printf(*删除成功!*n);else printf(您所要删除的联系人不存在,请核查拼写及大小写n);fclose(fp);3、print( )输入模块将最终想要保留的数

14、据信息保存于文件中。void print(struct lianxiren t,int n)if(n=0)printf(*文件为空!*n);return;int i;printf(*通讯录*n);printf(名字地址 年龄 电话邮箱n);printf(_n);for(i=0;iname,p-address,p-age,p-tele,p-e_mail);p+;n+;switch(caidan()case 1:add();break;case 2:print(tongxunlu,n);break;case 3:dele(tongxunlu,n);break;case 4:chazhao(tong

15、xunlu,n);break;case 5:exit(0);char caidan()char choose5;printf(n*n);printf( n); printf( 通 讯 录n);printf( _n);printf(1,增 加 联 系 人 信 息 n);printf(2,输 出 所 有 联 系 人 n);printf(3,删 除 联 系 人 n);printf(4,查 找 联 系 人 n);printf(5,退 出 通 讯 了 n); printf(n);printf(*nn);doprintf(请输入您的选择(1-5):);scanf(%s,choose);while(strc

16、mp(choose,1)&strcmp(choose,2)&strcmp(choose,3)&strcmp(choose,4)&strcmp(choose,5);return choose0;第四章 调试与测试1.输入程序进行编译、运行2.增加联系人(例:1)3.联系人输出4.删除联系人5.查找联系人6.退出总 结课程设计是培养学生综合运用所学知识 、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见

17、,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。 回顾起此次课程设计,至今我们仍感慨颇多,的确,整个编程,从理论到实践,在筹备的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指

18、针,链表通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。 通过这次论文的写作,我不仅加深了对C语言理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西!此致敬礼 参考资料1 龚沛曾 编著 .Visual Basic 6.0 程序设计教程 02年第三版(高等教育出版社).2萨师煊 、王珊 编著 .数据库系统概论02年第二版(高等教育出版社). 3赵文静. 数据结构与算法M. 北京: 科学出版社4王敬华,林萍,.陈静. C语言程序设计M. 北京: 清华大学出版

19、社参考网站:附录(源代码)#include#include#includestruct lianxiren/联系人信息;char name20;char address50;char age5;char tele20;char e_mail30;char caidan();/菜单void add();/增加联系人函数void print(struct lianxiren a,int);/输入所有联系人void dele(struct lianxiren a,int);void chazhao(struct lianxiren a,int);void chazhao_name(struct li

20、anxiren a,int n);void chazhao_age(struct lianxiren a,int n);void main()FILE *fp;if(fp=fopen(通讯录.txt,a)=NULL)printf(无法打开文件,按任意键退出!n);char a;scanf(%c,&a);exit(0);fclose(fp);for(;)int n=0;char ch;struct lianxiren tongxunlu100;struct lianxiren *p;p=tongxunlu;FILE *fp;if(fp=fopen(通讯录.txt,r)=NULL)printf(无

21、法打开文件,按任意键退出!n);char a;scanf(%c,&a);exit(0);elsewhile(ch=fgetc(fp)!=EOF)fscanf(fp,%s%s%s%s%s,p-name,p-address,p-age,p-tele,p-e_mail);p+;n+;switch(caidan()case 1:add();break;case 2:print(tongxunlu,n);break;case 3:dele(tongxunlu,n);break;case 4:chazhao(tongxunlu,n);break;case 5:exit(0);char caidan()ch

22、ar choose5;printf(n*n);待添加的隐藏文字内容3printf( n); printf( 通 讯 录n);printf( _n);printf(1,增 加 联 系 人 信 息 n);printf(2,输 出 所 有 联 系 人 n);printf(3,删 除 联 系 人 n);printf(4,查 找 联 系 人 n);printf(5,退 出 通 讯 了 n); printf(n);printf(*nn);doprintf(请输入您的选择(1-5):);scanf(%s,choose);while(strcmp(choose,1)&strcmp(choose,2)&strc

23、mp(choose,3)&strcmp(choose,4)&strcmp(choose,5);return choose0;void add()int i;FILE *fp;if(fp=fopen(通讯录.txt,a)=NULL)printf(无法打开文件,按任意键退出!n);char a;scanf(%c,&a);exit(0);int num;printf(您想要增加几个联系人:n);scanf(%d,&num);struct lianxiren t50;printf(请输入联系人信息n);printf(名字地址年龄电话电子邮箱n);printf(-n);for(i=0;inum;i+)s

24、canf(%s%s%s%s%s,ti.name ,ti.address ,ti.age ,ti.tele ,ti.e_mail );printf(_n);for(i=0;inum;i+)fprintf(fp,n);fprintf(fp,%s%s%s%s%s,ti.name ,ti.address ,ti.age ,ti.tele ,ti.e_mail);printf(*已成功添加%d个联系人*n,num);fclose(fp);void dele(struct lianxiren a,int n)struct lianxiren temp5;char mingzi20;int i,j=0,s=

25、0;printf(输入你要删除人得名字:);scanf(%s,mingzi);printf(n);for(i=0;in;i+)if(strcmp(mingzi,ai.name)!=0)strcpy(tempj.name,ai.name);strcpy(tempj.address,ai.address);strcpy(tempj.age,ai.age);strcpy(tempj.tele,ai.tele);strcpy(tempj.e_mail,ai.e_mail);j+;else s+;printf(你要删除得人得信息是:n);printf(-n);printf(名字地址 年龄 电话邮箱n);

26、printf(-n);printf(%-8s%-10s%-8s%-15s%-20sn,ai.name,ai.address,ai.age,ai.tele,ai.e_mail);FILE *fp;if(fp=fopen(通讯录.txt,w)=NULL)printf(无法打开文件,按任意键退出!n);char a;scanf(%c,&a);exit(0);for(i=0;ij;i+)fprintf(fp,n);fprintf(fp,%s%s%s%s%s,tempi.name,tempi.address,tempi.age,tempi.tele,tempi.e_mail);if(s!=0) prin

27、tf(*删除成功!*n);else printf(您所要删除的联系人不存在,请核查拼写及大小写n);fclose(fp);void print(struct lianxiren t,int n)if(n=0)printf(*文件为空!*n);return;int i;printf(*通讯录*n);printf(名字地址 年龄 电话邮箱n);printf(_n);for(i=0;in;i+)printf(%-8s%-10s%-8s%-15s%-20s,ti.name ,ti.address ,ti.age ,ti.tele ,ti.e_mail );printf(n);void chazhao(

28、struct lianxiren t,int n)int i;printf(输入选择:1按姓名查找,2按年龄查找:);scanf(%d,&i);if(i=1) chazhao_name(t,n);if(i=2) chazhao_age(t,n);void chazhao_name(struct lianxiren a,int n)char s20; int i,f=0; printf(输入要查找的人的名字n);scanf(%s,s);for(i=0;in;i+)if(strcmp(s,ai.name )=0)f+;printf(您要找得人是:n);printf(名字地址 年龄 电话邮箱n);p

29、rintf(_n);printf(%-8s%-10s%-8s%-15s%-20sn,ai.name ,ai.address ,ai.age ,ai.tele ,ai.e_mail );if(f=0)printf(没有找到符合您要求的联系人,请核查你的输入!n);void chazhao_age(struct lianxiren a,int n)int i,f=0;char j5;printf(输入要找人的年龄:n);scanf(%s,j);for(i=0;in;i+)if(strcmp(j,ai.age)=0)f+;printf(您要找得人是:n);printf(名字地址 年龄 电话邮箱n);printf(_n);printf(%-8s%-10s%-8s%-15s%-20sn,ai.name ,ai.address ,ai.age ,ai.tele ,ai.e_mail );if(f=0)printf(没有找到符合您要求的联系人,请检查您的输入!n);

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号