当前位置: 高中信息技术 / 综合题
  • 1. (2019高二下·丽水期末) 小王编写了一个“学生体能情况分析”程序,其功能是分项计算名次和优秀率(分数90分及以上为优秀)。运行程序时,在列表框List1中显示所有学生的3项体能测试分数,在文本框Text1中输入测试项目代码(1表示游泳,2表示跑步,3表示跳远),单击“计算”按钮Command1后,计算结果分别显示在列表框List2和标签Label2中。程序运行界面如图1所示。

     

    程序设计过程中数据的存储和计算方法如下:

    ⑴学生体能分数的存储:如图2所示,第1位学生的游泳、跑步、跳远分数依次存入数组score的第1、2、3个元素里,第2位学生的游泳、跑步、跳远分数依次存入数组score的第4、5、6个元素里,以此类推。

    ⑵计算名次的算法:先统计每个分数的个数,存入数组a,如图3中a(96)值为9,表示共有9个96分;然后按照分数从高到低依次计算每个有效分数(该分数的个数不为0)对应的名次存入数组b,分数相同时名次并列,如图3中b(96)值为10,表示96分的名次是(并列)第10名,以此类推。

    请回答下列问题:

    1. (1) 根据图1中列表框List1中的信息和图2所示的数据存储方法可知,数组元素score(23)的值为(填数字)。
    2. (2) 实现上述功能的VB程序如下,请在①、②、③的划线处填入合适的代码。

      Dim m As Integer   ' 学生人数

      Dim score(1 To 3000) As Integer  ' 存放学生分数

      Dim xm(1 To 1000) As String  ' 存放学生姓名

      Private Sub Command1_Click()

      Dim i As Integer, t As Integer, code As Integer, mc As Integer

      Dim a(0 To 100) As Integer  '存放每个分数的个数

      Dim b(0 To 100) As Integer  '存放每个分数的名次

      Dim code_n(1 To 3) As String

      code_n(1) = "游泳" : code_n(2) = "跑步" : code_n(3) = "跳远"

      code = Val(Text1.Text) 

      For i = 0 To 100

        a(i) = 0

      Next i

      sum = 0

      For i = 1 To m  '计算每个分数的个数及体能测试优秀的人数

        t =      ①       

        a(score(t)) = a(score(t)) + 1

        If score(t) >= 90 Then sum = sum + 1

      Next i

      mc = 1

      For i = 100 To 0 Step -1  '计算每个分数的名次

        If a(i) <> 0 Then

          b(i) = mc

          mc =       ②          

        End If

      Next i

      List2.Clear

      List2.AddItem " 姓名  " +        ③          + "  名次"

      For i = 1 To m

        '在List2中输出m个学生的姓名、指定项目的分数及名次,代码略

      Next i

      sum = Int(sum / m * 10000 + 0.5) / 100

      Label2.Caption = "优秀率是:" + Str(sum) +"%"

      End Sub

      Private Sub Form_Load()

      ’从数据库读取姓名存入数组xm,体能测试数据存入数组score,总人数存入变量m。

      ’代码略

      End Sub

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