学进去-教育应平等而普惠
排序:
限于篇幅仅展示1000道试题,请根据关键词精准搜索
模拟某新型病毒传播的过程,已知有n*n个格子(1<=n<=10),某天其中某些格子由于不知名原因感染了病毒,开始影响周围的格子。传染原理如图a所示:
某3行3列的格子初始状态如图a所示,1表示异常(由于不知名原因感染了病毒且具有传染性),0表示正常。除了边上一圈的格子,每个格子周围有8个格子,第一天某正常格子周围超过半数格子异常,则该格子第二天就会变异常,并且带有传染性。传染过程如第16题图b所示,矩阵中1、2、3、4分别表示该格子第1天、第2天、第3天、第4天被感染,0表示未被感染。可以看出该矩阵格子第4天全部被感染。

1

0

0

1

1

0

0

0

0

图a

1

0

0

1

1

0

0

0

0

1

2

0

1

1

0

2

0

0

1

2

3

1

1

0

2

3

0

1

2

3

1

1

4

2

3

4

第一天

第二天

第三天

第四天

                  图b


编写VB程序,运行程序后,在Text1中输入矩阵规模(不超过10),单击“初始化”命令按钮,在List1中输出第一天所有格子的状态,单击“传播”命令按钮,在List2中输出所有格子的最终状态,并在Label2中输出第几天全部被感染或者“不会被全部感染”。
程序运行界面如图c所示。
图c    图d
(1)已知第一天所有格子状态如图d所示,则第_______天所有格子全部被感染。
(2)实现上述功能程序代码如下,完善划线处语句。
Dim a(1 To 100) As Integer '存放格子状态
Dim b(1 To 100) As Integer '辅助作用
Dim zc(1 To 10000) As Integer '记录每一天的正常格子数
Dim n As Integer '存放矩阵规模
Private Sub Command1_Click()
Dim i As Integer, j As Integer, s As String
List1.Clear
n = Val(Text1.Text)
For i = 1 To n
       s = ""
       For j = 1 To n
          a((i - 1) * n + j) = Int(Rnd() * 2)
          s = s + Str(a((i - 1) * n + j))
          If a((i - 1) * n + j) = 0 Then _______________
       Next j
       List1.AddItem s
Next i
End Sub
Private Sub Command2_Click()
Dim i As Integer, j As Integer, tian As Integer, flag As Boolean
List2.Clear
'下面代码实现病毒传染过程
tian = 1: flag = False
Do While zc(tian) > 0
       tian = tian + 1
       For i = 1 To n * n
          If a(i) = 0 Then
             If ________________ Then b(i) = tian
          Else
             b(i) = a(i)
          End If
       Next i
       For i = 1 To n * n
          If b(i) = 0 Then zc(tian) = zc(tian) + 1
          a(i) = b(i)
       Next i
       If ______________ Then flag = True: Exit Do
Loop
'在List2中输出所有格子的最终状态,代码略。
If flag Then
       Label2.Caption = "不会被全部感染"
Else
       Label2.Caption = "第" + Str(tian) + "天全部被感染"
End If
End Sub
'Judge函数用来判断第i行第j列的格子周围的异常格子数是否超过半数,超过半数返回True
Function Judge(i As Integer, j As Integer) As Boolean
'代码略
End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
疫情期间,教师回校在教师宿舍隔离上网课,后勤人员连续一周轮流给教师送三餐。本校后勤人员共25人,每天安排2个人一起送餐,要求其中一名必须是年龄在40岁以下(包括40岁)的男后勤工作人员(本校符合该条件的后勤人员超过7个),另一名按如下规则进行安排:优先安排年轻的工作人员配送。每人最多安排一天的配送工作。
编写VB程序,根据后勤人员信息安排一周每天的送餐人。运行程序,在列表框List1中输出学校每个后勤人员的基本信息,单击“安排”命令按钮Command1,在列表框List2中显示每天的送餐人编号(编号是01,02,03,04,……,24,25)。程序运行界面如图a所示。

图a

