版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Visual Basic實驗答案學(xué)院專業(yè) (班級)姓名學(xué)號任課教師目錄 實驗一Visual Basic編程環(huán)境和控件 1 實驗二窗體及基本控件使用 6 實驗三順序結(jié)構(gòu)程序設(shè)計 13 實驗四選擇結(jié)構(gòu)程序設(shè)計 19 實驗五選擇結(jié)構(gòu)程序設(shè)計(續(xù)) 24 實驗六循環(huán)結(jié)構(gòu)程序設(shè)計 30 實驗七循環(huán)結(jié)構(gòu)程序設(shè)計(續(xù)) 34 實驗八常用控件 38 實驗九常用控件(續(xù)) 45 實驗十?dāng)?shù)組 50 實驗十一數(shù)組(續(xù)) 56 實驗十二順序文件 60 實驗十三過程 67 實驗十四過程(續(xù)) 72 實驗十五菜單及通用對話框 77 實驗十六隨機(jī)文件(選作) 80 附錄:VB統(tǒng)考編程題(精選) 83 期末自測題(A卷) 9
2、2 期末自測題(B卷) 97實驗報告的整理與編寫 上機(jī)實驗結(jié)束后,編寫實驗報告是軟件工程的要求,也是培養(yǎng)科學(xué)作風(fēng)的重要途徑,實驗報告的主要內(nèi)容包括: (1)實驗?zāi)康膶嶒炞鳛榻虒W(xué)的一個重要環(huán)節(jié),其目的在于更深入地理解和掌握課程教學(xué)中的有關(guān)基本概念,應(yīng)用基本技術(shù)解決實際問題,從而進(jìn)一步提高分析p 問題和解決問題的能力。因此,當(dāng)我們著手做一個實驗的時候,必須明確實驗的目的,以保證達(dá)到課程所指定的基本要求。在寫實驗報告時,要進(jìn)一步確認(rèn)是否達(dá)到了預(yù)期的目的。(2)實驗內(nèi)容實驗的目的是要通過解決一些具體問題來達(dá)到的。在書中,每一部分都安排了多個實驗題目,根據(jù)教學(xué)安排、進(jìn)度、實驗條件、可提供的機(jī)時、學(xué)生的基
3、礎(chǔ)等因素,可以選擇其中的幾個或全部。因此,在實驗報告中,實驗內(nèi)容是指本次實驗中實際完成的內(nèi)容。在每一個實驗題目中,一般都提出一些具體要求,其中有些具體要求是為了達(dá)到實驗?zāi)康亩岢龅模粌H有具體的實驗題目,還應(yīng)包括具體要求。(3)程序設(shè)計說明包括算法設(shè)計思路,必要的流程圖,界面設(shè)計說明、使用模塊及變量的說明等。(4)程序代碼 Visual Basic的程序包括界面設(shè)計和代碼。程序設(shè)計的產(chǎn)品是程序,它應(yīng)與算法或流程圖相一致,要與用戶界面設(shè)計一致。程序要有具有易讀性,符合結(jié)構(gòu)化原則。(5)程序的運行結(jié)果(包括對不同測試數(shù)據(jù)的運行結(jié)果)程序運行結(jié)果一般是輸出語句所輸出的結(jié)果。對于不同的輸入,其輸出的結(jié)
4、果是不同的。因此,在輸出結(jié)果之前一般還應(yīng)注明輸入的數(shù)據(jù),以便對輸出結(jié)果進(jìn)行分析p 和比較。在程序的運行中,還必須用各種不同情況的數(shù)據(jù)進(jìn)行調(diào)試,以檢查程序能否正常運行。因為,有時程序?qū)δ承┣闆r是可以正常運行的,而對某些特殊情況的數(shù)據(jù)可能會出現(xiàn)運行出錯或死機(jī),通過各種數(shù)據(jù)的調(diào)試,盡量做到程序不會出問題。 (6) 實驗體會 分析p 和體會實驗中碰到的問題及解決方法,這是實驗報告中最重要的一項,也是最容易忽視的一項。實驗過程中大量的工作是程序調(diào)試,在調(diào)試過程中會遇到各種各樣的問題,每解決一個問題就能積累一點經(jīng)驗,提高自己的編程能力。因此,對實驗的總結(jié),最主要的是程序調(diào)試經(jīng)驗的總結(jié)。調(diào)試分析p 也包括對
5、結(jié)果的分析p 。體會主要是指通過本次實驗是否達(dá)到了實驗?zāi)康模心男┗靖拍畹玫搅顺吻?,碰到了那些以前沒有見到的問題,最后采用什么方法得到解決等。實驗日期年月日 實驗一Visual Basic編程環(huán)境和控件 一、實驗?zāi)康?1、掌握啟動與退出Visual Basic的方法。 2、掌握Visual Basic語言程序的開發(fā)環(huán)境.3、掌握Visual Basic語言程序設(shè)計的方法與特點 4、掌握建立、編輯、運行和保存一個簡單的Visual Basic應(yīng)用程序的全過程。 二、實驗內(nèi)容 申請一個免費郵箱(如果已經(jīng)有郵箱,請?zhí)^),以便以后將每星期編制的程序壓縮并存放在郵箱中(或者保存在U盤中),以便復(fù)習(xí)時
6、用。1.創(chuàng)建第一個應(yīng)用程序。編寫一個簡單程序,實現(xiàn)單擊命令按鈕時在文本框顯示“單擊命令按鈕”,單擊窗體空白處時在文本框顯示“單擊窗體”。 保存窗體文件名:SY1_1.frm,保存工程名:SY1_1.vbp。程序界面如圖1 1.所示。圖1.1 實驗1的運行界面 【步驟】 啟動Visual Basic6.0,在彈出的“新建工程”對話框中選擇“標(biāo)準(zhǔn)E_E”。 在窗體上建立一個文本框和一個命令按鈕。 建立方法:在左邊工具箱上,單擊要繪制的控件的按鈕,再把鼠標(biāo)移到窗體,按住鼠標(biāo)左鍵畫出所需大小的框體?;蛘呤请p擊工具箱的要繪制的控件的按鈕。 分別選中命令按鈕和文本框,在屬性窗口中對各屬性進(jìn)行設(shè)置,屬性設(shè)置
7、參照表:表1.1實驗1屬性設(shè)置 對象名稱 屬性 屬性值 窗體 Caption 我的第一個程序 文本框 Te_t (空) 命令按鈕 Caption 命令按鈕 雙擊命令按鈕,進(jìn)入代碼窗口中命令按鈕的默認(rèn)事件,編寫代碼如下: Private Sub mand1_Click Te_t1.Te_t = “單擊命令按鈕” End Sub 雙擊窗體的空白處,進(jìn)入代碼窗口中窗體的默認(rèn)事件(Form_Load),在右邊的過程列表框中選擇Click,編寫代碼如下: Private Sub Form_Click Te_t1.Te_t = “單擊窗體” End Sub 單擊工具欄上的按鈕,運行程序,分別單擊命令按鈕以
8、及窗體空白處,觀察文本框上顯示的內(nèi)容有何變化。如果程序代碼有錯誤,則進(jìn)入代碼窗口中調(diào)試程序。 單擊工具欄上的按鈕,結(jié)束程序運行。 單擊工具欄上的 按鈕,將窗體、工程分別以SY1_1.frm、SY1_1.vbp保存在磁盤上。 2.建立一個應(yīng)用程序, 界面如圖1.2所示,窗體包含有一個文本框和三個按鈕,要求文本框中的字體為14號黑體加粗,顏色為紅色,且文本內(nèi)容居中顯示。編寫代碼實現(xiàn):圖1.2實驗2 的運行界面 1)按“顯示內(nèi)容”按鈕時,文本框顯示“Hello,Visual Basic!”; 2)按“清屏”按鈕時,文本框中文字消失; 3)按“結(jié)束”按鈕后,程序結(jié)束。(提示:代碼中輸入End,則可結(jié)束
9、應(yīng)用程序運行) 保存窗體文件名:SY1_2.frm,保存工程名:SY1_2.vbp。 表1.2實驗2屬性設(shè)置 對象名稱 屬性 屬性值 窗體Form1 Caption文本框Te_t1 Te_t Alignment Font ForeColor命令按鈕mand1 Caption 顯示內(nèi)容 命令按鈕mand2 Caption 清屏 命令按鈕mand3 Caption 結(jié)束編寫代碼如下: 代碼 遇到的主要問題及分析p :3、P260 實驗A 。二、3.編寫一程序,在文字框中統(tǒng)計在該窗口上鼠標(biāo)單擊的次數(shù)。設(shè)計和運行界面如圖1.3所示。完成后自己取名保存。圖1.3實驗3設(shè)計界面運行界面編寫代碼
10、如下: 代碼 遇到的主要問題及分析p :【提高題】 P259 實驗A 。二、1.編寫一程序,要求在屏幕上顯示“歡迎學(xué)習(xí)Visual Basci”,并在“請輸入你的姓名”標(biāo)簽后的文本框Te_t1中輸入姓名;單擊“你輸入的姓名是”按鈕,則在Label3標(biāo)簽上顯示在文本框Te_t1中輸入的姓名。窗體如圖1.4所示。 Label3 將BorderStyle屬性設(shè)置為1 mand1 Te_t1 Label2 Label1 調(diào)整控件的大小使內(nèi)容顯示為兩行圖1.4提高題 的運行界面編寫代碼如下: 代碼 遇到的主要問題及分析p :【選作題】窗體上有兩個名稱分別為C1, C2的命令按扭,一個文本框T
11、e_t1。命令按鈕的標(biāo)題及文本框上顯示的字符自定。編程實現(xiàn)當(dāng)按下C1時,將C2的標(biāo)題與Te_t1中的內(nèi)容交換。要求: 1)界面自己設(shè)計2)連續(xù)多次單擊C1,都能將C2的標(biāo)題與Te_t1中的內(nèi)容交換。 設(shè)計的界面如下:編寫代碼如下:代碼 遇到的主要問題及分析p :實驗心得體會成績: 教師簽名_:實驗日期年月日 實驗二窗體及基本控件使用 一、實驗?zāi)康?1、復(fù)習(xí)啟動與退出Visual Basic的方法。 2、掌握窗體基本的事件、方法和屬性,并學(xué)會在不同的事件的過程中,編寫代碼。 3、掌握文本框和標(biāo)簽兩種控件的使用,掌握文本框和標(biāo)簽控件的常用屬性、事件和方法。以及它們之間的區(qū)別。 4、掌握命令按鈕控件
12、的常用屬性、事件和方法。 二、實驗內(nèi)容 1、設(shè)計一個程序(如圖2.1所示),用窗體模擬黑板,窗體上沒有最大化、最小化按鈕;鼠標(biāo)單擊窗體時窗體上輸出提問,雙擊時顯示回答。 分析p :把窗體裝扮成黑板模樣,要設(shè)置窗體的BackColor屬性為黑色,F(xiàn)oreColor屬性為白色(模擬粉筆字的顏色)。窗體上沒有最大化、最小化按鈕,則需要設(shè)置窗體的Ma_Button、MinButton屬性。而單擊、雙擊時的輸出顯示,可以在Click、DblClick事件里用Print和Cls方法來實現(xiàn)。(a)設(shè)計狀態(tài) (b)運行狀態(tài) (c)窗體單擊 (d)窗體雙擊 圖2.1 實驗2.1模擬黑板 1) 屬性設(shè)置表2.1實
13、驗1屬性設(shè)置 對象名稱 屬性 屬性值 窗體Form1 BackColor ForeColoFont Ma_Button MinButton vbBlack Vbwhite False False2)代碼編寫 代碼 遇到的主要問題及分析p : Private Sub Form_Load Form1.Caption = “模擬黑板” End SubPrivate Sub Form_Click Cls Print “1+1=?” End SubPrivate Sub Form_DblClick Cls Print “1+1=2” End Sub【思考】 如果進(jìn)一步要求隨機(jī)出題(簡單的數(shù)學(xué)四則運算題)
14、在窗體上輸出并顯示答案,該怎么做 Private Sub Form_Click Dim a As Integer, b As Integer a = Int(Rnd _10) b = Int(Rnd _10) Print a; “+”; b; “=”; a + b減法等同理 End Sub2、窗體上有一個文本框Te_t1,要求當(dāng)鼠標(biāo)劃過文本框Te_t1時,鼠標(biāo)顯示Cross“”形狀;窗體上的一個標(biāo)題為“復(fù)制”的命令按鈕C1。通過屬性窗口實現(xiàn)以上的設(shè)置之后,編程實現(xiàn): 1)程序啟動時窗體標(biāo)題為“修改文本框內(nèi)容”; 2)單擊命令按鈕C1,則把按鈕上的標(biāo)題復(fù)制到文本框,并使按鈕不可見; 3)單擊窗體
15、空白處,按鈕可見但不可用。Ø 必要屬性設(shè)置 表2.2實驗2屬性設(shè)置 對象名稱 屬性 屬性值 Te_t1 mousepointer 2-cross C1 caption 復(fù)制Ø 代碼編寫 代碼 遇到的主要問題及分析p : Private Sub Form_Load Form1.caption= “修改文本框內(nèi)容” End Sub Private Sub C1_Click Te_t1 = C1.Caption C1.Visible = False End Sub Private Sub Form_Click C1.Visible = True C1.Enabled = Fals
16、e End Sub3、窗體上有四個文本框,兩個標(biāo)題分別為“顯示選中信息”“選中文本”的命令按鈕。要求程序運行時,光標(biāo)焦點在Te_t1上,按下Tab鍵后,光標(biāo)焦點跳到在Te_t3上。在文本框Te_t1中輸入一些字符;要求編程實現(xiàn):圖2.2 實驗2.3文本信息選定窗體 1)在文本框Te_t1中輸入一行文字并按回車(Enter)后,把Te_t1的內(nèi)容設(shè)置為窗體的標(biāo)題。 2)在Te_t1中選中其中一部分內(nèi)容后,單擊“顯示選中信息”命令按鈕,則把在Te_t1中被選中文本的第一個字符的順序號,被選中文本的字符個數(shù),被選中的文本內(nèi)容分別顯示在文本框Te_t2,Te_t3,Te_t4中。 3)分別在文本框Te
17、_t2,Te_t3中輸入你所希望文本框Te_1中選中文本信息的順序號以及長度,單擊“選中文本”命令按鈕,則根據(jù)文本框Te_t2,Te_t3輸入的內(nèi)容,在Te_t1中選中對應(yīng)的內(nèi)容,同時在Te_t4中顯示出來。 【提示】部分相關(guān)屬性和事件:SelStart、SelLength、SelTe_t、KeyPress Ø 必要的屬性設(shè)置 表2.3 實驗3屬性設(shè)置 對象名稱 屬性 屬性值 Te_t1 te_t “” Te_t2 te_t “” Te_t3 te_t “” Te_t4 te_t “” mand1 caption 顯示選中信息 mand2 caption 選中文本 Te_t1 tab
18、inde_ 0 Te_t3 tabinde_ 1 或者Te_t2 tabs falseØ 代碼編寫 代碼 遇到的主要問題及分析p : Private Sub Te_t1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then Form1.Caption = Te_t1 End Sub Private Sub mand1_Click Te_t2 = Te_t1.SelStart Te_t3 = Te_t1.SelLength Te_t4 = Te_t1.SelTe_t End Sub Private Sub mand2_Click Te_
19、t1.SelStart = Te_t2 Te_t1.SelLength = Te_t3 Te_t4 = Te_t1.SelTe_t End Sub 或者Private Sub Te_t1_LostFocus Te_t3.SetFocus End Sub【提高題1】創(chuàng)建VB工程,運行時可將文本框中的文字縮小以及還原。 窗體中包括下列控件:標(biāo)簽、文本框和兩個命令按鈕,窗體標(biāo)題為“字符縮小”,文本框字號為30磅。 圖2.3 實驗提高1窗體 在文本框輸入一串字符;按下“縮小”按鈕時字號縮小為原來的一半(每按一下都會縮小為一半),界面如右圖。 請完善以下代碼: Private Sub Form_Load
20、Te_t1.FontSize = 30&#_27; 設(shè)置文本框原始字號 End Sub Private Sub mand1_ClickTe_t1.FontSize = _Te_t1.FontSize / 2_&#_27; 將文本框字體每次縮小一半 End Sub Private Sub mand2_Click_Te_t1.FontSize = 30_&#_27; 文本框的字體恢復(fù)為30 End Sub【提高題2】 P260 實驗A 。二、5.命令按鈕、字號、內(nèi)容和格式的復(fù)制練習(xí)!效果如右圖。 要求: 1)mand1:使得Te_t1中的字體和字號根據(jù)圖2.4實
21、驗實驗提高1窗體 命令按鈕上顯示的要求改變。 2)mand2:要求將Te_t1選中的內(nèi)容及其字體格式復(fù)制到Te_t2文本框中。 Ø 代碼編寫 代碼 遇到的主要問題及分析p :Private Sub mand1_Click Te_t1.FontName = “隸書” Te_t1.FontSize = 25 End SubPrivate Sub mand2_Click Te_t2 = Te_t1.SelTe_t Te_t2.FontName = Te_t1.FontName Te_t2.FontSize = Te_t1.FontSize End Sub【選作題】參考P35,建立一個允許剪
22、切、復(fù)制和粘貼的簡單便箋板程序。可增加內(nèi)容:利用MouseMove事件決定命令按鈕的有效性, 即當(dāng)選中內(nèi)容,“剪切”、“復(fù)制”按鈕有效,否則無效。圖2.5 窗體原始界面按下運行按鈕時的界面選中文本框部分內(nèi)容的界面 Ø 代碼編寫 代碼 遇到的主要問題及分析p : Private Sub Form_Load mand1.Enabled = False mand2.Enabled = False End SubPrivate Sub Te_t1_MouseMove(Button As Integer, Shift As Integer, _ As Single, Y As Single)
23、If Te_t1.SelTe_t “” Thenmand1.Enabled =true mand2.Enabled =true End If End Sub 其他代碼見p36實驗心得體會成績: 教師簽名_:實驗日期年月日 實驗三順序結(jié)構(gòu)程序設(shè)計 實驗?zāi)康模?1熟練掌握VB的基本數(shù)據(jù)類型。 2熟練掌握基本的輸入輸出函數(shù)和語句。 3掌握順序結(jié)構(gòu)程序設(shè)計的方法。 實驗內(nèi)容 1、定義兩個變量a和b,它們的值分別由鍵盤輸入。編程計算并輸出a與b的和、差、積、商、a除以b的余數(shù)、a b的值。(要求自己設(shè)計窗體及輸入、輸出,必須有明確的示意提示)。Ø 代碼編寫:代碼 遇到的主要問題及分析p :Pr
24、ivate Sub Form_Click Dim a as integer,b as integer a = Val(InputBo_(“輸入a的值”) b = Val(InputBo_(“輸入b的值”) Print “a=”; a; “b=”; b Print “a+b=”; a + b Print “a-b=”; a - b Print “a_b=”; a _b Print “a mod b=”; a Mod b End Sub2、定義一個變量a,由鍵盤輸入其值為任意四位整數(shù),編程實現(xiàn)分別輸出個、十、百、千位四個數(shù)字,并各個數(shù)字的平方和。 【提示】利用mod和運算符將每一位分離。
25、6; 代碼編寫: 代碼 遇到的主要問題及分析p : Private Sub Form_Click Dim a As Integer Dim b, c, d, e a = Val(InputBo_(“輸入a的值,要求4位整數(shù)”) b = a Mod 10 &#_27;個位 c = a 1000 &#_27;千位 d = (a - c _1000) 100 &#_27;百位 e = (a - c _1000 - d _100) 10 Print “個位:”; b Print “十位:”; e Print “百位:”; d Print “千位:”; c Print “平方和:
26、”; b 2 + e 2 + d 2 + c 2 End Sub3、P262 實驗B 二、1。 Ø 代碼編寫:代碼 遇到的主要問題及分析p :Private Sub mand2_Click Te_t1 = Format(9 / 5 _Val(Te_t2) + 32, “0”) End Sub4、設(shè)計窗體并實現(xiàn): 1)單擊“連接”,將Te_t1和Te_t2的內(nèi)容連接起來顯示在Te_t3; 2)單擊“求和”,求出Te_t1和Te_t2之和顯示在Te_t3 ; 3)要求:在單擊“連接”之前Te_t3不可見,點“連接”之后“連接”按鈕不可用;(a) 設(shè)計狀態(tài)(b) 運行狀態(tài) 圖3.1 實驗3
27、.4窗體 Ø 代碼編寫: 代碼 遇到的主要問題及分析p :Private Sub mand1_Click Te_t3.Visible = True Te_t3 = Te_t1 Te_t2 mand1.Enabled = False End SubPrivate Sub mand2_Click Te_t3 = Val(Te_t1) + Val(Te_t2) End SubPrivate Sub Form_Load Te_t3.Visible = False End Sub5、創(chuàng)建VB工程,界面如右所示,編程實現(xiàn)運行時可將標(biāo)簽中的文字字號隨機(jī)放大(15整數(shù)倍)和(任意比例)縮小以及還原(
28、原來字號)。界面如右圖所示。 【提示】圖3.2 實驗3.5窗體 1)將標(biāo)簽的AotuSize屬性設(shè)置為False及True,看看有什么區(qū)別? 2)用一個變量在程序開始運行時記住標(biāo)簽中原始字體的大?。ㄏ胂敕旁谑裁词录^程中?);這個變量還會在“還原”按鍵中使用,其說明語句要放在通用-聲明中; 3)每次按放大或縮小按鍵都會在當(dāng)前的基礎(chǔ)上放大或縮??; 4)字體放大到一定程度會出現(xiàn)“溢出”的錯誤提示,可以先不管。Ø 代碼編寫: 代碼 遇到的主要問題及分析p : Dim t Private Sub Form_Load t = Label1.FontSize End SubPrivate Sub
29、 mand1_Click Label1.FontSize = Label1.FontSize _Int(Rnd _5 + 1) End SubPrivate Sub mand2_Click Label1.FontSize = Label1.FontSize _Rnd End SubPrivate Sub mand3_Click Label1.FontSize = t End Sub6、編程實現(xiàn)隨機(jī)產(chǎn)生一個“F”“S”范圍內(nèi)的大寫字母,并輸出該字母及其對應(yīng)的ASCII碼值,同時輸出其小寫字母及其對應(yīng)的ASCII碼的值。 Ø 代碼編寫: 代碼 遇到的主要問題及分析p :Private S
30、ub Form_Click a = Int(Rnd _(83 - 70 + 1) + 70) Print Chr(a); “的ASCII值=”; a Print LCase(Chr(a); “的ASCII值=”; Asc(LCase(Chr(a) End Sub【選作題1】編程解決古代數(shù)學(xué)問題“雞兔同籠”。即已知在同一個籠子里有總數(shù)為m只雞和兔,雞和兔的總腳數(shù)為n只,求雞和兔各有多少只? 【提示】雞和兔的總數(shù)m、雞和兔的總腳數(shù)n需要預(yù)先輸入(文本框或輸入框輸入)。再設(shè)雞和兔子的個數(shù)分別為_和y,通過已知輸入的m和n;列出方程求解,分別用m,n兩個已知量來表示_和y。 Ø 代碼編寫:
31、代碼 遇到的主要問題及分析p :Private Sub Form_Click m = Val(Te_t1) n = Val(Te_t2) y = 1 / 2 _n - m _ = 2 _m - 1 / 2 _n Print “雞有”; _; “兔子有”; y End Sub【選作題2】編程實現(xiàn)電話號碼自動升位。要求將原來任意一個帶區(qū)號的7位電話號碼升到8位,在電話號碼最前面加8。程序運行結(jié)果如圖所示。(要求必須適用于3位或4位區(qū)號的電話號碼) 【提示】無論區(qū)號或電話號碼是多少位,只要找到“-”的位置,就可以將“-”之前(包括“-”)的左子串、“8”、以及“-”后面剩下的字符串 “串”起來。 &
32、#216; 代碼編寫: 代碼 遇到的主要問題及分析p : Private Sub Form_Click a = InStr(Te_t1, “-”) Te_t2 = Left(Te_t1, a) + “8” + Mid(Te_t1, a + 1) End Sub【提高題】參考教材P33的例2.5及P65的例4.2,完成P263實驗B 二、2。 Ø 代碼編寫: 代碼 遇到的主要問題及分析p :Const PI = 3.14Private Sub mand1_Click r = Val(Te_t1) Te_t2 = Format(PI _r 2, “0.00”) End SubPrivat
33、e Sub mand2_Click r = Val(Te_t1) Te_t3 = Format(2 _PI _r, “0.00”) End SubPrivate Sub Te_t1_LostFocus If Not IsNumeric(Te_t1) Then MsgBo_ “輸入有非數(shù)字字符,請重新輸入”Te_t1 = “”Te_t1.SetFocus End If End Sub實驗心得體會教師簽名_:成績:實驗日期年月日 實驗四選擇結(jié)構(gòu)程序設(shè)計 實驗?zāi)康模?2掌握邏輯表達(dá)式的正確書寫形式。 3掌握單分支與雙分支條件語句的使用。 實驗內(nèi)容 1編寫程序,通過鍵盤輸入變量_的值,求函數(shù)y的值。代
34、碼 遇到的主要問題及分析p : Private Sub mand1_Click _ = Val(Te_t1) If _ >= 0 Then y = Sqr(_) Else y = 1 / Abs(_) End If Te_t2 = y End Sub2、輸入一串字符串C,判斷字符串C中的第三個字符是“C”時,利用msgbo_顯示“yes”,否則顯示“No”.代碼 遇到的主要問題及分析p : Private Sub mand1_Click Dim C As String C = Te_t1 If Mid(C, 3, 1) = “c” Then MsgBo_ (“yes”) Else: Ms
35、gBo_ (“no”) End If End Sub3、輸入一個年份,判斷它是否為閏年,并輸出是否為閏年的相關(guān)信息。 【提示】判斷閏年的條件是:年份能被4整除但不能被100整除;或者是能被400整除。如:1900、2100、2021年不是閏年;2021、20_年是閏年。 代碼 遇到的主要問題及分析p : Private Sub Form_Click Dim a As Integer a = Te_t1 If a Mod 400 = 0 Or a Mod 4 = 0 And a Mod 100 0 ThenMsgBo_ (“本年份為閏年”) ElseMsgBo_ (“此年份為非閏年”) End
36、If End Sub4.如右圖,窗體上有兩個文本框一個標(biāo)簽和一個命令按鈕。程序運行時分別在文本框中輸入兩個數(shù)字后單擊命令按鈕進(jìn)行計算。要求:Te_t1中的數(shù)值大于或等于Te_t2時,計算兩個數(shù)的和,否則計算兩個數(shù)的差,最后將運算式和結(jié)果顯示在標(biāo)簽中。 代碼 遇到的主要問題及分析p : Private Sub mand1_Click _ = Val(Te_t1) y = Val(Te_t2) If _ >= y ThenLabel1 = _ “+” y “=” _ + y ElseLabel1 = _ “-” y “=” _ - y End If End Sub【進(jìn)一步要求】對兩個文本框中
37、的數(shù)據(jù)進(jìn)行有效性判斷。利用文本框的LostFocus事件進(jìn)行判斷,若輸入的不是數(shù)字,用MsgBo_給出“是否重新輸入”的提示,提示窗口上有兩個命令按鈕:“是”和“否”,顯示問號的圖標(biāo)。若回答“是”則將文本框中原來的內(nèi)容清空、光標(biāo)重新定位于文本框,若回答“否”則程序終止。Ø 代碼編寫: 代碼 遇到的主要問題及分析p :Private Sub Te_t1_LostFocus If Not IsNumeric(Te_t1) Then i = MsgBo_(“是否重新輸入”, 4 + vbQuestion, “警告”) If i = 6 Then Te_t1 = “” Te_t1.SetFo
38、cus Else End End If End If End SubPrivate Sub Te_t2_LostFocus If Not IsNumeric(Te_t2) Then i = MsgBo_(“是否重新輸入”, 4 + vbQuestion, “警告”) If i = 6 Then Te_t2 = “” Te_t2.SetFocus Else End End If End If End Sub5、猜數(shù)字游戲:事先設(shè)定的一個數(shù)字(如6),程序提示用戶輸入一個110之間的整數(shù),如果輸入的數(shù)字與事先設(shè)置的數(shù)字相同,則提示“輸入正確”,否則顯示“錯了”。 Ø 代碼編寫: 代碼 遇
39、到的主要問題及分析p :Private Sub mand1_Click _ = Val(InputBo_(“輸入一個110之間的整數(shù)”) If _ = Te_t1 ThenMsgBo_ “輸入正確” ElseMsgBo_ “錯了” End If End Sub【提高題1】修改上面程序,當(dāng)輸入的值比設(shè)置的數(shù)字小,顯示“錯了,你猜得小了。”;輸入的值比設(shè)置的大,則顯示“錯了,你輸入的太大了?!保ㄕ堉苯釉谏项}修改) 【提示】本實驗屬于多分支結(jié)構(gòu)。 Private Sub mand1_Click _ = Val(InputBo_(“輸入一個110之間的整數(shù)”) If _ = Te_t1 ThenMsg
40、Bo_ “輸入正確” ElseIf _ c And b + c > a And a + c > b ThenPrint “此三邊可構(gòu)成三角形” ElsePrint “此三邊不可構(gòu)成三角形” End If End Sub【選作題】課堂示例“字符串替換”,使用多個函數(shù)完成時,如果字符串中沒有要查找的子串,程序就會出錯。修改程序當(dāng)沒有要查找的子串時,彈出“沒有找到的”提示框,并將串放到結(jié)果文本框中?!咎崾尽縄nStr(C1,C2)在C1中查找C2是否存在,若找不到,結(jié)果為0。 Ø 代碼編寫: 代碼 遇到的主要問題及分析p : Private Sub mand1_Click i
41、= InStr(Te_t1, Te_t2) If i = 0 ThenMsgBo_ “沒有找到”Label5 = Te_t1 Elsek = i + Len(Te_t2)Ls = Left(Te_t1, i - 1)Label5 = Ls + Te_t3 + Mid(Te_t1, k) End If End Sub實驗心得體會教師簽名_:成績:實驗日期年月日 實驗五選擇結(jié)構(gòu)程序設(shè)計(續(xù)) 實驗?zāi)康模?1掌握情況語句的使用。 2.掌握情況語句與多分支條件語句的區(qū)別。 3掌握分支嵌套語句的使用。 實驗內(nèi)容 1、輸入一元二次方程a_2+b_+c=0系數(shù)a,b,c的值,計算并輸出一元二次方程的兩個根_
42、1和_2。 【提示】求根時要對三個數(shù)分別考慮重根和無實根情況的處理。 Ø 代碼編寫:代碼 遇到的主要問題及分析p : Private Sub mand1_Click Dim a, b, c, d, _1!, _2! a = Val(InputBo_(“輸入a”) b = Val(InputBo_(“輸入b”) c = Val(InputBo_(“輸入c”) d = b _b - 4 _a _c If d > 0 Then_1 = (-b + Sqr(d) / (2 _a)_2 = (-b - Sqr(d) / (2 _a) ElseIf d = 0 Then_1 = -b /
43、(2 _a)_2 = _1 ElseMsgBo_ “無實根” End If Print “_1=”; _1, “_2=”; _2 End Sub2、輸入一個字符,判斷該字符是字母、數(shù)字還是其他字符,并作相應(yīng)的顯示。 【要求】分別使用兩種語句If ElseIf和Select Case 來完成。 代碼 遇到的主要問題及分析p : If ElseIf語句實現(xiàn) Private Sub mand2_Click a = InputBo_(“輸入一個字符”) If a >= “a” And a = “A” And a = “0” And a 6 ThenMsgBo_ “密碼是6位數(shù)字”, , “警告”
44、Te_t1.Te_t = “”Te_t1.SetFocusEnd If End Sub Private Sub mand1_ClickIf Te_t2.Te_t = “Basic1234” ThenMsgBo_ (“祝賀你,成功登錄!”)ElseMsgBo_ (“對不起,密碼錯誤,無法登錄!”)I = I + 1If I >= 3 Then EndEnd IfEnd Sub參考p65例4.2 6、在上周實驗【提高題】的基礎(chǔ)上完成,輸入三角形的三條邊,根據(jù)邊長判斷是否能構(gòu)成三角形的程序,若能構(gòu)成,則進(jìn)一步判斷三角形類型(等邊、等腰、直角、一般)。 【提示】該題用分支嵌套來完成。 注:請在上
45、周程序代碼的適當(dāng)位置用紅筆來添加代碼實現(xiàn)。 Private Sub mand1_ClickDim a!, b!, c! a = Val(InputBo_(“輸入第1條邊長”) b = Val(InputBo_(“輸入第2條邊長”) c = Val(InputBo_(“輸入第3條邊長”) If a + b > c And b + c > a And a + c > b ThenIf a = b And b = c ThenMsgBo_ “等邊”ElseIf a = b Or b = c Or a = c ThenMsgBo_ “等腰”ElseIf a 2 = b 2 + c 2
46、 Or b 2 = a 2 + c 2 Or c 2 = a 2 + b 2 ThenMsgBo_ “直角三角形”ElseMsgBo_ “一般三角形”End If ElseMsgBo_ “此三邊不可構(gòu)成三角形” End If End Sub 【選做題】開始運行如左下圖所示,單擊“出題”按鈕后計算機(jī)自動出題,窗口如右下圖所示,此時由用戶輸入加法運算答案,然后單擊“判定”按鈕。如果用戶運算正確則提示“答對了,你真聰明!”,否則顯示“錯了,努力??!”。再次按下“出題”就會再出一道題?!咎崾尽坑嬎銠C(jī)自動出題,顯示的題目應(yīng)該是隨機(jī)的,所以這里必須使用隨機(jī)函數(shù)Rnd,其值為 0,1)間的隨機(jī)數(shù),如果要得到
47、區(qū)間 L,U 中的隨機(jī)整數(shù),應(yīng)使用表達(dá)式Int(U-L+1)_Rnd+L) 。 命令按鈕mand1每次按下時其Caption屬性會發(fā)生變化,從“出題”變成“判定”,又從“判定”變成“出題”。當(dāng)它是“出題”時,按下就會隨機(jī)出題;當(dāng)它是“判定”時,按下就會對用戶輸入的答案判斷對錯。 【思考】多次執(zhí)行這個程序,是否發(fā)現(xiàn)每次出的題目是一樣的?如何解決?【進(jìn)一步修改程序】使得該工程只可執(zhí)行10次,每執(zhí)行一次,判斷用戶輸入的答案是否正確,正確則得10分,錯誤則不給分。執(zhí)行10次后,可給出總得分,然后關(guān)閉該窗體。 Ø 代碼編寫:代碼 遇到的主要問題及分析p :Dim i As Boolean Pr
48、ivate Sub mand1_Click If i = True ThenTe_t1 = Int(100 _Rnd + 1) &#_27;產(chǎn)生1,100之間的隨機(jī)整數(shù)Te_t2 = Int(100 _Rnd + 1) &#_27;產(chǎn)生1,100之間的隨機(jī)整數(shù)mand1.Caption = “判定”i = False ElseIf Te_t3 = Val(Te_t1) + Val(Te_t2) ThenMsgBo_ “答對了,你真聰明!”ElseMsgBo_ “錯了,努力??!”End Ifi = Truemand1.Caption = “出題” End If End SubPr
49、ivate Sub mand2_Click End End SubPrivate Sub Form_Load i = True mand1.Caption = “出題” Randomize多次執(zhí)行這個程序,每次出的題目不一樣 End Sub【進(jìn)一步修改程序】 Dim i As Boolean Dim a, b Private Sub mand1_Click If a 0 ThenPrint i;t = t + 1If t = 8 Then t = 0: Print End If Ne_t i End Sub3.編寫程序解決愛因斯坦臺階問題:有人走一臺階,若以每步走兩級則最后剩下一級;若每步走三
50、級則剩兩級;若每步走四級則剩三級;若每步走五級則剩四級;若每步走六級則剩五級;若每步走七級則剛好不剩。問臺階至少共有多少級?(答案:119) 【提示】用DoLoop語句來完成。在循環(huán)體內(nèi)使用選擇結(jié)構(gòu)來判斷條件。 代碼 遇到的主要問題及分析p : Private Sub Form_Click f = True _ = 1 Do While f If _ Mod 2 = 1 And _ Mod 3 = 2 And _ Mod 4 = 3 And _ Mod 5 = 4 And _ Mod 6 = 5 And _ Mod 7 = 0 ThenPrint _f = False Else_ = _ +
51、1 End If Loop End Sub4.我國有13億人口,如果按人口年增長0.8計算,多少年后將達(dá)到26億? (答案:87) Ø 代碼編寫:代碼 遇到的主要問題及分析p :課本80頁5.P270實驗D二、8一個富翁試圖與陌生人做一筆換錢生意,換錢的規(guī)則為:陌生人每天給富翁10萬元錢,直到滿一個月(30天);富翁第一天給陌生人1分錢,第二天2分,第三天4分,。,富翁每天給陌生人的錢是前一天的兩倍,直到滿一個月。分別顯示富翁給陌生人的錢和陌生人給富翁的錢為多少? Ø 代碼編寫:代碼 遇到的主要問題及分析p :Private Sub mand1_Click Print “陌
52、生人給富翁的錢為” 10 _30 “萬” t = 1 s = 1 For i = 2 To 30t = t _2s = s + t Ne_t i Print “富翁給陌生人的錢為” s / 1000000 “萬” End Sub【提高題】10個同學(xué)參加測試,分?jǐn)?shù)為A,B,C,D,E五個等級,如果A計5分,B計4分,以此類推,求這10個同學(xué)的平均成績。 【提示】可以設(shè)置一個變量做累加器,用Select Case語句實現(xiàn)。 Ø 代碼編寫:代碼 遇到的主要問題及分析p :Private Sub mand1_Click s = 0 For i = 1 To 10 a = InputBo_(“
53、輸入成績”) Select Case aCase “A”b = 5Case “B”b = 4Case “C”b = 3Case “D”b = 2Case “E”b = 1End Select s = s + b Ne_t i Print s / 10 End Sub【選作題】編程分別輸出1!,2!,3!,10!的結(jié)果。 【進(jìn)一步要求】求110的階乘和(即1!+2!+3!+10!)。 【提示】這是一個計算連乘及累加的問題。在設(shè)計累加和連乘問題時一定要注意存儲總和及乘積的變量初值問題。(答案:4037913) Ø 代碼編寫:代碼 遇到的主要問題及分析p :Private Sub Form
54、_Click t = 1 s = 0 For i = 1 To 10 t = t _i Print t s = s + t Ne_t i Print s End Sub實驗心得體會教師簽名_:成績:實驗日期年月日 實驗七循環(huán)結(jié)構(gòu)程序設(shè)計(續(xù)) 實驗?zāi)康模?1、鞏固For語句和Do.Loop循環(huán)語句的使用。 2、掌握循環(huán)嵌套的使用。 3、掌握一些常用的算法(求素數(shù)、窮舉法、求和與乘積、遞推法) 實驗內(nèi)容 1、編寫程序,實現(xiàn)輸入一個任意位的整數(shù),要求把該整數(shù)的各個數(shù)位上的數(shù)字提取出來,并將該整數(shù)逆向排列。如:輸入1234567,則輸出各位數(shù)字為7,6,5,4,3,2,1;其逆向排列數(shù)為765432
55、1。 Ø 代碼編寫:代碼 遇到的主要問題及分析p :Private Sub mand1_Click a = InputBo_(“輸入數(shù)字”) b = Len(a) For i = 1 To b Print Mid(a, b - i + 1, 1); Ne_t i End Sub2、完善程序,輸入一個數(shù),判斷該數(shù)是否為完數(shù),并把其因子輸出,如圖所示。(一個數(shù)如果恰好等于它的因子之和,這個數(shù)就被稱為“完數(shù)”。一個數(shù)的因子是指除了該數(shù)本身以外能夠被其整除的數(shù)。)例如6是一個完數(shù),因為6=1+2+3。 Private Sub mand1_Click m = Val(Te_t1.Te_t) F
56、or i = 1 To m - 1If【1】 m Mod i = 0Thenk = k + i&#_27; 因子之和 Ne_t i 【1】【2】【3】【4】【5】If【2】 m = kThenPicture1.Print m “是完數(shù)”Picture1.Print m; “ = 1”;For i =【3】 2 To m - 1&#_27; 因子輸出If m Mod i = 0 Then Picture1.Print “+”; i;Ne_t i【4】Picture1.Print ElsePicture1.Print m “不是完數(shù)”End If【5】End Sub 3、編寫程序,
57、實現(xiàn)求解把50元錢分成一元、二元和五元的紙幣且紙幣張數(shù)共為20張的分法有多少種? 代碼 遇到的主要問題及分析p :Private Sub Form_Click Print “5元”, “2元”, “1元” n = 0 For _ = 0 To 10For y = 0 To 25z = 20 - _ - yIf 5 _ + 2 _y + z = 50 And z >= 0 Then Print _, y, z: n = n + 1Ne_t y Ne_t _ Print “分法有” n “種” End Sub4、參考下圖的算法,編寫程序,輸入兩個正整數(shù),求這兩個數(shù)的最小公倍數(shù)。 代碼 遇到的主要問題及分析p :課本p87頁 【提高題1】輸出斐波那契級數(shù)1、1
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新教材高考地理二輪復(fù)習(xí)綜合題專項訓(xùn)練四作用措施類含答案
- 山東省煙臺市2024-2025學(xué)年高三上學(xué)期期中學(xué)業(yè)水平診斷考試語文試題(解析版)
- 河南省南陽市新野縣 2024 年秋期期中質(zhì)量調(diào)研八年級物理試卷
- 2024-2025學(xué)年山東省煙臺市高一上學(xué)期期中學(xué)業(yè)水平診斷數(shù)學(xué)試題(含答案)
- 房屋建造定制合同
- 調(diào)研報告:執(zhí)行費收取存在的問題及建議
- 商業(yè)土地?zé)o償轉(zhuǎn)讓協(xié)議
- 2025年高考語文古詩文篇目讀寫專練:選擇必修下冊之《望海潮》(學(xué)生版)
- 2025年中考語文復(fù)習(xí)之現(xiàn)代文閱讀:說明文句段作用(講義)
- 2024年項目聘用合同
- 人民幣收付業(yè)務(wù)培訓(xùn)課件
- 婦女權(quán)益的法律保護(hù)課件
- 08S305-小型潛水泵選用及安裝圖集
- 質(zhì)量部KPI考核指標(biāo)
- 舉辦論壇活動的全套詳細(xì)流程
- jetta維修手冊捷達(dá)2006年型電路圖
- 新人教PEP版六年級上冊英語Unit 4單元測試卷(含聽力音頻)
- 工匠精神之資產(chǎn)負(fù)債表重構(gòu)
- 300萬噸鋼鐵工程項目可行性研究報告書
- 非金屬膨脹節(jié)采購技術(shù)協(xié)議(茶園)
- DL∕T 1816-2018 電化學(xué)儲能電站標(biāo)識系統(tǒng)編碼導(dǎo)則
評論
0/150
提交評論