当前位置: 高中信息技术 / 综合题
  • 1. (2017·浙江模拟) 公司年会,领导要小李编写一个小程序,用于抽奖,小李将参加年会的人员姓名、手机号保存在一个access数据库中库名:年会嘉宾.accdb 数据表名为:联系人
    程序设计的主要思路是:窗体装入时读出所有嘉宾的姓名和手机号,保存在两个数据中,从text1中取得要抽奖的人数,用随机函数产生1~num间的数作为中奖号,从数据中读出对应的姓名和手机号,手机号中间4位用“新年快乐”代替。已抽中过的姓名和手机号从数据中删除,以防止重复中奖。

    Dim sname(1 To 1000) As String   ‘用于保存嘉宾姓名
    Dim phone(1 To 1000) As String   ‘用于保存嘉宾手机号
    Dim num As Integer  ‘未抽奖人数
    Private Sub Command1_Click()
    Dim n As Integer   ‘拟抽奖人数
    Randomize
    n = Val(Text1.Text)
    List1.Clear
    If     ①     Then
     For i = 1 To n
        k = Int(Rnd * num) + 1
        List1.AddItem Str(i) + "  " + sname(k) + "   " +   ②     
        For j = k To num
            sname(j) = sname(j + 1)
            phone(j) = phone(j + 1)
        Next j
        num =      ③       
     Next i
    Else
        List1.AddItem "剩余的数据不足!"
    End If
    End Sub
    Rem 下列程序段用于从数据库中读取嘉宾的姓名和手机号,分别保存在全局变量sname()和phone()两个数组中,设嘉宾个数不超过1000个。
    Private Sub Form_Load()
    Dim conn As New ADODB.Connection
    Dim rs As New ADODB.Recordset
    conn.ConnectionString = "provider=microsoft.ace.oledB.12.0;data source=" & App.Path & "\年会嘉宾.accdb "
    conn.Open
    Set rs.ActiveConnection = conn
    rs.Open "select * from 联系人"
    num = 0
    Do While Not rs.EOF And num < 1000
        num = num + 1
        phone(num) = rs.Fields("联系电话")
        sname(num) = rs.Fields("姓名")
        rs.MoveNext
     Loop
     rs.Close
     conn.Close
     Set rs = Nothing
     Set conn = Nothing
    End Sub

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