请回答下列问题:
(1)要使程序运行时自动将窗体标题改为"三餐配送安排",则语句Form1.Caption="三餐配送安排"应放在_______(单选,填字母:A.Form1_Load() / B.Form_Load() / C.Form1_Click() / D.Form_Click() )事件处理过程中。
(2)实现上述功能程序代码如下,完善划线处语句。
(3)程序加框处代码有问题,请修改。
Dim num As Integer, bh(1 To 25) As String, xm(1 To 25) As String
Dim xb(1 To 25) As String, age(1 To 25) As Integer
Dim flag(1 To 25) As Boolean   '表示相应的员工是否已经被安排过配送任务
Dim zudui(1 To 7) As String '表示每天的配送人员组合
Private Sub Form_Load()
'从数据库中获取本校后勤人员所有信息,将编号、姓名、性别、年龄分别存入数组bh、xm、xb、age中,总人数在num变量中。并在list1中输出后勤人员信息。代码略。
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer,
Dim k As Integer, t1 As String, t2 As Integer
k = 1
For i = 1 To num
If xb(i) = "男" And age(i) <= 40 Then

zudui(k) = bh(i)

flag(Val(bh(i))) = True

k = k + 1

If _____________   Then Exit For


End If
Next i
For i = 1 To 7
k = i
For j = i + 1 To num

If flag(j) = False Then

If Then k = j ______

End If


Next j
If k <> i Then

t1 = bh(k): bh(k) = bh(i): bh(i) = t1

t1 = xm(k): xm(k) = xm(i): xm(i) = t1

t1 = xb(k): xb(k) = xb(i): xb(i) = t1

t2 = age(k): age(k) = age(i): age(i) = t2


End If
_______________________
zudui(i) = zudui(i) + bh(i)
List2.AddItem "第" + Str(i) + "天:" + Mid(zudui(i), 1, 2) + "   " + _____________
Next i
End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
用Flash软件打开只做“飞天梦.Fla”文件,编辑界面如图a所示。
图a
请回答下列问题:
(1)下列关于多媒体作品设计的一般步骤描述正确的是________(多选,填字母)。
A.文字脚本按多媒体作品的演示顺序,描述每一环节的展示内容及呈现方式
B.媒体元素分解是多媒体作品制作的最后一个环节,实现媒体元素逐一列出,分类登记
C.确定多媒体作品的主要内容,相互间的链接方式,属于系统结构设计环节
D.完成多媒体作业预计需要1个月时间,所需资金约***元,属于应用需求分析
E.功能模块设计包含对模块文本内容、背景颜色、音频内容、交互方式等设计要求
(2)航天飞机图层实现“航天飞机”从舞台右下角移入舞台右上角区域,并一直属于喷火动画状态,请问“航天飞机”图层动画类型属于_____________(单选,填字母:A.形状补间 / B.逐帧动画 / C.动画补间)。
(3)测试场景,发现背景图层从第1帧到第24帧未显示背景内容,要让背景内容从第一帧开始一直显示,下列做法正确的是_____________。(多选,填字母)
A.选中背景图层第1帧至第24帧“清除帧”
B.点击背景图层第1帧“清除关键帧”
C.选中背景图层第1帧至24帧“删除帧”,并在第50帧“插入帧”
D.在背景图层第25帧“复制帧”,在第1帧“粘贴帧”
E.点击背景图层第25帧,复制舞台上内容,在背景图层第1帧粘贴内容,调整位置
图b
(4)“关闭”按钮元件的编辑界面如图b所示。下列说法正确的是_____________。(多选,填字母)
A.按钮有效,所以测试影片时鼠标移至“关闭”文字上时出现手形
B.使用菜单“控制”下的“测试场景”,按钮动作可以响应
C.“文字”图层插入帧,测试影片时鼠标移至“关闭”文字上时按钮有声音
D.使用菜单“控制”下的“播放”命令,按钮不响应,但可以听到“指针经过”的声音
E.“测试影片”时,鼠标移至“关闭”按钮矩形区可以听到“指针经过”的声音
(5)“场景 1”要实现点击“关闭”按钮关闭动画播放,则“关闭”按钮动作脚本为on(Press){_______}。
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
试卷运送。五校联考就要到了,本次负责安排运送试卷的路线的是TBY。由于各所学校都参与了一些科目命题工作,所以目前每个学校里都有几个科目的试卷。为了节省运输费用,TBY想要找到一种能连接所有学校且线路总长最短的方案。
一共有n(3<=n<=100)个学校,各所学校之间的线路长度以一行共n*n个数据输入,
第i组的n个数据为从第i个学校出发到其他学校的线路长度,保证第i组的第i个数据为0。
编写VB程序,实现上述功能。运行程序,在文本框Text1中输入学校总数,
在文本框Text2中按题述方法输入各校之间的距离,点击命令按钮Command1后,在标签Label1中显示最短的线路总长。程序运行界面如图所示。

