试题

试题 试卷

logo

题型:综合题 题类:模拟题 难易度:困难

浙江省名校信息技术仿真训练卷(二)

【加试题】2016年某书城的部分书籍销售数据存放在相应的数据表中,如图a所示。小明编写了一个VB程序,实现如下功能:在文本框Text1中输人图书类别,单击“查询”按钮Command1,程序从数据库读取相关数据进行处理,在列表框List中显示该类图书所有的销售数据(从高到低排序),在文本框Text2中显示该类图书的总销售量。VB程序运行界面如图b所示。

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

Dim num As Integer         ‘变量num存储数据库实际的记录数

Dim book(1 to 5 000)As String

Dim content(1 To 5 000)As String,content1(1 To 5 000)As String  ‘存储类别内容

Dim sales(1 To 5 000)As Long,sales1(1 To 5 000)As Long     ‘存储销售量

Private Sub Form Load( )

  Dim conn As New ADODB.Connection,rs As New ADODB.Recordset

  Dim strSQL As String

  conn. ConnectionString="Provider=Microsoft. ACE. OLEDB. 12. 0; Data Source="&App. Path&"\major. accdb"

  conn. Open

  strSQL="SEl.ECT*FROM count"

  Set rs.ActiveConnection=conn

  ‘从数据表中读取图书类别、类别内容、销售量分别存储到数组book、content、sales中

  ‘数据库实际读取的记录数存储在变量num中

  ‘代码略

End Sub

 Private Sub Command1_Click()

  Dim m As String,n As String,c As Integer,s As Long

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

  List1.Clear

  c=0:s=0

  m=Text1.Text

  For i=l To num    ‘将符合的类别内容、销售量重新存储到数组content1、sales1中

    If m=book(i)Then

        c=c+1

        content1(c)=content(i)

        sales1(c)=sales(i)

                              ‘①

    EndIf

  Next i

 

  For i=1 To                ‘②

    List1.AddItem content1(i)&"  "&Str(sales1(i))

  Next i

  Text2.Text=Str(s)

End Sub

(1)、加虚线框处的程序,采用的排序算法是

(2)、当前程序处理的数据库文件“major.accdb”,默认创建该文件的数据库管理系统是(填软件名称)。

(3)、请在画线处填入合适的代码。

举一反三
编写一个VB程序,实现程序功能如下:随机产生10个1~20之间的整数存放在数组a,在列表框List1中显示,单击“排序”按钮Command1后,在列表框List2中显示升序排序后的结果。具体算法描述如下:引入数组index,index(i)存储i位置应放置的数组元素的下标。排序完毕,a(index(i))成为升序序列,即a(index(1))≤a(index(2))≤a(index(3))≤……≤a(index(i))。在数组a的所有元素中找出最小元素,将其所在位罝存放在数组元素index(1)中,然后在余下的元素中找出最小元素,将其所在位置存放在数组元素index(2)中,以此类推,直到完成所有元素排序。如n=5时,数组a排序后各变量值如下表所示。

i

1

2

3

4

5

a(i)

17

19

9

13

6

index(i)

5

3

4

1

2

a(index(i))

6

9

13

17

19

实现上述功能的VB程序如下,但加框处代码有错,请改正。

Const n = 10

Const maxn = 20

Dim a(1 To n) As Integer, index(1 To n) As Integer, flag(1 To n) As Boolean

Private Sub Form_Load()

Dim i As Integer

Randomize

For i = 1 To n

 flag(i) = False

 a(i) = Int(Rnd() * maxn) + 1

 List1.AddItem Str(a(i))

Next i

End Sub

Private Sub Command1_Click()

Dim i As Integer, j As Integer

Dim k As Integer

For i = 1 To n

 For j = 1 To n

  If flag(j) = False Then k = j: Exit For

 Next j

 For m = k + 1 To n

  If Then k = m     ‘⑴

 Next m

 index(i) = k

 flag(k) = True

Next i

For i = 1 To n

 List2.AddItem      ‘⑵

Next i

End sub

⑴{#blank#}1{#/blank#} ⑵{#blank#}2{#/blank#} 

返回首页

试题篮