《班级成绩管理规定系统》由会员分享,可在线阅读,更多相关《班级成绩管理规定系统(28页珍藏版)》请在金锄头文库上搜索。
1、课 程 设 计 报 告课程名称 C语言程序设计 课题名称 班级成绩管理系统 专 业 电子信息 班 级 0802班 学 号 32 姓 名 董霄宇 指导教师 肖伟平 罗敬 肖彬 2009年 6 月 19 日湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 班级成绩管理系统 专业班级 电子信息0802班 学生姓名 董霄宇 学 号 32 指导老师 肖伟平 罗敬 肖彬 审 批 任务书下达日期 2009 年 6 月 19 日任务完成日期 2009年 6 月 30日一、设计内容与设计要求1 设计内容:班级成绩管理系统设计涉及的知识点:掌握并熟练运用C语言的基本数据类型与各种表达式,程序
2、的流程控制语句; 掌握数组的基本概念。熟练掌握一维数组、二维数组的应用、掌握字符数组与字符串的关系以及字符串的简单处理。掌握函数的定义,函数的返回值,函数的调用,函数的形式参数和实际参数之间的关系;掌握变量的作用域与生存期,了解函数的作用域。掌握结构的概念,结构类型的定义,结构变量的定义和初始化,结构成员的表示,结构的赋值含义,结构与指针、函数的关系。掌握文件、文件类型指针的基本概念,熟练掌握文件的打开与关闭以及文件的建立、读写等有关操作。2 设计要求:1) 用C语言实现系统;利用结构体数组实现班级成绩的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界
3、面和各个功能的操作界面应尽可能清晰美观。2) 建立一个班级学生成绩数据库,文件名为bjcjk.txt,并从该文件中读取数据;3) 班级成绩管理系统应能提供以下功能:(1)主菜单界面设计。通过提示用户输入一个数字选项,调用相应的功能函数。(2)成绩显示:完成班级全部学生成绩的显示;(3)成绩录入:完成新增一个学生的成绩记录,并重新计算学生的平均成绩;(4)成绩修改:按学号修改一个学生的学习成绩,并重新计算学生的平均成绩;(5)成绩排序:按学生平均成绩进行排序;(6)成绩统计: 统计并显示每门课程的平均成绩; 统计并显示超过某门课程平均分的人数以及学生记录;4) 说明:(1) 要求将修改后的数据写
4、入到一个新的数据文件nwejck.txt中。(2) 对系统有兴趣的同学可以在实现基本要求的基础上,完善系统的其它功能。5) 班级成绩管理系统采用一个结构体数组,学生成绩数据库结构如下:int xh /*学号*/char name10 /*姓名*/int yy /*英语*/int mat /*数学*/int jsj /*计算机*/int wl /*物理*/int zf /*总分*/ 注意:学号不重复,且数据库应有10条或以上的记录。6) 要求: 要求每个学生必须独立思考,认真并按时完成本课程设计所包含的所有内容; 要求学生必须按照课程设计报告的完整格式说明设计内容,设计任务分析过程和算法,给出程
5、序流程图和全部源程序; 设计报告的完整格式应包括以下部分的内容: 设计总体思路; 程序及各个模块说明; 总体模块框图; 各个程序模块说明; 程序流程图; 程序清单; 课程设计总结与体会(不少于400字)。 上机时要求必到,设计完成,必须演示程序,答辩并提交设计报告。二、进度安排第 18 周 星期五 8:0012:00 星期日 15:0018:00第 19 周 星期一 19:00 22:00星期三 8:0012:00 星期四 14:30 17:30附:课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。 正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,
6、正文用小四号宋体;行距为22。正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。正文总字数要求在5000字以上(不含程序原代码)。 目录一.需求分析-7(1)程序功能-7(2)输入输出要求-7二.总体设计-7三.模块功能详细设计分析-8四.调试分析及体会-9五.部分运行界面截取图-11六流程图-17七心得体会-18八.附件-201源程序-202参考书目-27九.评分表-28一.需要分析: (1)程序功能 该程序是一个实现对班级成绩管理的系
7、统。包括显示,添加,删除,修改,排序,查找,统计及退出等功能。输入学生的学号、姓名及成绩对其进行存储,在存储后可以对学生的成绩按学号和姓名进行查寻。该系统具有存贮学生数据,按学号、姓名查询,列出学生成绩和统计功能。系统输入数据后,将在当前目录中建立一个名为stu.dat文件,用于保存输入的数据。(2)输入输出要求学号输入只能用数字输入,姓名输入只能用字符,且最长为10个字符。此程序在BC2.0下运行通过。二.总体设计:(1) 抽象数据类型定义 学生成绩数据库结构: 数据库学号: int( ) 姓名: char(10) 英语: int() 数学: int() 计算机: int() 物理: int
8、() 总分: int() 平均分:flaot() 名次:int()(2)程序的模块及其功能和关系 该程序由9个模块组成,由主函数调用计算,显示,添加,删除,修改,排序,查找,统计及其退出等模块.下面将介绍每个模块的功能及与他们之间的关系. 模块图如下: 主菜单模块Main()添加模块删除模块查询模块 退出模块修改模块 成 绩 统 计 (3)主函数分析主函数主要由一个switch()开关语句构成,开关语句在一个无限循环体里,开关语句里的开关是调用主菜单显示函数的返回值。除最后一个语句是强制结束整个程序的语句外,其它case都是调用相应的函数,完成相应的功能。各调用情况如下: case1:调用显示
9、函数 case 2:调用追加函数、case 3:调用修改函数、case 4:调用删除函数、 case 5:调用查询函数 、 case 6:调用排序函数、 case 7:调用退出函数,主函数将保证每调用完一个函数之后又调用显示函数,然后按任意键又重新回到主菜单,以便用户进行下一次的操作。三模块功能详细设计分析 班级成绩显示模块:Void Disp( ) 这个模块的主要功能是用来计算每个人的平均分并显示班级中所有人各科相对应的成绩,平均分,总分及名次。在主菜单中选择“1”就可以进入这个模块界面。这个功能的实现是用了一个for循环来完成的。通过这个循环printf()函数依次输出每一个人的学号,姓名
10、,各科成绩,平均分,总分,名次。最后在界面上显示所有人的信息因此我们可以浏览所有人的信息。2班级成绩追加模块:Void Appe()本模块的主要功能是添加一个人的记录。在主菜单中键入“2”,就进入次模块。由多个for 循环控制。在for循环中包括printf和scanf函数,依照提示依次输入:学号,姓名,各科成绩。再调用显示函数Disp( )。班级成绩修改模块:void Modi( )本模块的主要功能是按学号查找相应的记录,然后系统判断学号是否存在,如果不存在将提示用户,如果存在再根据提示语句,用户可以按要求修改记录中除学号,姓名以外的指定内容,可按照用户要求修改对应成绩,可由用户自行控制修改
11、人数,并重新显示。在主菜单中键入“3”就可以进入这个模块。此模块是通过for循环语句控制实现的。如果输入的信息不存在系统就提示信息提醒。班级成绩删除模块:Void Dele( )此模块的主要功能是用来删除班级成绩管理中的信息。可按指定学号,姓名删除记录并重新显示。在主菜单中选择输入“4”,就可以进入这个模块的界面。这个模块的设计是通过if和for循环语句控制实现的。如果输入的信息不存在系统就提示信息提醒。.班级成绩查询模块:void Query()这个模块可以按学号查询;然后系统判断所输入信息是否存在,如果存在将显示该人的各科成绩,平均分,总分及名次。这个模块是通过if和for循环语句控制实现的。如果输入的信息不存在系统就提示信息提醒。 班级成绩排序模块:Void Sort( )该模块先由计算模块算出每个人的平均分及名次,再通过对名次的排序。运用双重for循环嵌套及if语句进行排序。班级成绩退出模块:void Quit()任意键退出程序.四程序调试分析 1在显示函数里应该含有计算函数,否则显示的信息中平均分,总分及名次都为零。2在输入函数中设了一个无限循环,可以输入无数个学生的成绩信息,但是不方便退出,后来用了