vb程序設(shè)計(jì)實(shí)驗(yàn)部分_第1頁(yè)
vb程序設(shè)計(jì)實(shí)驗(yàn)部分_第2頁(yè)
vb程序設(shè)計(jì)實(shí)驗(yàn)部分_第3頁(yè)
vb程序設(shè)計(jì)實(shí)驗(yàn)部分_第4頁(yè)
vb程序設(shè)計(jì)實(shí)驗(yàn)部分_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、- 1 - 實(shí)驗(yàn)一visual basic程序設(shè)計(jì)初步一、實(shí)驗(yàn)?zāi)康? 了解 visual basic系統(tǒng)對(duì)計(jì)算機(jī)軟、硬件的要求。2 掌握 visual basic的啟動(dòng)和退出方法。3 熟悉 visual basic的集成開發(fā)環(huán)境。4 掌握建立、編輯、運(yùn)行、調(diào)試和保存一個(gè)簡(jiǎn)單的visual basic應(yīng)用程序的全過(guò)程。5 掌握常用控件(窗體、文本框、標(biāo)簽、命令按鈕)的應(yīng)用。二、實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn) 1.1 啟動(dòng) visual basic 6.0,創(chuàng)建一個(gè)“標(biāo)準(zhǔn)exe ”類型的應(yīng)用程序。【實(shí)驗(yàn)要求】1通過(guò)在屬性窗口中對(duì)各控件屬性進(jìn)行設(shè)置而不編寫代碼,程序運(yùn)行后,在屏幕上顯示“歡迎您使用visual bas

2、ic6.0”與“請(qǐng)輸入您的姓名”,屏幕設(shè)計(jì)的界面如圖1-1 所示。圖 1-1 實(shí)驗(yàn) 1.1 運(yùn)行時(shí)的界面2分別以sy1-1.frm和 sy1-1.vbp為文件名保存窗體文件和工程文件?!緦?shí)驗(yàn)步驟】1. 進(jìn)入 vb 環(huán)境,執(zhí)行“文件”“新建工程”命令,在其對(duì)話框中選擇“標(biāo)準(zhǔn)exe ” 。2. 在窗體上建立兩個(gè)標(biāo)簽、一個(gè)文本框;在屬性窗口中對(duì)各控件屬性進(jìn)行設(shè)置,見(jiàn)表1.1。表 1.1 屬性設(shè)置控件名屬性設(shè) 置form1 caption=歡迎使用 label1 caption=歡迎使用visual basic 6.0 fontsize (大?。?=16,fontbold(粗體) =truelabel

3、2 caption=請(qǐng)輸入您的姓名 ,forntsize=14 ,fontitalic (斜體) =true fontunderline(下劃線)=true text1 text=(空白)- 2 - 3執(zhí)行“運(yùn)行”“啟動(dòng)”命令或單擊工具欄上的運(yùn)行按鈕“” ,運(yùn)行程序;4. 光標(biāo)放置在text1中,這時(shí)您可輸入您的姓名;5執(zhí)行“文件”“保存”命令或單擊工具欄上的保存按鈕“” ,分別以sy1-1.frm和 sy1-1.vbp為文件名保存窗體文件和工程文件。提示 :( 1)兩個(gè)標(biāo)簽內(nèi)的字體大小、字形和字體效果等,均可在標(biāo)簽的屬性窗口中通過(guò)點(diǎn)擊font 屬性行右邊的按鈕“”打開字體對(duì)話框進(jìn)行設(shè)置。(

4、2) 在 label1控件中, 實(shí)現(xiàn)“歡迎使用visual basic 6.0 ”在兩行顯示,只須將label1控件的寬度縮小即可。實(shí)驗(yàn) 1.2 通過(guò)編程修改控件的屬性?!緦?shí)驗(yàn)要求】1. 程序的設(shè)計(jì)界面如圖1-2( a) 。2. 點(diǎn)擊“單擊此處”按鈕后程序運(yùn)行的界面如圖1-2( b) 。(a)(b)圖 1-2實(shí)驗(yàn) 1.2 運(yùn)行界面【實(shí)驗(yàn)步驟】1. 進(jìn)入 vb 環(huán)境,執(zhí)行“文件”“新建工程”命令,在其對(duì)話框中選擇“標(biāo)準(zhǔn)exe ” 。2. 在窗體中建立一個(gè)標(biāo)簽與一個(gè)命令按鈕,在屬性窗口中對(duì)各控件屬性按表1.2 “屬性設(shè)置值”列的要求進(jìn)行設(shè)置。3雙擊“單擊此處”按鈕(或者單擊“視圖”“代碼窗口”命令

5、)調(diào)出代碼窗口,在對(duì)象下拉列表框中選取控件對(duì)象名command1 ,在事件下拉列表框中選取click事件,進(jìn)入命令按鈕click事件過(guò)程。4在 commamd1_click()事件中編寫代碼,按表1.2 “屬性修改”列的要求修改各控件屬性。5執(zhí)行“運(yùn)行”“啟動(dòng)”命令,運(yùn)行程序,如無(wú)錯(cuò)轉(zhuǎn)入下一步。6. 執(zhí)行“文件”“保存”命令或單擊工具欄的保存按鈕“” ,分別以sy1-2.frm和 sy1-2.vbp為文件名保存窗體文件和工程文件。表 1.2 對(duì)象屬性設(shè)置和修改控件名屬性設(shè)置值屬性修改值form1 caption= 設(shè)計(jì)界面 caption= 編程后界面label1 caption= 請(qǐng)留意此處

6、caption= 歡迎您使用vb6.0 ! command1 caption= 單擊此處 caption= 運(yùn)行結(jié)果- 3 - 實(shí)驗(yàn)二vb 語(yǔ)言基礎(chǔ)一、實(shí)驗(yàn)?zāi)康?. 掌握 vb 的基本數(shù)據(jù)類型,熟悉vb 中常量的使用與變量的定義。2. 掌握vb的基本運(yùn)算,包括算術(shù)運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算等,熟悉各種運(yùn)算符的含義、優(yōu)先級(jí)別及使用方法。3. 掌握表達(dá)式的正確書寫規(guī)則,并通過(guò)上機(jī)操作驗(yàn)證各種表達(dá)式值的正確性。4. 掌握常用內(nèi)部函數(shù)的使用。5. 進(jìn)一步熟悉visual basic的集成開發(fā)環(huán)境。二、實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn) 2.1 在窗體中分別輸出一個(gè)整型、單精度型、字符型和邏輯型的數(shù)據(jù)?!緦?shí)驗(yàn)要求】1. 先定義

7、各種類型的變量,把各種常量值賦給相應(yīng)變量后再輸出。2. 改變各種變量的值后輸出。【實(shí)驗(yàn)步驟】1在窗體的單擊事件過(guò)程中輸入以下代碼:private sub form_click() print 123, 56.78, china, false end sub 2運(yùn)行此程序,單擊窗體,觀察運(yùn)行結(jié)果。3把窗體的單擊事件過(guò)程代碼修改為:private sub form_click() dim a as integer,b as single,c as string,d as boolean a=100 b=3.657 c= 中國(guó)桂林 d=true print a,b,c,d end sub 4運(yùn)行此程

