组卷题库 > 高中信息技术试卷库

浙江省嘉兴市2019-2020学年高二下学期信息技术期末检测试题

作者UID:7189882
日期: 2024-04-24
期末考试
选择题(本大题共12小题,每小题2分,共24分。)
非选择题(本大题共4小题,4+8+7+7,共26分)
病毒疫苗抗体检测。使用字符串序列表示志愿者注射疫苗后细胞的DNA和疫苗抗体的DNA(志愿者的DNA序列长度大于疫苗抗体的DNA序列长度),通过检测疫苗抗体DNA序列是否在志愿者的DNA序列中出现来分析疫苗效果。其中疫苗抗体的DNA序列是环状的,志愿者的DNA序列是线性的。只要疫苗抗体的DNA序列在志愿者的DNA序列中出现,说明己产生抗体。例如:疫苗抗体的DNA序列是环状的“cced”,即可以表示为“cced”,也可以表示为“cedc”、“edcc”、“dcce”。A志愿者的DNA序列为“mtrcnmdaced”, 没有出现抗体序列,结果为“阴性”,B志愿者的DNA序列为“acedssdfaef",出现抗体序列,结果为“阳性”,C志愿者的DNA序列为“ce”,志愿者的DNA序列长度不够,无法比对,结果为“无效”。

按上述要求,编写一个VB程序,功能如下:程序运行时从数据库中读取志愿者的检测号、

DNA序列存入相应数组,在文本框Text1中输入抗体DNA序列,单击“检测结果”按钮Command11,在列表框List1中按检测号顺序显示每个志愿者的检测结果,并在标签Label1显示疫苗抗体的阳性率(以百分比表示,并保留2位小数),程序运行界面如图所示,请在划线处填入合适的代码。

Dim Pnum(1 To 100) As String        'Pnum数组存储志愿者的检测编号

Dim Pch(1 To 100) As String          'Pch数组存储志愿者的DNA序列

Dim Prs(1 To 100) As String            'Prs数组存储志愿者的检测结果

Dim n As Integer                           '存储志愿者的总人数

Private Sub Form_ Load( )

    Dim i As Integer, j As Integer

    Dim tmp As String, chtmp As String

    Dim Conn As New ADODB.Connection

    Dim Rs As New ADODB.Recordset

    Conn.ConnectionString = "Provider=Mi crosoft. ACE.OLEDB.12. 0;Data Source=" + App.Path+"\DNADB.accdb"

    Conn.Open

    Set Rs.ActiveConnection = Conn

    Rs.Open "SELECT * FROM Source"      '从数据库的名为 “Source”数据表中读取数据

    i =0

    Do While Not Rs.EOF

        i=i+1

        Pnum(i) = Rs.Fields(0)

        Pch(i) = Rs.Fields(1)

        Rs.MoveNext

    Loop

    Rs.Close

    Conn.Close

    n=

    For i=1 To n-1    '以检测号作为关键字对DNA序列数据进行升序排列

        j=i+1

        Do While j <= n

            If  Then

                chtmp = Pch(i):Pch(i)= Pch(j):Pch(j)= chtmp

                tmp = Pnum(i):Pnum(i)= Pnum(j):Pnum(j)= tmp

            End If

            j=j+1

        Loop

    Next i

End Sub

Private Sub Command1_ Click( )

    Dim Ach As String, RVch As String, Vch As String

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

    Ach = Text1. Text: s = Len(Ach): RVch = Ach + Ach

    k=0:m=0

    For i=1 To n

        If Len(Pch(i)) <= Len (Ach) Then

            k =k+ 1: Prs(i) = “无效”

        Else

            For j=1 To s            '按环状序列依次进行比较

                Vch =

                If Test(Vch,Pch(i)) Then

                    m=m+1

                    Prs(i) =“阳性”: Exit For

                Else

                    Prs(i) =“阴性”

                End If

            Next j

        End If

    Next i

    For i =1To n

        List1. AddItem Pnum(i) +"  " + Prs(i)

    Next i

    Label1. Caption = Str(Int(m/(n-k)*10000 +0.5)/100) + "%"

End Sub

Function Test(str1 As String,str2 As String) As Boolean    '字符串比对函数

    Dim i As Integer

    Test = False

    For i = 1 To Len(str2) - Len(str1) + 1

        If Then

            Test = True: Exit For

        End If

    Next i

End Function

试卷列表
教育网站链接