完整版c语言毕业课程设计通讯录管理系统.docx

上传人:b****6 文档编号:6821399 上传时间:2023-01-10 格式:DOCX 页数:14 大小:152.20KB
下载 相关 举报
完整版c语言毕业课程设计通讯录管理系统.docx_第1页
第1页 / 共14页
完整版c语言毕业课程设计通讯录管理系统.docx_第2页
第2页 / 共14页
完整版c语言毕业课程设计通讯录管理系统.docx_第3页
第3页 / 共14页
完整版c语言毕业课程设计通讯录管理系统.docx_第4页
第4页 / 共14页
完整版c语言毕业课程设计通讯录管理系统.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

完整版c语言毕业课程设计通讯录管理系统.docx

《完整版c语言毕业课程设计通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《完整版c语言毕业课程设计通讯录管理系统.docx(14页珍藏版)》请在冰豆网上搜索。

完整版c语言毕业课程设计通讯录管理系统.docx

完整版c语言毕业课程设计通讯录管理系统

《C语言程序设计》课程设计

实验报告

题目:

链表应用—简单通讯录管理系统

班级:

网络102

学号:

姓名:

项东旭

成绩:

指导教师:

路萤

完成日期:

年月日

 

目录

1.第一章:

前言……………………………………………………2

2.第二章:

概述……………………………………………………3

3.第三章:

主要流程图……………………………………………4

4.第四章:

算法分析………………………………………………5

5.第五章:

测试及输出结果………………………………………9

6.第六章:

课程设计体会…………………………………………

7.第七章:

参考文献……………………………………………

8.第八章:

程序源代码………………………………………………

第一章:

前言

通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真学习课本知识,更重要的是要通过上机实践实现对知识的强化与巩固。

C语言博大精深,需要我们认真体会,小心求证,不断实践。

C语言课程设计则对我们有以下几点帮助:

1.进一步掌握和利用C语言进行程序设计的能力;

2.进一步理解和运用结构化程序设计的思想和方法;

3.  初步掌握开发一个小型实用系统的基本方法;

4.  学会调试一个较长程序的基本方法;

5.  学会利用流程图或N-S图表示算法;

6.  掌握书写程设计开发文档的能力(书写课程设计报告)。

第二章:

概述

目的和意义:

本课程设计可加深对课堂理论学习的理解,增强动手能力,以培养学生合作的能力,为毕业设计作好实践环节上的准备。

通讯录系统是在学校常见的计算机信息管理系统。

它的主要任务是对学生信息进行管理,如学生信息的输入、查询、修改、增加、删除,迅速准确地完成各种学生信息的统计和查询。

主要内容:

本系统有分6个功能:

(1)添加数据

(2)查询数据(3)删除数据(4)修改数据(5)全部输出(6)退出

其主要利用结构类型,指针,数组,函数等C语言知识来实现。

1.添加数据:

输入姓名、电话号码及地址,即可添加数据。

2.查询数据:

输入所要查询的姓名即可查询。

3.修改数据:

输入所要修改的姓名,进行修改,保存后即成功。

4.删除数据:

输入所要删除的姓名,确定后即成功。

5.输出数据:

点击后即可查看所有保存的通讯录数据。

0.退出程序。

第三章:

主要流程图

模块化设计

为实现系统功能,本程序主要分为五个模块。

它们分别为:

添加数据,查询数据,删除数据,修改数据,全部输出和退出。

这五个函数再通过主函数调用分别得以实现。

主函数,首先提供了程序运行时的友好界面,列出了清单,提供用户做出选择,以便决定使用通讯录的哪种功能。

系统功能模块结构图:

第四章:

算法分析

整个系统主要包括五大模块:

添加数据,查询数据,删除数据,修改数据和全部输出。

各个算法分析如下:

主main函数:

Voidinput函数

主要利用if函数

查找数据

删除数据

修改数据voidmodify函数

全部输出

第五章:

测试及输出结果

主界面:

添加界面:

查询界面:

按姓名:

按号码:

删除界面:

按姓名:

按号码:

修改界面:

按姓名:

按号码:

输出界面:

退出界面:

第六章:

课程设计体会

一、对实验原理有更深的理解

通过该课程设计,掌握了什么是C语言程序设计,C语言程序设计的基本过程及其各阶段的基本任务,熟悉了C语言程序设计的流程图,了解了与C语言程序设计相关的技术,对课本上的知识有了更深的理解,课本上的知识是机械的,表面的。

通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。

二、激发了学习的积极性

通过该课程设计,全面系统的理解了C语言程序设计构造的一般原理和基本实现方法。

把死板的课本知识变得生动有趣,激发了学习的积极性。

把学过的C语言程序设计的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。

以前对于C语言程序设计的认识是模糊的,概念上的,现在通过自己动手做实验,对C语言程序设计的认识更加深刻。