8、序,單擊窗體,觀察運(yùn)行結(jié)果。實(shí)驗(yàn) 2.2 設(shè) a= 12,b=3,c=5.6 ,d=8.2,求下列表達(dá)式的值:( 1) ac+b3 mod c*d ( 2) ab and cd or bc and not bb and cd or bc and not bd 3觀察輸出結(jié)果。實(shí)驗(yàn) 2.3 設(shè) x=100 , a=123.45, b=visual basic,求下列函數(shù)的值。( 1) sqr(100) (2) val(a) (3) mid$(b,7,5) (4) asc(mid(b,5,1) 【實(shí)驗(yàn)要求】1. 掌握各種函數(shù)的含義及應(yīng)用。2. 在窗體中輸出各函數(shù)的值?!緦?shí)驗(yàn)步驟】1. 在窗體for

9、m_click的事件過(guò)程中輸入以下代碼:x=100 a=123.45 b=visual basic print sqr(x) print val(a) print mid$(b,7,5) print asc(mid(b,5,1) 2. 運(yùn)行程序,單擊窗體,觀察輸出結(jié)果。3. 修改數(shù)據(jù)及代碼,對(duì)其他常用函數(shù)如abs 、 chr、 str 等進(jìn)行求值輸出。實(shí)驗(yàn) 2.4 利用隨機(jī)函數(shù)rnd 生成 131 之間的任意整數(shù)(包括1 和 31) ?!緦?shí)驗(yàn)要求】1. 掌握隨機(jī)函數(shù)及其他常用函數(shù)的書寫格式。2. 熟悉隨機(jī)函數(shù)與int 函數(shù)配合使用生成任意整數(shù)的方法產(chǎn)生一定范圍內(nèi)的隨機(jī)整數(shù)。該方法為:int (

10、 rnd* (上限 -下限 +1)下限) ?!緦?shí)驗(yàn)步驟】1. 在立即窗口中輸入:n= int ( rnd*31+1 )print n 2. 按回車鍵后,觀察n 的值。3. 重復(fù)上述步驟1 和步驟2,再觀察隨機(jī)數(shù)n 的值是否發(fā)生了變化。如果n 值不變化,輸入語(yǔ)句randomize 使隨機(jī)數(shù)發(fā)生改變。- 5 - 4. 修改程序生成5588 之間的任意整數(shù)。實(shí)驗(yàn) 2.5 格式輸出函數(shù)format 的使用?!緦?shí)驗(yàn)要求】1. 掌握格式輸出函數(shù)format 的格式。2. 能夠按照指定格式要求,熟練使用格式輸出函數(shù)format 正確輸出數(shù)值型數(shù)據(jù)、字符型數(shù)據(jù)和時(shí)間/日期型數(shù)據(jù)等?!緦?shí)驗(yàn)步驟】1在窗體的單擊事

11、件過(guò)程中輸入以下代碼:private sub form_click() print format ( 12345,#)print format ( 12345,# )print format ( 12345 , 0000000 )print format ( 185.469,#.#)print format ( 185.469,#.#)print format ( 12345.66,#,#.#)print format ( 0.1235,00.0%)print format ( 1234.5,$#.#)print format ( 123.456,0.00e+00)print format (

12、 123.456,0.00e-00)end sub 2運(yùn)行此程序,單擊窗體,觀察運(yùn)行結(jié)果。3把窗體的單擊事件過(guò)程代碼修改成如下形式:private sub form_click() print format ( china guilin, )print format ( china guilin, )print format ( china guilin, &)end sub 4運(yùn)行此程序,單擊窗體,觀察運(yùn)行結(jié)果。5把窗體的單擊事件過(guò)程代碼修改成如下形式:private sub form_click() t1 = time d1 = date print format(d1, m/d/

13、yy) print format(d1, mmmm dddd yyyy) print format(t1, h m s am/pm) print format(t1, hh: mm: ss a/p) print format(d1, dddddd) print formatdatetime(now, 4) print now end sub 6運(yùn)行此程序,單擊窗體,觀察運(yùn)行結(jié)果。- 6 - 實(shí)驗(yàn)三基本控制結(jié)構(gòu)一、實(shí)驗(yàn)?zāi)康?掌握賦值語(yǔ)句的使用。2掌握數(shù)據(jù)的基本輸入與輸出方法。3掌握順序結(jié)構(gòu)程序的編寫與運(yùn)行。4掌握選擇結(jié)構(gòu)程序的編寫與運(yùn)行。熟練使用if 語(yǔ)句實(shí)現(xiàn)單分支、雙分支選擇結(jié)構(gòu),用 if 語(yǔ)

14、句或select case 語(yǔ)句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)。5掌握循環(huán)結(jié)構(gòu)程序的編寫與運(yùn)行。熟練使用for 計(jì)數(shù)型循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)次數(shù)已知的循環(huán)結(jié)構(gòu);熟練使用do loop 條件型循環(huán)語(yǔ)句實(shí)現(xiàn)循環(huán)次數(shù)事先無(wú)法確定的循環(huán)結(jié)構(gòu)。二、實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn) 3.1 求圓的面積及其圓柱體的體積?!緦?shí)驗(yàn)要求】1. 運(yùn)行界面如圖3-1 所示。運(yùn)行開始時(shí),在文本框1 中輸入圓的半徑,在文本框2 中輸入圓柱體的高。圓柱體以所輸入的圓為底面。2. 單擊“求圓面積”命令按鈕后,在文本框3 中顯示圓的面積;單擊“求圓柱體積”命令按鈕后,在文本框4 中顯示圓柱的體積。圖 3-1 實(shí)驗(yàn) 3.1 運(yùn)行界面【實(shí)驗(yàn)步驟】1界面設(shè)計(jì)( 1)在窗

15、體form1 中添加四個(gè)文本框控件text1text4 ,并分別把它們的text 屬性設(shè)置為空白。( 2)在窗體form1 中添加四個(gè)標(biāo)簽label1label4,并分別把它們的caption 屬性設(shè)置為“圓的半徑”、 “圓柱的高” 、 “圓的面積”與“圓柱的體積”。( 3)在窗體form1中添加二個(gè)命令按鈕command1 、 command2 ,并分別把它們的- 7 - caption 屬性設(shè)置為“求圓面積”與“求圓柱體積”。2編寫代碼( 1)雙擊窗體form1 的空白處,進(jìn)入代碼窗口。( 2)在“求圓面積”命令事件過(guò)程中編寫計(jì)算圓面積的程序。( 3)在“求圓柱體積”命令事件過(guò)程中編寫計(jì)算

16、圓柱體積的程序。3運(yùn)行程序。提示: 從文本框中返回的數(shù)據(jù)是字符型的,使用前要通過(guò)val 函數(shù)將其轉(zhuǎn)換為數(shù)值型數(shù)據(jù)。實(shí)驗(yàn) 3.2 判斷任意三條邊能否構(gòu)成一個(gè)三角形。【實(shí)驗(yàn)要求】1. 分別使用三條inputbox()函數(shù)輸入三條邊,格式如圖3-2(c) 所示。2. 如果輸入的三條邊能構(gòu)成一個(gè)三角形,則在窗體上顯示所輸入的三條邊,如圖 3-2(a)所示。3. 如果輸入的三條邊能構(gòu)成一個(gè)三角形,則用msgbox() 函數(shù)按圖3-2(b) 的形式給出出錯(cuò)信息,此時(shí),用戶如果點(diǎn)擊“重試”按鈕,則返回主界面;點(diǎn)擊“取消”按鈕,則結(jié)束程序。圖 3-2(a) 運(yùn)行界面圖 3-2(b) 出錯(cuò)提示圖 3-2(c)

