原等级赋分 | 100 | 97 | 94 | 91 | 88 | 85 | 82 | 79 | 76 | 73 | 70 |
比例(%) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 7 | 7 | 7 |
新等级赋分 | 100-97 | 96-94 | 93-91 | 90-88 | 87-85 | 84-82 | 81-79 | 78-76 | 75-73 | 72-70 | |
原等级赋分 | 67 | 64 | 61 | 58 | 55 | 52 | 49 | 46 | 43 | 40 |
|
比例(%) | 7 | 7 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 1 |
|
新等级赋分 | 69-67 | 66-64 | 63-61 | 60-58 | 57-55 | 54-52 | 51-49 | 48-46 | 45-43 | 42-40 |
|
具体步骤为:
第一步,将卷面得分按人数比例划分为20个赋分区间,得出每个区间卷面得分的上限、下限。
第二步,对每个区间的卷面得分进行等比例转换,公式为:

其中,s2、s1为卷面得分区间的上限和下限,s为待转换卷面得分;t2、t1为赋分区间的上限和下限,t为卷面得分等比例转换后的赋分。
第三步,将转换结果四舍五入取整后即为等级赋分。
举例说明:赋分区间为87-85,如对应的卷面得分区间为84-81,某考生的卷面得分为83,通过等比例转换:

现有某次考试的新等级赋分对应卷面得分区间的上限、下限对应表及该次考试同学卷面分和原等级赋分情况表,请编程实现计算该次考试新等级赋分情况。
新等级赋分 | 卷面得分区间的上限s2 | 卷面得分区间的下限s1 | |||||||||||||
物理 | 化学 | 生物 | 政治 | 历史 | 地理 | 技术 | 物理 | 化学 | 生物 | 政治 | 历史 | 地理 | 技术 | ||
100-97 | 86 | 89 | 93 | 95 | 91 | 87 | 95 | 78 | 83 | 84 | 86 | 79 | 75 | 77 | |
96-94 | 78 | 82 | 83 | 85 | 78 | 75 | 77 | 76 | 80 | 80 | 84 | 75 | 73 | 73 | |
…… | …… | …… |
新等级赋分对应卷面得分区间上限、下限对应表
班级 | 姓名 | 卷面得分 | 原等级赋分 | ||||||||||||
物理 | 化学 | 生物 | 政治 | 历史 | 地理 | 技术 | 物理 | 化学 | 生物 | 政治 | 历史 | 地理 | 技术 | ||
301 | 陈洲琦 | 0 | 0 | 0 | 56 | 51 | 0 | 37 | 0 | 0 | 0 | 61 | 70 | 0 | 61 |
302 | 周嘉 | 0 | 38 | 58 | 0 | 45 | 0 | 0 | 0 | 58 | 73 | 0 | 64 | 0 | 0 |
…… | …… | …… |
卷面分和原等级赋分情况表
请回答下列问题:
(1)若小李同学技术学科处于赋分区间为96-94,如对应的卷面得分区间为77-73,他的卷面得分为75,可以得出他新等级赋分为
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 380) As Integer ‘卷面得分上下限
Dim b(1 To 700) As Integer ‘卷面分和原等级赋分
Dim dj(1 To 20) As String ‘新等级赋分
Dim m(1 To 100) As String ‘班级姓名数据
Dim n As Integer ‘需要赋分人数
通过数据库获取各变量值(代码略):
数组a依次存储第一个新等级赋分的物化生政史地技卷面得分区间的上限、卷面得分区间的下限,再存储第二个新等级赋分的卷面得分区间……。数组b依次存储第一位同学的物化生政史地技卷面得分、原等级赋分,再存储第二位……。数组dj依次存储20个新等级赋分分数段。数组m依次存储第一位同学的班级、姓名,再存储第二位……。
Private Sub Command1_Click()
Dim s As Integer,djf As Integer,km As Integer
For i = 1 To n
xm = m(i * 2)
st = bj + xm
For j = 1 To 7
k = (i - 1) * 14 + j
If b(k) <> 0 Then
s = b(k)
djf = b(k + 7)
km = j
Else
ff = 0
End If
st = st + Str(ff)
Next j
List1.AddItem st
Next i
End Sub
Function Assign(s As Integer, ydjf As Integer, km As Integer) As Integer
Dim flag As Boolean
Dim t1 As Integer
Dim t2 As Integer
For i = 1 To 20
flag = True
t2 = 0
t1 = 0
For j = 1 To Len(dj(i))
c = Mid(dj(i), j, 1)
If c = "-" Then
flag = False
ElseIf flag Then
t2 = t2 * 10 + Val(c)
Else
t1 = t1 * 10 + Val(c)
End If
Next j
If ydjf >= t1 And ydjf <= t2 Then
s2 = a((i - 1) * 14 + km)
s1 = a((i - 1) * 14 + 7 + km)
Exit For
End If
Next i
End Function

同类型试题

y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2


y = sin x, x∈R, y∈[–1,1],周期为2π,函数图像以 x = (π/2) + kπ 为对称轴
y = arcsin x, x∈[–1,1], y∈[–π/2,π/2]
sin x = 0 ←→ arcsin x = 0
sin x = 1/2 ←→ arcsin x = π/6
sin x = √2/2 ←→ arcsin x = π/4
sin x = 1 ←→ arcsin x = π/2