请回答下列问题:
(1)若n=4,各校距离为0242831240352528350303125300,则最短的线路总长为____________
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
Const INF = 2147483646
Dim n As Long, a As Long
Dim dis(1 To 10001) As Long, flag(1 To 10001) As Boolean
Dim head(1 To 10001) As Long, nxt(1 To 10001) As Long
Dim ed(1 To 10001) As Long, value(1 To 10001) As Long
Dim cnt As Long, tby As Long, sss As String
Dim i As Long, j As Long
Private Sub Command1_Click()
       cnt = 0
       n = Val(Text1.Text)
       For i = 1 To n
             dis(i) = INF : flag(i) = False : head(i) = 0
       Next i
       tby = 1
       sss = Text2.Text
       For i = 1 To n
             For j = 1 To n
                    _______        
                    If i <> j Then Call addedge(i, j, a)
             Next j
       Next i
       Dim ans As Long
       dis(1) = 0 : ans = 0
       For i = 1 To n
             Dim hg As Long, u As Long
             hg = INF
             u = 0
             For j = 1 To n
                    If ____________             Then
                           hg = dis(j)
                           u = j
                    End If
             Next j
             _______        
             flag(u) = True
             Dim p As Long
             p = head(u)
             Do While p <> 0
                    Dim v As Long
                    v = ed(p)
                    If Not flag(v) And dis(v) > value(p) Then
                           dis(v) = value(p)
                    End If
                    p = nxt(p)
             Loop
       Next i
       Label1.Caption = Str(ans)
End Sub
Sub addedge(a As Long, b As Long, x As Long)
       cnt = cnt + 1
       value(cnt) = x
       ed(cnt) = b
       nxt(cnt) = head(a)
       head(a) = cnt
End Sub
Function Getin() As Long
       Dim aaa As String
       aaa = Mid(sss, tby, 1)
       If aaa = " " Then tby = tby + 1
       aaa = Mid(sss, tby, 1)
       Dim bbb As Long
       bbb = 0
       Do While aaa <> " " And tby <= Len(sss)
             bbb = bbb * 10 + Val(aaa) : tby = tby + 1
             aaa = Mid(sss, tby, 1)
       Loop
       Getin = bbb
End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
加密,是以某种特殊的算法改变原有的信息数据。某一字符串的加密算法为:
(1)将明文中每个字符的八位二进制ASCII码(不足8位左端补0,凑足8位)分成2段,左4位为高位段,右4位为低位段,如字符“C”的二进制ASCII码值为01000011,分段后0100和0011;
(2)将高位段左移一位,将原第一位数移至第4位(如0100转化为1000),再将其转化为十六进制数(如1000转化为8);
(3)对低位段执行(2)相同的算法,如001101106
(4)顺次连接两位十六进制数,得到该字符的密文,如“C”的密文为“86”;
(5)将每个字符的密文按照明文的顺序连接。
小方按照上述方法,设计一个字符串解密的VB程序,功能如下:在文本框Text1中输入密文,单击“解密”按钮Command1,程序依次将密文中每两个字符转换为一个明文字符,并将解密结果输出在文本框Text2中。程序运行效果如图所示。

