Visual Basic程序設(shè)計教程(第4版)實驗答案_第1頁
Visual Basic程序設(shè)計教程(第4版)實驗答案_第2頁
Visual Basic程序設(shè)計教程(第4版)實驗答案_第3頁
Visual Basic程序設(shè)計教程(第4版)實驗答案_第4頁
Visual Basic程序設(shè)計教程(第4版)實驗答案_第5頁
已閱讀5頁,還剩124頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、聲明:1. 實驗所屬課本原件為visual basic程序設(shè)計教程(第4版) (主編 龔沛曾 編者 楊志強 陸慰民 謝步瀛) ;2. 實驗答案代碼采用紅色字體突出 ;3. 僅提供課本前七個實驗的代碼,之后的實驗上課考試均不涉及故不作 ;4. 教學(xué)平臺上機實驗、課本篇后實驗,兩者題目操作略有差異,作業(yè)以前者要求為準(zhǔn),故以下答案代碼為前者代碼,如對后者代碼有所需求請私信 ;5. 本文為作者原創(chuàng),復(fù)制轉(zhuǎn)載請注明出處 ;6. 如果對代碼有所疑問,或者略感繁瑣想直接要已完成實驗,請私信 ;7. 瀏覽、復(fù)制、下載后請給作者一個合理的評價,感激不盡 。實驗1-1編制簡單的歡迎界面程序。 要求:在屏幕上顯示“

2、歡迎學(xué)習(xí)visual basic”;在文本框text1中輸入姓名;單擊命令按鈕“你輸入的姓名是”,在label3標(biāo)簽顯示在文本框中輸入的姓名。 程序運行效果如圖2.1.1所示。程序以“學(xué)號-1-1.frm”和“學(xué)號-1-1.vbp”文件名保存。以后每個實驗項目的命名規(guī)則都是如此,即“學(xué)號-實驗號-實驗題目”。(如某同學(xué)的學(xué)號為a10414001,所完成的是實驗2的第3題,那么程序文件名為“a10414001-2-3.frm”和“a10414001-2-3.vbp”) 圖2.1.1 實驗1.1運行界面提示: (1) 實驗所用到的控件及屬性設(shè)置見表2.1.1。表2.1.1 屬 性 設(shè) 置控件名屬

3、性label1caption="歡迎學(xué)習(xí)visual basic";font屬性:字號為二號,字體為隸書,aligment=2(居中)label2caption="請輸入你的姓名";font屬性:字體為楷體,有下劃線label3caption="",borderstyle=1text1text=""command1caption="你輸入的姓名是"(2) “歡迎學(xué)習(xí)visual basic”要在兩行顯示,只要將label1控件的寬度縮小一些。private sub command1_click(

4、)label3.caption = text1.textend sub實驗1-2模仿教學(xué)篇例1.1,將事件過程中的自上而下移動改為自右向左移動,同時考慮文字超出窗體邊界的情況。各個控件及屬性窗口的設(shè)置見表2.1.2,背景圖形文件可以選擇自己喜歡的,按鈕上的圖標(biāo)可通過windows搜索功能查找。以“學(xué)號-1-2”為項目名保存。表2.1.2 屬 性 設(shè) 置控件名屬 性form1caption="實驗1.2";picture:選擇自己喜歡的圖片label1caption="我開始學(xué)習(xí)程序設(shè)計";fontsize=36;backstyle=0command1ca

5、ption="";style=1;picture="clock02.ico";tooltiptext"自動"command2caption="";style=1;picture="key04.ico";tooltiptext"手動"timer1interval=0注:因為印刷錯誤,例題1.1中兩個命令按鈕的圖形與事件過程代碼不一致,需要調(diào)整。提示: 自定義事件過程mymove代碼應(yīng)調(diào)整為,可實現(xiàn)文字移動方向的改變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實驗1-3編一個程序,在文本框中統(tǒng)計在該窗口上鼠標(biāo)單擊的次數(shù),效果如圖2.1.2所示。以“學(xué)號-1-3”為項目名保存。圖2.1.2 實驗1.3運行界面提示:(1) 對窗體編寫兩個事件:form_load 事件中對文本框置初值為空;form_click事件對鼠標(biāo)單擊文本框計數(shù)。(2) 對鼠標(biāo)單擊文本框計數(shù)計算為:text1.text=val(text1.text)+1private sub