17、輸入界面【實(shí)驗(yàn)步驟】1在窗體上創(chuàng)建一個(gè)命令按鈕,將其caption 修改為“輸入三條邊”,如圖3.2(a) 所示。2在命令按鈕的click事件過(guò)程中編寫三條邊的輸入與判斷程序。3運(yùn)行程序。提示:( 1)在 msgbox() 函數(shù)中,顯示按鈕“重試”與“取消”的按鈕值為5,顯示警告圖標(biāo)“ ! ” 按鈕值為48。- 8 - ( 2)結(jié)束程序可使用命令end 。實(shí)驗(yàn) 3.3 編寫一個(gè)網(wǎng)吧收費(fèi)程序。【實(shí)驗(yàn)要求】1. 運(yùn)行界面如圖3-3 所示。2. 網(wǎng)吧基本收費(fèi)為2 元 /小時(shí)。3. 根據(jù)不同的上機(jī)時(shí)數(shù)x,上機(jī)費(fèi)用y 可以按以下公式計(jì)算收費(fèi):2*x x32*0.9x 3x5y = 2*0.8x 5x=

18、90 text2 = 優(yōu)秀 case is =80 end select end sub 實(shí)驗(yàn) 3.5 設(shè)計(jì)一個(gè)四則運(yùn)算的自我練習(xí)應(yīng)用程序,如圖3-5 所示。圖 3-5 實(shí)驗(yàn) 3.5 運(yùn)行界面【實(shí)驗(yàn)要求】1程序執(zhí)行時(shí),當(dāng)用戶在文本框text1 中輸入一種運(yùn)算符后,要求在圖形框picture1中立即出現(xiàn)該運(yùn)算符號(hào)。2當(dāng)單擊“出題”命令按鈕后,要求分別在文本框text2 、 text3 中產(chǎn)生兩個(gè)1100 之間的隨機(jī)整數(shù)。即由text2 、 picture1 與 text3 組成一個(gè)表達(dá)式。3用戶根據(jù)題目進(jìn)行計(jì)算,并把計(jì)算結(jié)果填入到文本框text4 中。text1 text4 picture2 t

19、ext2 text3 picture1 - 10 - 4單擊“判斷”命令按鈕可判斷輸入的結(jié)果是否正確,并在picture2中顯示“正確”或“錯(cuò)誤”提示提示信息。5單擊“答案”命令按鈕后,在文本框text4 中顯示題目的正確答案。6用戶欲停止自我練習(xí),單擊“退出”命令按鈕,程序便結(jié)束運(yùn)行?!緦?shí)驗(yàn)步驟】1按圖3-5 設(shè)計(jì)界面,具體步驟略。2在各命令按鈕的click 事件過(guò)程中編寫相應(yīng)的功能代碼。3運(yùn)行程序。提示 :( 1)每次在text1 中輸入“ +” 、 “- ” 、 “ * ” 、 “ /”等運(yùn)算符號(hào)時(shí),在picture1 中立即出現(xiàn)相應(yīng)的運(yùn)算符號(hào),可以在text1 的 change 事件過(guò)

20、程中實(shí)現(xiàn),先使用cls 方法對(duì)picture1 清屏,再在 picture1中顯示text1 中相應(yīng)的符號(hào)。( 2)產(chǎn)生兩個(gè)1100 之間的隨機(jī)整數(shù),可以使用公式:int(rnd*(數(shù)值上限-數(shù)值下限+1)+ 數(shù)值下限) ( 3)編寫“答案”或“判斷”程序時(shí),要使用多分支選擇結(jié)構(gòu)語(yǔ)句(if 語(yǔ)句或select語(yǔ)句)來(lái)實(shí)現(xiàn),即根據(jù)text1 中所輸入的運(yùn)算符號(hào)執(zhí)行相應(yīng)的運(yùn)算,例如:select c case text1 case + case - end select 4. 在計(jì)算程序中要注意數(shù)據(jù)類型的轉(zhuǎn)換,即必須通過(guò)val 函數(shù)把文本框中的數(shù)字文本轉(zhuǎn)換成數(shù)值型數(shù)據(jù)后,才能進(jìn)行四則運(yùn)算。5當(dāng)運(yùn)算

21、為除法時(shí),要避免除數(shù)為0 的現(xiàn)象出現(xiàn),并且除法結(jié)果有可能是一個(gè)實(shí)數(shù),這時(shí),要求用戶輸入的結(jié)果和計(jì)算機(jī)計(jì)算的結(jié)果必須有著相同的小數(shù)位數(shù),否則會(huì)出現(xiàn)“判斷”錯(cuò)誤。實(shí)驗(yàn) 3.6 求ns222222 .222.2222n?!緦?shí)驗(yàn)要求】1計(jì)算前,使用inputbox()函數(shù)讓用戶輸入n 值。2單擊窗體后,在窗體上按圖3-6 的形式輸出計(jì)算結(jié)果。圖 3-6 實(shí)驗(yàn) 3.6 運(yùn)行界面- 11 - 【實(shí)驗(yàn)步驟】1. 在窗體的click 事件過(guò)程中編寫用戶輸入與求解代碼。2. 運(yùn)行程序。提示:( 1)該計(jì)算的通項(xiàng)式公式為ai=ai-1*10+2。( 2)將通項(xiàng)式與累加和變量都定義成單精度,以避免數(shù)據(jù)溢出。實(shí)驗(yàn)3.

22、7 打印所有的“水仙花數(shù)”。水仙花數(shù)是一個(gè)三位數(shù),其每位數(shù)的立方和等于該數(shù)本身,例如:153=13+53+33, 153 就是一個(gè)水仙花數(shù)?!緦?shí)驗(yàn)要求】在一個(gè)圖形框中輸出水仙花數(shù),如圖3-7 所示。圖 3-7 實(shí)驗(yàn) 3.7 運(yùn)行界面【實(shí)驗(yàn)步驟】1在窗體上創(chuàng)建一個(gè)圖形框。2在圖形框的click事件過(guò)程中編寫求解代碼。3運(yùn)行程序。提示: 分離三位數(shù)n 中的各位數(shù),可以采用以下方法:百位數(shù)i :i = int(n / 100) 十位數(shù)j :j = int(n / 10) - i * 10 或j=int(n / 10) mod 10 個(gè)位數(shù)k : k = n mod 10 實(shí)驗(yàn) 3.8 已知工廠去年的

23、年產(chǎn)值為300 萬(wàn),年增長(zhǎng)率為15% 。試問(wèn)經(jīng)過(guò)多少年后,該廠的年產(chǎn)值可以翻一番?翻一番后的實(shí)際產(chǎn)值是多少?【實(shí)驗(yàn)要求】1. 運(yùn)行界面如圖3-8 所示。圖 3-8 實(shí)驗(yàn) 3.8 運(yùn)行界面- 12 - 2. 程序運(yùn)行時(shí),在文本框text1 中輸入現(xiàn)有產(chǎn)值,在文本框text2 中輸入年增長(zhǎng)率。3. 當(dāng)單擊“翻一番”命令按鈕后,在文本框text3 中輸出經(jīng)過(guò)的年數(shù),在文本框text4中輸出實(shí)際產(chǎn)值。4. 通過(guò)實(shí)驗(yàn),要求進(jìn)一步掌握循環(huán)結(jié)構(gòu)的do loop 語(yǔ)句的各種格式及其使用?!緦?shí)驗(yàn)步驟】1按圖3-8 設(shè)計(jì)界面,具體步驟略。2在命令按鈕的click事件過(guò)程中編寫計(jì)算代碼。3運(yùn)行程序。提示 :( 1)

