c语言课程设计-通讯录管理系统_第1页
c语言课程设计-通讯录管理系统_第2页
c语言课程设计-通讯录管理系统_第3页
c语言课程设计-通讯录管理系统_第4页
c语言课程设计-通讯录管理系统_第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1-5.4《C语言程序设计》课程设计实验报告封面南京航空航天大学金城学院《C语言程序设计》课程设计实验报告题目:班级:学号:姓名:成绩:指导教师:完成日期:年月日目录1.第一章:前言……………………22.第二章:概述……………………33.第三章:主要流程图……………44.第四章:算法分析………………55.第五章:测试及输出结果………96.第六章:课程设计体会…………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函数开始开始输入y或n用if判断输入了y还是nyn输入要输入的资料将数据保存到指定的文件里结束查找数据开始开始输入要查找的名字或号码for(i=0;i<数据的行数;i++)判断是否是所需结果YN输出该行数据结束删除数据判断是否是输入的数据判断是否是输入的数据Y开始for(i=0;i<数据的行数;i++)输入要删除的名字或号码N显示记录已删除结束修改数据voidmodify函数开始开始输入姓名或号码对数据进行修改结束判断输入的数据是否正确否是全部输出开始开始全部输出输入数字结束判断输入的数字是否正确NY第五章:测试及输出结果主界面:添加界面:查询界面:按姓名:按号码:删除界面:按姓名:按号码:修改界面:按姓名:按号码:输出界面:退出界面:第六章:课程设计体会一、对实验原理有更深的理解通过该课程设计,掌握了什么是C语言程序设计,C语言程序设计的基本过程及其各阶段的基本任务,熟悉了C语言程序设计的流程图,了解了与C语言程序设计相关的技术,对课本上的知识有了更深的理解,课本上的知识是机械的,表面的。通过把该算法的内容,算法的执行顺序在计算机上实现,把原来以为很深奥的书本知识变的更为简单,对实验原理有更深的理解。二、激发了学习的积极性通过该课程设计,全面系统的理解了C语言程序设计构造的一般原理和基本实现方法。把死板的课本知识变得生动有趣,激发了学习的积极性。把学过的C语言程序设计的知识强化,能够把课堂上学的知识通过自己设计的程序表示出来,加深了对理论知识的理解。以前对于C语言程序设计的认识是模糊的,概念上的,现在通过自己动手做实验,对C语言程序设计的认识更加深刻。课程设计中程序比较复杂,在调试时应该仔细,在程序调试时,将不必要的命令去除。在这次课程设计中,我就是按照实验指导的思想来完成。加深了理解VC的内部功能及内部实现,培养实践动手能力和程序设计能力的目的。总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。我做的是通讯录系统,虽然是很简单的一个小的程序,但对我一个初学者来说却是一个很大的困难。更加是第一次做课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。特别是结构体,指针的部分,几乎是一片空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以下一步就是开始正式的编程序了。不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法。经过一波三折,终于开始正式编程。编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强迫自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前。第七章:参考文献1、C程序设计(第四版)谭浩强著2、收集的各种网络资料第八章:程序源代码#include<stdio.h>#include<stdlib.h>#include<string.h>#defineszSTR64/*指可以记录并保存64个通讯录,当然,可以再设置增加或减少*/#definefileDB"c:\\contact.txt"/*指保存的目录*/structCONTACT{charname[szSTR];/*姓名*/charunit[szSTR];/*工作单位*/chartele[szSTR];/*电话*/charmail[szSTR];/*mail*/};typedefstructCONTACTCON;#defineBNAME1#defineBUNIT2#defineBTELE4#defineBMAIL8#defineBFULL0xFFintOPER[5]={BFULL,BNAME,BUNIT,BTELE,BMAIL};voidinput(CON*s,intmask){if(mask&BNAME){printf("请输入学生姓名:");scanf("%s",s->name);}if(mask&BUNIT){printf("请输入工作单位:");scanf("%s",s->unit);}if(mask&BTELE){printf("请输入联系电话:");scanf("%s",s->tele);}if(mask&BMAIL){printf("请输入电子邮件:");scanf("%s",s->mail);}}/*endinput*/voidshow(intid,CON*s){if(!s)return;if(id)printf("%d\t%s\t%s\t%s\t%s\n",id,s->name,s->unit,s->tele,s->mail);elseprintf("【姓名】%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([0]==0)continue;if(key){a=strstr(,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:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论