学生成绩管理系统课程设计报告书(c语言)

上传人:F****n 文档编号:100573443 上传时间:2019-09-24 格式:DOC 页数:24 大小:776KB
返回 下载 相关 举报
学生成绩管理系统课程设计报告书(c语言)_第1页
第1页 / 共24页
学生成绩管理系统课程设计报告书(c语言)_第2页
第2页 / 共24页
学生成绩管理系统课程设计报告书(c语言)_第3页
第3页 / 共24页
学生成绩管理系统课程设计报告书(c语言)_第4页
第4页 / 共24页
学生成绩管理系统课程设计报告书(c语言)_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《学生成绩管理系统课程设计报告书(c语言)》由会员分享,可在线阅读,更多相关《学生成绩管理系统课程设计报告书(c语言)(24页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告书 课程名称: 学 院: 班 级: 学 号: 姓 名: 指导老师: 设计时间: 学生成绩管理课程设计1、 设计题目 用C语言编写程序完成以下任务:(1) 能按学期、按班级完成对学生成绩的录入、修改(2) 能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的 平时成绩进行查询 (3) 能查询学生成绩,不及格科目及学生名单(4) 能按班级输出学生的成绩单 二、设计要求(1) 贯彻结构化的程序设计思想。(2)用户界面友好,功能明确,操作方便。 (3)用户界面中的菜单至少应包括“统计各班总分及平均分”、“平均成绩 排 序”、“成绩单显示”和“退出”4项。(4) 代码应适当缩进,并给

2、出必要的注释,以增强程序的可读性。三、设计需求分析 经过对程序设计题目的分析可知,整个程序的设计实现大致分为十个模块,每一个模块对应一个函数。在这些函数当中,按学期对学生信息查询函数、按班级对学生信息查询函数、按平均成绩排序函数、按班级显示学生成绩单函数、统计全部学生总分及平均分函数、按总成绩排序函数、统计成绩不及格学生信息函数、显示全部学生信息并统计人数函数的实现严格按照题目的要求。读取文件函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。1.显示全部学生信息并统计人数 这里要用到文件打开函数和文件读取数据函数,再加入人数的统计语句,以实现将文件内容显示到窗体并统计总人数。

3、 2.统计全部学生总分及平均分 这一步在第一项功能的基础上稍加改动,添加求学生总分和平均分的函数就可以实现预期的功能。 3.按学期对学生信息查询 实现的功能是按照学期对学生的成绩和数据进行查询,要求输入正确学期实现该功能。 4.按班级对学生信息查询 实现的功能是按照班级对学生的成绩和数据进行查询,要求输入正确班级实现该功能。 5.按总成绩排序 该项为附加功能实现的是总成绩的递减排序以及名次显示,其中总成绩相同者名次相同。 6.按平均成绩排序 按照题目的具体要求实现的是平均成绩的递减排序以及名次显示,其中平均成绩相同者名次相同。 7.统计成绩不及格学生信息 该项即统计所有学生中各科中至少有一科不

4、及格的学生的所有信息 。 8.按班级显示学生成绩单 该项即显示所有学生的基本信息及在总体中成绩排序信息。 除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序,这使整个程序更加完善。每一个学生记录都包含学期、班级、学号、姓名,以及英语、计算机两门成绩,在程序当中将学生记录类型定义为结构体类型,函数每次对学生记录的访问,其数据来源都是file.txt文件,这样做保证学生数据的一致性,每次运行程序都可以采用原来的数据。4、 程序流程图1. 程序总体结构图 图1程序总体结构图2. 具体功能框图(1)显示全部学生信息并统计学生人数函数 图2读取学生数

5、据 (2)按平均分排序函数 图3按平均分排序五、核心技术的实现说明及相应程序段本程序主要由十个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,按学期对学生信息查询、按班级对学生信息查询函数、按平均成绩排序函数、统计成绩不及格学生信息函数等是程序中较为核心的部分,下面分别进行说明。1. 按学期、班级对学生信息查询函数 首先调用reads函数读取文件中的信息,利用for循环按照班级号循环查找,通过strcmp函数比较所查找学期、班级和已知学期、班级字符,利用if语句对所输入的待查找学期、班级与已知学期、班级字符进行判断,如果所查学期、班级字符不是

6、已知,则显示无此学期、班级信息,在符合条件的情况下则输出该学期学生所有信息。具体的程序段如下:/*按学期对学生信息查询*/void xueqi () struct student studN; char number20; int i,n; n=reads(stud); printf(n请输入待查询的学生学期号,按回车键确认:n,number); scanf(%s,number); printf(*所查学生信息如下*n);printf(学期 班级 学号 姓名 计算机 英语 总分 平均分 n); printf(*n); for(i=0;i=n)printf(没有找到该学期信息!n); retur

7、n; else printf(%st%st%st%st%3.1ft%3.1ft%3.1ft%3.1fn,studi.xq,studi.cla,studi.num,studi.name,puter,studi.english,puter+studi.english,(puter+studi.english)/2); /*按班级对学生信息查询*/void query() struct student studN; char number20; int i,n; n=reads(stud); printf(n请输入待查询的学生班级号,按回车键确认:n,number); scanf(%s,number

8、); printf(*所查学生信息如下*n);printf(班级 学期 学号 姓名 计算机 英语 总分 平均分 n); printf(*n); for(i=0;i=n)printf(没有找到该班级信息!n); return; else printf(%st%st%st%st%3.1ft%3.1ft%3.1ft%3.1fn,studi.cla,studi.xq,studi.num,studi.name,puter,studi.english,puter+studi.english,(puter+studi.english)/2);2. 按平均成绩排序函数该函数的核心内容是求平均成绩并对所有人进行

9、排序。采用冒泡法对平均分进行排序,并记录对于总分的排序采用的排序算法是冒泡法排序,其中平均分的求得是在排序的过程中实现的,这部分程序仍然调用了reads函数,整个排序过程在结构体数组stud中实现,由于排序算法涉及到两个数组元素的信息交换,因此还需要定义一个中间变量来协助。对于学生排序后名次的确定在结果输出时予以显示。具体程序段如下:/*按平均成绩排序*/void sort2() struct student studN,temp; int i,j,n; n=reads(stud); for(i=0;in-1;i+) for(j=0;jn-1-i;j+) if(studj.english+pu

10、ter)/2(studj+1.english+studj+puter)/2) temp=studj; studj=studj+1; studj+1=temp; j=1; printf(*平均成绩排序结果如下*nn); printf(名次 学期 班级 学号 姓名 英语 计算机 平均成绩 n); printf(*n); for(i=0;in;i+) / 输出结果并排名 if(studi.english+puter=studi+1.english+studi+puter) printf(%dt%st%st%st%st%3.1ft%3.1ft%3.1fn,j,studi.xq,studi.cla,studi.num,studi.name,puter,studi.english,(puter+studi.english)/2); else printf(%dt%st%st%st%st%3.1ft%3.1ft%3.1fn,j+,studi.xq,studi.cla,studi.num,studi.name,puter,studi.english,(puter+studi.english)/2); getch();3. 统计成绩不及格学生信息该函数首先读取文件中的内容,通过循环将挑选出至少一科成绩不及格的学生的信息。具体的程序段如下: /*统计成绩不及格学生信息*/void bujige()

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号