Visual-Basic實驗-答案(3).doc_第1頁
Visual-Basic實驗-答案(3).doc_第2頁
Visual-Basic實驗-答案(3).doc_第3頁
Visual-Basic實驗-答案(3).doc_第4頁
Visual-Basic實驗-答案(3).doc_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

學院專業(yè)(班級)姓名學號任課教師目錄實驗一 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實驗十 數(shù)組50實驗十一 數(shù)組(續(xù))56實驗十二 順序文件60實驗十三 過程67實驗十四 過程(續(xù))72實驗十五 菜單及通用對話框77實驗十六 隨機文件(選作)80附錄:VB統(tǒng)考編程題(精選)83期末自測題(A卷)92期末自測題(B卷)97 實驗報告的整理與編寫上機實驗結(jié)束后,編寫實驗報告是軟件工程的要求,也是培養(yǎng)科學作風的重要途徑,實驗報告的主要內(nèi)容包括:(1)實驗?zāi)康?實驗作為教學的一個重要環(huán)節(jié),其目的在于更深入地理解和掌握課程教學中的有關(guān)基本概念,應(yīng)用基本技術(shù)解決實際問題,從而進一步提高分析問題和解決問題的能力。因此,當我們著手做一個實驗的時候,必須明確實驗的目的,以保證達到課程所指定的基本要求。在寫實驗報告時,要進一步確認是否達到了預(yù)期的目的。 (2)實驗內(nèi)容 實驗的目的是要通過解決一些具體問題來達到的。在書中,每一部分都安排了多個實驗題目,根據(jù)教學安排、進度、實驗條件、可提供的機時、學生的基礎(chǔ)等因素,可以選擇其中的幾個或全部。因此,在實驗報告中,實驗內(nèi)容是指本次實驗中實際完成的內(nèi)容。在每一個實驗題目中,一般都提出一些具體要求,其中有些具體要求是為了達到實驗?zāi)康亩岢龅?,不僅有具體的實驗題目,還應(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é)果是不同的。因此,在輸出結(jié)果之前一般還應(yīng)注明輸入的數(shù)據(jù),以便對輸出結(jié)果進行分析和比較。在程序的運行中,還必須用各種不同情況的數(shù)據(jù)進行調(diào)試,以檢查程序能否正常運行。因為,有時程序?qū)δ承┣闆r是可以正常運行的,而對某些特殊情況的數(shù)據(jù)可能會出現(xiàn)運行出錯或死機,通過各種數(shù)據(jù)的調(diào)試,盡量做到程序不會出問題。(6) 實驗體會分析和體會實驗中碰到的問題及解決方法,這是實驗報告中最重要的一項,也是最容易忽視的一項。實驗過程中大量的工作是程序調(diào)試,在調(diào)試過程中會遇到各種各樣的問題,每解決一個問題就能積累一點經(jīng)驗,提高自己的編程能力。因此,對實驗的總結(jié),最主要的是程序調(diào)試經(jīng)驗的總結(jié)。調(diào)試分析也包括對結(jié)果的分析。體會主要是指通過本次實驗是否達到了實驗?zāi)康?,有哪些基本概念得到了澄清,碰到了那些以前沒有見到的問題,最后采用什么方法得到解決等。 108實驗日期 年 月 日實驗一 Visual Basic編程環(huán)境和控件一、實驗?zāi)康?、掌握啟動與退出Visual Basic的方法。2、掌握Visual Basic語言程序的開發(fā)環(huán)境.3、掌握Visual Basic語言程序設(shè)計的方法與特點4、掌握建立、編輯、運行和保存一個簡單的Visual Basic應(yīng)用程序的全過程。二、實驗內(nèi)容申請一個免費郵箱(如果已經(jīng)有郵箱,請?zhí)^),以便以后將每星期編制的程序壓縮并存放在郵箱中(或者保存在U盤中),以便復(fù)習時用。1. 創(chuàng)建第一個應(yīng)用程序。編寫一個簡單程序,實現(xiàn)單擊命令按鈕時在文本框顯示“單擊命令按鈕”,單擊窗體空白處時在文本框顯示“單擊窗體”。 保存窗體文件名:SY1_1.frm,保存工程名:SY1_1.vbp。程序界面如圖1 1.所示。 圖1.1 實驗1的運行界面【步驟】 啟動Visual Basic6.0,在彈出的“新建工程”對話框中選擇“標準EXE”。 在窗體上建立一個文本框和一個命令按鈕。建立方法:在左邊工具箱上,單擊要繪制的控件的按鈕,再把鼠標移到窗體,按住鼠標左鍵畫出所需大小的框體。或者是雙擊工具箱的要繪制的控件的按鈕。 分別選中命令按鈕和文本框,在屬性窗口中對各屬性進行設(shè)置,屬性設(shè)置參照表:表1.1 實驗1屬性設(shè)置對象名稱屬性屬性值窗體Caption我的第一個程序文本框Text(空)命令按鈕Caption命令按鈕 雙擊命令按鈕,進入代碼窗口中命令按鈕的默認事件,編寫代碼如下:Private Sub Command1_Click()Text1.Text = 單擊命令按鈕End Sub 雙擊窗體的空白處,進入代碼窗口中窗體的默認事件(Form_Load(),在右邊的過程列表框中選擇Click,編寫代碼如下:Private Sub Form_Click()Text1.Text = 單擊窗體End Sub 單擊工具欄上的按鈕,運行程序,分別單擊命令按鈕以及窗體空白處,觀察文本框上顯示的內(nèi)容有何變化。如果程序代碼有錯誤,則進入代碼窗口中調(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é)束應(yīng)用程序運行)保存窗體文件名:SY1_2.frm,保存工程名:SY1_2.vbp。表1.2 實驗2屬性設(shè)置對象名稱屬性屬性值窗體Form1Caption文本框Text1TextAlignmentFontForeColor命令按鈕Command1Caption顯示內(nèi)容命令按鈕Command2Caption清屏命令按鈕Command3Caption結(jié)束編寫代碼如下:代碼遇到的主要問題及分析:3、P260 實驗A 。二、3.編寫一程序,在文字框中統(tǒng)計在該窗口上鼠標單擊的次數(shù)。設(shè)計和運行界面如圖1.3所示。完成后自己取名保存。 圖1.3 實驗3 設(shè)計界面 運行界面編寫代碼如下:代碼遇到的主要問題及分析:【提高題】 P259 實驗A 。二、1. 編寫一程序,要求在屏幕上顯示“歡迎學習Visual Basci”,并在“請輸入你的姓名”標簽后的文本框Text1中輸入姓名;單擊“你輸入的姓名是”按鈕,則在Label3標簽上顯示在文本框Text1中輸入的姓名。窗體如圖1.4所示。Label3將BorderStyle屬性設(shè)置為1Command1Text1Label2Label1調(diào)整控件的大小使內(nèi)容顯示為兩行 圖1.4 提高題 的運行界面編寫代碼如下:代碼遇到的主要問題及分析:【選作題】窗體上有兩個名稱分別為C1, C2的命令按扭,一個文本框Text1。命令按鈕的標題及文本框上顯示的字符自定。編程實現(xiàn)當按下C1時,將C2的標題與Text1中的內(nèi)容交換。要求:1)界面自己設(shè)計 2)連續(xù)多次單擊C1,都能將C2的標題與Text1中的內(nèi)容交換。設(shè)計的界面如下:編寫代碼如下:代碼遇到的主要問題及分析:實驗心得體會成績:教師簽名:實驗日期 年 月 日實驗二 窗體及基本控件使用一、實驗?zāi)康?、復(fù)習啟動與退出Visual Basic的方法。2、掌握窗體基本的事件、方法和屬性,并學會在不同的事件的過程中,編寫代碼。3、掌握文本框和標簽兩種控件的使用,掌握文本框和標簽控件的常用屬性、事件和方法。以及它們之間的區(qū)別。4、掌握命令按鈕控件的常用屬性、事件和方法。二、實驗內(nèi)容1、設(shè)計一個程序(如圖2.1所示),用窗體模擬黑板,窗體上沒有最大化、最小化按鈕;鼠標單擊窗體時窗體上輸出提問,雙擊時顯示回答。分析:把窗體裝扮成黑板模樣,要設(shè)置窗體的BackColor屬性為黑色,F(xiàn)oreColor屬性為白色(模擬粉筆字的顏色)。窗體上沒有最大化、最小化按鈕,則需要設(shè)置窗體的MaxButton、MinButton屬性。而單擊、雙擊時的輸出顯示,可以在Click、DblClick事件里用Print和Cls方法來實現(xiàn)。(a)設(shè)計狀態(tài)(b)運行狀態(tài)(c)窗體單擊(d)窗體雙擊圖2.1 實驗2.1模擬黑板1) 屬性設(shè)置表2.1 實驗1屬性設(shè)置對象名稱屬性屬性值窗體Form1BackColorForeColoFontMaxButtonMinButtonvbBlackVbwhiteFalseFalse2)代碼編寫代碼遇到的主要問題及分析:Private Sub Form_Load()Form1.Caption = 模擬黑板End SubPrivate Sub Form_Click()ClsPrint 1+1=?End SubPrivate Sub Form_DblClick()ClsPrint 1+1=2End Sub 【思考】如果進一步要求隨機出題(簡單的數(shù)學四則運算題)在窗體上輸出并顯示答案,該怎么做Private Sub Form_Click()Dim a As Integer, b As Integera = Int(Rnd * 10)b = Int(Rnd * 10)Print a; +; b; =; a + b 減法等同理End Sub2、窗體上有一個文本框Text1,要求當鼠標劃過文本框Text1時,鼠標顯示Cross“”形狀;窗體上的一個標題為“復(fù)制”的命令按鈕C1。通過屬性窗口實現(xiàn)以上的設(shè)置之后,編程實現(xiàn):1)程序啟動時窗體標題為“修改文本框內(nèi)容”;2)單擊命令按鈕C1,則把按鈕上的標題復(fù)制到文本框,并使按鈕不可見;3)單擊窗體空白處,按鈕可見但不可用。 必要屬性設(shè)置表2.2 實驗2屬性設(shè)置對象名稱屬性屬性值Text1mousepointer2-crossC1caption復(fù)制 代碼編寫代碼遇到的主要問題及分析:Private Sub Form_Load()Form1.caption= “修改文本框內(nèi)容”End SubPrivate Sub C1_Click()Text1 = C1.CaptionC1.Visible = FalseEnd SubPrivate Sub Form_Click()C1.Visible = TrueC1.Enabled = FalseEnd Sub3、窗體上有四個文本框,兩個標題分別為“顯示選中信息”“選中文本”的命令按鈕。要求程序運行時,光標焦點在Text1上,按下Tab鍵后,光標焦點跳到在Text3上。在文本框Text1中輸入一些字符;要求編程實現(xiàn): 圖2.2 實驗2.3文本信息選定窗體1)在文本框Text1中輸入一行文字并按回車(Enter)后,把Text1的內(nèi)容設(shè)置為窗體的標題。2)在Text1中選中其中一部分內(nèi)容后,單擊“顯示選中信息”命令按鈕,則把在Text1中被選中文本的第一個字符的順序號,被選中文本的字符個數(shù),被選中的文本內(nèi)容分別顯示在文本框Text2,Text3,Text4中。3)分別在文本框Text2,Text3中輸入你所希望文本框Tex1中選中文本信息的順序號以及長度,單擊“選中文本”命令按鈕,則根據(jù)文本框Text2,Text3輸入的內(nèi)容,在Text1中選中對應(yīng)的內(nèi)容,同時在Text4中顯示出來?!咎崾尽坎糠窒嚓P(guān)屬性和事件:SelStart、SelLength、SelText、KeyPress 必要的屬性設(shè)置表2.3 實驗3屬性設(shè)置對象名稱屬性屬性值Text1text“”Text2text“”Text3text“”Text4text“”Command1caption顯示選中信息Command2caption選中文本Text1tabindex0Text3tabindex1或者Text2tabstopfalse 代碼編寫代碼遇到的主要問題及分析:Private Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Then Form1.Caption = Text1End SubPrivate Sub Command1_Click()Text2 = Text1.SelStartText3 = Text1.SelLengthText4 = Text1.SelTextEnd SubPrivate Sub Command2_Click()Text1.SelStart = Text2Text1.SelLength = Text3Text4 = Text1.SelTextEnd Sub或者 Private Sub Text1_LostFocus()Text3.SetFocusEnd Sub【提高題1】創(chuàng)建VB工程,運行時可將文本框中的文字縮小以及還原。窗體中包括下列控件:標簽、文本框和兩個命令按鈕,窗體標題為“字符縮小”,文本框字號為30磅。 圖2.3 實驗提高1窗體在文本框輸入一串字符;按下“縮小”按鈕時字號縮小為原來的一半(每按一下都會縮小為一半),界面如右圖。請完善以下代碼:Private Sub Form_Load() Text1.FontSize = 30 設(shè)置文本框原始字號End SubPrivate Sub Command1_Click() Text1.FontSize = _ Text1.FontSize / 2_ 將文本框字體每次縮小一半End SubPrivate Sub Command2_Click() _ Text1.FontSize = 30_ 文本框的字體恢復(fù)為30End Sub【提高題2】 P260 實驗A 。二、5. 命令按鈕、字號、內(nèi)容和格式的復(fù)制練習!效果如右圖。要求:1)Command1:使得Text1中的字體和字號根據(jù) 圖2.4實驗實驗提高1窗體命令按鈕上顯示的要求改變。2)Command2:要求將Text1選中的內(nèi)容及其字體格式復(fù)制到Text2文本框中。 代碼編寫代碼遇到的主要問題及分析:Private Sub Command1_Click()Text1.FontName = 隸書Text1.FontSize = 25End SubPrivate Sub Command2_Click()Text2 = Text1.SelTextText2.FontName = Text1.FontNameText2.FontSize = Text1.FontSizeEnd Sub【選作題】參考P35,建立一個允許剪切、復(fù)制和粘貼的簡單便箋板程序??稍黾觾?nèi)容:利用MouseMove事件決定命令按鈕的有效性, 即當選中內(nèi)容,“剪切”、“復(fù)制”按鈕有效,否則無效。圖2.5 窗體原始界面 按下運行按鈕時的界面 選中文本框部分內(nèi)容的界面 代碼編寫代碼遇到的主要問題及分析:Private Sub Form_Load()Command1.Enabled = FalseCommand2.Enabled = FalseEnd SubPrivate Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If Text1.SelText Then Command1.Enabled =trueCommand2.Enabled =trueEnd IfEnd Sub其他代碼見p36實驗心得體會成績:教師簽名: 實驗日期 年 月 日實驗三 順序結(jié)構(gòu)程序設(shè)計實驗?zāi)康模?熟練掌握VB的基本數(shù)據(jù)類型。2熟練掌握基本的輸入輸出函數(shù)和語句。3掌握順序結(jié)構(gòu)程序設(shè)計的方法。實驗內(nèi)容1、定義兩個變量a和b,它們的值分別由鍵盤輸入。編程計算并輸出a與b的和、差、積、商、a除以b的余數(shù)、a b的值。(要求自己設(shè)計窗體及輸入、輸出,必須有明確的示意提示)。 代碼編寫:代碼遇到的主要問題及分析:Private Sub Form_Click()Dim a as integer,b as integera = Val(InputBox(輸入a的值)b = Val(InputBox(輸入b的值)Print a=; a; b=; bPrint a+b=; a + bPrint a-b=; a - bPrint a*b=; a * bPrint a mod b=; a Mod bEnd Sub2、定義一個變量a,由鍵盤輸入其值為任意四位整數(shù),編程實現(xiàn)分別輸出個、十、百、千位四個數(shù)字,并各個數(shù)字的平方和?!咎崾尽坷胢od和運算符將每一位分離。 代碼編寫:代碼遇到的主要問題及分析:Private Sub Form_Click()Dim a As IntegerDim b%, c%, d%, e%a = Val(InputBox(輸入a的值,要求4位整數(shù))b = a Mod 10 個位c = a 1000 千位d = (a - c * 1000) 100 百位e = (a - c * 1000 - d * 100) 10Print 個位:; bPrint 十位:; ePrint 百位:; dPrint 千位:; cPrint 平方和:; b 2 + e 2 + d 2 + c 2End Sub3、P262 實驗B 二、1。 代碼編寫:代碼遇到的主要問題及分析:Private Sub Command2_Click()Text1 = Format(9 / 5 * Val(Text2) + 32, 0)End Sub4、設(shè)計窗體并實現(xiàn):1)單擊“連接”,將Text1和Text2的內(nèi)容連接起來顯示在Text3;2)單擊“求和”,求出Text1和Text2之和顯示在Text3 ;3)要求:在單擊“連接”之前Text3不可見,點“連接”之后“連接”按鈕不可用;(a) 設(shè)計狀態(tài) (b) 運行狀態(tài)圖3.1 實驗3.4窗體 代碼編寫:代碼遇到的主要問題及分析:Private Sub Command1_Click()Text3.Visible = TrueText3 = Text1 & Text2Command1.Enabled = FalseEnd SubPrivate Sub Command2_Click()Text3 = Val(Text1) + Val(Text2)End SubPrivate Sub Form_Load()Text3.Visible = FalseEnd Sub5、創(chuàng)建VB工程,界面如右所示,編程實現(xiàn)運行時可將標簽中的文字字號隨機放大(15整數(shù)倍)和(任意比例)縮小以及還原(原來字號)。界面如右圖所示?!咎崾尽?圖3.2 實驗3.5窗體1)將標簽的AotuSize屬性設(shè)置為False及True,看看有什么區(qū)別?2)用一個變量在程序開始運行時記住標簽中原始字體的大?。ㄏ胂敕旁谑裁词录^程中?);這個變量還會在“還原”按鍵中使用,其說明語句要放在通用-聲明中;3)每次按放大或縮小按鍵都會在當前的基礎(chǔ)上放大或縮小;4)字體放大到一定程度會出現(xiàn)“溢出”的錯誤提示,可以先不管。 代碼編寫:代碼遇到的主要問題及分析:Dim tPrivate Sub Form_Load()t = Label1.FontSizeEnd SubPrivate Sub Command1_Click()Label1.FontSize = Label1.FontSize * Int(Rnd * 5 + 1)End SubPrivate Sub Command2_Click()Label1.FontSize = Label1.FontSize * RndEnd SubPrivate Sub Command3_Click()Label1.FontSize = tEnd Sub6、編程實現(xiàn)隨機產(chǎn)生一個“F”“S”范圍內(nèi)的大寫字母,并輸出該字母及其對應(yīng)的ASCII碼值,同時輸出其小寫字母及其對應(yīng)的ASCII碼的值。 代碼編寫:代碼遇到的主要問題及分析:Private Sub Form_Click()a = Int(Rnd * (83 - 70 + 1) + 70)Print Chr(a); 的ASCII值=; aPrint LCase(Chr(a); 的ASCII值=; Asc(LCase(Chr(a)End Sub【選作題1】編程解決古代數(shù)學問題“雞兔同籠”。即已知在同一個籠子里有總數(shù)為m只雞和兔,雞和兔的總腳數(shù)為n只,求雞和兔各有多少只?【提示】雞和兔的總數(shù)m、雞和兔的總腳數(shù)n需要預(yù)先輸入(文本框或輸入框輸入)。再設(shè)雞和兔子的個數(shù)分別為x和y,通過已知輸入的m和n;列出方程求解,分別用m,n兩個已知量來表示x和y。 代碼編寫:代碼遇到的主要問題及分析:Private Sub Form_Click()m = Val(Text1)n = Val(Text2)y = 1 / 2 * n - mx = 2 * m - 1 / 2 * nPrint 雞有; x; 兔子有; yEnd Sub【選作題2】編程實現(xiàn)電話號碼自動升位。要求將原來任意一個帶區(qū)號的7位電話號碼升到8位,在電話號碼最前面加8。程序運行結(jié)果如圖所示。(要求必須適用于3位或4位區(qū)號的電話號碼)【提示】無論區(qū)號或電話號碼是多少位,只要找到“-”的位置,就可以將“-”之前(包括“-”)的左子串、“8”、以及“-”后面剩下的字符串 “串”起來。 代碼編寫:代碼遇到的主要問題及分析:Private Sub Form_Click()a = InStr(Text1, -)Text2 = Left(Text1, a) + 8 + Mid(Text1, a + 1)End Sub【提高題】參考教材P33的例2.5及P65的例4.2,完成P263實驗B 二、2。 代碼編寫:代碼遇到的主要問題及分析:Const PI = 3.14Private Sub Command1_Click()r = Val(Text1)Text2 = Format(PI * r 2, 0.00)End SubPrivate Sub Command2_Click()r = Val(Text1)Text3 = Format(2 * PI * r, 0.00)End SubPrivate Sub Text1_LostFocus()If Not IsNumeric(Text1) ThenMsgBox 輸入有非數(shù)字字符,請重新輸入 Text1 = Text1.SetFocusEnd IfEnd Sub實驗心得體會教師簽名: 成績:實驗日期 年 月 日實驗四 選擇結(jié)構(gòu)程序設(shè)計實驗?zāi)康模?掌握邏輯表達式的正確書寫形式。3掌握單分支與雙分支條件語句的使用。實驗內(nèi)容1編寫程序,通過鍵盤輸入變量x的值,求函數(shù)y的值。 代碼遇到的主要問題及分析:Private Sub Command1_Click()x = Val(Text1)If x = 0 Theny = Sqr(x)Elsey = 1 / Abs(x)End IfText2 = yEnd Sub 2、輸入一串字符串C,判斷字符串C中的第三個字符是“C”時,利用msgbox顯示“yes”,否則顯示“No”.代碼遇到的主要問題及分析:Private Sub Command1_Click()Dim C As StringC = Text1If Mid(C, 3, 1) = c ThenMsgBox (yes)Else: MsgBox (no)End IfEnd Sub 3、輸入一個年份,判斷它是否為閏年,并輸出是否為閏年的相關(guān)信息?!咎崾尽颗袛嚅c年的條件是:年份能被4整除但不能被100整除;或者是能被400整除。如:1900、2100、2010年不是閏年;2008、2000年是閏年。代碼遇到的主要問題及分析:Private Sub Form_Click()Dim a As Integera = Text1If a Mod 400 = 0 Or a Mod 4 = 0 And a Mod 100 0 Then MsgBox (本年份為閏年)Else MsgBox (此年份為非閏年)End IfEnd Sub4. 如右圖,窗體上有兩個文本框一個標簽和一個命令按鈕。程序運行時分別在文本框中輸入兩個數(shù)字后單擊命令按鈕進行計算。要求:Text1中的數(shù)值大于或等于Text2時,計算兩個數(shù)的和,否則計算兩個數(shù)的差,最后將運算式和結(jié)果顯示在標簽中。代碼遇到的主要問題及分析:Private Sub Command1_Click()x = Val(Text1)y = Val(Text2)If x = y Then Label1 = x & + & y & = & x + yElse Label1 = x & - & y & = & x - yEnd IfEnd Sub【進一步要求】對兩個文本框中的數(shù)據(jù)進行有效性判斷。利用文本框的LostFocus事件進行判斷,若輸入的不是數(shù)字,用MsgBox給出“是否重新輸入”的提示,提示窗口上有兩個命令按鈕:“是”和“否”,顯示問號的圖標。若回答“是”則將文本框中原來的內(nèi)容清空、光標重新定位于文本框,若回答“否”則程序終止。 代碼編寫:代碼遇到的主要問題及分析:Private Sub Text1_LostFocus()If Not IsNumeric(Text1) Theni = MsgBox(是否重新輸入, 4 + vbQuestion, 警告)If i = 6 ThenText1 = Text1.SetFocusElseEndEnd IfEnd IfEnd SubPrivate Sub Text2_LostFocus()If Not IsNumeric(Text2) Theni = MsgBox(是否重新輸入, 4 + vbQuestion, 警告)If i = 6 ThenText2 = Text2.SetFocusElseEndEnd IfEnd IfEnd Sub5、猜數(shù)字游戲:事先設(shè)定的一個數(shù)字(如6),程序提示用戶輸入一個110之間的整數(shù),如果輸入的數(shù)字與事先設(shè)置的數(shù)字相同,則提示“輸入正確”,否則顯示“錯了”。 代碼編寫:代碼遇到的主要問題及分析:Private Sub Command1_Click()x = Val(InputBox(輸入一個110之間的整數(shù))If x = Text1 Then MsgBox 輸入正確Else MsgBox 錯了End IfEnd Sub 【提高題1】修改上面程序,當輸入的值比設(shè)置的數(shù)字小,顯示“錯了,你猜得小了。”;輸入的值比設(shè)置的大,則顯示“錯了,你輸入的太大了?!保ㄕ堉苯釉谏项}修改)【提示】本實驗屬于多分支結(jié)構(gòu)。Private Sub Command1_Click()x = Val(InputBox(輸入一個110之間的整數(shù))If x = Text1 Then MsgBox 輸入正確ElseIf x c And b + c a And a + c b Then Print 此三邊可構(gòu)成三角形Else Print 此三邊不可構(gòu)成三角形End IfEnd Sub【選作題】課堂示例“字符串替換”,使用多個函數(shù)完成時,如果源字符串中沒有要查找的子串,程序就會出錯。修改程序當沒有要查找的子串時,彈出“沒有找到的”提示框,并將源串放到結(jié)果文本框中。 【提示】InStr(C1,C2) 在C1中查找C2是否存在,若找不到,結(jié)果為0。 代碼編寫:代碼遇到的主要問題及分析:Private Sub Command1_Click()i = InStr(Text1, Text2)If i = 0 Then MsgBox 沒有找到 Label5 = Text1Else k = i + Len(Text2) Ls = Left(Text1, i - 1) Label5 = Ls + Text3 + Mid(Text1, k)End IfEnd Sub 實驗心得體會教師簽名: 成績:實驗日期 年 月 日實驗五 選擇結(jié)構(gòu)程序設(shè)計(續(xù))實驗?zāi)康模?掌握情況語句的使用。2. 掌握情況語句與多分支條件語句的區(qū)別。3掌握分支嵌套語句的使用。實驗內(nèi)容1、輸入一元二次方程ax2+bx+c=0系數(shù)a,b,c的值,計算并輸出一元二次方程的兩個根x1和x2。【提示】求根時要對三個數(shù)分別考慮重根和無實根情況的處理。 代碼編寫: 代碼遇到的主要問題及分析:Private Sub Command1_Click()Dim a%, b%, c%, d%, x1!, x2!a = Val(InputBox(輸入a)b = Val(InputBox(輸入b)c = Val(InputBox(輸入c)d = b * b - 4 * a * cIf d 0 Then x1 = (-b + Sqr(d) / (2 * a) x2 = (-b - Sqr(d) / (2 * a)ElseIf d = 0 Then x1 = -b / (2 * a) x2 = x1Else MsgBox 無實根End IfPrint x1=; x1, x2=; x2End Sub2、輸入一個字符,判斷該字符是字母、數(shù)字還是其他字符,并作相應(yīng)的顯示?!疽蟆糠謩e使用兩種語句If ElseIf和Select Case 來完成。代碼遇到的主要問題及分析:If ElseIf語句實現(xiàn)Private Sub Command2_Click()a = InputBox(輸入一個字符)If a = a And a = A And a = 0 And a = 9 Then MsgBox a + 是數(shù)字Else MsgBox a + 是其他字符End IfEnd SubSelect Case語句實現(xiàn)Private Sub Command1_Click()a = InputBox(輸入一個字符)Select Case a Case a To z, A To Z MsgBox a + 是字母 Case 0 To 9 MsgBox a + 是數(shù)字 Case Else MsgBox a + 是其他字符End SelectEnd Sub思考:編寫一個對文本框中輸入的字符進行轉(zhuǎn)換的程序。窗體如上右圖所示。將小寫字母轉(zhuǎn)換成大寫字母,大寫字母轉(zhuǎn)換成小寫字母,空格不轉(zhuǎn)換,其余字符轉(zhuǎn)換成”*”。要求每輸入一個字符馬上 進行判斷和轉(zhuǎn)換,結(jié)果顯示在Text2中。 代碼編寫: 代碼遇到的主要問題及分析:Private Sub Text1_Change()a = Right(Text1, 1)Select Case a Case a To z Text2 = Text2 + UCase(a) Case A To Z Text2 = Text2 + LCase(a) Case Text2 = Text2 + Case Else Text2 = Text2 + *End SelectEnd Sub3、輸入一個數(shù)字(1-7),用英文顯示對應(yīng)的星期一至星期日?!咎崾尽坑肧elect Case語句來實現(xiàn) 代碼編寫: 代碼遇到的主要問題及分析:Private Sub Command1_Click()a = Val(InputBox(輸入星期幾)Select Case a Case 1 MsgBox Monday Case 2 MsgBox Tuesday Case 3 MsgBox Wednesday Case 4 MsgBox Thursday Case 5 MsgBox Friday Case 6 MsgBox Saturday Case 7 MsgBox Sunday Case Else MsgBox 輸入錯誤End SelectEnd Sub4、編程實現(xiàn)簡單計算器功能。要求程序運行后,分別輸入兩個操作數(shù)以及運算符(+、-、*、/)后,單擊“計算”按鈕,則自動計算出表達式的結(jié)果,并顯示在運算結(jié)果對應(yīng)的文本框中?!咎崾尽砍龜?shù)為0時要做適當處理。 代碼編寫: 代碼遇到的主要問題及分析:Private Sub Command1_Click()Select Case Text2 Case + Text4 = Text1 + Text3 Case - Text4 = Text1 - Text3 Case * Text4 = Text1 * Text3 Case / If Text3 = 0 Then MsgBox 除數(shù)不能為0 Else Text4 = Text1 / Text3 End If Case Else MsgBox 輸入錯誤End SelectEnd Sub5、密碼登錄程序。要求:建立一個登錄窗口,要求輸入帳號和密碼。設(shè)定密碼為“Basic1234”;若密碼正確,顯示“祝賀你,成功登錄!”;若密碼不正確,顯示“對不起,密碼錯誤,無法登錄!”,并統(tǒng)計出錯次數(shù),當輸入超過3次時,則退出系統(tǒng)?!疽蟆繋ぬ枮?位數(shù)字,如果輸入的不是數(shù)字或不足6位,則給出相應(yīng)提示并要求重新輸入(利用LostFocus事件及IsNumeri等函數(shù));密碼輸入時應(yīng)顯示為“*”?!咎崾尽吭擃}用分支嵌套來完成。 代碼編寫: 代碼遇到的主要問題及分析:Dim I As Integer 全局變量Private Sub Form_Load() Text1.Text = Text2.Text = Text2.PasswordChar = * I = 0 全局變量付初值End SubPrivate Sub Text1_LostFocus() If Not IsNumeric(Text1.Text) Then MsgBox 賬號必須為數(shù)字, , 警告 連續(xù)兩個逗號(,)缺省按鈕數(shù)目,僅有確定按鈕 Text1.Text = Text1.SetFocus End If If Len(Text1) 6 Then MsgBox 密碼是6位數(shù)字, , 警告 Text1.Text = Text1.SetFocus End IfEnd SubPrivate Sub Command1_Click() If Text2.Text = Basic1234 Then MsgBox (祝賀你,成功登錄!) Else MsgBox (對不起,密碼錯誤,無法登錄!) I = I + 1 If I = 3 Then End End If End Sub參考p65例4.26、在上周實驗【提高題】的基礎(chǔ)上完成,輸入三角形的三條邊,根據(jù)邊長判斷是否能構(gòu)成三角形的程序,若能構(gòu)成,則進一步判斷三角形類型(等邊、等腰、直角、一般)?!咎崾尽吭擃}用分支嵌套來完成。注:請在上周程序代碼的適當位置用紅筆來添加代碼實現(xiàn)。Private Sub Command1_Click() Dim a!, b!, c!a = Val(InputBox(輸入第1條邊長)b = Val(InputBox(輸入第2條邊長)c = Val(InputBox(輸入第3條邊長)If a + b c And b + c a And a + c b Then If a = b And b = c Then MsgBox 等邊 Els

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論