(1)按照解密方法,密文“88”对应的明文字符是___________
(2)实现上述功能的VB程序如下,请在划线处填入合适代码。
             Private Sub Command1_Click()
                    Dim a(15) As String
                    Dim pwd As String, i As Integer
                    Dim p1 As String, p2 As String
                    Dim st As String, pla As String
                    a(0) = "0000": a(1) = "0001": a(2) = "0010": a(3) = "0011"
                    a(4) = "0100": a(5) = "0101": a(6) = "0110": a(7) = "0111"
                    a(8) = "1000": a(9) = "1001": a(10) = "1010": a(11) = "1011"
                    a(12) = "1100": a(13) = "1101": a(14) = "1110": a(15) = "1111"
                    pwd = Text1.Text
                    st = "": pla = ""
                    __________          
                    Do While i <= Len(pwd)
                           p1 = Mid(pwd, i - 1, 1)
                           p2 = Mid(pwd, i, 1)
                           ______________               
                           st = Mid(st, 4, 1) + Mid(st, 1, 3) + Mid(st, 8, 1) + Mid(st, 5, 3)
                           pla = pla + Chr(btod(st))
                           i = i + 2
                    Loop
                    Text2.Text = pla
             End Sub
             Function seat(x As String) As Integer
                    If x >= "A" And x <= "F" Then
                           seat = Asc(x) - Asc("A") + 10
                    Else
                           seat = Val(x)
                    End If
             End Function
             Function btod(y As String) As Integer     '将8位二进制数转换为十进制数
                    Dim da As Integer, i As Integer, ch As String
                    da = 0
                    For i = 1 To 8
                           ch = Mid(y, i, 1)
                           _____________                
                    Next i
                    btod = da
             End Function
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
小张想要了解自己体育锻炼情况,他以数字的形式记录了自己每天进行的运动项目,如“1,1,2,3,2,3,2,3,3,1,1,4,3”。其中数字1代表篮球;2代表乒乓球;3代表慢跑,…。在记录了一段时间后,小张想知道自己在一段连续时间内最“喜爱”的两项体育运动是什么,以及连续进行的次数。对于这两项体育运动的要求是:
(1)这两项运动在记录中必须连续出现,不能被其他运动打断,如“1,2,2,1,2”是一种可能的结果;“1,2,2,1,2,3”则不是可能的结果;
(2)这两项运动在记录中出现的次数必须是最多的一种组合。

运动记录

1,1,2,3,2,3,2,3,3,1,1,4,3

序号

两项运动

1,1,2

2,3,2,3,2,3,3

3,3,1,1

1,1,4

4,3


从上表分析可知,小张在一段时间内连续进行的两项运动有5种不同组合,其中组合②中的两项运动持续时间最长,所以最“喜爱”的两项运动为2和3,共连续进行了7次。
根据算法思想,编写VB程序实现如下功能:程序初始化时读取小张记录的一段时间内的所有运动项目,以逗号间隔显示在文本框Text1中,单击“寻找运动项目”按钮Command1,在标签Label4上显示最喜爱的两项运动编号,在文本框Text2中显示这两项运动最长持续的次数。程序运行界面如图所示。

(1)若输入序列为“3,5,5,4,3,5,5,5,3,3,2,6”,最喜爱的两项运动连续进行的次数为________
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 100) As Integer, n As Integer
Private Sub Form_Load()
'读取已有记录项目总数 n
'读取记录的每次运动项目存入数组 a,并在文本框 Text1 中显示,代码略
End Sub
Private Sub Command1_Click()
Dim x As Integer, y As Integer 'x,y 分别表示当前记录中两个不同项目
Dim c1 As Integer, c2 As Integer 'c1,c2 分别表示两个项目在当前统计过程中出现的次数
Dim i As Integer, j As Integer, m1 As Integer, m2 As Integer, ans As Integer
i = 1: j = 1
Do While j <= n And a(i) = a(j)
      j = j + 1
