版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、2020版3年高考2年模擬電子資源第6節(jié)VB訪問Access數(shù)據(jù)庫模擬演練1.最新國際體操競賽的評分規(guī)則簡單描述如下:兩位D組裁判分別打“難度分”,取平均值作為該參賽選手的最終難度分。五位E組裁判分別打“完成分”,在5個E組打分2果中,去掉一個最高分和一 個最低分,然后取平均值作為該參賽選手的最終完成分。難度分和完成分之和,即該參賽選手的最終得分。例如:某參賽選手打分如下:D組裁判打E組裁判打分分6.56.99.59.08.38.87.6該選手“難度分”為(6.5+6.9)/2=6.7 。E組裁判打分去掉一個最高分和一個最 低分之后,計算“完成分”為(9.0+8.3+8.8)/3=8.7。所以
2、該選手最終得分為6.7+8.7=15.4 分。小杜編寫一個 VB程序:程序運(yùn)行時從數(shù)據(jù)庫讀取參賽選手人數(shù)和參賽選手的打 分?jǐn)?shù)據(jù),依次存儲在數(shù)組a中;單擊“統(tǒng)計”按鈕,依據(jù)數(shù)組a中的相關(guān)數(shù)據(jù)統(tǒng)計 各選手的“難度分” “完成分”和“最終得分”,并在列表框List1中輸出。數(shù) 組a各元素的含義如下,程序運(yùn)行界面如圖所示。數(shù)組數(shù)組元素的含義元素a(0)存儲參賽人數(shù)na(1)十入八a(1)和a(2)為第1位選手的D組兩位裁判的打分。a(3)、a(4)、a為第1位選手的E組五位裁判的打分a(8)十一,、山一八a(8)和a(9)為第2位選手的D組兩位裁判的打分。a(10)、a(11)、a(14)為第2位選手
3、的E組五位裁判的打分 a(14)實現(xiàn)上述功能的VB程序如下,請回答下列問題:(1)根據(jù)程序運(yùn)行界面中的數(shù)據(jù)及數(shù)組a各元素白勺含義,數(shù)組元素a(8)和a(9)的值為(填序號:A.6.2 和 5.6/B.5.8 和 6.2/C.6.1 和 5.5)分析程序,可知數(shù)據(jù)庫的文件名為 。請在劃線處填入合適的代碼。Dim a(0 To 210) As SingleDim d(1 To 30) As SingleDim e(1 To 30) As SingleDim f(1 To 30) As Single'數(shù)組大小滿足處理要求'依次各選手的難度分'依次各選手的完成分'依次各
4、選手的最終得分Private Sub Command1_Click()'本過程從數(shù)據(jù)庫讀取相關(guān)數(shù)據(jù),存儲在數(shù)組a中Dim conn As New ADODB.ConnectionDim rs As New ADODB.Recordsetconn ConnectionStri ng= "provider=Microsoft.ACE.OLEDB.12.0; data source=" + "成績.accdb”conn.OpenSet rs.ActiveConnection=conn'本過程的其他語句略End SubPrivate Sub Command
5、2_Click()'依據(jù)數(shù)組a中的相關(guān)數(shù)據(jù)統(tǒng)計各班級平均分Dim i As Integer, j As Integer, n As Integer, p As IntegerDim max As Single, min As Single, sum SingleFor i=1 To n p=(i-1)*7+1 d(i)=(a(p)+a(p+1)/2 sum=0max=a(p+2) : min=a(p+2)For j=p+2 To p+6 sum=sum+a(j) If a(j) > max Then max=a(j) min=a(j)Next je(i)=(sum-max-min
6、)/3f(i尸d(i)+e(i)List1.AddItem Str(i)+ “ " +Str(d(i)+“ " +Str(e(i)+“ " +Str(f(i)Next iEnd Sub答案(1)C成績.accdb(3) n=a(0)If a(j)<min Then解析 本題綜合考查算法的程序?qū)崿F(xiàn)和 VB訪問數(shù)據(jù)庫。(1)根據(jù)程序運(yùn)行界面中 的數(shù)據(jù)及數(shù)組a各元素的含義,知數(shù)組元素a(8)和a(9)的平均值為5.8分,也就 是第二位選手的難度分為5.8分,只有C選項的平均分為5.8分。(2)數(shù)據(jù)庫的文 件名的擴(kuò)展名格式為“ accdb”,通過分析數(shù)據(jù)庫連接部分代
7、碼,容易找出數(shù)據(jù)庫 的文件名為“成績.accdb”。(3)變量n代表參賽選手的人數(shù),根據(jù)題意,數(shù)組 元素a(0)為參賽選手人數(shù),所以需要將數(shù)組元素a(0)的值賦給變量n,即n=a(0); 通過分析得知變量min代表五位E組裁判打“完成分”的最低分。通過連續(xù)求 數(shù)組中最值的算法得出處答案為If a(j)<min Then 。2.某單位招考公務(wù)員,2010年和2011年分別有4 020名和2 000名考生報名,下 列VB程序用于統(tǒng)計兩次考試都參加的考生信息。程序界面設(shè)計如圖所示,2010年和2011年的考生信息分別顯示在 List1和List2中,點擊“統(tǒng)計”按鈕,在 List3中顯示兩次考
8、試都參加的考生信息和總?cè)藬?shù)。(1)實現(xiàn)上述功能的VB程序如下,請在橫線處填入合適代碼。Dim a (1 To 4020 )As StringDim b (1 To 2000 )As StringPrivate Sub Form_Load()Dim conn As New ADODB.ConnectionDim rs As New ADODB.RecordsetDim constr As stringconstr= "Provider=Microsoft.ace.OLEDB.12.0; ”constr=constr &"Data Source= " &
9、; App.Path+ “KaoSheng.accdb”conn.ConnectionString=constrconn.open()Dim sql As String'將參加2010年下半年考試的考生的身份證號碼按升序存放在a數(shù)組中sql= "select * from kaoshengInfo where year= '2010' order by sfzh力ascrs.Open sql,conni=0Do While Not rs.EOFi=i+1a(i)=rs( “sfzh ” )List1.additem(a(i)rs.MoveNextLoop
10、9;將參加2011年下半年考試的考生的身份證號碼按升序存放在b數(shù)組中sql= "select * from kaoshengInfo where year= '2011' order by sfzh asc” rs.Open sql,conn i=0Do While Not rs.EOFi=i+1b(i)=rs(“sfzh ” )List2.additem(b(i)rs.MoveNextLooprs.CloseEnd SubPrivate Sub Command1_Click ()Dim bot As Integer , top As Integer , m As I
11、ntegerDim i As Integer ,ans As Integerans=0For i=1 To 2000bot=1Do While bot <=topm=Fix ( ( bot+top ) / 2 )If a ( m )=b ( i ) ThenList3.AddItem a ( m )Exit DoElseIf Thentop=m-1Elsebot=m+1End IfLoopNext iList3.AddItem“總計” +str(ans)+ “人次”End Sub分析上述代碼,在數(shù)據(jù)庫中用于存放考試信息的數(shù)據(jù)表名稱答案(1)top=4000 ans=ans+1 a(m)&
12、gt;b(i)(2) kaoshengInfo解析 本題考查數(shù)據(jù)庫的使用和對分查找。(1)題目中需要找出兩年都參加的人數(shù),采取的做法是枚舉考生較少的一年的人, 也就是b數(shù)組,同時利用對分法去驗證枚舉到的人在另一年 (a數(shù)組中)是否存在。 對分的上界為bot,下界為top,分別為1和4 000,若查找到則輸出并將ans力口 1, 否則當(dāng)查找值b(i)小于中間值a(m)時,改變下界,是一個標(biāo)準(zhǔn)的對分查找程序。(2)注意到程序中的 “ select * from kaoshengInfo where year= '2011' order by sfzh asc "。這是數(shù)據(jù)
13、庫查詢語句,表示從kaoshengInfo這張數(shù)據(jù)表中查 詢,where year= '2011'表示查詢所有 2011年的記錄。3.小王為學(xué)校教務(wù)處編寫了一個排考場座位的VB程序??紙霾捎谩?排5歹共30人的模式。程序執(zhí)行后,考生的考號與姓名顯示在列表框 List1中,單擊“考場座位”按鈕Command傳場號與座位顯示在 Text1中,程序運(yùn)行界面如圖a所示,考生數(shù)據(jù)存放在數(shù)據(jù)庫文件“ kaochang.accdb ”中,數(shù)據(jù)表如圖b所示。實現(xiàn)上述功能的VB程序如下,請回答下列問題: 當(dāng)"Form_Load()”事件處理過程運(yùn)行結(jié)束時,變量x的值為(2)請在橫線處填
14、入合適的代碼。Private Sub Command1_Click()Dim y As IntegerDim start As Integer'考場第1位數(shù)據(jù)元素的下標(biāo)Dim pa As Integer '數(shù)據(jù)庫導(dǎo)入VB時學(xué)生數(shù)據(jù)下標(biāo)Dim pb As Integer '考場座位數(shù)據(jù)下標(biāo)Dim i As Integer,j As Integer,k As Integer,m As Integerstart=1pa=startrecCount=x-1If recCount Mod 30 <> 0 ThenFor i=1 To y '將當(dāng)前考生人數(shù)添加到
15、30的整數(shù)倍recCount=recCount+1sName(recCount尸Next iEnd IfFor j=1 To recCount / 30pa=startpb=startFor i=1 To 30kcsName(pb)=sName(pa)pb=pb+1If i Mod 5=0 Thenpa=start+i 5ElseEnd IfNext istart=start+30Next jTextl.Text="" start=1For k=1 To recCount / 30m=startText1.Text=Text1.Text+ “第” +Str(k)+ “考場”
16、 +vbCrLf 'vbCrLf為換行標(biāo)志符,實現(xiàn)Textl中內(nèi)容換行顯示For i=1 To 6For j=1 To 5Text1.Text=Text1.Text+ "" +kcsName(m)m=m+1Next jText1.Text=Text1.Text+vbCrLfNext iText1.Text=Text1.Text+vbCrLf+vbCrLfNext kEnd SubPrivate Sub form_load()Dim myconn As New ADODB.ConnectionDim myrecord As New ADODB.Recordsetmyc
17、onn.ConnectionString= "provider=microsoft.ace.oledb.12.0;data source=e:kaoch ang.accdb”myconn.Openstrsql="select*from 三中"myrecord.Open strsql,myconnx=1List1.AddItem ”考號 姓名”List1.AddItem " ”Do While Not myrecord.EOF'讀取數(shù)據(jù)庫數(shù)據(jù),存入數(shù)組kh(x)、sName(x)中,代碼略Listl.AddItem kh(x)+ “ "
18、+sName(x) x=x+1myrecord.MoveNextLoopmyrecord.CloseEnd Sub答案43(2)y=30-recCount Mod 30pa=pa+6 start=start+30解析(1)數(shù)據(jù)庫名稱是kaochang.accdb,數(shù)據(jù)表名稱是“三中”,注意數(shù)據(jù)表 是沒有擴(kuò)展名的。變量x記錄讀取到的學(xué)生數(shù)據(jù)的數(shù)組下標(biāo),當(dāng)x=42時,Do While Not myrecord.EOF是指到數(shù)據(jù)表的最后一條記錄后退出循環(huán),當(dāng)前條件成立,還 在數(shù)據(jù)表內(nèi),所以繼續(xù)執(zhí)行,x=x+1,x為43,跳出循環(huán)。 If recCount Mod 30 <> 0 Theny=30-recCount Mod 30For i=1 To yrecCount=recCount+1sName(recCount)=""Next iEnd If選擇嵌套循環(huán)結(jié)構(gòu)的作用:首先判斷學(xué)生人數(shù)是不是 30的倍數(shù),若不是,求出相 差人數(shù),通過循環(huán)結(jié)構(gòu)將加入的數(shù)組元素賦值為空字符串。 If i Mod 5=0 Thenpa=start+i 5Elsepa=pa+6End If本段選擇結(jié)構(gòu)的作用:當(dāng)i不是5的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024無人機(jī)研發(fā)與飛行服務(wù)合同
- 2025年度高檔別墅窗戶定制安裝與維護(hù)保養(yǎng)合同3篇
- 二零二五版程海流域生態(tài)保護(hù)與可持續(xù)發(fā)展合同2篇
- 中原地產(chǎn)房屋買賣居間協(xié)議(2024年度版)版
- 個人在線醫(yī)療咨詢服務(wù)平臺合作協(xié)議(2024版)2篇
- 未來教育趨勢與終身學(xué)習(xí)規(guī)劃的構(gòu)建
- 個人抵押借款合同書樣例版
- 2025年度金融機(jī)構(gòu)與個人消費貸款合同范本4篇
- 2025版壓路機(jī)設(shè)備租賃及維護(hù)管理合同范本3篇
- 現(xiàn)代餐飲業(yè)營銷策略及服務(wù)流程優(yōu)化
- 泌尿:膀胱腫瘤病人的護(hù)理查房王雪-課件
- 標(biāo)點符號的研究報告
- 服務(wù)器報價表
- 2025年高考化學(xué)試題分析及復(fù)習(xí)策略講座
- 2024-2029年中國制漿系統(tǒng)行業(yè)市場現(xiàn)狀分析及競爭格局與投資發(fā)展研究報告
- 大門封條模板
- 【“凡爾賽”網(wǎng)絡(luò)流行語的形成及傳播研究11000字(論文)】
- ppr管件注塑工藝
- 液化氣站其他危險和有害因素辨識及分析
- 高中語文教學(xué)課例《勸學(xué)》課程思政核心素養(yǎng)教學(xué)設(shè)計及總結(jié)反思
- 中國農(nóng)業(yè)銀行小微企業(yè)信貸業(yè)務(wù)貸后管理辦法規(guī)定
評論
0/150
提交評論