24、算法分析:設(shè)p 表示現(xiàn)有的產(chǎn)值,r 表示年增長(zhǎng)率,y 表示經(jīng)過(guò)的年數(shù),s 表示經(jīng)過(guò) y 年后的產(chǎn)值,則:s=p(1+r)y 當(dāng)滿足條件s 2p,即滿足p(1+r)y 2p 時(shí), y 即為所求年數(shù)。( 2)在編寫“翻一番”事件過(guò)程代碼時(shí),使用do loop 語(yǔ)句實(shí)現(xiàn)循環(huán)求年產(chǎn)值,循環(huán)條件為sa(n),則將 x 插入到a(n+1)中。否則將a(n) 移到 a(n+1) 中, 再用 x 與 a(n-1)比較, 若 xa(n-1),則將 x 插入到a(n) 中,否則將a(n-1)移到 a(n) 中,重復(fù)上述操作,直到把x 插入到合適的位置為止。實(shí)驗(yàn)五過(guò)程一、實(shí)驗(yàn)?zāi)康?掌握自定義函數(shù)過(guò)程和子過(guò)程的定義和

25、調(diào)用方法。2掌握形參和實(shí)參的對(duì)應(yīng)關(guān)系。3掌握值傳遞和地址傳遞的傳遞方式。4掌握變量、函數(shù)和過(guò)程的作用域。5掌握遞歸概念和使用方法。6熟悉程序設(shè)計(jì)中的常用算法。二、實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn) 5.1 編寫一個(gè)子過(guò)程,求任意三個(gè)正整數(shù)之和?!緦?shí)驗(yàn)要求】1 a,b,c 分別為所給出的三個(gè)數(shù),這三個(gè)數(shù)由三個(gè)text文本框任意給出。2求和過(guò)程為sum,其形式為:sub sum(a%,b%,c%,sansum%) 在主調(diào)程序中輸出所求的和,并放置在第四個(gè)文本框中。運(yùn)行界面如圖5-1 所示。3想一想,參數(shù)a,b,c,sansum是用值傳遞還是地址傳遞呢?圖 5-1 實(shí)驗(yàn) 5.1 的運(yùn)行界面【實(shí)驗(yàn)步驟】1按圖5-1設(shè)計(jì)用戶

26、界面,將七個(gè)標(biāo)簽分別放置在窗體中的適當(dāng)位置,并分別修改它們的 caption屬性,再將四個(gè)文本框和一個(gè)按鈕放置到窗體中。- 20 - 2在代碼窗口中編寫sum(a%,b%,c%,sansum%)過(guò)程。3在命令按鈕的click 事件過(guò)程中調(diào)用sum( a,b,c,sansam )過(guò)程,并將參數(shù)sansam 的值賦給text4.text 。實(shí)驗(yàn) 5.2 編寫一個(gè)函數(shù),判斷輸入的整數(shù)是偶數(shù)還是奇數(shù)并輸出結(jié)果。圖 5-2 實(shí)驗(yàn) 5.2 的運(yùn)行界面【實(shí)驗(yàn)要求】1編一個(gè)函數(shù)過(guò)程isou(n),對(duì)于已知正整數(shù)n,判斷該數(shù)是否是偶數(shù),函數(shù)的返回值類型為boolean ,即其格式為:function isou(

27、n as integer) as boolean 2用戶在文本框中每輸入一個(gè)數(shù)并按下回車后,調(diào)用isou 函數(shù)過(guò)程,然后在圖形框中顯示輸入的數(shù),對(duì)于是偶數(shù)的在其后面顯示一個(gè)“”,如圖5-2 所示運(yùn)行界面?!緦?shí)驗(yàn)步驟】1按圖5-2 設(shè)計(jì)用戶界面,包括兩個(gè)標(biāo)簽、一個(gè)文本框和一個(gè)圖形框。2. 在代碼窗口中編寫函數(shù)isou(n as integer)。3用文本框的keypress 事件過(guò)程作為主調(diào)程序,每次回車都調(diào)用isou 函數(shù)過(guò)程,并用print 方法將結(jié)果顯示在圖形框中。提示 :判斷一個(gè)數(shù)是否為偶數(shù)的方法是將該數(shù)與2 相除取余,若余數(shù)為0 則這個(gè)數(shù)是偶數(shù),否則是奇數(shù)。實(shí)驗(yàn) 5.3 編一過(guò)程,求一

28、維數(shù)組a 中的最大值?!緦?shí)驗(yàn)要求】1子過(guò)程名為promax,其形式為:sub promax(a() as integer,max as integer) 2主調(diào)程序隨機(jī)產(chǎn)生10 個(gè) 300 400 之間(包括300 和 400)的整數(shù),要求每次執(zhí)行時(shí)所產(chǎn)生的隨機(jī)數(shù)序列不相同,然后調(diào)用promax 子過(guò)程,顯示數(shù)組元素及其最大值,如圖5-3 所示。圖 5-3 實(shí)驗(yàn) 5.3 的運(yùn)行界面- 21 - 3想想max參數(shù)的作用和傳遞方式。4學(xué)習(xí)掌握數(shù)組作為參數(shù)的傳遞方法?!緦?shí)驗(yàn)步驟】1在代碼窗口中編寫promax(a() as integer,max as integer)過(guò)程。2用窗體的click事件

29、過(guò)程作為主調(diào)程序,調(diào)用promax(a(),max)過(guò)程。提示 :產(chǎn)生300 400 之間(包括300 和 400)隨機(jī)整數(shù)的算法為:int(rnd*101+300)實(shí)驗(yàn) 5.4 編一函數(shù)過(guò)程,對(duì)已知數(shù)m判斷其是否為“完數(shù)” 。并求 1000 以內(nèi)的所有 “完數(shù)”。所謂“完數(shù)”即該數(shù)等于所有能夠整除它的因子之和。如:6=1+2+3 , 6 就是“完數(shù)” 。【實(shí)驗(yàn)要求】1 “完數(shù)”作為一個(gè)單獨(dú)的函數(shù)進(jìn)行編寫,其函數(shù)形式為: function ws(m as integer) as boolean 2當(dāng)用戶按下“完數(shù)”命令按鈕后,在窗體上顯示11000 之間的“完數(shù)”。3. 掌握函數(shù)的調(diào)用,考慮參

30、數(shù)m 是用值傳遞還是地址傳遞。運(yùn)行界面如圖5-4 所示。圖 5-4 實(shí)驗(yàn) 5.4 的運(yùn)行界面【實(shí)驗(yàn)步驟】1按圖5-4 設(shè)計(jì)用戶界面,包括一個(gè)標(biāo)簽、一個(gè)命令按鈕和一個(gè)圖形框。2. 在代碼窗口中編寫函數(shù)ws(m) 。3用命令按鈕的click事件過(guò)程作為主調(diào)程序調(diào)用該函數(shù),并在窗體上顯示1 1000之間的“完數(shù)”。提示 :1. 判斷一個(gè)數(shù)m是否為“完數(shù)”的算法步驟為:( 1)將 m與 i=1,2, ,int(m/2)依次取余數(shù),余數(shù)為0, i 為因子,累加求和, 算得所有的因子之和sum。( 2)將 sum 與 m比較,如果相等,m為“完數(shù)” 。2在調(diào)用ws函數(shù)時(shí)用循環(huán)語(yǔ)句逐次調(diào)用。實(shí)驗(yàn) 5.5 編

