c语言课程设计报告学生通讯信息管理系统.docx
- 文档编号:9917857
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:18
- 大小:418.25KB
c语言课程设计报告学生通讯信息管理系统.docx
《c语言课程设计报告学生通讯信息管理系统.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告学生通讯信息管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
c语言课程设计报告学生通讯信息管理系统
西安郵電學院
C语言课程设计报告
题目:
学生通讯信息管理系统
院系名称:
通信与信息工程学院
专业名称:
信息工程
班级:
1001
学生姓名:
学号(8位):
03104035(34)
指导教师:
设计起止时间:
2011年06月13日~2011年06月22日
一.设计目的
(一)通过本课程设计,强化上机动手能力,使学生在理论和实践的基础上进一步巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法。
(二)学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。
(三)为后续各门计算机课程的学习打下坚实基础,为毕业设计和以后工作打下必要基础。
1.熟悉C语言程序的编辑、编译链接和运行的过程,至少能够用一种编译器较熟练地编辑、编译及调试程序。
2.掌握C语言数据类型,如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。
3.熟练运用if语句和switch语句以及嵌套应用。
涉及循环调用的,了解并掌握两种控制语句while和for语句。
4.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。
5.掌握文件和文件指针的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。
6.掌握结构体类型变量、数组的定义和使用。
7.了解指针和链表的概念,掌握指针的定义和使用指针变量的方法以及链表的正确用法。
灵活使用链表来储存学生信息。
8.掌握数组的定义、引用以及输入输出的方法、通过字符数组存储字符串,进一步使用字符串
二.设计内容
用所学过的C语言知识(文件,结构体数组,函数)编写一个学生通讯信息管理系统,并完成对数据的录入、添加、查找、修改、删除、保存、读取、输出等一系列操作。
三.概要设计
1.功能模块图;
对系统进行分析,给出系统结构图;
主函数
(2.)功能模块说明
1.输入模块:
录入系统所需的全部数据信息,如学生姓名,电话及类型,并且将学生通讯信息按学生姓名首字母以字典升序排序(此处使用选择排序法);
2.存储模块:
将录入的数据存储,用文件的形式将录的数据存储(运用了fopen、fclose、fprintf等函数);
3.添加模块:
对所需存储的数据进添加操作(运用字符串比较函数strcmp,通过数组的赋值语句将学生信息仍按字典升序排序);
4.修改模块:
根据学生姓名对需要更正的数据信息进行修改操作(采用字符串比较函数找到所要修改的学生,通过赋值语句完成学生信息的修改);
5.删除模块:
对数据进行删除操作,根据学生姓名将对应记录删除(使用字符串比较函数strcmp找到所要删除的学生信息,通过赋值语句完成删除);
6.查询模块:
按要求对数据进行查询,根据学生姓名将该学生通讯信息输出(使用字符串比较函数strcmp查询);
7.读取模块:
从文件读取已保存的学生通讯信息(运用了fopen、fclose、fscanf等函数);
8.打印模块:
输出学生通讯信息
四.详细设计
1.功能函数的调用关系图;
Y
Y
N
Y
N
Y
N
Y
N
Y
N
N
Y
N
Y
N
HY
N
Y
N
Y
2.各功能函数的数据流程图;
(1):
输入模块;
(2):
存储模块;
(3):
添加模块;
(4):
修改模块;
(5):
删除模块;
(6):
查询模块:
(7):
读取模块;
(8):
打印模块:
3.重点设计及编码。
五.测试数据及运行结果
1.正常测试数据(3组)及运行结果
程序的菜单:
;
录入功能,录入人数为五个人:
查找和添加学生通讯信息:
删除学生通讯信息:
修改学生通讯信息:
文件的保存及读取:
退出程序:
2.非正常测试数据(2组)及运行结果。
文件读取失败:
六.调试情况,设计技巧及体会
1.对自己的设计进行评价,指出合理和不足之处,提出改进方案;
优缺点:
对系统的很多方面考虑的不是很完善,使得系统在实际运用中可能不会很方便,自己的系统没有做密码登陆,使得安全性降低。
缺少对数据的组合查询,及数据的降序排列,整体采用结构体数组,难度比链表的要低,但程序条理清晰,运行效率高,整体自己还是满意的,自己花了两周的时间,确实学到了不少东西,提高了自己的动手能力,自己还需不断的学习来提高自己。
2.对设计及调试过程的心得体会。
心得:
在写完第一遍程序后,首先进行了调试,仍是按照从某个模块来分析的,然后在整体执行,但是远远有很多不如意的地方,特别是对警告的调试比较麻烦,棘手,但是通过向老师请教,向同学请教最终还是解决的不少问题,后来经过分析,参照同学所设计的程序,自己的功能比较单调和简单,后来又添加了几个模块使其变得功能稍微有点完善。
通过很多次的调试,我知道了在写程序的时候应该注重于细节,例如一个小的标点符号,就能使我们浪费一整天的时间来调试,所以细节非常重要;其次是要在编写程序之前应该想明白程序的功能,然后在进行写程序;最后在调试运行程序的时候应该注意到每一个程序的应用,看是否真真的能够实现其功能,不要漏掉一个细节。
通过这次课程设计我学会了很多,做事情不仅要有耐心,还要注重细节;虽然做不到最好,但是要尽自己的全力去做,不管对与错。
②.感受:
使用VC++6.0编写程序界面方便清晰,各种功能全面,可以很好的帮助初学者
查找问题所在。
在第一周就已经为整个程序定下了框架,使得后面的程序设计思路变得清晰,明白每天都要干些什么。
在为期两周的课程设计里,遇到了很多各种各样的问题。
比如在程序编译过程中有些是0错误但有很多警告,虽然这些警告不会影响到程序的联接执行,但仔细检查和改正这些警告会对C语言有更深入和深刻的了解。
有时候VC++6.0的编译器会出现不可预知的错误,需要自己去判断。
最终成品的模块和起初的已经有很多不同,在编写的过程中不断地改进和完善程序。
在编写程序的过程中我也学会使用了许多辅助工具,比如有道词典,可以帮助判断程序调试时的报错涵义。
搜狗输入法可以提高我的录入速度。
合理使用双VC++协助找到自己程序和范例的不同和缺点,方便修改。
我也逐步学会使用Debug功能判断函数出错的地方和原因,这大大简化了我找错误的难度。
作为一个初学者,在编写中往往遇到许多逻辑上的小问题。
比如在调试删除模块时,偶尔会报错。
我仔细分析了程序后发现出错的原因在于对于输入数据没有保存成文件但是函数在执行过程中会调用文件。
对于文件的打开方式也是刚开始令我比较头痛的问题,特别是在文本与二进制区别和只读与读写区别上,最后经过不断地尝试和看书,最终的效果还不错,但是还需要继续熟悉,融会贯通。
编写和调试时遇到了许多令人头痛的问题,感谢我的同学和老师给予我的帮助,毫无疑问,别人的经验是非常珍贵的财富,虚心积极地请教问题可以让我少走许多弯路。
经历了这次课程设计,不仅在意志力方面我得到了锻炼,更是对我的学习提供了帮助。
在C语言程序设计的过程中我知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,虽然一时不能完全掌握以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的,都是要更好地掌握该门知识,提高自身修养,提高自己的能力!
为以后的工作打下良好的知识基础和技能基础!
最后衷心的感谢指导老师们!
谢谢!
七.参考文献
1.王曙燕主编,C语言程序设计,科学出版社,2005年
2.谭浩强,《C程序设计》,清华大学出版社2002年
八.附录:
源代码(电子版)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 报告 学生 通讯 信息管理 系统