8、form_click()text1.text = val(text1.text) + 1end subprivate sub form_load()text1.text = ""end sub實驗1-4按照教學(xué)篇例2.2對窗體三個事件過程(load、click、dblclick)編程,在3個事件中裝入不同的圖片(自己選擇);在屬性窗口練習(xí)鼠標(biāo)指針改變:mousepointer(值為99,用戶自定義)、mouseicon為key04.ico圖標(biāo)文件,練習(xí)窗體圖標(biāo)(icon)、邊框線類型(borderstyle)、最大化按鈕和最小化按鈕的改變,運行觀察其效果。以“學(xué)號-1-4”

9、為項目名保存。提示:例題中form_resize事件可以不考慮,picture屬性設(shè)置中注意圖片文件有后綴名,運行測試前需要先保存項目名,保證圖片文件和程序文件在同一個文件夾下,否則會出現(xiàn)圖片找不到的錯誤提示。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實驗1-5命令按鈕、字號、內(nèi)容和格式的復(fù)制練習(xí),效果如下圖所示。有關(guān)控件及屬性參見下表。以“學(xué)號-1-5”為項目名保存。圖2.1.3 實驗1.5運行界面表2.1.3 屬 性 設(shè) 置控件名

11、屬 性form1caption="實驗1.5"label1caption="輸入文本 復(fù)制文本"text1text="vb功能強大,但要下功夫?qū)W習(xí)才能學(xué)好";multiline=true;scrollbar=2text2text="";multiline=truecommand1caption="隸書25磅"command2caption="復(fù)制=>"要求:(1) command1:使得text1的字體和字號根據(jù)命令按鈕顯示的要求改變(2) command2:要求將te

