VB程序設計教程 習題解答
《VB程序設計教程 習題解答》由會員分享,可在線閱讀,更多相關《VB程序設計教程 習題解答(83頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、《VB程序設計教程》(第3版)習題解答 習題1答案 一、選擇題 1.1 Visual Basic 6.0分為3種版本,不屬于這3種版本的是 A)學習版 B)專業(yè)版 C)企業(yè)版 D)業(yè)余版 【答】D。 1.2 下列方法中不能退出Visual Basic的是 A)按Alt+Q組合鍵 B)按下Alt+F組合鍵,然后按Esc鍵 C)按F10鍵,然后按F鍵,再按X鍵 D)打開“文件”菜單→“退出”命令 【答】B。 1.3 Visual Basic集成的主窗口中不包括 A)屬性窗口 B)標題欄 C)菜單欄 D)工具欄 【答】A。 1.4 下
2、列操作可以打開立即窗口的是 A)Ctrl+D B)Ctrl+F C)Ctrl+G D)Ctrl+E 【答】C。 二、填空題 1.5 與傳統(tǒng)的程序設計語言相比,Visual Basic最突出的特點是____。 【答】事件驅(qū)動編程機制。 1.6 如果不使用鼠標,用鍵盤打開菜單和執(zhí)行菜單命令,第一步應按____鍵。 【答】功能鍵F10或Alt鍵。 1.7 建立一個新的標準模塊,應該選擇____菜單下的“添加模塊”命令。 【答】“工程”菜單。 三、思考題 1.8 簡述Visual Basic的特點。 【答】與一般的程序設計語言相比,VB具有以下特點:
3、 (1) 可視化的設計平臺; (2) 面向?qū)ο蟮脑O計方法; (3) 事件驅(qū)動的編程機制; (4) 結構化的設計語言; (5) 充分利用Windows資源; (6) 開放的數(shù)據(jù)庫功能與網(wǎng)絡支持。 1.9 簡述Visual Basic集成開發(fā)環(huán)境的組成。 【答】VB 6.0集成開發(fā)環(huán)境除了具有標準Windows環(huán)境的標題欄、菜單欄、工具欄外,還有工具箱、屬性窗口、工程管理器窗口、窗體設計器、立即窗口、窗體布局窗口等有用的開發(fā)工具。 (1) 標題欄和菜單欄:標題欄中顯示的有窗體控制菜單圖標、當前激活的工程名稱、當前工作模式以及最小化
4、、最大化∕還原、關閉按鈕。菜單欄中顯示了“文件”、“編輯”、“視圖”、“工程”、“格式”等菜單項,其中包含了VB編程的常用命令。單擊菜單欄中的菜單名,即可打開下拉菜單。在下拉菜單中顯示了各種功能子菜單,包含執(zhí)行該項功能的熱鍵和快捷鍵。 (2) 工具欄及數(shù)字顯示區(qū):在菜單欄的下面是工具欄,工具欄提供了許多常用命令的快速訪問按鈕。單擊某個按鈕,即可執(zhí)行對應的相關操作。數(shù)字顯示區(qū)包含兩個部分,左數(shù)字區(qū)顯示的是對象的坐標位置(窗體工作區(qū)的左上角為坐標原點,即(0,0)位置),右數(shù)字區(qū)顯示的是對象的高度(向下遞增)和寬度,即對象的大小。 (3) 工具箱:標準工具箱包含了建立應用程序所需的各種控件。另
5、外,VB還提供了很多ActiveX控件可以添加到工具箱中。 (4) 工程管理器窗口:采用Windows資源管理器式的界面,層次分明地列出當前工程中的所有文件。 (5) 屬性窗口:“屬性”窗口包含選定對象(窗體或控件)的屬性列表,在設計程序時可通過修改對象的屬性設計其外觀和相關數(shù)據(jù),這些屬性值將是程序運行時各對象屬性的初始值。 (6) 窗體設計器:也稱為“對象窗口”,每一個應用程序中的窗體,都有與之對應的窗體設計器窗口。 (7) 窗體布局窗口:用來顯示窗體在屏幕中的位置。 (8) 立即窗口:使用立即窗口可以在中斷狀態(tài)下查詢對象的值,也可以在設計時查詢表達式的值或命令的結果。 1.
6、10 屬性窗口主要包括哪些內(nèi)容? 【答】“屬性窗口”的內(nèi)容包括: (1) 對象下拉列表框:標識當前選定對象的名稱以及所屬的類。單擊右端的下拉箭頭,可列出當前窗體以及所包含的全部對象的名稱,可從中選擇要更改其屬性的對象。 (2) 選項卡:可按字母排序和分類排序兩種排序方式顯示所選對象的屬性。 (3) 屬性列表框:屬性列表框中列出了當前選定的窗體或控件的屬性設置值。左半邊顯示所選對象的所有屬性名,右半邊是屬性值。可以直接在屬性窗口中修改屬性值,有的屬性取值具有預定值,如右側顯示“三點”式按鈕或“下拉箭頭”式按鈕,都有預定值可供選擇。在“屬性”列表中雙擊屬性值可以遍歷所有選項。選擇任一屬性
7、并按F1鍵可得到該屬性的幫助信息。 (4) 屬性說明:顯示當前屬性的簡要說明??赏ㄟ^右鍵快捷菜單中的“描述”菜單來切換顯示或隱藏“屬性說明”。 1.11 打開屬性窗口的方法有哪些? 【答】可通過以下方法之一打開屬性窗口: (1)單擊工具欄中的“屬性窗口”按鈕。 (2)單擊“視圖”菜單→“屬性窗口”命令。 習題2答案 一、選擇題 2.1 在VB中,被稱為對象的是 A)窗體 B)控件 C)控件和窗體 D)窗體、控件和屬性 【答】C。 2.2 關于VB“方法”的概念錯誤的是 A)方法是對象的一部分 B)方法是預先定義好的操作 C)方法
8、是對事件的響應 D)方法用于完成某些特定的功能 【答】C。 2.3 確定窗體控件啟動位置的屬性是 A)Width和Height B)Width或Height C)StartUpPositon D)Top和Left 【答】C。 2.4 下列說法正確的是 A)對象的可見性可設為True或False B)標題的屬性值不可設為任何文本 C)屬性窗口中屬性只能按字母順序排列 D)某些屬性的值可以跳過不設置,自動設為空值 【答】A。 2.5 下列說法錯誤的是 A)方法是對象的一部分 B)在調(diào)用方法時,對象名是不可缺少的 C)方法是一種特殊的
9、過程和函數(shù) D)方法調(diào)用格式和對象屬性使用格式相同 【答】B。 2.6 下列說法錯誤的是 A)窗體文件的擴展名為.frm B)一個窗體對應一個窗體文件 C)VB中一個工程只包含一個窗體 D)VB中一個工程最多可以包含255個窗體 【答】C。 2.7 一個工程必須包含的文件的類型是 A)*.vbp *.frm *.frx B)*.vbp *.cls *.bas C)*.bas *.ocx */res D)*.frm *.cls *.bas 【答】A。 2.8 新建一個窗體,其BorderStyle屬性設置為Fixed Single,但運行
10、時卻無最大化和最小化按鈕,可能的原因是 A)BorderStyle的值設為Fixed.Single,其設置值的作用即禁止最大化和最小化按鈕 B)窗體的MaxButton和MinButton值設為False C)正常情況下新建的窗體都沒有最大化和最小化按鈕 D)該窗體可用鼠標拖動框的方法改變窗體的大小 【答】B。 二、填空題 2.9 VB程序設計采用的編程機制是____。 【答】事件驅(qū)動。 2.10 VB對象可以分為兩類,分別為____和____。 【答】預定義對象;用戶定義對象。 三、思考題 2.11 什么是對象?什么是對象的屬性、事件和方法? 【答】在可視
11、化編程語言中,對象是代碼和數(shù)據(jù)的集合,它可以是窗體和控件,也可以是菜單或數(shù)據(jù)庫等。從可視化編程的角度來看,這些對象都具有屬性(數(shù)據(jù))和方法(行為方式)。簡單地說,屬性是用于描述對象的一組特征,方法是對象實施的一些動作,對象的動作則常常要觸發(fā)事件,而觸發(fā)事件又可以修改屬性。一個對象建立以后,其操作就通過與該對象有關的屬性、事件和方法來描述。 2.12 如何創(chuàng)建一個應用程序? 【答】 (1)設計界面。先建立窗體,再利用控件在窗體上創(chuàng)建各種對象。 (2)設置屬性。設置窗體或控件等對象的屬性。 (3)編寫代碼。編寫對象的事件代碼。 (4)運行調(diào)試程序。 2.13 如何在當前窗
12、體上創(chuàng)建和刪除一個對象? 【答】向窗體中添加控件的步驟為: (1)單擊工具箱中的控件圖標,鼠標指針變成一個十字指針。 (2)在窗體的工作區(qū)按住鼠標左鍵拖動鼠標,即可在窗體上畫出對應控件。 刪除一個對象的方法為:選中要刪除的對象,按鍵盤上的Delete鍵。 2.14 如何設置對象的屬性? 【答】設置對象的屬性有兩種方式: (1) 預設法:在設計界面時,使用屬性窗口設置對象的屬性。這時只要在屬性窗口中選中要修改的屬性,然后在右列中鍵入新的值即可。 (2) 現(xiàn)改法:在編寫代碼的過程中,通過程序代碼更改對象的屬性。在程序中設置屬性的語法格式為: 對象名.屬性名 = 屬性值
13、 2.15 建立對象后,每個屬性都有一個默認值,“(名稱)”屬性和Caption屬性的默認值相同,它們有什么區(qū)別?能否用代碼修改“(名稱)”屬性? 【答】建立對象后,名稱屬性是事件驅(qū)動的標識,而Caption屬性是顯示在窗體上標簽提示。在編寫代碼中,不能用代碼修改“(名稱)”屬性,而能用代碼修改Caption屬性。 2.16 在沒有關閉程序的情況下,如果又添加了一個工程,但運行時會發(fā)現(xiàn)運行的仍是第一個工程,這是什么原因?如何解決? 【答】這是因為VB默認“工程1”為啟動工程。解決辦法為:在工程資源器窗口中,右鍵單擊添加的“工程”,在快捷菜單中選擇“設置為啟動”即可。 習題3答案
14、 一、選擇題 3.1 以下關于VB數(shù)據(jù)類型的說法,不恰當?shù)氖? A)VB 6.0提供的數(shù)據(jù)類型主要有字符串型和數(shù)值型,此外還有字節(jié)、貨幣、對象、日期、布爾和變體數(shù)據(jù)類型等 B)目前Decimal數(shù)據(jù)類型只能在變體類型中使用 C)用戶不能定義自己的數(shù)據(jù)類型 D)布爾型數(shù)據(jù)只能取兩種值,用兩個字節(jié)存儲 【答】C。 3.2 以下各項,可以作為VB變量名的是 A)Book B)2_Seek C)123.58 D)Book-1 【答】A。 3.3 下列哪個符號不能作為VB中的變量名? A)ABCDEFG B)P000000 C)89TWDDFF D)x
15、yz 【答】C。 3.4 下列( )是VB中的合法變量名。 A)AB7 B)7AB C)IF D)A[B]7 【答】A。 3.5 表達式2 *3^2 + 2 * 8 / 4 + 3^2的值為 A)64 B)31 C)49 D)22 【答】B。 3.6 函數(shù)Int(Rnd(0)*10)是在( )范圍內(nèi)的整數(shù)。 A)( 0 , 1 ) B)( 1 , 10 ) C)( 0 , 9 ) D)( 1 , 9 ) 【答】C。 3.7 表達式3 ^ 2 Mod 14\2^3的值是 A)1
16、 B)0 C)2 D)3 【答】B。 3.8 在VB中,下列兩個變量名相同的是 A)Japan和Ja_pan B)English和ENGLish C)English和Engl D)China和Chin 【答】B。 3.9 數(shù)學式子sin25寫成VB表達式是 A)Sin25 B)Sin(25) C)Sin(25) D)Sin(25*3.14/180) 【答】D。 3.10 在VB中,要強制用戶對所用的變量進行顯式聲明,可以在( )設置。 A)“屬性”對話框 B)“程序代碼”窗口 C)“選項”對話框
17、 D)對象瀏覽器 【答】C。 3.11 下列符號常量的聲明中,不合法的是 A)Const a As Single = 1.1 B)Const a =″OK″ C)Const a As Double = Sin(1) D)Const a As Integer =″12″ 【答】C。 3.12 在代碼編輯器中,續(xù)行符是換行書寫同一個語句的符號,用以表示續(xù)行符的是 A)一個空格加一個下劃線“_” B)一個下劃線“_” C)一個造字符“-” D)一個空格加一個連字符“-” 【答】A。 二、填空題 3.13 如果希望使用變量x來存放數(shù)據(jù)765
18、432.123 456,應將變量x聲明為____類型。 【答】雙精度型。 3.14 把VB算術表達式a/(b + c/(d + e/Sqr(f)))改寫成數(shù)學表達式為____。 【答】。 3.15 如果x是一個正實數(shù),對x的第3位小數(shù)四舍五入的表達式是____。 【答】0.01 * Int(100 * (x + 0.005))。 3.16 函數(shù)Str$(256.36)的值是____。 【答】256.36。 三、思考題 3.17 VB定義了哪幾種數(shù)據(jù)類型?變量有哪幾種數(shù)據(jù)類型?常量有哪幾種數(shù)據(jù)類型? 【答】VB 6.0定義了11種數(shù)據(jù)類型,它們是整型、長整
19、型、單精度浮點型、雙精度浮點型、字符型(變長字符串、定長字符串)、邏輯型、日期型、貨幣型、字節(jié)型、對象型、可變類型(數(shù)值、字符)。 變量的數(shù)據(jù)類型有數(shù)值型、字符型、邏輯型、日期型、對象型、可變數(shù)據(jù)類型。其中,數(shù)值型變量的數(shù)據(jù)類型有:整型、長整型、單精度浮點型、雙精度浮點型、貨幣型和字節(jié)類型。字符型變量的數(shù)據(jù)類型有變長字符串和定長字符串。 常量的數(shù)據(jù)類型有:字符串常量、數(shù)值常量、邏輯常量、日期常量。 3.18 下列數(shù)據(jù)哪些是變量?哪些是常量?是什么類型的常量? (1)name (2) "name" (3)False (4)ff (5)"11/16/99" (6
20、)cj (7)"120" (8)n (9)#11/16/1999# (10)12.345 【答】變量有(1),(4),(6),(8)。 常量有(2),(3),(5),(7),(9),(10)。其中:(2),(5),(7)為字符型常量,(3)為邏輯型常量,(9)為日期型常量,(10)為數(shù)值型常量。 3.19 在VB中,對于沒有賦值的變量,系統(tǒng)默認值是什么? 【答】使用聲明語句建立一個變量后,VB自動將數(shù)值類型的變量賦初值0,變長的字符串被初始化為一個零長度的字符串(""),而定長的字符串則用空格填充。Variant變量被初始化為Empty,邏輯型的變量則初始化為Fals
21、e。 3.20 將下列數(shù)學表達式改寫為等價的VB算術表達式。 (1) (2) (3) 【答】VB中的算術表達式與數(shù)學中的表達式寫法有所區(qū)別,主要表現(xiàn)在:VB中每個符號占1格,所有符號都必須一個一個并排寫在同一橫線上,不能在右上角或右下角寫方次或下標;在數(shù)學表達式中省略的內(nèi)容必須重新寫上;所有括號都要使用小括號“( )”,而且括號必須配對;數(shù)學表達式中的有些符號,需要改成VB中可以表示的符號。 (1)(1 + y / x) / (1 – y / x) (2)(Abs( a * b – c^3))^0.5 或 (Abs(a * b – c^3))^(1 / 2)
22、 或 Sqr(Abs(a * b – c^3)) (3)(s * (s – a) * (s – b) * (s – c))^0.5 或 (s * (s – a) * (s – b) * (s – c) )^(1 / 2) 或 Sqr(s * (s – a) * (s – b) * (s – c)) 3.21 寫出下列表達式的值。 (1)( 2 + 8 * 3 ) / 2 (2)3^2 + 8 (3)#11/22/99# – 10 (4)"ZYX" & 123 & "ABC" 【答】題中各表達式的值分別為: (1)13
23、(2)17 (3)#11/12/99# (4)"ZYX123ABC" 3.22 設A = 7, B = 3, C = 4,求下列表達式的值: (1)A + 3 * C (2)A^2 / 6 (3)A / 2 * 3 / 2 (4)A Mod 3 +B^3 / C \ 5 【答】題中各表達式的值分別為: (1)19 (2)8.16666666666667 (3)5.25 (4)2 3.23 寫出下列表達式的值。 (1)"Visual"+"Basic" (2)"xyz" & 1234 & "ABCD" 【答】題中
24、各表達式的值分別為: (1)"VisualBasic" (2)"xyz1234ABCD" 3.24 寫出下列函數(shù)的值。 (1)Int(–3.14159) (2)Sqr(Sqr(64)) (3)Int(Abs(99–100)/2) (4)Sgn(7*3+2) 【答】函數(shù)的值為: (1)– 4 (2)2.828427 (3)– 3 (4)1 習題4答案 一、選擇題 4.1 要將名為MyForm的窗體顯示出來,正確的使用方法是 A
25、)MyForm.Show B)Show.MyForm C)MyForm Load D)MyForm Show 【答】A。 4.2 如果要將窗體中的某個命令按鈕設置成無效狀態(tài),應設置命令按鈕的( )屬性。 A)Value B)Visible C)Enabled D)Default 【答】C。 4.3 輸入代碼時,VB可以自動檢測( )錯誤。 A)語法錯誤 B)編譯錯誤 C)運行錯誤 D)邏輯錯誤 【答】A。 4.4 在VB中,要將一個窗體加載到內(nèi)存進行預處理但不顯示,應使用的語句是 A)Load B)S
26、how C)Hide D)Unload 【答】A。 4.5 以下能在窗體Form1的標題欄中顯示"VisualBasic窗體"的語句是 A)Form1.Name="VisualBasic窗體" B)Form1.Title="VisualBasic窗體" C)Form1.Caption="VisualBasic窗體" D)Form1.Text="VisualBasic窗體" 【答】C。 4.6 對下列程序段,說法正確的是( ) Text1.Top=2000 : Text1.Left=800 A)Text對象的左邊界距窗體的左邊界是800tw
27、ip,上邊界距窗體的上邊界為2000twip B)Text1的左邊界距屏幕的左邊界為800twip,上邊界距屏幕的上邊界為2000twip C)Text1對象的寬度為2000twip,高度為800twip D)Text1對象的高度為800點,寬度為2000點 【答】A。 4.7 單擊窗體上的關閉按鈕時,觸發(fā)的事件是 A)Form_Initialize() B)Form_Load() C)Form_Unload() D)Form_Click() 【答】C。 4.8 用于將屏幕上的對象分組的控件是 A)列表框 B)組合框 C)標簽 D)框
28、架 【答】D。 4.9 能夠獲得一個文本框中被選取文本的內(nèi)容的屬性是 A)Text B)Length C)Seltext D)SelStart 【答】C。 4.10 用InputBox函數(shù)設計的對話框,其功能是 A)只能接收用戶輸入的數(shù)據(jù),但不會返回任何信息 B)能接收用戶輸入的數(shù)據(jù),并能返回用戶輸入的信息 C)既能用于接收用戶輸入的信息,又能用于輸出信息 D)專門用于輸出信息 【答】B。 二、填空題 4.11 下列語句的輸出結果為____。 Print Format$(5689.36,″000,000.000″) 【答】005,689.36
29、0。 4.12 為了使一個窗體從屏幕消失但仍在內(nèi)存中,所使用的方法或語句為____。 【答】Hide方法。 4.13 當對象得到焦點時,會觸發(fā)____事件,當對象失去焦點時將觸發(fā)____事件。 【答】GotFocus;LostFocus。 4.14 新建一個工程,內(nèi)有兩個窗體,窗體Form1上有一個命令按鈕Command1,單擊該按鈕,F(xiàn)orm1窗體消失,顯示Form2窗體,試補充程序。 Private Sub Command1_Click() ____ Form2.____ End Sub 【答】Me.Hide或者Forml.Hide或者Un
30、load Me;Show。 4.15 在文本框中要使鍵入的所有字符顯示為*號,應設置____屬性為"*"。 【答】PasswordChar。 三、編程題 4.16 設計工程,已知圓的半徑r,求圓面積S。 【解答】 設圓半徑為r,圓面積為S。根據(jù)數(shù)學知識,已知圓半徑r,求圓面積S的公式為:。 設計步驟如下。 (1)建立應用程序用戶界面,如圖4-1所示。 (2)設置對象屬性: Label1的Caption屬性為“已知圓半徑r=”; Text1的Text屬性為空; Command1的Caption屬性為“圓面積為:”; Label2的Caption屬性為空; La
31、bel2的BorderStyle屬性為1-Fixed Single。 各控件的屬性設置如圖4-2所示。 圖4-1 建立用戶界面 圖4-2 設置各控件的屬性 (3)編寫程序代碼。 寫出“圓面積為:”命令按鈕Command1的Click事件代碼為: Private Sub Command1_Click( ) Const pi = 3.14 Dim r As Single, S As Single r = Val(Text1.Text) S = pi * r ^ 2 Label2.Caption = S
32、 End Sub 運行程序時,在文本框輸入圓半徑的值,單擊“圓面積為:”按鈕后,輸出結果如圖4-3所示。 也可以不用文本框接收輸入值,改用InputBox函數(shù)接收圓的半徑r,求圓面積S,代碼如下。 圖4-3 程序運行結果 Private Sub Form_Load( ) Show Const pi = 3.1415926 Dim r As Single, S As Single r = Val(InputBox("輸入半徑:", "計算圓面積", "10")) FontSize = 18 S = pi * r ^ 2 Print "圓面
33、積:"; S End Sub 程序運行時,首先顯示如圖4-4所示的對話框,在該對話框的文本框中輸入數(shù)字,按Enter鍵或單擊“確定”按鈕后,才能顯示窗體。 圖4-4 輸入對話框 用InputBox函數(shù)輸入文本雖然很方便,但是由于輸入框彈出后將暫停程序的運行,直到用戶響應,因此輸入框不符合VB自由環(huán)境的精神。輸入框適合于像要求用戶輸入口令等這樣不常見的輸入方式。還可以用更好的用戶輸入方式,如文本框、選項按鈕等。 4.17 已知平面坐標系中兩點的坐標,求兩點間的距離。 【解答】 由數(shù)學知識可知,已知兩點坐標(xA, yA)、(xB, yB),求兩點間距離的計算公式為
34、 建立用戶界面如圖4-5所示。在該界面中用TextBox控件輸入數(shù)據(jù),用Label控件輸出數(shù)據(jù)。為了形象地表示兩點之間的距離,可用Picture控件插入一幅圖,該圖用畫圖軟件繪制。 命令按鈕Command1的Click事件代碼為: Private Sub Command1_Click( ) Dim xa As Single, xb As Single Dim ya As Single, yb As Single Dim s As Single xa = Val(Text1.Text) ya = Val(Text2.Text) xb = Val(Text3
35、.Text) yb = Val(Text4.Text) s = Sqr((xb - xa) ^ 2 + (yb - ya) ^ 2) Label6.Caption = s End Sub 程序運行結果如圖4-6所示。 圖4-5 設計用戶界面 圖4-6 程序運行結果 4.18 在文本框中輸入三種商品的單價、購買數(shù)量,計算并輸出所用的總金額。 【解答】 假設第一種商品的單價和購買數(shù)量分別是a1和a2,第二種商品的單價和購買數(shù)量分別是b1和b2,第三種商品的單價和購買數(shù)量分別是c1和c2,所用總
36、金額為x。通過TextBox控件輸入這三種商品的單價、購買數(shù)量,然后利用公式x = a1*a2+b1*b2+c1*c2進行計算,最后輸出x的值。 設計步驟如下。 (1)建立應用程序用戶界面,并設置對象屬性,如圖4-7所示。 圖4-7 計算商品總金額 (2)編寫程序代碼。 寫出Command1_Click( )的事件代碼為: Private Sub Command1_Click( ) Dim a1 As Single, b1 As Single, c1 As Single Dim a2 As Integer, b2 As Integer, c2 As Integer
37、 Dim x As Single a1 = Val(Text1.Text) a2 = Val(Text2.Text) b1 = Val(Text3.Text) b2 = Val(Text4.Text) c1 = Val(Text5.Text) c2 = Val(Text6.Text) x = a1 * a2 + b1 * b2 + c1 * c2 Text7.Text = x End Sub 4.19 設計工程,輸出在指定范圍內(nèi)的三個隨機數(shù),范圍在文本框中輸入。 【解答】 隨機函數(shù)Rnd( )可以返回一個(0,1)區(qū)間中的隨機
38、小數(shù),那么,Rnd * a語句可以返回(0, a)區(qū)間中的隨機實數(shù)(帶小數(shù))。 若n, m均為整數(shù),則表達式:Int((m + 1 – n) * Rnd) + n的值是閉區(qū)間[ n, m ]中的一個隨機整數(shù)。 設計步驟如下。 (1)設計程序界面及設置控件屬性。新建一個工程,進入窗體設計器,在窗體中增加一個框架控件Frame1,一個命令按鈕Command1和三個標簽Label1~Label3。選定Frame1,在其中增加兩個文本框Text1和Text2以及一些標簽。修改對象屬性參見表4-1。設置屬性后的窗體如圖4-8所示。 表4-1 屬性設置 對 象 屬 性 屬 性
39、 值 說 明 Frame1 Caption 請指定隨機整數(shù)的范圍: 框架的標題 Command1 Caption 生成隨機數(shù) 按鈕的標題 Label1~Label3 Caption 0 Text1, Text2 Text 0, 1 (2)編寫程序代碼。 Private Sub Command1_Click( ) Randomize n = Val(Text1.Text) m = Val(Text2.Text) Label4.Caption = Int((m + 1 – n) * Rnd) + n Label5.Ca
40、ption = Int((m + 1 – n) * Rnd) + n Label6.Caption = Int((m + 1 – n) * Rnd) + n End Sub 運行程序,在文本框中輸入范圍值后,單擊“生成隨機數(shù)”按鈕,可以不斷生成指定范圍之內(nèi)的隨機整數(shù),如圖4-9所示。 圖4-8 設計用戶界面 圖4-9 生成隨機數(shù) 4.20 使用大小寫轉(zhuǎn)換函數(shù)設計程序,實現(xiàn)在文本框中輸入英文字母,按“轉(zhuǎn)大寫”按鈕,文本變?yōu)榇髮?;按“轉(zhuǎn)小寫”按鈕,文本變?yōu)樾憽? 【解答】 本題主要使用大小寫轉(zhuǎn)換函數(shù)UCase(
41、)和LCase( ),另外還用到了KeyUp(鍵抬起)事件。 設計步驟如下。 (1)建立應用程序用戶界面,并設置對象屬性。新建一個工程,進入窗體設計器,在窗體中增加一個標簽Label1,一個文本框Text1和三個命令按鈕Command1~Command3,參照圖4-10設置各個對象的屬性。 (a) (b) (c) 圖4-10 大小寫轉(zhuǎn)換 (2)設計代碼。 首先設計文本框的KeyUp事件代碼,使得輸入的字符存入文本框的Tag屬性中: Private Sub Text1_KeyU
42、p(KeyCode As Integer, Shift As Integer) Text1.Tag = Text1.Text End Sub 編寫命令按鈕Command1的Click事件代碼: Private Sub Command1_Click( ) Text1.Text = UCase(Text1.Tag) End Sub 編寫命令按鈕Command2的Click事件代碼: Private Sub Command2_Click( ) Text1.Text = LCase(Text1.Tag) End Sub 編寫命令按鈕Command3的Click事件代碼
43、: Private Sub Command3_Click( ) Text1.Text = Text1.Tag End Sub 4.21 設某職工應發(fā)工資x元,試求各種票額鈔票總張數(shù)最少的付款方案。 【解答】 可以從最大的票額(100元)開始,算出所需的張數(shù),然后在剩下的部分算出較小票額的張數(shù),直到最小票額(1元)。 設計步驟如下。 (1)建立應用程序用戶界面。新建一個工程,進入窗體設計器,增加一個命令按鈕Command1,14個標簽Label1~Label14,七個文本框Text1~Text7。用戶界面如圖4-11(a)所示。 (a)
44、 (b) 圖4-11 建立程序界面與程序運行結果 (2)設置對象屬性,參見表4-2。其中標簽的標題屬性參見圖4-11(a)。 表4-2 屬性設置 對 象 屬 性 屬 性 值 說 明 Text1 Text 0 文本框的內(nèi)容 Text2~Text7 Text 文本框的內(nèi)容 Alignment 1-Right Justify 文本內(nèi)容右對齊 Locked True 文本內(nèi)容只讀 Command1 Caption 應付 按鈕標題 Default True 窗體的默認按鈕
45、(3)編寫程序代碼。 編寫命令按鈕Command1的Click事件代碼: Private Sub Command1_Click( ) x = Val(Text1.Text) x為實發(fā)工資數(shù) y = x \ 100 : Text2.Text = y 求100元票張數(shù)并顯示 x = x – 100 * y 求剩余款項 y = x \ 50 : Text3.Text = y 求50元票張數(shù)并顯示 x = x – 50 * y 求剩余款項 y = x \ 10 : Text4
46、.Text = y 求10元票張數(shù)并顯示 x = x – 10 * y 求剩余款項 y = x \ 5 : Text5.Text = y 求5元票張數(shù)并顯示 x = x – 5 * y 求剩余款項 y = x \ 2 : Text6.Text = y 求2元票張數(shù)并顯示 x = x – 2 * y : Text7.Text = x 求1元票張數(shù)并顯示 End Sub 編寫文本框Text1的Change事件代碼: Private Sub Text1_Change( )
47、 當在Text1中輸入新數(shù)時,清空其他文本框中的內(nèi)容 Text2.Text = "" Text3.Text = "" Text4.Text = "" Text5.Text = "" Text6.Text = "" Text7.Text = "" End Sub 運行結果如圖4-11(b)所示。 【說明】 文本框的Change事件當文本框中的內(nèi)容被改變時發(fā)生。 下面用信息對話框來輸出各種票額鈔票張數(shù)的付款方案,如圖4-12所示。 圖4-12 信息對話框 只需將圖4-11中多余的文本框和標簽刪去,并改寫命令按鈕的Click事件代碼如下
48、: Private Sub Command1_Click( ) x = val(Text1.Text) x為實發(fā)工資數(shù) y1 = x \ 100 求100元票張數(shù) x = x Mod 100 求剩余款項 y2 = x \ 50 求50元票張數(shù) x = x Mod 50 求剩余款項 y3 = x \ 10 求10元票張數(shù) x = x Mod 10 求剩余款項 y4 =
49、x \ 5 求5元票張數(shù) x = x Mod 5 求剩余款項 y5 = x \ 2 求2元票張數(shù) x = x Mod 2 求1元票張數(shù) Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) Text1.SetFocus a = "===========================" & Chr(13) a = a & Format(Y1 & "張 百元票,", "@@@@@@@@
50、@@") & _ Format(Y2 & "張 50元票", "@@@@@@@@@@") & Chr(13) a = a & Format(Y3 & "張 10元票,", "@@@@@@@@@@@") & _ Format(Y4 & "張 5元票", "@@@@@@@@@@") & Chr(13) a = a & Format(Y5 & "張 2元票,", "@@@@@@@@@@@") & _ Format(x & "張 1元票", "@@@@@@@@@@") & Chr(13) a = a & "========
51、===================" & Chr(13) a = a & "共計" & Text1.Text & "元" c = MsgBox(a, 0, "應發(fā)工資") End Sub 【說明】 文本框的SelStart屬性用來設置(或返回)所選擇的文本的起始點,如果沒有文本被選中,則指出插入點的位置。 SelLength屬性用來設置(或返回)所選擇的字符數(shù)。函數(shù)Len( )返回字符串數(shù)據(jù)的長度。在命令按鈕的Click事件代碼中調(diào)用SetFocus方法,可使光標重新回到輸入框Text1。使用Mod運算可以得到相除的余數(shù)。 習題5答案 一、選擇題 5.1 下面語
52、句正確的是 A)If x<3*y And x>y Then y=x^3 B)If x<3*y And x>y Then y=3x C)If x<3*y : x>y Then y=x^3 D)If x<3*y : x>y Then y=x**3 【答】A。 5.2 下列語句正確的是 A)If A ≠B Then Print "A不等于B" B)If A < >B Then Printf "A不等于B" C)If A < >B Then Print "A不等于B" D)If A ≠B Print "A不等于B" 【答】C。 5.3
53、 計算z的值,當x大于y時,z=x;否則z=y。下列語句錯誤的是 A)If x>=y Then z=x : z=y B)If x>=y Then z=x Else z=y C)z=y : If x>=y Then z=x D)If x<=y Then z=y Else z=x 【答】A。 5.4 下列程序段的執(zhí)行結果為 X=2 Y=5 If X * Y <1 Then Y=Y-1 Else Y=-1 Print Y - X>0 A)True B)False C)-1 D)1 【答】B。 5.5 下列程序段執(zhí)行
54、結果為 x=5 y=-6 If Not x>0 Then x=y-3 Else y=x+3 Print x-y;y-x A)-3 3 B)5 -9 C)3 -3 D)-6 5 【答】A。 5.6 下列程序段的執(zhí)行結果為 a=95 If a>60 Then I=1 If a>70 Then I=2 If a>80 Then I=3 If a>90 Then I=4 Print ″I=″; I A)I=1 B)I=2 C)I=3 D)I=4 【答】D。 5.7 下面程序段執(zhí)行結果為 x=Int
55、(Rnd()+4) Select Case x Case 5 Print "excellent" Case 4 Print "good" Case 3 Print "pass" Case Else Print "fail" End Select A)excellent B)good C)pass D)fail 【答】B。 5.8 在窗體上畫一個名稱為Timer1的計時器控件,要求每隔0.5秒發(fā)生一次計時器事件,則以下正確的屬性設置語句是 A)Timer1.Interval=0.5
56、 B)Timer1.Interval=5 C)Timer1.Interval=50 D)Timer1.Interval=500 【答】D。 二、填空題 5.9 閏年的條件是:年號(year)能被4整除,但不能被100整除;或者能被400整除。閏年的VB布爾表達式是_____。 【答】設y表示年份,判斷閏年的布爾表達式為: (y Mod 4 = 0 And y Mod 100 <> 0) Or (y Mod 400 = 0) 或表示為: (Int(y / 4) = y / 4 And Int(y / 100) <> y / 100) Or (Int(y / 40
57、0) = y / 400) 5.10 一元二次方程ax2 + bx + c = 0有實根的條件為:a≠ 0,并且b2 - 4ac ≥ 0,其相應的VB布爾表達式為____。 【答】a <> 0 And b^2 – 4 * a * c >= 0 5.11 有下面一個程序段,從文本框中輸入數(shù)據(jù),如果該數(shù)據(jù)滿足條件,除以4余1,除以5余2,則輸出,否則,將焦點定位在文本框中,并清除文本框的內(nèi)容。 Private Sub Command1_Click() x=Val(Text1.Text) If ____ Then Print x Else
58、 Text1.Text="" ____ End If End Sub 【答】x Mod 4 = 1 And x Mod 5 = 2; Text1.Setfoucs。 5.12 下列程序的功能是:當x<50時,y=0.8x;當50≤x≤100時,y=0.7x;當x>100時,沒有意義。請?zhí)羁铡? Private Sub Command1_Click() Dim x As Single x=InputBox("輸入x的值") ____ Case Is<50 y=0.8 * x Cas
59、e 50 To 100 y=0.7 * x ____ Print "輸入的數(shù)據(jù)出界!" End Select Print x , y End Sub 【答】Select Case x;Case Else。 5.13 在窗體上畫一個文本框和一個計時器控件,名稱分別為Text1和Timer1,在屬性窗中把計時器的Interval屬性設置為100,Enabled屬性設置為False。程序運行后,如果單擊命令按鈕,則每隔一秒鐘在文本框中顯示一次當前的時間。請補充程序。 Private Sub Command1_Click()
60、 Timer1.____ End Sub Private Sub Timer1_Timer() Text1.Text=Time End Sub 【答】Enabled=True。 三、編程題 5.14 x, y關系如下,設計程序,輸入x,可計算出y的值。 【解答】 該題是數(shù)學中的一個分段函數(shù),它表示當x ≥ 0時,用公式y(tǒng) = 1 + x來計算y的值;當x < 0時,用公式y(tǒng) = 1 – 2x來計算y的值。在選擇條件時,既可以選擇x≥0作為條件,也可以選擇x < 0作為條件。在這里,選x≥0作為選擇條件。這時,當x≥0為真時,執(zhí)行y = 1 + x;為假時,執(zhí)行y
61、= 1 – 2x。 設計步驟如下。 (1)建立應用程序用戶界面并設置對象屬性,參見圖5-1。 圖5-1 計算分段函數(shù)的值 (2)編寫程序代碼。 命令按鈕Command1的Click事件代碼為: Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x >= 0 Then y = 1 + x Else y = 1 - 2 * x Text2.Text = y End Sub 程序運行結果如圖5-1所示。 也可以利用多行If語句編寫代碼
62、: Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x >= 0 Then y = 1 + x Else y = 1 – 2 * x End If Text2.Text = y Text2.Locked = True End Sub 5.15 若基本工資大于等于600元,增加工資20%;若小于600元,且大于等于400元,則增加工資15%;若小于400元,則增加工資10%。請根據(jù)用戶輸入的基本工資,計算出增
63、加后的工資。 【解答】 設計步驟如下。 (1)建立應用程序用戶界面,并設置對象屬性,如圖5-2所示。 圖5-2 計算基本工資 (2)編寫程序代碼。 編寫文本框Text1的KeyPress(按鍵)事件代碼: Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then n = Val(Text1.Text) Select Case n Case Is >= 600 gz = n * 1.2 Case Is >= 400
64、 gz = n * 1.15 Case Else gz = n * 1.1 End Select Label1.Caption = "增加后的基本工資為:" & gz & "元" Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End If End Sub 5.16 利用單選鈕組控制輸入文本的字體,界面如圖5-3所示。 圖5-3 使用單選鈕組 【解答】 設計步驟如下。 (1)建立應用程序用戶界面并設置對象屬性。 新建一個工程,
65、進入窗體設計器,增加一個標簽Label1,一個文本框Text1和四個單選鈕Option1~Option4,如圖5-4所示。 圖5-4 添加控件 然后設置對象屬性,見表5-1。 表5-1 屬性設置 對 象 屬 性 屬 性 值 說 明 Label1 Caption 請輸入文本 Text1 Text 清空 Option1 Caption 宋體 Value True 單選鈕組中的默認按鈕 Option2 Caption 隸書 Option3 Caption 黑體 Option4 Caption
66、 楷體 并設置適當?shù)淖煮w大小,如圖5-3所示。 (2)編寫程序代碼。 編寫單選鈕Option1的Click事件代碼: Private Sub Option1_Click( ) Text1.FontName = "宋體" End Sub 編寫單選鈕Option2的Click事件代碼: Private Sub Option2_Click( ) Text1.FontName = "隸書" End Sub 編寫單選鈕Option3的Click事件代碼: Private Sub Option3_Click( ) Text1.FontName = "黑體" End Sub 編寫單選鈕Option4的Click事件代碼: Private Sub Option4_Click( ) Text1.FontName = "楷體_GB2312" End Sub 【說明】 一個單選鈕可以用以下方法之一進行選擇。 在運行期間單擊單選鈕。 用Tab鍵定位到單選鈕組,然后在組內(nèi)使用方向鍵(箭頭鍵)定位
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版必修五《林教頭風雪山神廟》ppt課件
- 人教版《分數(shù)的意義和性質(zhì)》(完美版)課件
- 正比例函數(shù)及性質(zhì)
- 企業(yè)戰(zhàn)略環(huán)境分析
- 前列腺增生3課件
- 煉鐵基礎非高爐煉鐵課件
- 小兒腹瀉小講課分析課件
- 職業(yè)經(jīng)理人的壓力管理課件
- 街道改造PPT方案展示-項目概況案例分析現(xiàn)存建筑質(zhì)量設計理念課件
- 2022年北師大版小學數(shù)學《小數(shù)目物品平均分》課件
- 作文指導--場面描寫-PPT
- 肺癌診斷和治療的幾個問題
- 一下《王二小》
- 第八章專題八(教育精品)
- 六年級數(shù)學下冊 正負數(shù) 2課件 人教新課標