成绩管理系统C语言程序设计报告书Word格式.docx
《成绩管理系统C语言程序设计报告书Word格式.docx》由会员分享,可在线阅读,更多相关《成绩管理系统C语言程序设计报告书Word格式.docx(24页珍藏版)》请在冰豆网上搜索。
一、设计题目
成绩管理系统
二、设计内容
【题目描述】
假设某校学生成绩基本信息主要包括:
姓名、学号、各学科成绩等,本系统应能对成绩信息进行管理,并要求具有以下功能:
1、成绩信息维护功能:
学生信息数据要以文件的形式保存,能实现学生信息数据的维护。
此模块包括子模块有:
增加、删除、修改学生信息。
2、成绩信息查询功能:
查询时可实现按姓名查询、按学号查询。
3、成绩统计:
输入任意的一个课程名(如数学)和一个分数段(如60—70),统计出在此分数段的学生情况。
【题目要求】
(1)为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目;
(2)学生成绩信息分别按学号和姓名进行查询和删除,排序功能分别按学号和姓名排列。
(3)要求以上功能分别用函数实现。
并要求用C语言的文件操作语句将以上所有结果保存在文件
成绩管理系统.out。
【输入/输出要求】
(1)应用程序运行后,先显示一个菜单,然后用户根据需要选择相应的操作项目。
进入每个操作后,根据程序的提示输入相应的信息;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
三、基本要求
1、编写源程序的要求:
(1)能够实现任务书中的功能;
(2)尽可能使界面友好、直观、易操作
(3)源程序要有适当的注释,使程序容易阅读。
2、撰写“课程设计报告”,要求如下:
(1)封面:
统一采用《常州大学课程设计说明书》封面格式
(2)任务书
(3)目录
(4)“课程设计报告”正文
3、课程设计验收要求:
(1)运行所设计的系统;
(2)回答有关问题;
(3)提交课程设计报告;
(4)提交源程序。
四、进度安排
1、系统分析、设计准备阶段:
8学时
2、编程调试阶段:
46学时
3、总结和书写课程设计报告阶段:
4学时
4、考核阶段:
2学时
指导教师:
2011
10
日
系主任:
主管院长:
目录
1
概述........................................................................................................................................4
1.1
问题分析.........................................................................................................................4
1.2
功能.................................................................................................................................4
2
总体设计................................................................................................................................5
2.1
模块划分:
模块图及程序结构简单介绍.....................................................................5
2.2
流程图:
各功能函数流程图.........................................................................................6
3
详细设计...............................................................................................................................11
3.1
主菜单函数....................................................................................................................11
3.2
将录入的信息传送到磁盘文件....................................................................................11
3.3
对学生结构数组排序....................................................................................................11
3.4
统计平均成绩及各分数段人数....................................................................................11
3.5
按学生学号查询成绩....................................................................................................11
3.6
按学生姓名查询成绩....................................................................................................11
3.7
删除某个学生成绩信息................................................................................................11
3.8
修改某个学生成绩信息................................................................................................12
3.9
插入新学生成绩信息....................................................................................................12
4
结果分析...............................................................................................................................13
4.1
主菜单..........................................................................................................................13
4.2
输入学生信息..............................................................................................................13
4.3.1
查询(按学号)学生成绩
(1)....................................................................................14
4.3.2
查询(按学号)学生成绩
(2)....................................................................................14
4.4.1
查询(按姓名)学生成绩
(1)....................................................................................15
4.4.2
查询(按姓名)学生成绩
(2)....................................................................................15
4.5.1
删除学生纪录
(1)........................................................................................................16
4.5.2
删除学生纪录
(2)........................................................................................................16
4.6
插入新学生信息.........................................................................................................17
4.7.1
统计全班学生成绩、各分数段人数........................................................................17
4.7.2
删除学号为02、05的学生后,统计全班学生成绩、各分数段人数..................18
4.9
退出本程序.................................................................................................................18
5
总结与体会..........................................................................................................................19
5.1
总结与改错...................................................................................................................19
5.2
体会与感悟...................................................................................................................19
参考文献..................................................................................................................................20
附录:
程序清单......................................................................................................................21
概述
问题分析
学生成绩管理系统。
方便学校管理学生成绩,以及完成学生进行的相关成绩查询任务。
功能
为了实现数据的输入、排序、查询、删除、修改、添加、存、取功能。
程序的基本功能为:
输入、查询某班学生一学期的成绩单;
查询全班的总平均分;
查询全班各分数段学生人数;
按姓名、按学号查询、修改、删除、添加学生成绩;
新的记录可添加至文件中;
将数据以文件的形式存储在磁盘上。
总体设计
模块图及程序结构简单介绍。
学生成绩管理系统(梗概图)
主程序模块
输入模块
排序、统计模块
查询模块
修改模块
删除模块
添加模块
保存模块
2.2.1主菜单函数
voidprint_menu()
(流程图
)
2.2.2将录入的信息传送到磁盘文件
voidsave()
2.2.3
对学生结构数组排序
voidsort()
2.2.4
统计平均成绩及各分数段人数
voidprint_score()
2.2.5
按学生学号查询成绩
voidsearch_id()
2.2.6
按学生姓名查询成绩
voidsearch_name()
2.2.7
删除某个学生成绩信息
voiddel_file()
2.2.8
修改某个学生成绩信息
voidmodify()
2.2.9
插入新学生成绩信息
voidinsert()
详细设计
主菜单函数
函数原形:
voidprint_menu(),intmain(intargc,char**argv)
函数功能:
主菜单。
用户通过菜单选择,调用各功能函数。
将录入的信息传送到磁盘文件
该函数的作用是将学生结构数组保存到指定文件中。
在访问链表的时候将纪录写入文件。
对学生结构数组排序
voidsort(structstuarray[],intn)
该函数的作用是排序。
对学生的结构数组进行排序。
统计平均成绩及各分数段人数
voidprint_score(structstuarray[],intn)
该函数的作用是统计平均成绩,并输出各分数段的人数
在主菜单输入该项目序号,则显示平均成绩及各分数段人数。
调用结束返回主函数,显示主菜单。
按学生学号查询成绩
voidsearch_id(structstuarray[],intn,char*id)
该函数的作用是查找指定学号的学生记录
根据提示信息,输入要查找学生的学号。
如果根据学号没有找到相关信息,则输出“不存在该生信息!
”
;
否则,显示找到信息。
按学生姓名查询成绩
voidsearch_name(structstuarray[],intn,char*name)
该函数的作用是查找指定姓名的学生记录
根据提示信息,输入要查找学生的姓名。
如果根据姓名没有找到相关信息,则输出“不存在该生信息!
删除某个学生成绩信息
voiddel_file()
该函数的作用是删除指定学生的成绩记录
根据提示信息,输入要删除学生的学号。
修改某个学生成绩信息
voidmodify()
该函数的作用是修改制定学生的成绩记录
根据提示信息,输入要修改学生的学号,再依次输入姓名及各科成绩。
插入新学生成绩信息
该函数的作用是插入新增学生的成绩记录
根据提示信息,依次输入新增学生的姓名、学号及各科成绩。
结果分析
主菜单
(执行窗口截图)
输入学生信息
查询(按学号)学生成绩
查询(按姓名)学生成绩
删除学生纪录
插入新学生信息
统计全班学生成绩、各分数段人数
删除学号为02、05的学生后,统计全班学生成绩、各分数段人数
4.8
退出本程序
总结与体会
总结与改错
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过。
在这个过程中,我学到了很多在本学期上课期间没有学到过的东西,或许是之前学了,但我并没有太在意的知识。
简要如下:
(一)
了解了一些知识,关于<
men.h>
(内存存储函数)及<
conio.h>
(清屏函数);
(二)
通过实践,了解到puts(“”)语句,可以达到与printf(“\n”)语句相同的效果,通过这种语句的变幻,可以大大的提高效率,更加便捷;
(三)
略懂了del()函数与del_file()函数的区别;
(四)
通过调试,懂得了定义字符时一定要准确,不然会造成数据的出错或丢失;
(五)
最明显也最容易被忽略的一点,在C语言程序中,给一个量了一个定义,从始至终,不可以搞错,否则,有时一个小小的字母错误,造成的定义不一致的错误,会让人浪费很多时间纠错。
……
体会与感悟
回顾起此次课程设计,我感慨颇多,从理论到实践,在整整两个星期的日子里,可以说得是苦多于甜,但是真的是学到了很多很多的的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的做些实际的有价值的事,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟是我第一次接触课程设计这项任务,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处:
对以前所学过的知识理解得不够深刻,掌握得不够牢固;
或很多知识一直以为自己很懂,但真正运用起来,尤其是画流程图的时候,才发现问题的棘手。
这次课程设计终于顺利完成了!
在设计中遇到了很多编程问题,在自己不分昼夜的实践和查找资料中,终究也都算是不太容易的解决了。
回想自己的心理变化过程,真可谓是苦尽甘来!
至今,都还记得,当程序第一次出现“X.exe-0error(s),0warning(s)”时,自己内心那种想哭的冲动;
以及当这个设计报告接近尾声时,由心而生的那种满满的成就感……我想,这些记忆会伴随我一生。
C语言程序设计,我这个从小就爱极了编程的孩子,注定会为它努力一生。
参考文献
1、《C语言程序设计(第2版)》
编者:
向艳
清华大学出版社,2011年
2、《C程序设计语言(第二版·
英文版)》作者:
(美)BrianW.KernighanDennisM.Ritchie
机械工业出版社,2002年第2次印刷
3、《内存概念在C原函数调用中的应用》作者:
蒲会兰
兰州交通大学数理与软件工程学院,兰州730070
4、《C程序设计试题汇编》编者:
谭浩强
清华大学出版社,2006-03出版
5、《C程序设计试题精选(第2版)》作者:
崔武子
等
清华大学出版社,2002年
程序清单
#include<
stdio.h>
string.h>
stdlib.h>
#defineMAX100
voidinput();
/*输入数据函数*/
voidsort();
/*排序数据函数*/
voiddisplay();
/*显示数据函数*/
voidprint_score();
/*统计平均成绩,并输出各分数段的人数*/
voidsave();
/*保存数据函数*/
voiddel_file();
/*删除文件函数*/
voidmodify();
/*修改文件函数*/
voidinsert();
/*插入数据函数*/
structstu
/*定义学生成绩信息结构*/
{
charid[10];
charno[10];
charname[20];