Loop
x = a(i): y = a(j)
c1 =________
c2 = 1
ans = j - i + 1
Do While j < n
      j = j + 1
      If a(j) = x Then
          c1 = c1 + 1
      ElseIf a(j) = y Then
          c2 = c2 + 1
      Else
          Do While_______
              If a(i) = x Then c1 = c1 – 1 Else c2 = c2 - 1
              i = i + 1
          Loop
          If________ Then
              y = a(j)
              c2 = 1
          Else
              x = a(j)
              c1 = 1
          End If
      End If
      If ans < j - i + 1 Then
          ans = j - i + 1
          m1 = x
          m2 = y
      End If
Loop
Label4.Caption = Str(m1) + "和" + Str(m2)
Text2.Text = Str(ans)
End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情

问题描述:山顶上共有10个洞,一只兔子和一只狐狸相遇了,狐狸要吃兔子。兔子对狐狸说:你可以吃掉我,但必须先找到我。我就藏在这10个洞的其中一个洞中(注:第1~10个洞的编号分别为:1234567890)。你先到1号洞找我,若没找到,则第二次隔一个洞找我,即3号洞;第三次隔两个洞找我,即6号洞;以后以此类推,找到就可以吃掉我。狐狸答应了,但是狐狸进进出出100次后,也没找到兔子,请问兔子躲藏在哪个洞?


根据规则,前面5次进洞的情况如下表所示。

i次进洞

洞的实际编号

1

1

2

3

3

6

4

0

5

5

……

……

解决此问题的VB程序界面如右图所示,单击运行按钮,在列表框List1中显示兔子可能躲藏的山洞编号。


模拟上述过程的VB程序代码如下。
Private Sub   Run_Click()
Dim i As Integer , k As Integer
Dim hole(0 To 9) As Boolean       'hole(0)表示第10号洞
For i = 0 To 9
     hole(i) = True
Next i
k=          
For i = 1 To 100
     k = k + i
hole(k Mod 10) = False
Next i
For i = 0 To 9
If             Then List1.AddItem Str(i)       '输出兔子可能躲藏的洞(编号)
Next i

End Sub
(1)结合程序设计界面和代码,可知“运行”按钮的对象名为____________________
(2)程序中划线①处应填入___________________,②处应填入___________________。上面加框程序主要用到的是____________________(填:解析/枚举)算法。
(3)狐狸第10次所进洞的编号是____________________
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
对某次技术考试后的学生成绩进行排序。学生信息包含学号、班级和成绩。排序要求:主要关键字“班级”升序;次要关键字“成绩”降序。

小陈按上述要求编写了一个VB程序,功能如下:程序运行时,在列表框List1中显示排序前数据,单击“排序”按钮Command1,在列表框List2中显示排序结果。程序运行界面如图所示。请回答下列问题:



(1)将数组元素tmp2(1)到tmp2(200)分为4段,如果每段恰好包含50个元素,采用冒泡排序分别对每段中的元素进行排序,整个排序过程中,数组元素之间的比较次数是________(单选,填字母)。

A.4×4×3/2 次 / B.4×50×49/2 次 / C.200×199/2 次


(2)实现上述功能的VB程序如下,请在划线处填入合适的代码。

Const n = 200      ’学生数

Const m = 4        ’班级数

Dim xh(1 To n) As String, tmp1(1 To n) As String

Dim score(1 To n) As Integer, tmp2(1 To n) As Integer

Dim class(1 To n) As Integer, tmp3(1 To n) As Integer

Private Sub Form_Load()

’读取学生的学号、班级和成绩数据分别存储在数组xh,class和score中并在List1中显示

’代码略

End Sub

Private Sub Command1_Click()

Dim i As Integer, j As Integer, k As Integer

Dim t3 As Integer, t2 As Integer, t1 As String


      Dim c(0 To m + 1) As Integer
      For i = 0 To m + 1
          c(i) = 0
      Next i

For i = 1 To n


          ________        
          c(k) = c(k) + 1
      Next i

For i = 1 To m


          c(i) = c(i) + c(i - 1)
      Next i
      For i = n To 1 Step -1
          k = class(i)
          tmp1(c(k)) = xh(i)
          tmp2(c(k)) = score(i)
          tmp3(c(k)) = class(i)

________        


      Next i
      c(m + 1) = n

For k = 1 To m          ’对每一个班的学生成绩进行排序