课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,将不必要的命令去除。

在这次课程设计中,我就是按照实验指导的思想来完成。

加深了理解VC的内部功能及内部实现,培养实践动手能力和程序设计能力的目的。

三、总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。

回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。

我做的是通讯录系统,虽然是很简单的一个小的程序,但对我一个初学者来说却是一个很大的困难。

更加是第一次做课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。

可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。

特别是结构体,指针的部分,几乎是一片空白。

不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以下一步就是开始正式的编程序了。

不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法。

经过一波三折,终于开始正式编程。

编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强迫自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。

而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。

所以认真仔细就是非常重要的了。

开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。

又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。

无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。

通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。

因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前。

第七章:

参考文献

1、C程序设计(第四版)

谭浩强著

2、收集的各种网络资料

第八章:

程序源代码

#include

if(id)

printf("%d\t%s\t%s\t%s\t%s\n",

id,s->name,s->unit,s->tele,s->mail);

else

printf("【姓名】%s【工作单位】%s【电话】%s【电邮】%s\n",

s->name,s->unit,s->tele,s->mail);

*endif*

}*endshow*

voidregist(void)

{

CONs;FILE*f=0;

input(&s,BFULL);

f=fopen(fileDB,"ab");

fwrite(&s,sizeof(s),1,f);

fclose(f);

printf("资料已保存!

\n");

}*endregist*

intbrowse(char*key,fpos_t*p,CON*s)

{

FILE*f=0;inti=0,r=0;CONt;

char*a=0,*b=0;fpos_tq;

if(!

s)return0;

f=fopen(fileDB,"rb");

if(!

f){

printf("数据库暂无记录\n");

return0;

}*endif*

printf("编号\t姓名\t单位\t电话\t电邮\n");

printf("\n");

while(!

feof(f)){

fgetpos(f,&q);

r=fread(&t,sizeof(t),1,f);

if(r<1)break;

if(t.name[0]==0)continue;

if(key){

a=strstr(t.name,key);

b=strstr(t.tele,key);

if(a==0&&b==0)continue;

}*endif*

if(p)*p=q;

if(s)memcpy(s,&t,sizeof(t));

i++;

show(i,&t);

}*endwhile*

fclose(f);

printf("\n");

returni;

}*endbrowse*

fpos_tquery(CON*s)

{

charkey[szSTR]="";fpos_tp=0;intr=0;

printf("请输入姓名或者电话号码:

");

scanf("%s",key);

r=browse(key,&p,s);

returnr?

p:

-1;

}*endquery*

voidclear(void)

{

FILE*f=0;CONs;

fpos_tp=query(&s);

if(p<0)return;

f=fopen(fileDB,"rb+");

fsetpos(f,&p);

memset(&s,0,sizeof(s));

fwrite(&s,sizeof(s),1,f);

fclose(f);

printf("记录已删除!

\n");

}*endclear*

voidmodify(void)

{

FILE*f=0;CONs;intcmd=0;

fpos_tp=query(&s);

if(p<0)return;

f=fopen(fileDB,"rb+");

fsetpos(f,&p);

for(;;){

show(0,&s);

printf("请选择:

1-姓名;2-工作单位;3-电话;4-电邮;5-保存并退出;6-放弃修改并退出\n");

scanf("%d",&cmd);

switch(cmd){

case1:

case2:

case3:

case4:

input(&s,OPER[cmd]);

break;

case5:

fsetpos(f,&p);

fwrite(&s,sizeof(s),1,f);

case6:

fclose(f);

return;

default:

printf("错误的操作,请重新输入。

\n");

}*endcase*

}*mext*

}*endclear*

intmain(void)

{

intcmd=0;CONs;

for(;;){

printf("\n\t\t\t\t欢迎使用本通信簿!

");

printf("\n\t\t\t-1-添加--");

printf("\n\t\t\t-2-查询--");

printf("\n\t\t\t-3-删除--");

printf("\n\t\t\t-4-修改--");

printf("\n\t\t\t-5-全部输出");

printf("\n\t\t\t-0-退出--\n");

scanf("%d",&cmd);

switch(cmd){

case0:

return0;

case1:

regist();break;

case2:

query(&s);break;

case3:

clear();break;

case4:

modify();break;

case5:

browse(0,0,&s);break;

}endcase

}

return0;

}

*此程序存在一个弊端,在执行添加操作时,如果输完某个数据后加空格再输入一个数据时会有问题,想要知道,自己运行了看去O(∩_∩)O哈哈~*

优缺点:

1、此程序在运行时最好不要出现错误,不然会有麻烦,很难解决,这是本程序的弊端所在。

2、此程序所记录的通讯录为有限多个,暂时限定为64个,不过可以根据所需做出适当调整。

3、此程序界面简洁明了,易于操作,不失为一优点。

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1