12、xt1選中的內(nèi)容及其格式復(fù)制到text2。選中的內(nèi)容通過text1的seltext屬性獲得提示:為使text2文本框保持text1中的字符格式,通過text2.fontsize=text1.fontsize和text2.fontname=text1.fontname實現(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實驗1-6圖片縮小、還原的設(shè)置。窗體上放置一個image圖像控件和兩個命令按鈕。image圖像控件裝入自己喜歡的圖片,設(shè)置stretch屬性為true,使得圖片隨著圖像控件的大小而變,如圖2.1.4所示。以“學(xué)號-1-6”為項目名保存。圖2.1.4 實驗1.6運行界面要求:(1)單擊“縮小一半”按鈕,圖片縱、橫均縮小一半。(2)單擊“還原”按鈕,圖片與初始裝入時同大。提示:為了實現(xiàn)還原效果,要做以下3件事。(1)必須在事件過程外,即程序代碼最上方聲明窗體級變量:dim h%,w% 用戶輸入的變量聲明語句(2)在form

14、1_load事件中保存圖像控件的初始值:w=image1.widthh=image1.height(3)在command2_click事件中還原為初始值:image1.width=wimage1.height=h縮小一半command1_click事件請讀者自行完成。思考:若要設(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實驗2-1隨機生成3個正整數(shù),其中一個1位數(shù),1個2位數(shù),1個3位數(shù),計算它們的平均值,保留兩位小數(shù),運行界面如圖2.2.1所示。圖2.2.1 實驗2.1運行界面提示:(1)隨機數(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實驗2-2我國有13億人口,假定按人口年增長0.8%計算,多少年后我國人口超過26億。提示:(1)已知年增長率r=0.8%,求人數(shù)超過26億的年數(shù)n公式為:其中:log(x)為對數(shù)函數(shù),log(2)緣由log(13/26),0.8%需寫成0.008(2)該題目的界面設(shè)計 由讀者自行設(shè)計。private sub comman

18、d1_click()n = int(log(2) / log(1 + 0.008) + 1)text1 = n & "年后人口超過26億"end sub實驗2-3輸入一個合法的3位正整數(shù),測試其數(shù)值合法性后,逆序輸出并顯示。例如,輸入“734”,輸出是“437”,如圖2.2.2所示。提示:(1)利用text1_lostfocus事件,輸入數(shù)據(jù)合法性檢查調(diào)用isnumeric函數(shù),參閱教學(xué)篇例2.5;若有錯利用msgbox顯示出錯信息,如圖2.2.3所示;清除文本框內(nèi)輸入的非法數(shù)據(jù),通過setfocus定位于文本框處,重新輸入。(2)利用“mod”和“”運算符將一個3

19、位數(shù)分離出3個1位數(shù),然后利用乘法和加法運算將3個1位數(shù)連接成一個逆序的3位數(shù)。圖2.2.2 實驗2.3運行界面 圖2.2.3 出錯信息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ù),請重新輸入", , "數(shù)據(jù)檢驗"text1.text = ""text1.setfocusend ifend sub實驗2-4輸入一個字符串,分別調(diào)用ucase、len、mid、left、right函數(shù),顯示如圖2.2.4所示的效果。圖2.2.4 實驗2.4運行界面提示

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實驗2-5效仿實驗2.4,驗證轉(zhuǎn)換函數(shù)的使用,text1文本框輸入字符串,text2文本框顯示調(diào)用所選函數(shù)的結(jié)果,4個命令按鈕為轉(zhuǎn)換函數(shù),label2顯示對應(yīng)的函數(shù)名,運行效果如圖2.2.5所示。圖2.2.5 實驗2.5

22、運行界面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實驗2-6print方法練習(xí),顯示字符圖形。參考教學(xué)篇例4.4輸出簡單圖形,如圖2.2.6所示。要求窗體不可改變大小,當(dāng)單擊“清屏”按鈕后,清除窗體所顯示的圖形。提示:利用循環(huán)語句和string函數(shù)。讀者也可以發(fā)揮自己的想像力,設(shè)計更美觀的圖形。進一步要求:若要顯示如圖2.2.7所示的圖形,程序要如何修改?圖2.2.6 實驗2.6運行界面 圖2.2.7 進一步要求運行界面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實驗2-7用inputbox輸入一個正實數(shù),用print方法在一行上顯示出它的平方和平方根、立方和立方根,每個數(shù)保留三位小數(shù),其間有間隔。private sub command1_click()x = val(inputbox("輸入一個正實數(shù)", &

25、quot;計算", 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實驗3-1在購買某物品時,若所標(biāo)明的價錢x在下述范圍內(nèi),所付錢y按對應(yīng)折扣支付:提示:此例用多分支結(jié)構(gòu)實現(xiàn),注意計算公式和條件表達(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實驗3-2編一個程序輸入上網(wǎng)的時間并計算上網(wǎng)費用,計算

27、方法如下:同時為了鼓勵多上網(wǎng),每月收費最多不超過150元。提示:首先利用多分支if語句根據(jù)3個時間段算出費用,然后再用單分支if語句對超過150元的費用設(shè)置為150元。private sub form_click()dim x!, y!x = val(inputbox("輸入上網(wǎng)時間")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實驗3-3輸入x,y,z三個數(shù),按從大到小的次序顯示,如圖2.3.1所示。圖2.3.1 實驗3.3運行界面提示:利用inputbox函數(shù)輸入3個數(shù),存放到數(shù)值型變量中,然后對其進行比較;若放在字符串變量中,有時會得到不正確的結(jié)果(因為字符串是從左到右的規(guī)則比較,例如會出現(xiàn)“34”>“2345”>“126789”的情況)。對三個數(shù)進行排序,只能通過兩兩比較,一般可用三條單分支if語句來實現(xiàn)。方法如下:先將x與y比較,使得x>y;然后將x與z比較,使得x>z,此時x最大;最后將y與z比較,使得y>z。要顯示多個數(shù)據(jù),可以用“;”逐一顯示,也可利用“&a

29、mp;”字符串連接符將多個變量連接顯示。例如要輸出x、y、z:print ”排序后”;x;” ”;y;” ”;z 用分號將多個變量顯示也可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實驗3-4編一模擬袖珍計算器的完整程序,界面如圖2.3.2所示。要求:輸入兩個操作數(shù)和一個

31、操作符,根據(jù)操作符決定所做的運算。圖2.3.2 實驗3.4運行界面提示:對于存放操作符的文本框text3,利用select case語句實現(xiàn)相應(yīng)的運算。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實驗3-5利用計算機解決古代數(shù)學(xué)問題”雞兔同籠問題”。即已知

33、在同一個籠子里有總數(shù)為m只雞和兔,雞和兔的總腳數(shù)為n只,求雞和兔各有多少只?提示:雞、兔的只數(shù)通過已知輸入的m,n列出方程可解, 設(shè)雞為x只,兔為y只,則計算公式為:但不要求出荒唐的解(如3.5只雞、4.5只兔,或者求得的只數(shù)為負(fù)數(shù))。因此,在text2_lostfocus事件中要考慮下面兩個條件:輸入的總腳數(shù)n必須是偶數(shù),否則提示數(shù)據(jù)錯誤的原因,要求重新輸入數(shù)據(jù)。(使用求余方法判斷,即n mod 2<>0)圖2.3.3 實驗3.5運行界面 若求出的只數(shù)為負(fù)數(shù),提示數(shù)據(jù)錯誤的原因,如圖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)荒唐解,請重新輸入")text2 = ""text2.setfocuselsey = n / 2 - mla

35、bel2 = m - ylabel3 = yend ifend ifend sub實驗3-6輸入一元二次方程的ax2+bx+c=0的系數(shù)a,b,c,計算并輸出一元二次方程的兩個根x1,x2。界面如圖2.3.4所示。圖2.3.4 實驗3.6運行界面提示:要考慮實根,要求判斷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實驗3-7檢查表達(dá)式輸

38、入中圓括號配對問題。要求對文本框輸入的算術(shù)表達(dá)式,檢驗其圓括號配對情況,并給出相應(yīng)信息,如圖2.3.5所示。當(dāng)單擊“重置”按鈕,清除文本框輸入的內(nèi)容、窗體顯示的信息和計算,并對窗體級變量賦初值零,便于再次輸入和統(tǒng)計。提示:在過程外最上方聲明一個窗體級變量n,存放統(tǒng)計括號配對的情況;在text1_keypress(keyascii as integer)事件過程中進行如下處理:if chr(keyascii)不是等號 then若是左括號”(”則n=n+1;若是右括號”)”則n=n-1;else結(jié)束表達(dá)式輸入,對n的3種情況:=n、>0、<0用print方法顯示相應(yīng)的信息end if用

39、一個嵌套的雙分支和內(nèi)嵌兩個多分支結(jié)構(gòu)來實現(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 "括號配對成功"elseif n > 0 thenprint "左括號多于右括號" & n & "個,按“重置”按鈕,重新輸入"end ifif n < 0 thenprint "右括號多于左括號" & -n & "個,按“重置”按鈕,重新輸入"end ifend ifend ifend sub實驗3-8輸入一個數(shù)字(17),分別通過select語句和choose函數(shù)兩種方法用英文顯示對應(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實驗3-9設(shè)計如圖2.3.6所示的計算程序。當(dāng)輸入?yún)?shù),選擇“函數(shù)”和“字形”后單擊“計算”按鈕,在label3以選擇的字形顯示計算的結(jié)果。提示:關(guān)于“字形”復(fù)選框的選用采用逐個判斷選擇,進行屬性值的對應(yīng)設(shè)置。字形的屬性見表2.3.1,設(shè)置屬性值為true時其屬性起作用。字 形 屬 性意義fontbold粗體fontitalic斜體fontstrikethru刪除線fontunderl

44、ine下劃線圖2.3.6 實驗3.9運行界面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實驗3-10利用單選按鈕,選擇目的地和車速類型,顯示從上海出發(fā)到目的地座票的票價,如圖2.3.7所示。從上海到南京、北京乘火車有3種車速類型:高鐵(二等)、動車、快車,座位票的票價見表2.3.2。當(dāng)選擇了目的地、車速類型單選按鈕后,在label1控件顯示選擇的相關(guān)信息和車票價格。表2.3.2 票 價目 的 地高 鐵動 車快 車南京1409347北京555410179圖2.3.7 實驗3.10運行界面提示:command1_click事件采用一個雙分支(目的地)結(jié)構(gòu)分別嵌套一個多分支(車速類型)來實現(xiàn);顯示的內(nèi)

47、容通過各單選按鈕的caption屬性來獲得。private sub command1_click()if option1.value = true thenif option3.value = true thenlabel1.caption = "從上海到南京 高鐵價格 140元"elseif option4.value = true thenlabel1.caption = "從上海到南京 動車價格 93元"elselabel1.caption = "從上海到南京 快車價格 47元"end ifelseif option3.valu

48、e = true thenlabel1.caption = "從上海到北京 高鐵價格 555元"elseif option4.value = true thenlabel1.caption = "從上海到北京 動車價格 410元"elselabel1.caption = "從上海到北京 快車價格 179元"end ifend ifend sub實驗3-11編寫一個“個人簡歷表”程序。該程序運行后,用戶在文本框中輸入姓名和年齡,選擇性別、職業(yè)、學(xué)歷和個人興趣等個人信息。單擊“遞交”按鈕運行后,在右側(cè)label1控件顯示具體個人信息;單擊

49、“重置”按鈕則清除輸入的信息和所做的選擇。運行界面如圖2.3.8所示。圖2.3.8 個人簡歷表提示:利用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 "年齡輸入錯誤", , "提示"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實驗4-1用單循環(huán)和print方法顯示有規(guī)律的圖形,可通過form_click事件實現(xiàn),如圖2.4.1所示。 提示: (1)對于特殊字符""、""通過漢字標(biāo)準(zhǔn)輸入的軟鍵盤菜單中的"特殊符號"命令來實現(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 實驗4 .1運行界面private sub form_click()for i = 1 to 9print tab(20 - 2 * i); string(2 * i - 1, "")next iend sub實驗4-2用單循環(huán)實現(xiàn)如圖2.4.2所示的界面。 圖2.4.2 實驗4.2運行界面

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實驗4-3求s=1+(1+2)+(1+2+3)+(1+2+3+4)+(1+2+3+4+n)。要求:用for單循環(huán)求前30項和。用until求多項式和,直到和大于5000為止。運行效果如圖2.4.3所示。圖2.4.3 實驗4.3運行界面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項的和=" & 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 & "項的和=" & send sub實驗4-4篩選在text1文本框輸入的字母字符,并反序在text2中存放,界面如圖2.4.4所示。圖2.4.4 實驗4.4運行界面提示: 要考慮字母的大寫和小寫。 首先利用len函數(shù)求text1.text字符串長度,然后利用for循環(huán)結(jié)構(gòu)和mid函數(shù)逐一取字符進行判斷是否為字母,若是字母,則利用語句“text2.text=字母 & text2.text”將字母連接到text文本框前面,實現(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實驗4-5計算當(dāng)?shù)趇項的值<10-4時結(jié)束提示:本題的關(guān)鍵是找規(guī)律寫通項。本題規(guī)律為:第i項的分母是前一項的分母加i,即分母通項為:ti=ti-1+i。因為事先不知循環(huán)次數(shù),應(yīng)使用do while循環(huán)結(jié)構(gòu);當(dāng)然也可利用for循環(huán)結(jié)構(gòu),設(shè)置循環(huán)的終值為一個較大的值,當(dāng)滿足精度后退出循環(huán)。運行結(jié)果如圖2.4.5所示。圖2.4.5 實驗4.5運行界面dim s!, t!,

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論