31、一個(gè)選擇法排序子過(guò)程,對(duì)已知的若干個(gè)整數(shù)按遞增次序排序?!緦?shí)驗(yàn)要求】1. 子過(guò)程形式為:sub sort1(a%(),學(xué)習(xí)掌握數(shù)組作為參數(shù)的傳遞方法。2. 在鍵盤上任意的輸入若干個(gè)數(shù),調(diào)用選擇排序子過(guò)程sort后,這些整數(shù)按遞增次序- 22 - 排序,并將排好序的整數(shù)依次顯示在窗體中?!緦?shí)驗(yàn)步驟】1. 在代碼窗口中編寫子過(guò)程sub sort1(a%()。2在窗體的click事件過(guò)程中定義一個(gè)數(shù)組,并用 inputbox函數(shù)依次從鍵盤中輸入整數(shù)存放在數(shù)組中,然后以該數(shù)組作參數(shù)調(diào)用sort1子過(guò)程。提示:選擇排序法原理:用兩個(gè)循環(huán)嵌套語(yǔ)句實(shí)現(xiàn),在每一輪排序都是找出當(dāng)前最小數(shù)的下標(biāo),出了內(nèi)循環(huán),再將

32、最小數(shù)交換到正確的位置。選擇排序法算法的實(shí)現(xiàn)步驟(假定為n 個(gè)數(shù)的序列) :( 1)從 n 個(gè)數(shù)中選出最小數(shù)的下標(biāo),然后將最小數(shù)與第1 個(gè)數(shù)交換位置。( 2)除第1 個(gè)數(shù)外,其余n-1 個(gè)數(shù)再按步驟(1)的方法選出次小的數(shù),與第2 個(gè)數(shù)交換位置。( 3)重復(fù)步驟(1)n-1遍,最后構(gòu)成遞增序列。實(shí)驗(yàn) 5.6 在實(shí)驗(yàn)5.5 的基礎(chǔ)上,編一個(gè)二分查找子過(guò)程?!緦?shí)驗(yàn)要求】利用二分查找算法查找某數(shù),找到返回該數(shù)在數(shù)組中的下標(biāo)位置,找不到返回值為-1 。【實(shí)驗(yàn)步驟】1. 在代碼窗口中分別編寫排序子過(guò)程和二分查找子過(guò)程。2在窗體的click事件過(guò)程中定義一個(gè)數(shù)組,并用 inputbox函數(shù)依次從鍵盤中輸入

33、整數(shù)存放在數(shù)組中,然后以該數(shù)組作參數(shù)依次調(diào)用排序子過(guò)程和二分查找子過(guò)程。提示:二分查找算法思想:在一個(gè)按升序排列好的數(shù)組中,設(shè)low 和 high 分別為查找范圍的上界與下界,將要查找的關(guān)鍵值key 同查找范圍的中間mid 項(xiàng)元素比較,如果:keya(mid) low=mid+1 查找區(qū)域縮小一半, 繼續(xù)查找, 直到找到或查找區(qū)域中無(wú)元素(-1 ) 。算法步驟:( 1)將 low 和 high的初值分別設(shè)置為數(shù)組下標(biāo)的下界與上界。( 2)mid=(low+high)/2,如果 key=a(mid),查找結(jié)束,如果lowhigh,數(shù)組中沒(méi)該查找數(shù),查找結(jié)束。( 3)如果keya(mid),low

34、= mid-1,否則 high = mid+1 。( 4)重復(fù)步驟(2) 、 ( 3) ,直到找到或查找數(shù)組中無(wú)該元素。實(shí)驗(yàn) 5.7 定義一個(gè)同標(biāo)準(zhǔn)函數(shù)replace一樣的myreplace(s,olds,news)函數(shù)過(guò)程?!緦?shí)驗(yàn)要求】1用 news新子串替換s 字符串中的所有與olds 相同的舊子串,返回一個(gè)包含替換結(jié)果的字符串。2想一想,myreplace函數(shù)的各參數(shù)傳遞是用值傳遞還是地址傳遞?- 23 - 圖 5-5 實(shí)驗(yàn) 5.7 的運(yùn)行界面【實(shí)驗(yàn)步驟】1. 設(shè)計(jì)用戶界面如圖5-5 所示,包括4 個(gè)標(biāo)簽、4 個(gè)文本框和一個(gè)命令按鈕。2在代碼窗口中編寫myreplace(s, olds

35、,news) 函數(shù)過(guò)程。3在命令按鈕的click事件過(guò)程中定義三個(gè)字符串變量s(存放替換前的內(nèi)容)、olds(存放被替換的子字符串)和news (存放用來(lái)替換前的子字符串),并依次用三個(gè)文本框給它們賦值,然后以它們作參數(shù)調(diào)用myreplace(s,olds ,news) 函數(shù)過(guò)程,最后將該函數(shù)過(guò)程的返回結(jié)果顯示在一個(gè)文本框中。提示: myreplace ( s, olds,news ) 函數(shù)過(guò)程的算法為:( 1)分別取字符串s 與子串olds 的長(zhǎng)度。( 2)使用函數(shù)instr (s, olds ) ,在字符串s 中查找首個(gè)olds 子串出現(xiàn)的位置,如果函數(shù)返回值非0 表示找到,運(yùn)行下一步。(

36、 3)在 s 字符串中,用news 字符子串替換olds 字符子串。設(shè)s 字符串長(zhǎng)度為len1 ,olds 子串長(zhǎng)度為len2, olds子串在s 字符串的位置為n,則該替換可使用以下語(yǔ)句實(shí)現(xiàn):s = left(s, n - 1) + trim(news) + right(s, len1 - n - len2 + 1) ( 4)重復(fù)步驟(2)和( 3) ,直到所有舊子串olds 都被新子串news 代替(函數(shù)instr返回值為0) 。實(shí)驗(yàn) 5.8 求自然對(duì)數(shù)e 的近似值。其近似公式為:【實(shí)驗(yàn)要求】1在計(jì)算e 的過(guò)程中,最后一個(gè)累加項(xiàng)為小于或等于10-7。2分別用子過(guò)程和函數(shù)過(guò)程編寫,并分別調(diào)用

37、。區(qū)分子過(guò)程和函數(shù)過(guò)程的異同,掌握它們的調(diào)用方法和轉(zhuǎn)換方式。【實(shí)驗(yàn)步驟】1. 在代碼窗口中分別編寫計(jì)算e 的子過(guò)程和函數(shù)過(guò)程。mi0i 1111111e1. . 11!2!3!i!i!i!- 24 - 2在窗體的click事件過(guò)程中分別調(diào)用計(jì)算e 的子過(guò)程和函數(shù)過(guò)程。提示:1該題先求連乘i! ,再對(duì)1/i! 進(jìn)行累加。循環(huán)次數(shù)預(yù)先未知,根據(jù)累加項(xiàng)1/i! 的值是否達(dá)到精度決定循環(huán)與否。算法流程圖如圖5-6 所示。圖 5-6 實(shí)驗(yàn) 5.8 的流程圖2在對(duì)同一問(wèn)題定義兩種過(guò)程時(shí),只要抓住函數(shù)過(guò)程和子過(guò)程的區(qū)別,即函數(shù)名有一個(gè)值、子過(guò)程名無(wú)值的特點(diǎn)。這樣當(dāng)定義好函數(shù)過(guò)程后,要改為子過(guò)程,只要將函數(shù)過(guò)

