当前位置: 高中信息技术 / 综合题
  • 1. (2020·浙江模拟) 领礼物。圣诞节到了,教室里放满了礼物,大家站在同一位置即原点(0,0)处,根据自己拿礼物的序号轮流去拿礼物,每个人只能拿离自己最近的礼物,每件礼物的位置用坐标(x,y)表示。如果有多个礼物离你的距离相等(精确到小数后二位)且最近,则这些礼物都归你所有。

    程序运行时,在文本框Text1中输入共有礼物数n,单击“读取数据”按钮Command1,将从数据库gift. accdb中读取n个礼物的信息存储在相应的数组中,并显示在列表框List1中;在文本框Text2中输入轮到你拿礼物的序号(即第几个拿),单击“计算”按钮 Command2,则在列表框List2显示你获得的礼物信息,并在列表框list2最后一行显示获得的礼物总数。程序运行界面如图所示。

    实现上述功能的VB程序代码如下,请回答下列问题:

    Dim conn as New ADODB.Connection

    Dim rs as New ADODB.Recordset

    Dim bh(1 To 100) As string   '数组bh存储礼物的编号

    Dim x(1 To 100) As Single,y(1 To 100) As single    '数组x、y分别存储礼物的横坐标和纵坐标

    Dim dist(1 To 100) As single     '数组dist存储礼物到原点的距离

    Dim n As Integer      '变量n表示礼物数

    Private Sub Command1_Click()

        Dim i As Integer

        '从数据库中读取n件礼物的编号、横坐标、纵坐标,并存储在相应的数组中'代码略,下面代码的功能是计算各礼物到原点的距离

        For i=1 To n

            dist(i)=   ① 

            List1. AddItem bh(i)+""+Str(x(i))+""+Str(y (i))+""+Str(dist(i))

        Next i

    End Sub

    Private Sub Command2_Click()

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

        Dim templ As String, temp2 As Single, p As Single, s As Single

        xh=Val(Text2. Text)

        '将礼物按到原点的距离从小到大排序,代码略

        i=0: j=1: s=0

        Do While (i< xh) And (j<=n)

            If dist(j)<>s Then

                  ② 

                i=i+1

            End if

            j=j+1

        Loop

        u=0

        j=j-1

        Do While   ③   

            List2. AddItem bh(j)+Str(x(j))+Str(y(j))+Str(dist(j))

            u=u+1

            j=j+1

        Loop

        List2. AddItem"total:"+Str(u)

    End sub

    1. (1) 请在程序画线处填入合适的语句

       ② ③ 

    2. (2) 假设现共有14件礼物,礼物的信息如图所示,你轮到第10个拿礼物,则你获得的礼物数为

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