成绩管理系统V6.0.docx
- 文档编号:142139
- 上传时间:2022-10-04
- 格式:DOCX
- 页数:19
- 大小:221.97KB
成绩管理系统V6.0.docx
《成绩管理系统V6.0.docx》由会员分享,可在线阅读,更多相关《成绩管理系统V6.0.docx(19页珍藏版)》请在冰豆网上搜索。
HarbinInstituteofTechnology
C语言实验大作业
课程名称:
C语言程序设计
报告类型:
程序设计报告
实验题目:
学生成绩管理系统v6.0
实验类型:
(综合设计型/创新研究型)
所在院系:
航天学院电子信息类
学生类别:
本科生
指导教师:
郭萍
学生姓名:
王福海
班级和学号:
电子信息五班1162100527
实验时间:
2017.5.20
成绩评定:
哈尔滨工业大学
1实验目的
将教材中所包含的内容系统化考察,考察一维、二维数组,函数的调用,排序、查找、统计分析等常用算法,指针,动态数组以及结构体的应用。
2实验内容和要求
1.实验内容
学生成绩管理系统V6.0。
某班有最多不超过30人(具体人数由键盘输入)参加最多不超过六门的考试(具体门数由键盘输入),定义结构体类型,用结构体数组作函数参数,编程实现学生成绩的管理。
2.实验要求
采用自顶向下、逐步求精的模块化设计思想设计小型数据库管理系统,对学生成绩进行管理。
要求按系统的需求分析、系统设计(总体设计、各个模块的设计)、系统实现(各个模块的实现)、系统测试等过程组织报告内容,说明采用了什么数据结构和算法,遇到哪些问题,这些问题是如何解决的,本设计的亮点和难点在哪里,实验结果如何,有哪些收获和学习体会。
3.系统功能需求分析
本系统主要实现下面的功能:
(1)录入每个学生的学号和考试成绩;
(2)计算每门课程的总分和平均分;
(3)计算每个学生的总分和平均分;
(4)按成绩由高到低排出名次表;
(5)按成绩由低到高排出名次表;
(6)按学号由小到大排出成绩表;
(7)按姓名字典的排序排出成绩表;
(8)按学号查询学生排名及其考试成绩;
(9)按姓名查询学生排名及其考试成绩;
(10)按优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(0~59)5个类别,统计每个类别的人数以及所占的百分比;
(11)输出每个学生学号姓名各科成绩及每门考试的总分平均分;
(12)将每个学生信息写入文件;
(13)从文件中读取每个学生信息并显示;
4.实验环境
采用win10操作系统,使用软件Dev-c++。
3系统设计
1.系统功能模块划分
学生成绩管理系统
按姓名排序
按学号排序
录
入
成
绩
录入文件读取文件
标
准
分
析
排
名
排
序
计算总分平均分
按学生成绩排名
每个学生
每门课
五个档次
2.主要算法
排序:
进行学生成绩的排序从而出现排名表
查找:
通过多种方式如学号,姓名查找特定学生的成绩
3.数据结构
输出每个学生学号姓名各科成绩及每门考试的总分平均分
按成绩由高到低排出名次表
计算每个学生的总分和平均分
计算每门课程的总分和平均分
录入每个学生的学号和考试成绩
按成绩由低到高排出名次表
按姓名字典的排序排出成绩表
按学号查询学生排名及其考试成绩
按姓名查询学生排名及其考试成绩
5个类别,统计每个类别的人数以及所占的百分比
按学号由小到大排出成绩表
将每个学生信息写入文件从文件中读取每个学生信息并显示
退出
用户输入指令
4.各模块(函数)的功能和接口设计:
序号
函数名
函数功能
函数参数
1
Menu
显示菜单获得输入的选项
无
2
Readscore
录入学生信息
STUstu[],m,n
3
Aversumofeverystudent
计算每个学生总成绩平均值
STUstu[],m,n
4
Aversumofeverycourse
计算每门课程总成绩平均成绩
STUstu[],m,n
5
Sortbyscore
按成绩排序
STUstu[],m,n
6
Ascending
升序
floata,b
7
Descending
降序
floata,b
8
Assortbynum
按学号排序
STUstu[],m,n
9
Sortbyname
按姓名排序
STUstu[],m,n
10
Searchbynum
按学号查询学生信息
STUstu[],m,n
11
Searchbyname
按姓名查询学生信息
STUstu[],m,n
12
StatisticAnlysis(STUstu[],intn,intm)
分析学生成绩五个分数段所占百分比
STUstu[],m,n
13
PrintScore
打印输出学生成绩
STUstu[],m,n
14
WritetoFile
写入程序D盘student.txt
STUstu[],m,n
15
ReadfromFile
读取文件
STUstu[],m,n
4系统实现
1.系统的总流程图:
显示菜单——>输入用户的选择——>根据用户的输入选择不同的操作
case1:
Readscore(stu,n,m);
break;
case2:
Aversumofeverystudent(stu,n,m);
break;
case3:
Aversumofeverycourse(stu,n,m);
break;
case4:
Sortbyscore(stu,n,m,Descending);
printf("\n成绩降序排序\n");
Printscore(stu,n,m);
break;
case5:
Sortbyscore(stu,n,m,Ascending);
printf("\n成绩升序排序\n");
Printscore(stu,n,m);
break;
case6:
Assortbynum(stu,n,m);
printf("\n学号升序排序\n");
Printscore(stu,n,m);
break;
case7:
Sortbyname(stu,n,m);
printf("\n姓名升序排序\n");
Printscore(stu,n,m);
break;
case8:
Searchbynum(stu,n,m);
break;
case9:
Searchbyname(stu,n,m);
break;
case10:
StatisticAnlysis(stu,n,m);
break;
case11:
Printscore(stu,n,m);
break;
case12:
Writetofile(stu,n,m);
break;
case13:
Readfromfile(stu,&n,&m);
break;
case0:
printf("Endofprogram!
\n");
exit(0);
2.程序的全部源代码:
1#include
2#include
3#include
4typedefstructstudent
5{
6longnum;
7charname[10];
8floatscore[6];
9floatsum;
10floataver;
11}STU;
12intMenu(void);
13voidReadScore(STUstu[],intn,intm);
14voidAverSumofEveryStudent(STUstu[],intn,intm);
15voidAverSumofEveryCourse(STUstu[],intn,intm);
16voidSortbyScore(STUstu[],intn,intm,int(*compare)(floata,floatb));
17intAscending(floata,floatb);
18intDescending(floata,floatb);
19voidSwapFloat(float*x,float*y);
20voidSwapLong(long*x,long*y);
21voidSwapChar(charx[],chary[]);
22voidAsSortbyNum(STUstu[],intn,intm);
23voidSortbyName(STUstu[],intn,intm);
24voidSearchbyNum(STUstu[],intn,intm);
25voidSearchbyName(STUstu[],intn,intm);
26voidStatisticAnalysis(STUstu[],intn,intm);
27voidPrintScore(STUstu[],intn,intm);
28voidWritetoFile(STUstu[],intn,intm);
29voidReadfromFile(STUstu[],int*n,int*m);
30intmain()
3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 成绩管理系统 V6