版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、聲明:1. 實(shí)驗(yàn)所屬課本原件為Visual Basic程序設(shè)計(jì)教程(第4版) (主編 龔沛曾 編者 楊志強(qiáng) 陸慰民 謝步瀛) ;2. 實(shí)驗(yàn)答案代碼采用紅色字體突出 ;3. 僅提供課本前七個(gè)實(shí)驗(yàn)的代碼,之后的實(shí)驗(yàn)上課考試均不涉及故不作 ;4. 教學(xué)平臺(tái)上機(jī)實(shí)驗(yàn)、課本篇后實(shí)驗(yàn),兩者題目操作略有差異,作業(yè)以前者要求為準(zhǔn),故以下答案代碼為前者代碼,如對(duì)后者代碼有所需求請(qǐng)私信 ;5. 本文為整理原創(chuàng),復(fù)制轉(zhuǎn)載請(qǐng)注明出處 ;6. 如果對(duì)代碼有所疑問,或者略感繁瑣想直接要已完成實(shí)驗(yàn),請(qǐng)私信 ;7. 瀏覽、復(fù)制、下載后請(qǐng)給整理一個(gè)合理的評(píng)價(jià),感激不盡 。實(shí)驗(yàn)1-1編制簡單的歡迎界面程序。 要求:在屏幕上顯示“
2、歡迎學(xué)習(xí)Visual Basic”;在文本框Text1中輸入姓名;單擊命令按鈕“你輸入的姓名是”,在Label3標(biāo)簽顯示在文本框中輸入的姓名。 程序運(yùn)行效果如圖2.1.1所示。程序以“學(xué)號(hào)-1-1.frm”和“學(xué)號(hào)-1-1.vbp”文件名保存。以后每個(gè)實(shí)驗(yàn)項(xiàng)目的命名規(guī)則都是如此,即“學(xué)號(hào)-實(shí)驗(yàn)號(hào)-實(shí)驗(yàn)題目”。(如某同學(xué)的學(xué)號(hào)為A10414001,所完成的是實(shí)驗(yàn)2的第3題,那么程序文件名為“A10414001-2-3.frm”和“A10414001-2-3.vbp”) 圖2.1.1 實(shí)驗(yàn)1.1運(yùn)行界面提示: (1) 實(shí)驗(yàn)所用到的控件及屬性設(shè)置見表2.1.1。表2.1.1 屬 性 設(shè) 置控件名屬
3、性Label1Caption="歡迎學(xué)習(xí)Visual Basic";Font屬性:字號(hào)為二號(hào),字體為隸書,Aligment=2(居中)Label2Caption="請(qǐng)輸入你的姓名";Font屬性:字體為楷體,有下劃線Label3Caption="",BorderStyle=1Text1Text=""Command1Caption="你輸入的姓名是"(2) “歡迎學(xué)習(xí)Visual Basic”要在兩行顯示,只要將Label1控件的寬度縮小一些。Private Sub Command1_Click(
4、)Label3.Caption = Text1.TextEnd Sub實(shí)驗(yàn)1-2模仿教學(xué)篇例1.1,將事件過程中的自上而下移動(dòng)改為自右向左移動(dòng),同時(shí)考慮文字超出窗體邊界的情況。各個(gè)控件及屬性窗口的設(shè)置見表2.1.2,背景圖形文件可以選擇自己喜歡的,按鈕上的圖標(biāo)可通過Windows搜索功能查找。以“學(xué)號(hào)-1-2”為項(xiàng)目名保存。表2.1.2 屬 性 設(shè) 置控件名屬 性Form1Caption="實(shí)驗(yàn)1.2";Picture:選擇自己喜歡的圖片Label1Caption="我開始學(xué)習(xí)程序設(shè)計(jì)";FontSize=36;BackStyle=0Command1Ca
5、ption="";Style=1;Picture="clock02.ico";ToolTipText"自動(dòng)"Command2Caption="";Style=1;Picture="key04.ico";ToolTipText"手動(dòng)"Timer1Interval=0注:因?yàn)橛∷㈠e(cuò)誤,例題1.1中兩個(gè)命令按鈕的圖形與事件過程代碼不一致,需要調(diào)整。提示: 自定義事件過程MyMove代碼應(yīng)調(diào)整為,可實(shí)現(xiàn)文字移動(dòng)方向的改變Sub MyMove()Label1.Move Label1.L
6、eft - 50, Label1.TopIf Label1.Left < 0 Then Label1.Left = Form1.WidthEnd SubSub MyMove()Label1.Move Label1.Left - 50, Label1.TopIf Label1.Left < 0 Then Label1.Left = Form1.WidthEnd SubPrivate Sub Command1_Click()Timer1.Interval = 200End SubPrivate Sub Command2_Click()Timer1.Interval = 0Call My
7、MoveEnd SubPrivate Sub Form_Load()Timer1.Interval = 0End SubPrivate Sub Timer1_Timer()Call MyMoveEnd Sub實(shí)驗(yàn)1-3編一個(gè)程序,在文本框中統(tǒng)計(jì)在該窗口上鼠標(biāo)單擊的次數(shù),效果如圖2.1.2所示。以“學(xué)號(hào)-1-3”為項(xiàng)目名保存。圖2.1.2 實(shí)驗(yàn)1.3運(yùn)行界面提示:(1) 對(duì)窗體編寫兩個(gè)事件:Form_Load 事件中對(duì)文本框置初值為空;Form_Click事件對(duì)鼠標(biāo)單擊文本框計(jì)數(shù)。(2) 對(duì)鼠標(biāo)單擊文本框計(jì)數(shù)計(jì)算為:Text1.Text=Val(Text1.Text)+1Private Sub
8、Form_click()Text1.Text = Val(Text1.Text) + 1End SubPrivate Sub Form_Load()Text1.Text = ""End Sub實(shí)驗(yàn)1-4按照教學(xué)篇例2.2對(duì)窗體三個(gè)事件過程(Load、Click、DblClick)編程,在3個(gè)事件中裝入不同的圖片(自己選擇);在屬性窗口練習(xí)鼠標(biāo)指針改變:MousePointer(值為99,用戶自定義)、MouseIcon為Key04.ico圖標(biāo)文件,練習(xí)窗體圖標(biāo)(Icon)、邊框線類型(BorderStyle)、最大化按鈕和最小化按鈕的改變,運(yùn)行觀察其效果。以“學(xué)號(hào)-1-4”
9、為項(xiàng)目名保存。提示:例題中Form_Resize事件可以不考慮,Picture屬性設(shè)置中注意圖片文件有后綴名,運(yùn)行測試前需要先保存項(xiàng)目名,保證圖片文件和程序文件在同一個(gè)文件夾下,否則會(huì)出現(xiàn)圖片找不到的錯(cuò)誤提示。Private Sub Form_Click()Caption = "單擊窗體"Picture = LoadPicture(App.Path + "p2.jpg")Print "歡迎使用VB"End SubPrivate Sub Form_DblClick()ClsCaption = "雙擊窗體"Pictur
10、e = LoadPicture(App.Path + "p3.jpg")Print "結(jié)束使用VB"End SubPrivate Sub Form_Load()Caption = "裝入窗體"Picture = LoadPicture(App.Path + "p1.jpg")Print "裝入圖片"End Sub實(shí)驗(yàn)1-5命令按鈕、字號(hào)、內(nèi)容和格式的復(fù)制練習(xí),效果如下圖所示。有關(guān)控件及屬性參見下表。以“學(xué)號(hào)-1-5”為項(xiàng)目名保存。圖2.1.3 實(shí)驗(yàn)1.5運(yùn)行界面表2.1.3 屬 性 設(shè) 置控件名
11、屬 性Form1Caption="實(shí)驗(yàn)1.5"Label1Caption="輸入文本 復(fù)制文本"Text1Text="VB功能強(qiáng)大,但要下功夫?qū)W習(xí)才能學(xué)好";MultiLine=True;ScrollBar=2Text2Text="";MultiLine=TrueCommand1Caption="隸書25磅"Command2Caption="復(fù)制=>"要求:(1) Command1:使得Text1的字體和字號(hào)根據(jù)命令按鈕顯示的要求改變(2) Command2:要求將Te
12、xt1選中的內(nèi)容及其格式復(fù)制到Text2。選中的內(nèi)容通過Text1的SelText屬性獲得提示:為使Text2文本框保持Text1中的字符格式,通過Text2.FontSize=Text1.FontSize和Text2.FontName=Text1.FontName實(shí)現(xiàn)Private Sub Command1_Click()Text1.FontName = "隸書"Text1.FontSize = 25End SubPrivate Sub Command2_Click()Text2 = Text1.SelTextText2.FontName = Text1.FontName
13、Text2.FontSize = Text1.FontSizeEnd Sub實(shí)驗(yàn)1-6圖片縮小、還原的設(shè)置。窗體上放置一個(gè)Image圖像控件和兩個(gè)命令按鈕。Image圖像控件裝入自己喜歡的圖片,設(shè)置Stretch屬性為True,使得圖片隨著圖像控件的大小而變,如圖2.1.4所示。以“學(xué)號(hào)-1-6”為項(xiàng)目名保存。圖2.1.4 實(shí)驗(yàn)1.6運(yùn)行界面要求:(1)單擊“縮小一半”按鈕,圖片縱、橫均縮小一半。(2)單擊“還原”按鈕,圖片與初始裝入時(shí)同大。提示:為了實(shí)現(xiàn)還原效果,要做以下3件事。(1)必須在事件過程外,即程序代碼最上方聲明窗體級(jí)變量:Dim h%,w% 用戶輸入的變量聲明語句(2)在Form
14、1_Load事件中保存圖像控件的初始值:w=Image1.Widthh=Image1.Height(3)在Command2_Click事件中還原為初始值:Image1.Width=wImage1.Height=h縮小一半Command1_Click事件請(qǐng)讀者自行完成。思考:若要設(shè)置圖片放大效果,如何修改代碼?Dim h%, w%Private Sub Command1_Click()Image1.Width = Image1.Width * 0.5Image1.Height = Image1.Height * 0.5End SubPrivate Sub Command2_Click()Imag
15、e1.Width = wImage1.Height = hEnd SubPrivate Sub Form_Load()w = Image1.Widthh = Image1.HeightEnd Sub實(shí)驗(yàn)2-1隨機(jī)生成3個(gè)正整數(shù),其中一個(gè)1位數(shù),1個(gè)2位數(shù),1個(gè)3位數(shù),計(jì)算它們的平均值,保留兩位小數(shù),運(yùn)行界面如圖2.2.1所示。圖2.2.1 實(shí)驗(yàn)2.1運(yùn)行界面提示:(1)隨機(jī)數(shù)生成某范圍內(nèi)的正整數(shù)公式為Int(Rnd*范圍+基數(shù))其中范圍=數(shù)的上限-下限+1,基數(shù)=數(shù)的下限。例如,要生成2位數(shù),語句為Int(Rnd*(99-10+1)+10)=Int(Rnd*90+10)(2)保留兩位小數(shù),利用
16、Format函數(shù),形式為Format(要顯示的數(shù)值, "0.00 ")。Private Sub Command1_Click()Text1.Text = Int(Rnd * 9 + 1)Text2.Text = Int(Rnd * 90 + 10)Text3.Text = Int(Rnd * 900 + 100)End SubPrivate Sub Command2_Click()Text4.Text = Format(Val(Text1.Text) + Val(Text2.Text) + Val(Text3.Text) / 3, "0.00")End
17、SubPrivate Sub Command3_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""End Sub實(shí)驗(yàn)2-2我國有13億人口,假定按人口年增長0.8%計(jì)算,多少年后我國人口超過26億。提示:(1)已知年增長率r=0.8%,求人數(shù)超過26億的年數(shù)n公式為:其中:Log(x)為對(duì)數(shù)函數(shù),Log(2)緣由Log(13/26),0.8%需寫成0.008(2)該題目的界面設(shè)計(jì) 由讀者自行設(shè)計(jì)。Private Sub Comman
18、d1_Click()n = Int(Log(2) / Log(1 + 0.008) + 1)Text1 = n & "年后人口超過26億"End Sub實(shí)驗(yàn)2-3輸入一個(gè)合法的3位正整數(shù),測試其數(shù)值合法性后,逆序輸出并顯示。例如,輸入“734”,輸出是“437”,如圖2.2.2所示。提示:(1)利用Text1_LostFocus事件,輸入數(shù)據(jù)合法性檢查調(diào)用IsNumeric函數(shù),參閱教學(xué)篇例2.5;若有錯(cuò)利用MsgBox顯示出錯(cuò)信息,如圖2.2.3所示;清除文本框內(nèi)輸入的非法數(shù)據(jù),通過SetFocus定位于文本框處,重新輸入。(2)利用“MOD”和“”運(yùn)算符將一個(gè)3
19、位數(shù)分離出3個(gè)1位數(shù),然后利用乘法和加法運(yùn)算將3個(gè)1位數(shù)連接成一個(gè)逆序的3位數(shù)。圖2.2.2 實(shí)驗(yàn)2.3運(yùn)行界面 圖2.2.3 出錯(cuò)信息Private Sub Command1_Click()Dim x%, x1%, x2%, x3%x = Val(Text1)x1 = x Mod 10x2 = (x Mod 100) 10x3 = x 100Label2 = x1 * 100 + x2 * 10 + x3End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 ThenIf Not IsNumeric(Tex
20、t1.Text) ThenText1.Text = ""End IfEnd IfEnd SubPrivate Sub Text1_LostFocus()If Not IsNumeric(Text1.Text) ThenMsgBox "輸入非數(shù)值數(shù)據(jù),請(qǐng)重新輸入", , "數(shù)據(jù)檢驗(yàn)"Text1.Text = ""Text1.SetFocusEnd IfEnd Sub實(shí)驗(yàn)2-4輸入一個(gè)字符串,分別調(diào)用UCase、Len、Mid、Left、Right函數(shù),顯示如圖2.2.4所示的效果。圖2.2.4 實(shí)驗(yàn)2.4運(yùn)行界面提示
21、:事件過程可以在Form_Click中編碼,輸出控件可以使用標(biāo)簽控件。Private Sub Form_click()Label1 = UCase(Text1.Text)Label2 = Len(Text1.Text)Label3 = Left(Text1, 11)Label4 = Mid(Text1, 12, 6)Label5 = Right(Text1, 5)End Sub實(shí)驗(yàn)2-5效仿實(shí)驗(yàn)2.4,驗(yàn)證轉(zhuǎn)換函數(shù)的使用,Text1文本框輸入字符串,Text2文本框顯示調(diào)用所選函數(shù)的結(jié)果,4個(gè)命令按鈕為轉(zhuǎn)換函數(shù),Label2顯示對(duì)應(yīng)的函數(shù)名,運(yùn)行效果如圖2.2.5所示。圖2.2.5 實(shí)驗(yàn)2.5
22、運(yùn)行界面Private Sub Command1_Click()Label2 = "Val函數(shù)的結(jié)果"Text2 = Val(Text1.Text)End SubPrivate Sub Command2_Click()Label2 = "Str函數(shù)的結(jié)果"Text2 = Str(Text1.Text)End SubPrivate Sub Command3_Click()Label2 = "Chr函數(shù)的結(jié)果"Text2 = Chr(Text1.Text)End SubPrivate Sub Command4_Click()Label2
23、= "Asc函數(shù)的結(jié)果"Text2 = Asc(Text1.Text)End Sub實(shí)驗(yàn)2-6Print方法練習(xí),顯示字符圖形。參考教學(xué)篇例4.4輸出簡單圖形,如圖2.2.6所示。要求窗體不可改變大小,當(dāng)單擊“清屏”按鈕后,清除窗體所顯示的圖形。提示:利用循環(huán)語句和String函數(shù)。讀者也可以發(fā)揮自己的想像力,設(shè)計(jì)更美觀的圖形。進(jìn)一步要求:若要顯示如圖2.2.7所示的圖形,程序要如何修改?圖2.2.6 實(shí)驗(yàn)2.6運(yùn)行界面 圖2.2.7 進(jìn)一步要求運(yùn)行界面Private Sub Command1_Click()PrintFor i = 1 To 5Print Tab(15 -
24、 i * 2); String(2 * i - 1, ""); String(10 - (2 * i - 1), ""); String(2 * i - 1, "")Next iEnd SubPrivate Sub Command2_Click()ClsEnd Sub實(shí)驗(yàn)2-7用InputBox輸入一個(gè)正實(shí)數(shù),用Print方法在一行上顯示出它的平方和平方根、立方和立方根,每個(gè)數(shù)保留三位小數(shù),其間有間隔。Private Sub command1_Click()x = Val(InputBox("輸入一個(gè)正實(shí)數(shù)", &
25、quot;計(jì)算", 0)pf = Format(x * x, "0.000")pfg = Format(Sqr(x), "0.000")lf = Format(x * x * x, "0.000")lfg = Format(x (1 / 3), "0.000")Print "平方為:" pf; Space(3); "平方根為:" pfg; Space(3); "立方為:" lf; Space(3); "立方根為:" lfgEn
26、d Sub實(shí)驗(yàn)3-1在購買某物品時(shí),若所標(biāo)明的價(jià)錢x在下述范圍內(nèi),所付錢y按對(duì)應(yīng)折扣支付:提示:此例用多分支結(jié)構(gòu)實(shí)現(xiàn),注意計(jì)算公式和條件表達(dá)式的正確書寫。Private Sub Form_Click()Dim x!, y!x = Val(InputBox("輸入x的值")If x < 1000 Theny = xElseIf x < 2000 Theny = 0.9 * xElseIf x < 3000 Theny = 0.8 * xElsey = 0.7 * xEnd IfPrint yEnd Sub實(shí)驗(yàn)3-2編一個(gè)程序輸入上網(wǎng)的時(shí)間并計(jì)算上網(wǎng)費(fèi)用,計(jì)算
27、方法如下:同時(shí)為了鼓勵(lì)多上網(wǎng),每月收費(fèi)最多不超過150元。提示:首先利用多分支If語句根據(jù)3個(gè)時(shí)間段算出費(fèi)用,然后再用單分支If語句對(duì)超過150元的費(fèi)用設(shè)置為150元。Private Sub Form_Click()Dim x!, y!x = Val(InputBox("輸入上網(wǎng)時(shí)間")If x < 10 Theny = 30ElseIf x < 50 Theny = 30 + 2.5 * (x - 10)Elsey = 30 + 2.5 * 40 + 2 * (x - 50)End IfIf y > 150 Theny = 150End IfPrint
28、yEnd Sub實(shí)驗(yàn)3-3輸入x,y,z三個(gè)數(shù),按從大到小的次序顯示,如圖2.3.1所示。圖2.3.1 實(shí)驗(yàn)3.3運(yùn)行界面提示:利用InputBox函數(shù)輸入3個(gè)數(shù),存放到數(shù)值型變量中,然后對(duì)其進(jìn)行比較;若放在字符串變量中,有時(shí)會(huì)得到不正確的結(jié)果(因?yàn)樽址菑淖蟮接业囊?guī)則比較,例如會(huì)出現(xiàn)“34”>“2345”>“126789”的情況)。對(duì)三個(gè)數(shù)進(jìn)行排序,只能通過兩兩比較,一般可用三條單分支if語句來實(shí)現(xiàn)。方法如下:先將x與y比較,使得x>y;然后將x與z比較,使得x>z,此時(shí)x最大;最后將y與z比較,使得y>z。要顯示多個(gè)數(shù)據(jù),可以用“;”逐一顯示,也可利用“&a
29、mp;”字符串連接符將多個(gè)變量連接顯示。例如要輸出x、y、z:Print ”排序后”;x;” ”;y;” ”;z 用分號(hào)將多個(gè)變量顯示也可Print ”排序后”& x &” ” & y &” ” &z 用”&”字符串連接符思考:若要按從小到大的次序顯示,程序?qū)⑷绾涡薷??Private Sub Command1_Click()Dim x!, y!, z!x = InputBox("input x")y = InputBox("input y")z = InputBox("input z")
30、Print " x y z"Print " 排序前" x; " " y; " " zIf x < y Then t = x: x = y: y = tIf x < z Then t = x: x = z: z = tIf y < z Then t = y: y = z: z = tPrint " 排序后" x; " " y; " " zEnd Sub實(shí)驗(yàn)3-4編一模擬袖珍計(jì)算器的完整程序,界面如圖2.3.2所示。要求:輸入兩個(gè)操作數(shù)和一個(gè)
31、操作符,根據(jù)操作符決定所做的運(yùn)算。圖2.3.2 實(shí)驗(yàn)3.4運(yùn)行界面提示:對(duì)于存放操作符的文本框Text3,利用Select Case語句實(shí)現(xiàn)相應(yīng)的運(yùn)算。Private Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""End SubPrivate Sub Text3_LostFocus()Select Case Trim(Text3)Case "+"Text4 = Val(Text1)
32、+ Val(Text2)Case "-"Text4 = Val(Text1) - Val(Text2)Case "*"Text4 = Val(Text1) * Val(Text2)Case "/"If Val(Text2) = 0 ThenMsgBox "分母為零,重新輸入"Text2 = ""Text2.SetFocusElseText4 = Val(Text1) / Val(Text2)End IfEnd SelectEnd Sub實(shí)驗(yàn)3-5利用計(jì)算機(jī)解決古代數(shù)學(xué)問題”雞兔同籠問題”。即已知
33、在同一個(gè)籠子里有總數(shù)為M只雞和兔,雞和兔的總腳數(shù)為N只,求雞和兔各有多少只?提示:雞、兔的只數(shù)通過已知輸入的M,N列出方程可解, 設(shè)雞為x只,兔為y只,則計(jì)算公式為:但不要求出荒唐的解(如3.5只雞、4.5只兔,或者求得的只數(shù)為負(fù)數(shù))。因此,在Text2_LostFocus事件中要考慮下面兩個(gè)條件:輸入的總腳數(shù)N必須是偶數(shù),否則提示數(shù)據(jù)錯(cuò)誤的原因,要求重新輸入數(shù)據(jù)。(使用求余方法判斷,即N Mod 2<>0)圖2.3.3 實(shí)驗(yàn)3.5運(yùn)行界面 若求出的只數(shù)為負(fù)數(shù),提示數(shù)據(jù)錯(cuò)誤的原因,如圖2.3.3所示,重新輸入數(shù)據(jù)。(使用總只數(shù)和總腳數(shù)的關(guān)系,即N>4*M Or N<2*
34、M )Private Sub Text2_LostFocus()Dim M%, N%, y%M = Val(Text1)N = Val(Text2)If N Mod 2 <> 0 ThenMsgBox ("腳數(shù)必須是偶數(shù)")Text2 = ""Text2.SetFocusElsey = N / 2 - MIf N > 4 * M Or N < 2 * M ThenMsgBox ("出現(xiàn)荒唐解,請(qǐng)重新輸入")Text2 = ""Text2.SetFocusElsey = N / 2 - MLa
35、bel2 = M - yLabel3 = yEnd IfEnd IfEnd Sub實(shí)驗(yàn)3-6輸入一元二次方程的ax2+bx+c=0的系數(shù)a,b,c,計(jì)算并輸出一元二次方程的兩個(gè)根x1,x2。界面如圖2.3.4所示。圖2.3.4 實(shí)驗(yàn)3.6運(yùn)行界面提示:要考慮實(shí)根,要求判斷b2-4*a*c>=0。Private Sub Command1_Click()Dim a!, b!, c!, x1!, x2!, de!a = Text1b = Text2c = Text3de = b * b - 4 * a * ct = 2 * aIf de = 0 ThenText4 = Format(-b /
36、t, "0.00")Text5 = Format(-b / t, "0.00")ElseIf de > 0 ThenText4 = Format(-b + Sqr(de) / t, "0.00")Text5 = Format(-b - Sqr(de) / t, "0.00")ElseText4 = Format(-b / t, "0.00") & "+" & Format(Sqr(Abs(de) / t, "0.00") &
37、"i"Text5 = Format(-b / t, "0.00") & "-" & Format(Sqr(Abs(de) / t, "0.00") & "i"End IfEnd SubPrivate Sub Command2_Click()Text1 = ""Text2 = ""Text3 = ""Text4 = ""Text5 = ""End Sub實(shí)驗(yàn)3-7檢查表達(dá)式輸
38、入中圓括號(hào)配對(duì)問題。要求對(duì)文本框輸入的算術(shù)表達(dá)式,檢驗(yàn)其圓括號(hào)配對(duì)情況,并給出相應(yīng)信息,如圖2.3.5所示。當(dāng)單擊“重置”按鈕,清除文本框輸入的內(nèi)容、窗體顯示的信息和計(jì)算,并對(duì)窗體級(jí)變量賦初值零,便于再次輸入和統(tǒng)計(jì)。提示:在過程外最上方聲明一個(gè)窗體級(jí)變量n,存放統(tǒng)計(jì)括號(hào)配對(duì)的情況;在Text1_KeyPress(KeyAscii As integer)事件過程中進(jìn)行如下處理:If Chr(KeyAscii)不是等號(hào) Then若是左括號(hào)”(”則n=n+1;若是右括號(hào)”)”則n=n-1;Else結(jié)束表達(dá)式輸入,對(duì)n的3種情況:=n、>0、<0用Print方法顯示相應(yīng)的信息End If用
39、一個(gè)嵌套的雙分支和內(nèi)嵌兩個(gè)多分支結(jié)構(gòu)來實(shí)現(xiàn)。Dim n!Private Sub Command1_Click()Text1.Text = ""n = 0ClsEnd SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If Chr(KeyAscii) <> "=" ThenIf Chr(KeyAscii) = "(" Thenn = n + 1End IfIf Chr(KeyAscii) = ")" Thenn = n - 1End IfElseIf n
40、= 0 ThenPrint "括號(hào)配對(duì)成功"ElseIf n > 0 ThenPrint "左括號(hào)多于右括號(hào)" & n & "個(gè),按“重置”按鈕,重新輸入"End IfIf n < 0 ThenPrint "右括號(hào)多于左括號(hào)" & -n & "個(gè),按“重置”按鈕,重新輸入"End IfEnd IfEnd IfEnd Sub實(shí)驗(yàn)3-8輸入一個(gè)數(shù)字(17),分別通過Select語句和Choose函數(shù)兩種方法用英文顯示對(duì)應(yīng)的星期一星期日,效果如圖所示:Pri
41、vate Sub Command1_Click()Select Case Trim(Text1)Case 1Label2 = "Monday"Case 2Label2 = "Tuesday"Case 3Label2 = "Wednesday"Case 4Label2 = "Thursday"Case 5Label2 = "Friday"Case 6Label2 = "Saturday"Case 7Label2 = "Sunday"Case Is >
42、7, Is < 1MsgBox "數(shù)字為17,重新輸入"Text1 = ""Text1.SetFocusEnd SelectEnd SubPrivate Sub Command2_Click()If Text1 > 7 Or Text1 < 1 ThenMsgBox "數(shù)字為17,重新輸入"Text1 = ""Text1.SetFocusElseLabel3 = Choose(Text1, "Monday", "Tuesday", "Wednesd
43、ay", "Thursday", "Friday", "Saturday", "Sunday")End IfEnd Sub實(shí)驗(yàn)3-9設(shè)計(jì)如圖2.3.6所示的計(jì)算程序。當(dāng)輸入?yún)?shù),選擇“函數(shù)”和“字形”后單擊“計(jì)算”按鈕,在Label3以選擇的字形顯示計(jì)算的結(jié)果。提示:關(guān)于“字形”復(fù)選框的選用采用逐個(gè)判斷選擇,進(jìn)行屬性值的對(duì)應(yīng)設(shè)置。字形的屬性見表2.3.1,設(shè)置屬性值為True時(shí)其屬性起作用。字 形 屬 性意義FontBold粗體FontItalic斜體FontStrikethru刪除線FontUnderl
44、ine下劃線圖2.3.6 實(shí)驗(yàn)3.9運(yùn)行界面Private Sub Command1_Click()If Option1.Value ThenLabel3.Caption = "Sin(" & Text1.Text & ")=" & Sin(Val(Text1.Text)ElseIf Option2.Value ThenLabel3.Caption = "Exp(" & Text1.Text & ")=" & Exp(Val(Text1.Text)ElseLabel3
45、.Caption = "Sqr(" & Text1.Text & ")=" & Sqr(Val(Text1.Text)End IfIf Check1.Value ThenLabel3.FontBold = TrueElseLabel3.FontBold = FalseEnd IfIf Check2.Value ThenLabel3.FontItalic = TrueElseLabel3.FontItalic = FalseEnd IfIf Check3.Value ThenLabel3.FontUnderline = TrueEl
46、seLabel3.FontUnderline = FalseEnd IfEnd Sub實(shí)驗(yàn)3-10利用單選按鈕,選擇目的地和車速類型,顯示從上海出發(fā)到目的地座票的票價(jià),如圖2.3.7所示。從上海到南京、北京乘火車有3種車速類型:高鐵(二等)、動(dòng)車、快車,座位票的票價(jià)見表2.3.2。當(dāng)選擇了目的地、車速類型單選按鈕后,在Label1控件顯示選擇的相關(guān)信息和車票價(jià)格。表2.3.2 票 價(jià)目 的 地高 鐵動(dòng) 車快 車南京1409347北京555410179圖2.3.7 實(shí)驗(yàn)3.10運(yùn)行界面提示:Command1_Click事件采用一個(gè)雙分支(目的地)結(jié)構(gòu)分別嵌套一個(gè)多分支(車速類型)來實(shí)現(xiàn);顯示的內(nèi)
47、容通過各單選按鈕的Caption屬性來獲得。Private Sub Command1_Click()If Option1.Value = True ThenIf Option3.Value = True ThenLabel1.Caption = "從上海到南京 高鐵價(jià)格 140元"ElseIf Option4.Value = True ThenLabel1.Caption = "從上海到南京 動(dòng)車價(jià)格 93元"ElseLabel1.Caption = "從上海到南京 快車價(jià)格 47元"End IfElseIf Option3.Valu
48、e = True ThenLabel1.Caption = "從上海到北京 高鐵價(jià)格 555元"ElseIf Option4.Value = True ThenLabel1.Caption = "從上海到北京 動(dòng)車價(jià)格 410元"ElseLabel1.Caption = "從上海到北京 快車價(jià)格 179元"End IfEnd IfEnd Sub實(shí)驗(yàn)3-11編寫一個(gè)“個(gè)人簡歷表”程序。該程序運(yùn)行后,用戶在文本框中輸入姓名和年齡,選擇性別、職業(yè)、學(xué)歷和個(gè)人興趣等個(gè)人信息。單擊“遞交”按鈕運(yùn)行后,在右側(cè)Label1控件顯示具體個(gè)人信息;單擊
49、“重置”按鈕則清除輸入的信息和所做的選擇。運(yùn)行界面如圖2.3.8所示。圖2.3.8 個(gè)人簡歷表提示:利用xb,xl,zy,ah字符串變量分別保存性別、學(xué)歷、職業(yè)和愛好的選擇信息。Dim xm, xb, xl, zy, ah As StringPrivate Sub command1_Click()If Text1.Text = "" ThenText1.SetFocusMsgBox "姓名未填", , "提示"Elsexm = Text1.TextEnd IfIf Not IsNumeric(Text2.Text) Or Val(Te
50、xt2.Text) < 18 Or Val(Text2.Text) >= 60 ThenText2.Text = ""Text2.SetFocusMsgBox "年齡輸入錯(cuò)誤", , "提示"Elsenl = Val(Text2.Text)End IfIf Option1.Value Thenxb = Label4.CaptionElseIf Option2.Value Thenxb = Label5.CaptionElseMsgBox "性別未選", , "提示"End IfIf
51、Option3.Value Thenxl = Label6.CaptionElseIf Option4.Value Thenxl = Label7.CaptionElseIf Option5.Value Thenxl = Label8.CaptionElseMsgBox "學(xué)歷未選", , "提示"End IfIf Option6.Value Thenzy = Label9.CaptionElseIf Option7.Value Thenzy = Label10.CaptionElseIf Option8.Value Thenzy = Label11.C
52、aptionElseMsgBox "職業(yè)未選", , "提示"End IfIf Check1.Value Thenah = Label12.CaptionElseah = ""End IfIf Check2.Value Thenah = Label13.Caption + " " + ahElseah = ah + " "End IfIf Check3.Value Thenah = Label14.Caption + " " + ahElseah = ah + "
53、"End IfIf Check4.Value Thenah = Label15.Caption + " " + ahElseah = ah + " "End IfLabel3.Caption = "簡歷" & vbCrLf & "姓名:" & xm & vbCrLf & "年齡:" & nl & vbCrLf & "性別:" & xb & vbCrLf & "學(xué)歷:&q
54、uot; & xl & vbCrLf & "職業(yè):" & zy & vbCrLf & "愛好:" & ahEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Label3.Caption = ""Option1.Value = FalseOption2.Value = FalseOption3.Value = FalseOption4.Value = FalseO
55、ption5.Value = FalseOption6.Value = FalseOption7.Value = FalseOption8.Value = FalseCheck1.Value = FalseCheck2.Value = FalseCheck3.Value = FalseCheck4.Value = FalseEnd Sub實(shí)驗(yàn)4-1用單循環(huán)和Print方法顯示有規(guī)律的圖形,可通過Form_Click事件實(shí)現(xiàn),如圖2.4.1所示。 提示: (1)對(duì)于特殊字符""、""通過漢字標(biāo)準(zhǔn)輸入的軟鍵盤菜單中的"特殊符號(hào)"命令來實(shí)現(xiàn)
56、。(2)用String(n, "")函數(shù)產(chǎn)生重復(fù)字符串,如:String(5, "")將產(chǎn)生""。(3)通過循環(huán)結(jié)構(gòu)確定顯示的起始位Tab(20-2*i),顯示有規(guī)律的子串,"" 的列寬約為2。圖2.4.1 實(shí)驗(yàn)4 .1運(yùn)行界面Private Sub Form_Click()For i = 1 To 9Print Tab(20 - 2 * i); String(2 * i - 1, "")Next iEnd Sub實(shí)驗(yàn)4-2用單循環(huán)實(shí)現(xiàn)如圖2.4.2所示的界面。 圖2.4.2 實(shí)驗(yàn)4.2運(yùn)行界面
57、提示:利用Chr函數(shù)將字母編碼值轉(zhuǎn)換成字母。Private Sub Form_Click()For i = 1 To 10 Step 1Print Tab(i); String(20 - 2 * i), Chr(64 + i)Next iEnd Sub實(shí)驗(yàn)4-3求s=1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+n)。要求:用For單循環(huán)求前30項(xiàng)和。用Until求多項(xiàng)式和,直到和大于5000為止。運(yùn)行效果如圖2.4.3所示。圖2.4.3 實(shí)驗(yàn)4.3運(yùn)行界面Private Sub Command1_Click()Dim s As Double, x As Double,
58、 i As Integer, j As Integers = 0For i = 1 To 30x = 0For j = 1 To ix = x + 1s = s + xNext jNext iLabel1.Caption = "前30項(xiàng)的和=" & sEnd SubPrivate Sub command2_Click()Dim i As Long, s As Double, x As Doublei = 1s = 1x = 1Doi = i + 1x = x + is = s + xLoop Until (s > 5000)Label2.Caption = &
59、quot;前" & i & "項(xiàng)的和=" & sEnd Sub實(shí)驗(yàn)4-4篩選在Text1文本框輸入的字母字符,并反序在Text2中存放,界面如圖2.4.4所示。圖2.4.4 實(shí)驗(yàn)4.4運(yùn)行界面提示: 要考慮字母的大寫和小寫。 首先利用Len函數(shù)求Text1.Text字符串長度,然后利用For循環(huán)結(jié)構(gòu)和Mid函數(shù)逐一取字符進(jìn)行判斷是否為字母,若是字母,則利用語句“Text2.Text=字母 & Text2.Text”將字母連接到Text文本框前面,實(shí)現(xiàn)反序。思考:若連接表達(dá)式為“Text2.Text & =字母”,效果如何?P
60、rivate Sub Command1_Click()Text2.Text = ""For i = 1 To Len(Text1.Text)Text2.Text = Mid(Text1.Text, i, 1) & Text2.TextNext iEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""End SubPrivate Sub Command3_Click()EndEnd Sub實(shí)驗(yàn)4-5計(jì)算當(dāng)?shù)趇項(xiàng)的值<10-4時(shí)結(jié)束提示:本題的關(guān)鍵是找規(guī)律寫通項(xiàng)。本題規(guī)律為:第i項(xiàng)的分母是前一項(xiàng)的分母加i,即分母通項(xiàng)為:Ti=Ti-1+i。因?yàn)槭孪炔恢h(huán)次數(shù),應(yīng)使用Do While循環(huán)結(jié)構(gòu);當(dāng)然也可利用For循環(huán)結(jié)構(gòu),設(shè)置循環(huán)的終值為一個(gè)較大的值,當(dāng)滿足精度后退出循環(huán)。運(yùn)行結(jié)果如圖2.4.5所示。圖2.4.5 實(shí)驗(yàn)4.5運(yùn)行界面Dim s!, t!,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中生借助可再生能源技術(shù)設(shè)計(jì)可持續(xù)校園方案的課題報(bào)告教學(xué)研究課題報(bào)告
- 2025年汽車維修企業(yè)財(cái)務(wù)管理制度
- 信息軟件公司子公司管理制度
- 橋梁施工質(zhì)量管理標(biāo)準(zhǔn)流程
- 養(yǎng)生館公司章程標(biāo)準(zhǔn)文本范例
- 藥師心理健康與職業(yè)壓力管理
- 企業(yè)薪酬激勵(lì)機(jī)制設(shè)計(jì)案例分析
- 飲食中脂肪含量明細(xì)表與健康指導(dǎo)
- 連鎖超市商品庫存盤點(diǎn)標(biāo)準(zhǔn)流程
- 慢性疾病患者腹瀉診療流程指南
- 2026浙江寧波市鄞州人民醫(yī)院醫(yī)共體云龍分院編外人員招聘1人筆試參考題庫及答案解析
- (2025年)新疆公開遴選公務(wù)員筆試題及答案解析
- 直銷公司旅游獎(jiǎng)勵(lì)方案
- 2026年當(dāng)兵軍事理論訓(xùn)練測試題及答案解析
- 浙江省嘉興市2024-2025學(xué)年高二上學(xué)期期末檢測政治試題(含答案)
- 2026年湖南民族職業(yè)學(xué)院單招綜合素質(zhì)筆試備考試題附答案詳解
- 上海市上海中學(xué)2025年數(shù)學(xué)高一第一學(xué)期期末檢測試題含解析
- 平安融資租賃協(xié)議書
- 2025年度廚房用品市場調(diào)研:鍋碗瓢盆、廚具工具及烹飪需求分析
- 醫(yī)療安全(不良)事件根本原因分析法活動(dòng)指南團(tuán)體標(biāo)準(zhǔn)2025
- 數(shù)字化工廠方案
評(píng)論
0/150
提交評(píng)論