For i = c(k) + 1 To c(k + 1) - 1

For j = c(k + 1) To i + 1 Step -1

     If ________         Then

        t1 = tmp1(j): tmp1(j) = tmp1(j-1): tmp1(j-1) = t1

        t2 = tmp2(j): tmp2(j) = tmp2(j-1): tmp2(j-1) = t2

t3 = tmp3(j): tmp3(j) = tmp3(j-1): tmp3(j-1) = t3

         End If

Next j

Next i

Next k

’在List2中按统一格式输出排序后数据,代码略

End Sub

类型:操作题
难度系数:较难0.4
收藏
纠错
详情
给定一个词典(单词按字典顺序排列,数量不超过12000个),寻找词典中所有的复合单词,并将复合单词以字典逆序显示输出。复合单词:被定义为由词典中两个单词连接而成的单词。
例如:

分析:如果词典中的单词数量比较少,我们可以采取将第i个单词与第j个单词拼接成“新单词”并在字典中查找,但如果词典中单词数量多(如12000个)此种方法速度慢,我们发现词典中的单词是有序排列,可以加快查找复合单词的速度,本题的算法策略是:对第i个单词,从第j(j=i+1)个开始判断,如果第j个单词前半部分(长度为第i个单词的长度)跟第i个单词一致,则在词典中查找第j个单词的后半部分。如果找到,则为一个复合单词。

编写vb程序,寻找词典中所有复合单词并输出显示。运行程序,在列表框list1中显示从词典数据库中导入的单词,单击“统计”按钮command1,在列表框list2中按降序显示该词典中所有复合单词。程序运行界面如图所示。



(1)如图所示,复合单词有________
(2)实现上述功能的VB程序如下,请在划线处填入合适的代码
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim n As Integer
Dim a(1 To 200) As String
Function search(key As String) As Boolean
       _______
       i = 1: j = n
       Do While i <= j
             m = Int(i + (j - i) / 2)
             If key = a(m) Then
                    search = True: Exit Do
             ElseIf key > a(m) Then
                    i = m + 1
             Else
                    j = m - 1
             End If
       Loop
End Function
Private Sub Command1_Click()
Dim i As Integer, j As Integer, temp2 As String
Dim out(0 To 100)
For i = 1 To n
       For j = i + 1 To n
             If a(i) = Mid(a(j), 1, Len(a(i))) Then
                    ________
                    If search(temp2) = True Then
                           cnt = cnt + 1
                           k = cnt
                           Do While a(j) > out(k) And k > 0 '找到a(j)应该插入的位置k
                                 k = k - 1
                           Loop
                           For p = cnt To k + 1 Step -1 'k到末尾元素均后移一位
                                 out(p) = out(p - 1)
                           Next p
                           _______
                    End If
             End If
       Next j
Next i
For i = 1 To cnt
       List2.AddItem out(i)
Next i
End Sub
Private Sub Form_Load()
       Dim i As Integer
连接字典数据库
打开数据库中字典数据表,代码略
       n = 0
       Do While Not rs.EOF
             n = n + 1
             a(n) = rs.Fields("words")
             rs.MoveNext
       Loop
     关闭数据连接,代码略
       List1.Clear
       For i = 1 To n
             List1.AddItem a(i)       '在列表框List1中显示单词
       Next i
End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
某地选考赋分规则如下:
●划分赋分等级:将考生每门选考科目的原始成绩从高到低划分为A、B+、B、C+、C、D+、D、E共8个等级,各等级人数所占比例分别为3%、7%、16%、24%、24%、16%、7%、3%,如下表所示。

等级

A

B+

B

C+

C

D+

D

E

比例

3%

7%

16%

24%

24%

16%

7%

3%


●转换赋分成绩:将A至E等级内的考生原始成绩,依照等比例转换法则,分别转换到91-100、81-90、71-80、61-70、51-60、41-50、31-40、21-30八个分数区间,得到考生的赋分成绩,如图a所示。

a

转换公式如下:t=t2+(s-s2)*(t1-t2)/(s1-s2),其中t表示转化后的赋分成绩,t1表示该档最高转化分,t2表示该档最低转化分,s表示原始分,s1表示该档最高原始分,s2表示该档最低原始分。

