16.某校每年都舉辦校園十佳歌手比賽,小明用VB編寫了一個計分用的程序用于統計處理比賽成績,運行界面如圖所示。 在輸入區域輸入選手編號和每位評委給該選手的打分后,單擊“計算平均得分”按鈕Command1,得到當前選手的最終得分,并顯示在列表框List1中。所有選手的成績輸入完畢后,單擊“排名”按鈕Command2,在列表框List2中顯示按編號順序排列的選手得分及名次(若得分一樣,排名相同),再在列表框List3中顯示按名次順序排列的前十位選手的編號及得分。 實現上述功能的VB程序如下,代碼加框處有錯,請改正。 Const rs=20'參賽總人數為20 Dim num(1 To rs)As Integer'存放選手編號 Dim se(1 To rs)As Double'存放選手得分 Dim rk(1 To rs)As Integer'存放選手名次 Private Sub Command1_Click( ) '計算每位選手的平均得分并顯示到列表框List1中,代碼略 End Sub Private Sub Command2_Click( ) Dim i As Integer,j As Integer,me As Integer List2.Clear:List3.Clear For i=1 To rs mc=0 '① If sc(i)<sc(j) Then mc=mc+1 Next j '② Nxet i For i=1 To rs List2.AddItem num(i)&“號選手“&““&Format(Str(sc(i)),“00.00“)&““&rk(i) Nxet i '在列表框List3中按名次順序顯示選手信息,代碼略 End Sub 加框①處的代碼應改為:
17.在英語學科的網上閱卷中,因技術還不夠成熟,寫作部分仍需手工評卷.在李老師的建議下,小明決定用VB語音對識別成功后的作文做一些初評.他的設想是: (1)按位依次取出每個單詞,存入數組wd中:每個單詞出現的次數存儲在數組wd_num中;單詞的字符長度存儲在數組wd_len中.為方便統計,所有字母均轉換為小寫. (2)所有單詞全部取出并存好后,將這些單詞按字典順序重新排列,對應的長度和出現的次數也跟著重新排列. (3)評卷的標準之一是“必須出現指定的關鍵詞”.這些關鍵詞在統計之前先輸入并存放在數組key中.程序中用二分查找法在數組wd中找到每個關鍵詞出現的次數,存儲在數組key_num中. (4)最后輸出統計結果,包括單詞的數量、單詞的平均長度,以及每個關鍵詞出現的次數.運行界面如圖所示: 請回答下列問題: (1)根據小明的設想,如果輸入距離“Read,let the words warm your stillness.”,則經過統計后,數組元素wd_len(3)的值為
. (2)實現上述功能的VB程序如下,請在橫線處填入合適的代碼. Const keynum=7'關鍵詞的個數為7個 Dim key (1 To keynum) As String'數組key用于存放指定的關鍵詞 Dim key_num(1 To keynum) As Integer'數組key_num用于存放每個關鍵詞出現的次數 Dim wd(1 To 500)As String'數組wd用于存放從作文中提取出來的每個單詞 Dim wd_len(1 To 500)As Integer'數組wd_len用于存放wd中每個單詞的長度 Dim wd_num(1 To 500)As Integer'數組wd_num用于存放wd中每個單詞在作文中出現的次數 Function dtox(ch As String) As String If ch>=“A“And ch<=“Z“Then dtox=Chr(Asc(ch)+32)Else dtox=ch End Function Private Sub Form_Load( ) '對部分變量和數組進行初始化,代碼略 End Sub Private Sub Text2_KeyPress(KeyAscii As Integer) '將逐個輸入的關鍵詞依次存入數組key中,并在List1中顯示出來,代碼略 End Sub Private Sub Command1_Click( ) '其他變量的定義,代碼略 List2.Clear '以下程序段用于將作文中的每個單詞提取出來,存入數組wd中 atc=Text1.Text:m=0:word=““ flag1=False'flag=False表示一個單詞的開始,單詞個數m增加1, 'flag=True表示余下的連續字母不再計數, For i=1 To Len(atc)
'按位取出字符,若是大寫字母,則轉換為小寫字母 If char>=“a“And char<=“z“Then word=word+char If Not flag1 Then m=m+1:flag1=True Else flag1=False '檢查該單詞在數組wd中是否已經存在 flag2=False For j=1 To m-1 If wd(j)=word Then.