38、程名改為子過(guò)程的形參,另外再增加一個(gè)子過(guò)程名即可。反之,將子過(guò)程改為函數(shù)過(guò)程時(shí),只要將有返回值的一個(gè)形參改為對(duì)函數(shù)過(guò)程名賦值。實(shí)驗(yàn) 5.9 定義一個(gè)用遞歸方法求組合數(shù)nmc 的函數(shù)過(guò)程?!緦?shí)驗(yàn)要求】掌握遞歸過(guò)程的編寫,理解構(gòu)成遞歸的兩個(gè)重要條件:1遞歸結(jié)束條件及結(jié)束時(shí)的值。2待求結(jié)果能用遞歸形式表示,并且遞歸向結(jié)束條件發(fā)展?!緦?shí)驗(yàn)步驟】1. 在代碼窗口中編寫用遞歸方法求組合數(shù)的函數(shù)過(guò)程。2 在窗體的click事件過(guò)程中使用inputbox函數(shù)依次從鍵盤中輸入求組合數(shù)的兩個(gè)參數(shù),然后調(diào)用求組合數(shù)的函數(shù)過(guò)程。【提示】1對(duì)于nmc有如下遞歸形式:nnn-1mm-1m-1c= c+ c2遞歸條件:0m

39、1mnmnmmc =1, n=0cm, n=1cc, nm/2- 25 - 實(shí)驗(yàn)六常用控件一、實(shí)驗(yàn)?zāi)康?掌握窗體及常用標(biāo)準(zhǔn)控件的常用屬性、方法與事件。2掌握構(gòu)建具有指定功能界面的方法,即運(yùn)用窗體及常用控件的屬性、方法、事件構(gòu)建所需界面。3掌握鼠標(biāo)、鍵盤與對(duì)象拖放等高級(jí)事件過(guò)程。二、實(shí)驗(yàn)內(nèi)容控件實(shí)驗(yàn)的一般設(shè)計(jì)方法:在visual basic 的應(yīng)用程序設(shè)計(jì)中,首先根據(jù)要求規(guī)劃好界面的元素和布局,然后對(duì)將要使用的窗體與控件,決定應(yīng)更改哪些屬性,調(diào)用哪些方法,對(duì)哪些事件作出響應(yīng),從而得到希望的外觀和行為,使得窗口及控件能正確響應(yīng)用戶的交互操作。實(shí)驗(yàn) 6.1 密碼處理,如圖6-1 所示。圖 6-1 密

40、碼處理【實(shí)驗(yàn)要求】1窗口上部的文本框名稱為inputpassword ,下部的文本框名稱為displaypassword。2初始時(shí),在inputpassword文本框中輸入的字符都顯示為“* ” 。3單擊“顯示密碼”按鈕,則inputpassword文本框改為顯示實(shí)際輸入的字符。4單擊“隱藏密碼”按鈕,則inputpassword中的字符都還原為顯示“* ” 。5 單擊“復(fù)制密碼” 按鈕,則把 inputpassword文本框的實(shí)際內(nèi)容復(fù)制到displaypassword文本框中?!緦?shí)驗(yàn)步驟】1按照?qǐng)D6-1 在窗體上生成需要的控件。部分控件的部分屬性初始值按表6.1 進(jìn)行設(shè)置。- 26 - 表

41、 6.1 部分控件屬性設(shè)置控件屬性屬性值inputpassword文本框passwordchar * displaypassword文本框text (空)2在三個(gè)命令按鈕的click事件過(guò)程中編寫相應(yīng)的處理代碼。提示: 利用文本框的passwordchar屬性指定密碼的遮掩符。實(shí)驗(yàn) 6.2按下圖6-2 界面設(shè)計(jì)程序,使得程序能夠正確判斷用戶的選擇。圖 6-2 單選框與復(fù)選框的使用【實(shí)驗(yàn)要求】每當(dāng)重新選擇一個(gè)新的學(xué)生姓名單選框時(shí),“選擇課程”框架中的復(fù)選框全部被置為未選中。單選框與復(fù)選框的選中或取消選中操作,要及時(shí)反映在下面的文字提示中?!緦?shí)驗(yàn)步驟】1按照?qǐng)D6-2 在窗體上生成需要的控件。其中,

42、通過(guò)一個(gè)框架將三個(gè)學(xué)生姓名單選框組合成一組,通過(guò)一個(gè)框架將三個(gè)課程復(fù)選框組合成一組。下面的文字提示設(shè)計(jì)成兩個(gè)標(biāo)簽控件,一個(gè)顯示用戶選擇的學(xué)生姓名,另一個(gè)顯示用戶選擇的課程。2編寫單選框與復(fù)選框的click事件處理代碼。提示:1復(fù)選框的value 屬性,在被選中時(shí)為1,未被選中時(shí)為0;2單選框的value 屬性,在被選中時(shí)為true ,未被選中時(shí)為false,并且只要某個(gè)單選框被單擊,就會(huì)被選中(其余單選框自動(dòng)清除選中)。實(shí)驗(yàn) 6.3 按下圖6-3 設(shè)計(jì)程序界面,使得用戶能夠更變顯示字符串的字體?!緦?shí)驗(yàn)要求】1文本“visual basic 程序設(shè)計(jì)”在一個(gè)標(biāo)簽上顯示。2字號(hào)選擇用組合框?qū)崿F(xiàn),字

43、體選擇用列表框?qū)崿F(xiàn),通過(guò)四個(gè)復(fù)選框設(shè)置文字特效。3窗口上字符串的顯示依用戶的選擇而相應(yīng)變化?!緦?shí)驗(yàn)步驟】1按照?qǐng)D6-3 在窗體上生成需要的控件。部分控件的部分屬性初始值按表6.2 進(jìn)行設(shè)置。2編寫組合框、列表框與復(fù)選框的click 事件處理代碼。- 27 - 圖 6-3 使用復(fù)選框、列表框與組合框控制font 屬性表 6.2 部分控件屬性設(shè)置控件屬性屬性值標(biāo)簽caption visual basic 程序設(shè)計(jì)組合框list 10 15 20 25 30 列表框list 黑體隸書宋體仿宋 _gb2312 華文彩云(選用的字體與具體機(jī)器系統(tǒng)有關(guān))提示:1組合框的text 屬性提供用戶輸入或者選擇的

44、內(nèi)容;列表框的text 屬性提供用戶選擇的內(nèi)容。2刪除線涉及屬性fontstrikethru,粗體涉及屬性fontbold ,斜體涉及屬性fontitalic,下劃線涉及屬性fontunderline。3在屬性窗口中,輸入組合框或列表框的list 屬性時(shí),通過(guò)組合鍵“ctrl+enter ”換行。實(shí)驗(yàn) 6.4 按下圖6-4 設(shè)計(jì)程序界面,允許用戶通過(guò)滾動(dòng)條來(lái)調(diào)節(jié)文本框的寬度、高度與字體。圖 6-4 實(shí)驗(yàn) 6.4 運(yùn)行畫面- 28 - 【實(shí)驗(yàn)要求】1. 程序初啟時(shí),各滾動(dòng)條的值分別等于文本框的初始寬度、高度與字體。2. 文本框?qū)挾扰c高度的最小值為1,最大值剛好分別等于相應(yīng)控制滾動(dòng)條的寬度與高度。

