成绩管理系统C语言程序设计报告书.docx
《成绩管理系统C语言程序设计报告书.docx》由会员分享,可在线阅读,更多相关《成绩管理系统C语言程序设计报告书.docx(24页珍藏版)》请在冰豆网上搜索。
![成绩管理系统C语言程序设计报告书.docx](https://file1.bdocx.com/fileroot1/2023-1/27/4bbdef41-83ed-4363-b8ca-6f64a6717360/4bbdef41-83ed-4363-b8ca-6f64a67173601.gif)
成绩管理系统C语言程序设计报告书
序号:
学号:
课 程 设 计
设计课程名称:
C语言程序设计
题 目:
成绩管理系统设计
学 生姓名:
学 院(系):
怀德学院三系专 业班级:
电气111
指导 教师:
王军 专业技术职务:
设计时间:
2012 年 6 月 12 日 ~ 2012 年 6 月 26 日
常州大学课程设计任务书
一、设计题目 成绩管理系统
二、设计内容
【题目描述】
假设某校学生成绩基本信息主要包括:
姓名、学号、各学科成绩等,本系统应能对成绩信息进行管理,并要求具有以下功能:
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 年 6 月 10 日
系主任:
2011 年 6 月 10 日
主管院长:
2011 年 6 月 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.1 模块划分:
模块图及程序结构简单介绍。
学生成绩管理系统(梗概图)
主程序模块
输入模块
排序、统计模块
查询模块
修改模块
删除模块
添加模块
保存模块
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()
(流程图 )
详细设计
3.1 主菜单函数
函数原形:
voidprint_menu(),intmain(intargc,char**argv)
函数功能:
主菜单。
用户通过菜单选择,调用各功能函数。
3.2 将录入的信息传送到磁盘文件
函数原形:
voidsave()
函数功能:
该函数的作用是将学生结构数组保存到指定文件中。
在访问链表的时候将纪录写入文件。
3.3 对学生结构数组排序
函数原形:
voidsort(structstuarray[],intn)
函数功能:
该函数的作用是排序。
对学生的结构数组进行排序。
3.4 统计平均成绩及各分数段人数
函数原形:
voidprint_score(structstuarray[],intn)
函数功能:
该函数的作用是统计平均成绩,并输出各分数段的人数
在主菜单输入该项目序号,则显示平均成绩及各分数段人数。
调用结束返回主函数,显示主菜单。
3.5 按学生学号查询成绩
函数原形:
voidsearch_id(structstuarray[],intn,char*id)
函数功能:
该函数的作用是查找指定学号的学生记录
根据提示信息,输入要查找学生的学号。
如果根据学号没有找到相关信息,则输出“不存在该生信息!
” ;否则,显示找到信息。
调用结束返回主函数,显示主菜单。
3.6 按学生姓名查询成绩
函数原形:
voidsearch_name(structstuarray[],intn,char*name)
函数功能:
该函数的作用是查找指定姓名的学生记录
根据提示信息,输入要查找学生的姓名。
如果根据姓名没有找到相关信息,则输出“不存在该生信息!
” ;否则,显示找到信息。
调用结束返回主函数,显示主菜单。
3.7 删除某个学生成绩信息
函数原形:
voiddel_file()
函数功能:
该函数的作用是删除指定学生的成绩记录
根据提示信息,输入要删除学生的学号。
调用结束返回主函数,显示主菜单。
3.8 修改某个学生成绩信息
函数原形:
voidmodify()
函数功能:
该函数的作用是修改制定学生的成绩记录
根据提示信息,输入要修改学生的学号,再依次输入姓名及各科成绩。
调用结束返回主函数,显示主菜单。
3.9 插入新学生成绩信息
函数原形:
voidinsert()
函数功能:
该函数的作用是插入新增学生的成绩记录
根据提示信息,依次输入新增学生的姓名、学号及各科成绩。
调用结束返回主函数,显示主菜单。
结果分析
4.1 主菜单
(执行窗口截图)
4.2 输入学生信息
(执行窗口截图)
4.3.1 查询(按学号)学生成绩
(执行窗口截图)
4.3.2 查询(按学号)学生成绩
(执行窗口截图)
4.4.1 查询(按姓名)学生成绩
(执行窗口截图)
4.4.2 查询(按姓名)学生成绩
(执行窗口截图)
4.5.1 删除学生纪录
(执行窗口截图)
4.5.2 删除学生纪录
(执行窗口截图)
4.6 插入新学生信息
(执行窗口截图)
4.7.1 统计全班学生成绩、各分数段人数
(执行窗口截图)
4.7.2 删除学号为02、05的学生后,统计全班学生成绩、各分数段人数
(执行窗口截图)
4.8 退出本程序
(执行窗口截图)
总结与体会
5.1 总结与改错
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过。
在这个过程中,我学到了很多在本学期上课期间没有学到过的东西,或许是之前学了,但我并没有太在意的知识。
简要如下:
(一) 了解了一些知识,关于(内存存储函数)及(清屏函数);
(二) 通过实践,了解到puts(“”)语句,可以达到与printf(“\n”)语句相同的效果,通过这种语句的变幻,可以大大的提高效率,更加便捷;
(三) 略懂了del()函数与del_file()函数的区别;
(四) 通过调试,懂得了定义字符时一定要准确,不然会造成数据的出错或丢失;
(五) 最明显也最容易被忽略的一点,在C语言程序中,给一个量了一个定义,从始至终,不可以搞错,否则,有时一个小小的字母错误,造成的定义不一致的错误,会让人浪费很多时间纠错。
……
5.2 体会与感悟
回顾起此次课程设计,我感慨颇多,从理论到实践,在整整两个星期的日子里,可以说得是苦多于甜,但是真的是学到了很多很多的的东西,不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正的做些实际的有价值的事,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟是我第一次接触课程设计这项任务,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处:
(一) 对以前所学过的知识理解得不够深刻,掌握得不够牢固;
(二) 或很多知识一直以为自己很懂,但真正运用起来,尤其是画流程图的时候,才发现问题的棘手。
这次课程设计终于顺利完成了!
在设计中遇到了很多编程问题,在自己不分昼夜的实践和查找资料中,终究也都算是不太容易的解决了。
回想自己的心理变化过程,真可谓是苦尽甘来!
至今,都还记得,当程序第一次出现“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
#include
#include
#include
#defineMAX100
voidinput(); /*输入数据函数*/
voidsort(); /*排序数据函数*/
voiddisplay(); /*显示数据函数*/
voidprint_score(); /*统计平均成绩,并输出各分数段的人数*/
voidsave(); /*保存数据函数*/
voiddel_file(); /*删除文件函数*/
voidmodify(); /*修改文件函数*/
voidinsert(); /*插入数据函数*/
structstu /*定义学生成绩信息结构*/
{
charid[10];
charno[10];
charname[20];