【#文档大全网# 导语】以下是®文档大全网的小编为您整理的《学生成绩统计查询系统》,欢迎阅读!
学生成绩统计查询系统 实现功能:
1)全体学生求总分平均成绩、最高成绩、最低成绩、和按分数段求出各段成绩的人数。
2)每个学生的平均分、 每门课的平均分、找出最高的分数所对应的学生和课程
3)找出有两(N)门以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩。 4)找出平均成绩在90(任意分)以上或全部课程成绩在85(任意分)以上的学生。
问题分析与算法
假定总共5门课程,总共 10 个学生,可以用宏来定义它们 #define COURCES 5 /*课程总数*/ #define STUDENTS 10 /*学生总数*/
宏COURCES和STUDENTS的值可以根据实际需要设定。
根据需要实现的功能,程序需要的数据有学生的学号,每门课程的名称,学生每门课程的成绩,学号和成绩可以用整型数据,课程名称用字符型数组,假定每门课程名称不超过32个字符。设计如下一个struc struct query{ int number; /*学号*/ int scores[5]; /*分数*/ char* cources[COURCES]; /*5门课程名称*/ int totalScore; /*总成绩*/ };
定义如下一个query类型的全局数组来存放所有学生的数据: struct query studentScore[STUDENTS];
假设设定5门功课分别为:
English, C, Physics, Maths, Biology
那么对于任意一个studentScore[i]. cources, studentScore[i]. cources[0] = “English”; studentScore[i]. cources[1] = “C”;
studentScore[i]. cources[2] = “Physics”; studentScore[i]. cources[3] = “Maths”; studentScore[i]. cources[4 = “Biology”; 其中, i>= 0且 i< STUDENTS
该系统要实现的功能是学生成绩统计查询,不需要用户录入数据,不过程序的运行需要数据支持,所以我们要实现一个函数InitStudentScore()去给全局数组studentScore赋值。另外,查询系统需要实现一个查询界面来获取用户的查询需要,创建一个函数WellCome()来实现这个功能。
功能1:要求实现全体学生求总分平均成绩、最高成绩、最低成绩、和按分数段求出各段成绩的人数。
可以编写一个函数TotalQuery(),定义3个整型变量,int totalScores 用来存放全体学生总成绩, int highestScore用来存放最高总成绩,int lowestScore用来存放最低总成绩。 假定每门课程满分100,则总分满分为500, 可以统计每个学生的所有科目的总成绩并以100分为分段求出各个分段的人数。
功能2:每个学生的平均分、 每门课的平均分、找出最高的分数所对应的学生和课程 可以编写一个函数SingleQuery(),
每个学生的平均分可以用studentScore[i].totalScore/COURCES实现(0 <= i< STUDENTS),第i门课的平均分可以通过将每个学生studentScore[i]. scores[i]相加再除以STUDENTS实现( i大于等于0小于 COURCES)。 找出最高的分数所对应的学生和课程:可以通过比较每个学生的每门功课成绩,找出其中成绩最高者
功能3找出有两(N)门以上不及格的学生,输出他们的学号和全部课程成绩及平均成绩。 编写一个函数 QueryNotPassed(), 查询每个学生的每门功课成绩,若有2门以上不及格,则输出他们的学号和全部课程成绩及平均分。
4)找出平均成绩在90(任意分)以上或全部课程成绩在85(任意分)以上的学生。 编写一个QueryOutstanding()函数,统计每个学生的平均分,若高于90 则输出 主程序main()的算法分析:
首先调用InitStudentScore()函数将全部学生数据存放在全局数组
studentScore[STUDENTS]中。
其次,调用WellCome(),显示查询界面。
第三,根据用户输入的指令,分别调用TotalQuery(),SingleQuery(),QueryNotPassed(),QueryOutstanding()四个函数。
本文来源:https://www.wddqxz.cn/648df4db50e2524de5187e91.html