当前位置: 高中信息技术 / 综合题
  • 1. (2021·温州模拟) 从2022年1月起,浙江省的选考成绩将采用新的一分一赋的赋分制,赋分等级与比例如图1所示。

    赋分具体步骤为:

    第一步,将卷面得分按人数比例划分为20个赋分区间,得出每个区间卷面得分的上限、下限。(说明:每个赋分等级人数=总人数×每个赋分等级比例(结果四舍五入取整) ;当卷面得分相同但人数超出该等级人数时,则减少下一档的人数。)

    第二步,对每个区间的卷面得分进行等比例转换成赋分,公式为:

    其中,s2、s1为卷面得分区间的上限和下限,s为待转换卷面得分;t2、t1为赋分区间的上限和下限,t为卷面得分等比例转换后的赋分。

    第三步,将转换后的赋分t取整(小数部分四舍五入)。

    编写VB程序,实现成绩赋分功能:在列表框List1中显示某市所有学生的考号,原始成绩(无0分,降序排列)和名次(同分同名),单击“成绩赋分”按钮Command1后,赋分成绩按从高到低的顺序显示在列表框List2中。程序界面如图2所示。

    1. (1) 若赋分区间为87-85,其对应的卷面得分区间在84-81,某考生的卷面得分为83,则通过比例公式转换,该考生的等级赋分为分 。
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Const n = 18000      '总人数

      Dim kh(1 To n) As String    '学生考号

      Dim cj(1 To n) As Single     '原始成绩

      Dim cj2(1 To n) As Integer    '赋分成绩

      Dim mc(1 To n) As Integer '原始成绩的排名

      Dim pro(1 To 20)As Single    '每个等级的人数比例

      Dim t(1 To 40) As Integer    '每个等级赋分区间的上限和下限

      Dim s(1 To 40) As Single     '每个等级卷面得分的上限和下限

      Dim num(1 To 20) As Integer

      Private Sub Form_ Load()

          '从数据库中读取数据,将考号、原始成绩分别存储在数组kh和数组cj中

          '将每个等级的比例存入数组pro中

          '将每个赋分区间的上限、下限存入数组t中(如t(1)、t(2) 分别存储等级1的赋分上限100, 下限97)

      '将数组cj降序排列,计算出名次存入数组mc中,并显示在List1中,代码略

      End Sub

      Private Sub Command1_Click()

          Dim flag As Boolean, k As Integer, i As Integer

          num(1) = Int(pro(1) * n + 0.5)

          For i=2 To 20

              num(i) =

          Next i

          num(20) = n

          k=1:flag=True:i=1

          Do While i<=n       '划定每个等级相应的卷面得分的上限和下限

              If me(i) <num(k) Then

                  If flag Then s(2 * k- 1) = cj(i)

                  flag = False

                  i=i+1

              ElseIf  Then

                  s(2 * k) = cj(i)

                  flag = True

                  i=i+1

              Else

                  

                  flag = True

                  k=k+1

              End If

          Loop

          If s(2*k)=0 Then s(2*k)=cj(n)

          '根据比例转换公式计算每个考生的赋分结果,存入数组cj2中,代码略。

          For i= 1To n

              List2.AddItem kh(i) +”” + Str(cj(i)) +”” + Str(cj2(i))

          Next i

      End Sub

微信扫码预览、分享更方便