中南大学二○一○~二○一一学年第二学期
信息科学与工程学院
课程设计报告书
课程名称:C语言课程设计
班级:电气信息2010级1班
学号:
姓名:
指导教师:季桂树
二○一一年六月
一.需求分析
A、系统以菜单方式工作;
B、学生信息录入功能(学生信息用文件保存)——输入;
C、学生信息浏览功能——输出;
D、查询、排序功能——算法;
a、按学号查询;
b、按姓名查询。
E、学生信息的删除与修改。
其次功能要求:
A、界面比较美观;
B、有一定的容错能力,比如输入的成绩不在0~100之间,就提示不合法,
要求重新输入。
二.总体设计
是否找到数据文件读入上次保存的数据
Y
N
操作选择
浏览学生信息
录入学生信息
修改学生信息
查询学生信息
删除学生信息
读入数据,新增一个结点
按顺序浏览全部学生信息
查找到目标结点
查找到目标结点,并进行删除
查找修改节点,并修改
将现有数据写入文件
结束
开始
退出系统
三.
详
细设计
结构体:
功能函数&模块:
从键盘读入一个人的信息,并储存入学生信息。
将数据写入数据文件。
读入文件中的数据,如果有数据文件返回1否则返回0。
菜单选择,返回0~6的含义分别是“退出”、“录入”、“浏览”、“查询”、“删除”、“修改”、“读取”。
从学生信息管理系统中删除一个人的信息。
修改一个人的信息。
structstudent{longintnum;charname[20];intage;charsex[4];charbirth[10];charadd[30];longinttele;charmail[20];
structstudent*next;
};
voidwriteData()
voidreadData()voidmenu()
voiddel()
voidmodify()voidrecord()
voiddisplayAll()
输出所有的记录。
执行查询功能,其中可以按学号和姓名查询。
输入该学生的学号就可以按学号查询到该学生。
输入该学生的姓名就可以按姓名查询到该学生。
释放动态内存
打印欢迎界面。
四.调试与测试
通过自创的数据输入程序来进行测试。当每一个函数都设计好了,也调试好了,把它们分开运行并没
有错误,但是当把它们组合成一个程序时,便是一个一个地出现错误;把这个问题解决了,另一个新的问题又来了。接着从整个源代码中发现了一些程序编写上的错误,并全部将其改正,最后经过不断调试直到可以运行为止,再不断输入数据进行测试,最后发现测试结果与预期的一样。
五.测试结果
在刚将程序编写完成的时候,初期调试发现了很多语法上和逻辑上的错误,大概花费了我们1个小时
在调试妥当之后,我们使用了自己所在的电气1001班的全体同学的学生信息作为测试数据进行了测试。结果是程序运行得很好,没有出现任何问题。
六.心得体会
voidwelcome()voidquery()voidquery_by_numvoidquery_by_name()VoidfreeAll()void
本知识,而且要通过不断的上机操作才能更好地学习这门语言。
在课程设计这两个星期里,我认识到我有很多不足的地方。首先是自己在指法上还不行,经常按错字母,但通过学习和练习,已经有了很大的提高;再有对C语言的一些标准库函数不太了解,对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解。通过设计实践,使我在这几个方面的认识有所提高。程序设计中我也遇到了很多难题。例如我在程序中遇到了出现乱码的情况。后来我通过大量的上机实验,通过翻阅很多书籍,在季老师的指导以及同学的讨论下,在克服了重重的困难后,终于成功的运行了课程设计所要求的程序。这次程序设计是我在C语言程序的思想下第一次整体完成的程序设计,所以还有很多的不完美的地方,希望季老师予以指出和改正。
通过这次的程序设计,我懂得了无论什么事都要去做才会发现问题,才有可能去解决问题。对知识的学习,不能潜偿辄止,,要深入去学习,去了解,这样才会有所收获。有许多东西,许多事,不是想像中的那么容易,不去实践,永远也不会有提高,尤其是学习计算机。同时,在这次课程设计的过程中,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,不能只是学习和重视书本上的理论知识,所以日后在学习过程中,我会更加注视实践操作,使自己更好地学好计算机这门课程。
1:对于C语言程序模块的不熟悉是课程设计中所遇到的最大的问题。
2:程序基础的不扎实是课程设计不能完美,高效的完成的最大影响。
3:自己对C语言程序中的各种函数以及各个函数之间的相互调用还不能很好的掌握。这些不足将提醒我努力学习以便能更好的完善自我。
在实践过程中,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学到的理论知识与实践相结合起来,从理论中得出结论,将结论辅助于理论,才能真正学到知识并写出有用的程序。