45、【實(shí)驗(yàn)步驟】1按照?qǐng)D6-4 在窗體上生成需要的控件,并按表6.3 進(jìn)行屬性設(shè)置。表 6.3 控件屬性設(shè)置控件屬 性屬性值控制寬度的水平滾動(dòng)條(hscroll1 )min 1 max 自身的width 屬性值smallchange 10 控制高度的垂直滾動(dòng)條(vscroll1 )min 1 max 自身的height 屬性值smallchange 10 控制字體的水平滾動(dòng)條(hscroll2 )min 2 max 72 smallchange 1 文本框multiline true 2在各滾動(dòng)條的change 事件過(guò)程中編寫相應(yīng)的處理代碼。提示 : 為了實(shí)現(xiàn)實(shí)驗(yàn)要求1,在窗體的load 事件過(guò)程

46、中添中以下代碼:hscroll1.value = text1.width vscroll1.value = text1.height hscroll2.value = text1.fontsize 實(shí)驗(yàn) 6.5 定時(shí)器控件的使用,如圖6-5 所示?!緦?shí)驗(yàn)要求】1單擊“計(jì)時(shí)”按鈕時(shí),顯示流逝的秒數(shù),單擊“重新設(shè)置”按鈕時(shí)返回到0,單擊“暫?!卑粹o停止計(jì)時(shí),單擊“關(guān)閉”按鈕關(guān)閉整個(gè)程序。2暫停后重新計(jì)時(shí),可在暫停之前的基礎(chǔ)上繼續(xù)。圖 6-5 計(jì)時(shí)器程序【實(shí)驗(yàn)步驟】1按照?qǐng)D6-5 在窗體上生成需要的控件。注意,有一個(gè)運(yùn)行時(shí)不可見(jiàn)的計(jì)時(shí)器控件。部分控件的部分屬性初始值按表6.4 進(jìn)行設(shè)置。表 6.4

47、部分控件屬性設(shè)置控件屬性屬性值計(jì)時(shí)器enabled true interval 1000 標(biāo)簽caption (空 ) - 29 - 2編寫各命令按鈕的click 事件處理代碼。提示 :1. 利用其enabled 屬性開關(guān)計(jì)時(shí)器。2. 結(jié)束程序使用語(yǔ)句end。實(shí)驗(yàn) 6.6 按照下圖6-6 設(shè)計(jì)界面,使得程序能根據(jù)用戶操作完成相應(yīng)功能。圖 6-6 鼠標(biāo)與鍵盤事件處理程序圖 6.7 幫助信息【實(shí)驗(yàn)要求】1用戶同時(shí)按下ctrl+alt+ins組合鍵時(shí),彈出一個(gè)圖6-7 的幫助信息框。2設(shè)計(jì)一個(gè)通過(guò)圖像切換實(shí)現(xiàn)的簡(jiǎn)單動(dòng)畫,并由組合操作“鼠標(biāo)右鍵+shift 鍵”,啟動(dòng)/停止動(dòng)畫。3用戶按下f1 功能鍵

48、,能變更文本區(qū)域字符的顯示顏色?!緦?shí)驗(yàn)步驟】1準(zhǔn)備 2 張以上用于動(dòng)畫的卡通圖標(biāo)文件放在當(dāng)前實(shí)驗(yàn)?zāi)夸???梢酝ㄟ^(guò)windows的開始菜單的“搜索”功能,查找機(jī)器上可能有的圖標(biāo)文件,在“要搜索的文件或文件夾名為:”處輸入:*.ico 。2按照?qǐng)D6-6 在窗體上生成需要的控件。注意,有一個(gè)運(yùn)行時(shí)不可見(jiàn)的計(jì)時(shí)器控件。部分控件的部分屬性初始值按表6.5 進(jìn)行設(shè)置。表 6.5 部分控件屬性設(shè)置控件或窗體屬性屬性值窗體keypreview true 定時(shí)器enabled true interval 100 圖像框picture (none) 3編寫適當(dāng)?shù)氖录幚泶a提示:1動(dòng)畫通過(guò)每隔一定時(shí)間顯示一張圖片來(lái)

49、實(shí)現(xiàn)。需要在窗口增加一個(gè)定時(shí)器控制時(shí)間間隔。每當(dāng)timer 事件發(fā)生時(shí),裝載下一張圖像文件,如:image1.picture=loadpicture(c:picture1.ico) 使得構(gòu)成動(dòng)畫的圖像循環(huán)播放。2在窗口的keydown事件及mousedown事件代碼中檢查用戶按鍵。- 30 - 3文本框字符的顏色可以采用下面的顏色:vbred 、 vbblue 、 vbgreen 、 vbyellow 、vbmagenta 、 vbcyan 與 vbblack 。實(shí)驗(yàn) 6.7 編寫清理散落物品的程序,如圖6-8 所示。圖 6-8 清理散落的物品【實(shí)驗(yàn)要求】1散落的物品或者放入物品間,或者丟棄到

50、垃圾框。2使用一個(gè)圖像框數(shù)組表示物品間,一個(gè)圖像框控件表示垃圾框。3物品在丟棄之前,顯示一個(gè)信息框,詢問(wèn)是否確實(shí)要把該對(duì)象放入“垃圾框”,回答“是”則放入垃圾框站,對(duì)象從窗體上消失;回答“否”則對(duì)象仍回到原來(lái)的位置。4物品間的一個(gè)格子只容納一個(gè)物品,如果欲將一個(gè)物品放入已有物品的格子中,則放入不能成功;不允許在格子間隔線上放置物品。【實(shí)驗(yàn)步驟】1準(zhǔn)備多張物品圖像文件(圖標(biāo)文件)。2按照?qǐng)D6-8 在窗體上生成需要的控件。部分控件的部分屬性初始值按表6.6 進(jìn)行設(shè)置。表 6.6 部分控件屬性設(shè)置控件屬性屬性值各個(gè)散落物品的圖像框dragmode 1 物品間的圖像框dragmode 0 垃圾框的圖像

51、框dragmode 0 3編寫適當(dāng)?shù)氖录a。提示:1物品間每個(gè)格子放入一個(gè)相當(dāng)于格子大小的圖像框,初始時(shí)圖象框不加載圖形。2在圖像框及垃圾框的dragdrop事件過(guò)程中,編寫物品在拖放結(jié)束時(shí)的放入或丟棄處理代碼。3 判斷一個(gè)圖像框是否已經(jīng)加載了圖片,用下面的判斷語(yǔ)句(假設(shè)格子的圖像框用room控件數(shù)組表示):- 31 - if (room(index).picture = 0) then 未加載圖形的處理else 已加載圖形的處理end if 實(shí)驗(yàn)七界面設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?學(xué)會(huì)使用通用對(duì)話框進(jìn)行編程。2掌握窗口菜單、彈出式菜單和實(shí)時(shí)菜單的設(shè)計(jì)方法。3掌握多重窗體、多文檔窗體的設(shè)計(jì)和使用。4綜合

52、應(yīng)用所學(xué)的知識(shí),編制具有可視化界面的應(yīng)用程序。二、實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn) 7.1 設(shè)計(jì)一個(gè)運(yùn)行界面如圖7-1 的應(yīng)用程序。圖 7-1 實(shí)驗(yàn) 7.1 的運(yùn)行界面【實(shí)驗(yàn)要求】1當(dāng)選擇“改變標(biāo)簽標(biāo)題顏色”按鈕后,彈出顏色對(duì)話框,為標(biāo)簽標(biāo)題選擇一個(gè)顏色。2當(dāng)選擇“編輯文本文件”按鈕后,彈出打開文件對(duì)話框,指定只能選擇后綴為txt的文本文件,并調(diào)用windows記事本程序編輯用戶選擇的文本文件。【實(shí)驗(yàn)步驟】1啟動(dòng)vb ,執(zhí)行file 菜單中的“新建工程”命令,建立一個(gè)新的工程。2執(zhí)行“工程”“部件”命令,選擇microsoft common dialog control 6.0選項(xiàng),將commondialog控件