比如选择物理的学生有20000人,小明物理卷面分90分,排名为1800名,则他在物理学科中的比例是9%。按照赋分等级表可知他所处等级为B+。若原始分4%-10%区间的最高分为94,最低分为88,B+区间分数为81-90分。小明转化后的赋分成绩为81+(90-88)*(90-81)/(94-88)=84分。

编写一个VB程序计算某校学生某科目成绩的赋分,功能如下:从数据库中读入学生学号、姓名、班级和原始成绩,并在列表框List 1中显示,单击“赋分”按钮Comnand1,在列表框List2中按原始成绩从高到低显示赋分等级和赋分成绩。赋分时,先按原始成绩从高到低排序,再根据人数比例计算切分位置,最后对落入同一等级的学生进行赋分。若切分位置有相同分数学生,则归为同一个等级。例如,某等级切分位置是第100位,但第101位学生的原始成绩和第100位相同,则这两名学生的赋分等级相同。程序运行界面如图b所示。


图b

实现上述功能的VB程序如下,请回答下列问题:
(1)分析程序,可知存放学生成绩的数据表为______
(2)请在划线处填上合适的代码。
Const max = 1000
Dim n As Integer’存放学生人数
Dim xh(1 To max) As String, xm(1 To max) As String
Dim bj(1 To max) As Integer, fs(0 To max) As Single
Dim ffcj(1 To max) As Integer’数组ffdj存储学生的赋分等级
Dim ffdj(0 To max) As String’数组ffcj存储学生的赋分成绩
Private Sub Form_Load()

Dim i As Integer, km As String

Dim conn As New ADODB. Connection

Dim rs As New ADODB. Recordset

conn. ConnectionString = "provider=microsoft. ace. oledb. 12. 0; data source=" + App. Path + "\student. accdb"

conn. Open

Set rs. ActiveConnection = conn

rs. Open "select * from stu_info"


’本过程其它代码从数据库中读入学生学号、姓名、班级和原始成绩存储到数组xh、xm、bj和fs中,并在List1中显示。学生数存储在变量n中。

Loop


End Sub
Private Sub Command1_Click ()

Dim q(1 To max) As Integer, p(1 To 8) As Single, dj(1 To 8) As String

Dim i As Integer, j As Integer, t As Integer, pos As Integer, last As Integer

Dim t1 As Integer, t2 As Integer, s1 As Single, s2 As Single

p(1) = 0.03:p(2) = 0.07:p(3) = 0.16:p(4) = 0.24

p(5) = 0.24:p(6) = 0.16:p(7) = 0.07:p(8) = 0.03

dj(1) = "A":dj(2) = "B+":dj(3) = "B":dj(4) = "C+"

dj(5) = "C":dj(6) = "D+":dj(7) ="D":dj(8) ="E"

For i = 2 To 8

p(i) =________’计算到该等级累计所占比例

Next i

Fori=1Ton

q(i) = i


Next i
For i = 1 Ton - 1

For j = n To i + 1 Step - 1

If fs(q(j)) > fs(q(j - 1)) Then

t = q(j):q(j)=q(j - 1):q(j - 1) = t

End If

Next j

Next i

pos = 1

t1 = 100:t2 = 91

For i = 1 To 8

last = Int(n * p(i) + 0.5)

Do While ________

last = last + 1’处理切分位置的同分数学生

Loop

s1 = fs(q(pos)):s2 = fs(q(last))

Do While pos <= last

________

ffcj(q(pos)) = t2 + (fs(q(pos)) - s2) / (s1 - s2) * (t1 - t2)

pos = pos + 1

Loop

t1 = t1-10:t2 = t2 - 10

Next i

For i = 1 Ton

List2. AddItem xh(q(i)) + xm(q(i)) + Str(bj(q(i))) + dj(ffdj(q(i))) + Str(ffcj(q(i)))

Next i


End Sub
类型:操作题
难度系数:较难0.4
收藏
纠错
详情
首页
上一页
下一页
尾页