#P1527. Making the Grade
Making the Grade
题目描述
Chips老师采用了一套便于自动化计算的简单评分方案。你需要编写一个程序,读取学生的考试成绩、加分项和出勤记录,计算最终成绩,并输出班级平均绩点。
评分规则如下:
- 所有考试均以$100$分为满分,成绩介于$0$到$100$分之间。
- 若考试次数超过$2$次,则剔除每名学生的最低分后再计算平均分。
- 计算班级整体平均分($\text{mean}$)和标准差($\text{sd}$)。成绩等级划分标准为:
- 平均分 ≥ $\text{mean} + \text{sd}$ 为A
- $\text{mean}$ ≤ 平均分 < $\text{mean} + \text{sd}$ 为B
- $\text{mean} - \text{sd}$ ≤ 平均分 < $\text{mean}$ 为C
- 平均分 < $\text{mean} - \text{sd}$ 为D
- 每$2$个加分项可将计算后的平均分提高$3$个百分点(例如:$4$或$5$个加分项提高$6$分)。加分调整在确定等级分数线后进行。
- 每缺勤$4$次降低一个等级(A→B,B→C,C→D,D→F),缺勤$9$次降低两个等级。全勤学生提升一个等级(最高不超过A)。所有计算结果四舍五入到小数点后一位。
班级平均绩点($\text{avg grd pnt}$)按以下规则计算:A=$4$分,B=$3$分,C=$2$分,D=$1$分,F=$0$分。全班总分除以学生人数(班级人数至少$2$人)。
标准差计算公式为:
$$\text{sd}=\sqrt{\frac{\sum{(x_i-\text{mean})^2}}{n}}$$
若计算的标准差小于$1$,则按$1$处理。
示例
假设班级有$5$名学生,进行$3$次考试。成绩处理过程如下表所示(使用的$\text{mean}=69.0$,$\text{sd}=20.1$):
T1 T2 T3 Bns Abst Avg AdjAvg Grade AdjGrd -------------------------------------------------- 100 100 80 3 2 100.0 103.0 A A 80 80 80 0 5 80.0 80.0 B C 60 20 70 5 3 65.0 71.0 B B 40 40 40 5 0 40.0 46.0 D C 100 20 20 1 9 60.0 60.0 C F
最终班级平均绩点为$2.2$。
输入格式
第一行包含整数$N$($1 \leq N \leq 10$),表示班级数量。每个班级数据的第一行包含两个整数$S$(学生人数,$1 < S < 31$)和$T$(考试次数,$1 < T < 11$)。随后$S$行每行表示一名学生的$T$次考试成绩($0$到$100$的整数)、加分项和缺勤次数。
输出格式
输出共$N+2$行。首行为"MAKING THE GRADE OUTPUT",随后每行输出一个班级的平均绩点(保留$1$位小数),末行为"END OF OUTPUT"。
样例输入
3
3 2
100 50 2 5
60 60 17 1
20 10 0 0
5 5
100 80 90 80 90 0 0
80 80 80 80 80 0 0
50 50 50 50 50 0 0
100 100 20 20 20 0 0
30 30 30 30 30 0 0
10 4
79 56 59 89 4 5
100 89 96 79 6 2
80 80 80 76 1 3
76 76 76 76 5 4
58 78 67 75 4 0
100 96 100 95 1 2
47 49 46 45 0 5
67 98 59 87 5 5
23 45 52 54 2 7
78 75 79 79 3 3
样例输出
MAKING THE GRADE OUTPUT
3.0
3.2
2.4
END OF OUTPUT
来源
Mid-Atlantic 1996