53、添加到工具箱中。3在窗體上添加一個(gè)標(biāo)簽,兩個(gè)命令按鈕,一個(gè)通用對(duì)話框。4在“改變標(biāo)簽標(biāo)題顏色”按鈕的click 事件過(guò)程中使用showcolor方法打開“顏色”對(duì)話框,并將對(duì)話框返回的顏色作為標(biāo)簽的前景色。5在“編輯文本文件”按鈕的click事件過(guò)程中使用showopen方法按要求打開“打開對(duì)話框” ,用 shell 函數(shù)調(diào)用記事本程序編輯用戶選擇的文本文件。- 32 - 提示:用 shell 函數(shù)運(yùn)行記事本程序:intform2 = shell(c:winntsystem32notepad.exe 文件名 ,1) 注意在記事本程序名與所選的一個(gè)文本文件名之間要有一個(gè)空格符。實(shí)驗(yàn) 7.2 設(shè)計(jì)

54、一個(gè)具有算術(shù)運(yùn)算(+, -, *, /)及清除功能的菜單?!緦?shí)驗(yàn)要求】從鍵盤上輸入兩個(gè)數(shù),利用菜單命令求出它們的和、差、積或商,并顯示出來(lái)?!緦?shí)驗(yàn)分析】根據(jù)題意,可以設(shè)計(jì)三個(gè)主菜單項(xiàng),分別為“計(jì)算加、減”、 “計(jì)算乘、除”和“清除與退出”,它們各有兩個(gè)子菜單項(xiàng):( 1) “計(jì)算加、減”的子菜單項(xiàng)為加、減。( 2) “計(jì)算乘、除”的子菜單項(xiàng)為乘、除。( 3) “清除與退出”的子菜單項(xiàng)為清除、退出。為了輸入數(shù)據(jù)和顯示計(jì)算結(jié)果,還要建立三個(gè)文本框(用來(lái)輸入數(shù)據(jù)和輸出結(jié)果),此外,還要用標(biāo)簽對(duì)輸入控件標(biāo)注簡(jiǎn)單的說(shuō)明信息。設(shè)計(jì)界面如圖7-2 所示。圖 7-2 實(shí)驗(yàn) 7.2 的運(yùn)行界面【實(shí)驗(yàn)步驟】1.界面

55、設(shè)計(jì)。( 1)啟動(dòng)vb ,執(zhí)行file 菜單中的“新建工程”命令,建立一個(gè)新的工程。( 2)在窗體中創(chuàng)建三個(gè)text 文本框和三個(gè)標(biāo)簽。( 3)執(zhí)行“工具”“菜單編輯器”命令,進(jìn)入菜單編輯器窗口。按照分析所得建立三個(gè)菜單及其子菜單。2編寫程序代碼。每個(gè)菜單項(xiàng)都有且僅有click事件,菜單項(xiàng)功能必須通過(guò)編程實(shí)現(xiàn),此處僅以子菜單項(xiàng)“除”為例編寫代碼,其他請(qǐng)讀者自己完成。( 1)點(diǎn)擊子菜單“除”時(shí),使該菜單項(xiàng)有標(biāo)記“”,其他子菜單項(xiàng)均沒(méi)有該標(biāo)記。( 2) 按照除數(shù)和被除數(shù)必須是數(shù)值的原理,首先判斷num1.text(文本框1) 和 num2.text(文本框2)是否是數(shù)值。( 3)按照除數(shù)不為0 原

56、理,判斷除數(shù)(num2.text )是否為0,如果為0,提示重新輸入 num2.text的值;否則,按除法原理相除。- 33 - ( 4)將結(jié)果賦給result.text (文本框3) 。程序代碼如下:private sub div_click() div.checked=true add. checked =false min. checked =false mul. checked =false if isnumeric(num1.text) and isnumeric(num2.text) then if val(num2.text)=0 then msgbox 除數(shù)不為0,請(qǐng)從新輸入!

57、 num2.text= num2.setfocus else result.text=val(num1.text)/val(num2.text) end if end if end sub 提示: 當(dāng)文本框輸入的是非數(shù)字字符時(shí),我們也可用文本框的change 事件進(jìn)行控制,使加、減、乘、除子菜單項(xiàng)的enabled 為 false。例如對(duì)于num1 文本框的輸入控制:private sub num1_change() if not isnumeric(num1) then div. enabled= false add. enabled=false min. enabled=false mul.

58、 enabled=false else div. enabled= true add. enabled= true min. enabled= true mul. enabled= true end if end sub 這樣加、減、乘、除的程序代碼就更簡(jiǎn)單了。如以上“除”的代碼為:private sub div_click() div. checked =true add. checked =false min. checked =false mul. checked =false if val(num2.text)=0 then msgbox 除數(shù)不為0,請(qǐng)從新輸入! num2.text=

59、 ”num2.setfocus else result.text=val(num1.text)/val(num2.text) end if end sub - 34 - 實(shí)驗(yàn) 7.3 設(shè)置動(dòng)態(tài)菜單?!緦?shí)驗(yàn)要求】在實(shí)驗(yàn)7.2 的基礎(chǔ)上增加“應(yīng)用”菜單,其子菜單項(xiàng)為“新建”、 “已計(jì)算”和“-” (分隔線)。要求在“-”分隔線下保留最近已計(jì)算的五次算術(shù)式?!緦?shí)驗(yàn)步驟】1執(zhí)行“工具”“菜單編輯器”命令,進(jìn)入菜單編輯器窗口。在菜單編輯器中“計(jì)算加、減”前添加“應(yīng)用”菜單及其子菜單“新建”、 “已計(jì)算” ( caledmenu ) ,設(shè)置其索引屬性為0,使 caledmenu成為菜單數(shù)組,visible

60、屬性設(shè)置為false,再插入一個(gè)“-” ,visible屬性也設(shè)置為false。界面設(shè)計(jì)完畢,如圖7-3( a) 。2在各菜單項(xiàng)的click事件過(guò)程中編寫相應(yīng)的功能代碼。圖 7-3( a)圖 7-3 (b)圖 7-3 實(shí)驗(yàn) 7.3 的運(yùn)行界面提示:( 1)設(shè)定一個(gè)全局變量imenucount記錄已計(jì)算的算術(shù)式的數(shù)量,當(dāng)imenucount小于 5時(shí),每打開一個(gè)文件,就用load 方法向caledmenu ()數(shù)組加入動(dòng)態(tài)菜單成員,并設(shè)置菜單項(xiàng)標(biāo)題為所計(jì)算的算術(shù)式,對(duì)于第五個(gè)以后的計(jì)算式不再需要加入數(shù)組元素,采用先進(jìn)先出的算法刷新記錄最先使用的動(dòng)態(tài)菜單成員的標(biāo)題。( 2)加、減、乘、除的單擊事件都要在實(shí)驗(yàn)7.2 的基礎(chǔ)上加上一些代碼,以下以除為例:imenuc

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論