版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單元一
初識(shí)VisualBasic第1章初識(shí)VisualBasic.pptx第2章VB程序設(shè)計(jì)概述.pptx第3章VB語(yǔ)言基礎(chǔ).pptx第4章順序結(jié)構(gòu)程序設(shè)計(jì).pptx第5章選擇結(jié)構(gòu)程序設(shè)計(jì).pptx第6章循環(huán)結(jié)構(gòu)程序設(shè)計(jì).pptx第7章數(shù)組.pptx第8章過(guò)程.pptx第9章菜單和工具欄設(shè)計(jì).pptx第10章對(duì)話框設(shè)計(jì).pptx第11章圖形與圖像設(shè)計(jì).pptx第12章程序調(diào)試.pptx全套可編輯PPT課件第1章初識(shí)VisualBasicVisualBasic簡(jiǎn)介1VisualBasic的啟動(dòng)與退出2幫助功能的使用3全套可編輯PPT課件1.1VisualBasic簡(jiǎn)介VisualBasic是一種具有良好圖形用戶界面的程序設(shè)計(jì)語(yǔ)言,它采用面向?qū)ο蠛褪录?qū)動(dòng)的程序設(shè)計(jì)機(jī)制,把過(guò)程化和結(jié)構(gòu)化編程集合在一起,是一種易學(xué)實(shí)用的面向?qū)ο蟮能浖_(kāi)發(fā)工具。Visual的意思是“視覺(jué)的”或“可視的”,也就是直觀的編程方法。Basic是指BASIC語(yǔ)言,之所以叫做“VisualBasic”就是因?yàn)樗褂昧薆ASIC語(yǔ)言作為代碼。VB在原有BASIC語(yǔ)言的基礎(chǔ)上進(jìn)一步發(fā)展,至今包含了數(shù)百條語(yǔ)句、函數(shù)及關(guān)鍵字。全套可編輯PPT課件1.1.1VisualBasic版本1.學(xué)習(xí)版學(xué)習(xí)版是VB的基礎(chǔ)版本,主要是為初學(xué)者了解基于Windows的應(yīng)用程序開(kāi)發(fā)而設(shè)計(jì)的。包括所有的內(nèi)部控件,網(wǎng)格、選項(xiàng)卡和數(shù)據(jù)綁定控件。2.專業(yè)版專業(yè)版為專業(yè)編程人員提供了一整套功能完備的開(kāi)發(fā)工具。它包括了學(xué)習(xí)版的全部功能,同時(shí)還包括ActiveX控件、IIS應(yīng)用程序設(shè)計(jì)器、集成的可視化數(shù)據(jù)工具和數(shù)據(jù)環(huán)境、Active數(shù)據(jù)對(duì)象和DHTML頁(yè)設(shè)計(jì)器。3.企業(yè)版企業(yè)版可供專業(yè)編程人員開(kāi)發(fā)功能強(qiáng)大的組內(nèi)分布式應(yīng)用程序。它包括專業(yè)版的全部功能,以及BackOffice工具,例如SQLServer、MicrosoftTransactionServer、IIS、VisualSourceSafe等。全套可編輯PPT課件1.1.2VisualBasic的特點(diǎn)1.面向?qū)ο蟮目梢暬O(shè)計(jì)平臺(tái)2.事件驅(qū)動(dòng)的編程機(jī)制3.結(jié)構(gòu)化的設(shè)計(jì)語(yǔ)言4.充分利用Windows資源5.開(kāi)放的數(shù)據(jù)庫(kù)功能與網(wǎng)絡(luò)支持返回目錄全套可編輯PPT課件1.2VisualBasic的啟動(dòng)與退出1.2.1啟動(dòng)VisualBasic1.2.2VB集成開(kāi)發(fā)環(huán)境菜單欄工具欄工程管理器窗口屬性窗口窗體布局窗口工具箱窗體設(shè)計(jì)器標(biāo)題欄立即窗口1.標(biāo)題欄標(biāo)題欄中顯示的有窗體控制菜單圖標(biāo)、當(dāng)前激活的工程名稱、當(dāng)前工作模式以及最小化、最大化∕還原、關(guān)閉按鈕。2.菜單欄菜單欄中顯示了“文件”、“編輯”、“視圖”、“工程”、“格式”等菜單項(xiàng),其中包含了VB編程的常用命令。單擊菜單欄中的菜單名,即可彈出下拉菜單。在下拉菜單中顯示各種功能子菜單,包含執(zhí)行該項(xiàng)功能的熱鍵和快捷鍵。3.工具欄菜單欄下面是工具欄,工具欄提供了許多常用命令的快速訪問(wèn)按鈕。單擊某個(gè)按鈕,即可執(zhí)行對(duì)應(yīng)的操作。4.工具箱新建或打開(kāi)“標(biāo)準(zhǔn)EXE”工程時(shí),VB將同時(shí)打開(kāi)標(biāo)準(zhǔn)工具箱。VB的標(biāo)準(zhǔn)工具箱包含了建立應(yīng)用程序所需的各種控件。另外,VB還提供了很多ActiveX控件可以添加到工具箱中。5.工程管理器窗口“查看代碼”按鈕:打開(kāi)“代碼編輯器”查看代碼?!安榭磳?duì)象”按鈕:打開(kāi)“窗體設(shè)計(jì)器”查看正在設(shè)計(jì)的窗體?!扒袚Q文件夾”按鈕:隱藏或顯示包含對(duì)象文件夾中的個(gè)別項(xiàng)目列表。查看代碼查看對(duì)象切換文件夾6.屬性窗口
標(biāo)題欄選項(xiàng)卡屬性列表框?qū)ο笙吕斜砜驅(qū)傩哉f(shuō)明7.窗體設(shè)計(jì)器在窗體的空白區(qū)域單擊右鍵,將彈出快捷菜單,可切換到“代碼窗口”、“菜單編輯器”、“屬性窗口”,還可以選擇“鎖定控件”和“粘貼”。工程標(biāo)題欄窗體窗體的快捷菜單8.窗體布局窗口窗體布局窗口中有一個(gè)表示屏幕的小圖像,用來(lái)顯示窗體在屏幕中的位置??梢杂檬髽?biāo)拖動(dòng)其中的窗體小圖標(biāo)來(lái)調(diào)整窗體在屏幕中的位置。9.立即窗口使用立即窗口可以在中斷狀態(tài)下查詢對(duì)象的值,也可以在設(shè)計(jì)時(shí)查詢表達(dá)式的值或命令的結(jié)果。1.2.3退出VisualBasic
可以使用下面方法之一:?jiǎn)螕魳?biāo)題欄右邊的“關(guān)閉”按鈕。單擊“文件”菜單→“退出”命令。
執(zhí)行上述任一命令后,VB會(huì)自動(dòng)判斷用戶是否修改了工程的內(nèi)容,并詢問(wèn)用戶是否保存文件或直接退出。返回目錄1.3幫助功能的使用1.3.1使用MSDNLibrary在線幫助定位窗格主題窗格1.3.2使用上下文相關(guān)幫助VB的許多部分是上下文相關(guān)的。上下文相關(guān)表示不必搜尋“幫助”菜單就可直接獲得有關(guān)幫助。例如,選中窗體,按〈F1〉鍵,將顯示相關(guān)的幫助信息。1.3.3運(yùn)行“幫助”中的示例代碼為了幫助對(duì)概念的理解,VB幫助系統(tǒng)中包含有一些可以在VB中直接運(yùn)行的示例代碼,可以通過(guò)Windows的剪貼板將這些代碼復(fù)制到代碼窗口中,并按〈F5〉鍵運(yùn)行。注意,有些程序需要先建立窗體和控件,并設(shè)置屬性后才能運(yùn)行示例代碼。返回目錄結(jié)束返回目錄單元二
VB程序設(shè)計(jì)概述單元二VB程序設(shè)計(jì)概述可視化編程的基本概念
1簡(jiǎn)單應(yīng)用程序開(kāi)發(fā)實(shí)例
2添加工程
32.1可視化編程的基本概念2.1.1對(duì)象和類1.什么是對(duì)象
對(duì)象是具有某些特性的具體事物的抽象。它是人的意識(shí)的反映,是一種以概念而存在的東西,所以對(duì)象在現(xiàn)實(shí)生活中隨處可見(jiàn)。與電腦的概念類似,在VB程序中,窗體、命令按鈕、標(biāo)簽控件、文本框控件、列表框等都是對(duì)象。2.什么是類
類是創(chuàng)建對(duì)象實(shí)例的模板,是同種對(duì)象的集合與抽象。類是對(duì)象的定義,而對(duì)象是類的一個(gè)實(shí)例。類的屬性和方法定義了類的界面,封裝了用于類的全部信息。當(dāng)應(yīng)用程序在某處創(chuàng)建一個(gè)對(duì)象時(shí),用戶只要使用對(duì)象的屬性和方法進(jìn)行相應(yīng)操作,而不必關(guān)心其內(nèi)部的實(shí)現(xiàn)方式。3.建立對(duì)象
VB使用的“可視化編程”方法,是“面向?qū)ο缶幊獭奔夹g(shù)的簡(jiǎn)化版。在VB環(huán)境中所涉及到的窗體、控件、部件和菜單項(xiàng)等均為對(duì)象,程序員不僅可以利用控件來(lái)創(chuàng)建對(duì)象,而且還可以建立自己的“控件”。在窗體上建立對(duì)象有以下兩種方法:
單擊工具箱中的控件按鈕,在窗體上拖動(dòng)鼠標(biāo)畫(huà)出控件。畫(huà)出的控件大小和位置可隨意確定。
雙擊工具箱中的控件按鈕,在窗體的中央畫(huà)出控件。畫(huà)出的控件的大小和位置是暫時(shí)固定的。4.對(duì)象的縮放和移動(dòng)直接使用鼠標(biāo)拖動(dòng)控件到需要的地方。利用鼠標(biāo)指針對(duì)準(zhǔn)控件的選中標(biāo)志(8個(gè)小方塊)出現(xiàn)雙向箭頭時(shí),可以改變控件的大小。在屬性窗口修改某些屬性來(lái)改變控件的大小和位置。與窗體和控件大小及位置有關(guān)的控件屬性有:Left、Top、Width及Height。5.對(duì)象的復(fù)制與刪除
(1)復(fù)制對(duì)象①選中控件對(duì)象,單擊工具欄上的“復(fù)制”按鈕,將控件復(fù)制到剪貼板中。②單擊“粘貼”按鈕,將控件粘貼到窗體的左上角。由于復(fù)制控件名稱相同,系統(tǒng)會(huì)彈出一個(gè)“是否創(chuàng)建控件數(shù)組”對(duì)話框。③單擊“否(N)”,在窗體上得到該控件的復(fù)制品。復(fù)制品的所有屬性與原控件相同,只是名稱屬性(Name)的序號(hào)比原控件大。
(2)刪除對(duì)象要?jiǎng)h除活動(dòng)對(duì)象,只需選中控件后按〈Delete〉鍵;或右鍵單擊活動(dòng)控件,在快捷菜單中選擇“刪除”命令。6.對(duì)象的命名每個(gè)對(duì)象的名稱必須是惟一的,這樣才能夠在程序中引用該對(duì)象。在創(chuàng)建對(duì)象時(shí),系統(tǒng)會(huì)給出一個(gè)默認(rèn)的名稱,如標(biāo)簽對(duì)象Label1、Label2等,用戶可以在屬性窗口中通過(guò)修改“(名稱)”屬性的值來(lái)為對(duì)象重新命名。
VB系統(tǒng)規(guī)定,對(duì)象名稱必須以字母或漢字開(kāi)頭,由字母、漢字、數(shù)字和下劃線組成,其長(zhǎng)度不大于255個(gè)字符。7.窗體上對(duì)象的布局2.1.2屬性、事件和方法1.對(duì)象的三要素在VB中,控件是具有自己的屬性、事件和方法的對(duì)象,可以把屬性看作一個(gè)對(duì)象的性質(zhì),把方法看作對(duì)象的動(dòng)作,把事件看作對(duì)象的響應(yīng),由此構(gòu)成了對(duì)象的三要素:屬性、事件、方法。2.屬性、屬性名、屬性值
屬性是對(duì)象所具有的特征。不同的對(duì)象有不同的屬性,不同的屬性有不同的值。
在面向?qū)ο蟪绦蛟O(shè)計(jì)中,同類型的對(duì)象具有相同的屬性和不同的屬性值。例如,“人”是類的一種,每一個(gè)人都有姓名、性別、年齡等屬性,給這些屬性賦予具體的屬性值,就創(chuàng)建了一個(gè)具體的對(duì)象。3.在VB中修改對(duì)象的屬性值
(1)預(yù)設(shè)法在設(shè)計(jì)界面時(shí),使用屬性窗口設(shè)置對(duì)象的屬性。這時(shí)只要在屬性窗口中選中要修改的屬性,然后在右列中鍵入新的值即可。
(2)現(xiàn)改法在編寫(xiě)代碼的過(guò)程中,通過(guò)程序代碼更改對(duì)象的屬性。在程序中設(shè)置屬性的語(yǔ)法格式為:
對(duì)象名.屬性名=屬性值4.事件、事件過(guò)程和事件驅(qū)動(dòng)
(1)事件事件是發(fā)生在對(duì)象上且能被對(duì)象識(shí)別的動(dòng)作。VB系統(tǒng)為每個(gè)對(duì)象預(yù)先定義了一系列的事件,如單擊(Click)、雙擊(DblClick)、、裝載(Load)等。
(2)事件過(guò)程當(dāng)在對(duì)象上發(fā)生了某個(gè)事件后,應(yīng)用程序就要處理這個(gè)事件,處理事件的步驟就是事件過(guò)程。
(3)事件驅(qū)動(dòng)寫(xiě)完程序后開(kāi)始執(zhí)行時(shí),程序會(huì)先等待某個(gè)事件的發(fā)生,然后再去執(zhí)行處理此事件的事件過(guò)程。事件過(guò)程要經(jīng)過(guò)事件的觸發(fā)才會(huì)被執(zhí)行,這種動(dòng)作模式就稱為事件驅(qū)動(dòng)程序設(shè)計(jì)。5.方法在面向?qū)ο蟪绦蛟O(shè)計(jì)中,對(duì)象除了有屬于自己的屬性和事件外,還包含屬于自己的行為,即方法。在VB中,“方法”是指對(duì)象本身所包含的一些特殊函數(shù)或過(guò)程,利用對(duì)象內(nèi)部自帶的函數(shù)或過(guò)程,可以實(shí)現(xiàn)對(duì)象的一些特殊功能和動(dòng)作。在VB中對(duì)象方法的調(diào)用格式為:
[對(duì)象名].方法名[參數(shù)名表]返回目錄2.2簡(jiǎn)單應(yīng)用程序開(kāi)發(fā)實(shí)例
【任務(wù)2.3】
設(shè)計(jì)一個(gè)加法計(jì)算器。由用戶隨意輸入兩個(gè)數(shù),可自動(dòng)計(jì)算出它們的和。2.2.1創(chuàng)建程序界面1.創(chuàng)建窗體啟動(dòng)VB,在默認(rèn)方式下系統(tǒng)將自動(dòng)創(chuàng)建一個(gè)只包含一個(gè)窗體Form1的應(yīng)用程序。2.添加控件①單擊工具箱中的控件圖標(biāo),鼠標(biāo)指針變成一個(gè)十字指針。②在窗體的工作區(qū)按住鼠標(biāo)左鍵拖動(dòng)鼠標(biāo),即可在窗體上畫(huà)出對(duì)應(yīng)控件。
2.2.2設(shè)置屬性
1.設(shè)置窗體Form1的屬性2.設(shè)置控件的屬性①分別選中文本框控件Text1~Text3,將其Text屬性設(shè)置為空。②選中標(biāo)簽控件Label1,將其Caption屬性設(shè)置為“+”;將其Alignment屬性改為“2—Center”,使其居中顯示。③將命令按鈕Command1的Caption屬性設(shè)置為“=”。2.2.3編寫(xiě)代碼1.打開(kāi)“代碼窗口”的方法有4種方法可以打開(kāi)“代碼窗口”:雙擊窗體的任何地方。右鍵單擊,在快捷菜單中單擊“查看代碼”。使用工程窗口中的“查看代碼”按鈕。單擊“視圖”菜單→“代碼窗口”命令。2.代碼窗口的組成對(duì)象下拉列表框代碼區(qū)過(guò)程下拉列表框過(guò)程查看全模塊查看2.2.4運(yùn)行調(diào)試1.運(yùn)行工程單擊工具欄上的“啟動(dòng)”按鈕,或單擊“運(yùn)行”菜單→“啟動(dòng)”命令,可運(yùn)行工程。2.修改工程修改工程包括修改對(duì)象的屬性和代碼,也可以添加新的對(duì)象和代碼,或者調(diào)整控件的大小等,直到滿足工程設(shè)計(jì)的需要為止。運(yùn)行程序時(shí),如果程序有錯(cuò),則會(huì)彈出提示框,用戶可根據(jù)提示信息進(jìn)行修正。3.保存工程①單擊“文件”菜單→“保存工程”命令,或直接單擊工具欄上的“保存工程”按鈕,系統(tǒng)打開(kāi)“文件另存為”對(duì)話框。②在“文件另存為”對(duì)話框中,注意保存類型,保存窗體文件(*.frm)到指定文件夾中。③窗體文件存盤(pán)后,系統(tǒng)會(huì)繼續(xù)彈出“工程另存為”對(duì)話框,保存類型為“工程文件(*.vbp)”,默認(rèn)工程文件名為“工程1.vbp”,保存工程文件到指定文件夾中。4.生成可執(zhí)行文件①單擊“文件”菜單→“生成工程1.exe”命令。②在打開(kāi)的“生成工程”對(duì)話框中,選擇程序所保存的文件夾和文件名,單擊“確定”按鈕。返回目錄2.3添加工程①單擊工具欄上的“添加StandardEXE工程”按鈕,這時(shí)工程管理器標(biāo)題欄顯示為“工程組”,VB標(biāo)題欄顯示為“工程2”。②按照2.2節(jié)步驟設(shè)置界面、屬性、編寫(xiě)代碼、運(yùn)行調(diào)試程序。③右鍵單擊“工程組”中的“工程2”,在快捷菜單中選擇“設(shè)置為啟動(dòng)”,即可運(yùn)行工程2。返回目錄結(jié)束返回目錄單元三VB語(yǔ)言基礎(chǔ)單元三VB語(yǔ)言基礎(chǔ)數(shù)據(jù)類型1常量和變量2VB表達(dá)式3常用內(nèi)部函數(shù)4語(yǔ)句53.1數(shù)據(jù)類型在高級(jí)語(yǔ)言中,廣泛使用“數(shù)據(jù)類型”這一概念,數(shù)據(jù)類型體現(xiàn)了數(shù)據(jù)結(jié)構(gòu)的特點(diǎn)。不同類型的數(shù)據(jù),所占的存儲(chǔ)空間不一樣,選擇使用合適的數(shù)據(jù)類型,可以優(yōu)化代碼。另外,數(shù)據(jù)類型不同,對(duì)其處理的方法也不同,這就需要進(jìn)行數(shù)據(jù)類型的說(shuō)明或定義。只有相同(相容)類型的數(shù)據(jù)之間才能進(jìn)行操作,否則就會(huì)出現(xiàn)錯(cuò)誤。3.1.1字符型數(shù)據(jù)
字符型數(shù)據(jù)是用來(lái)存儲(chǔ)文字信息的,內(nèi)容可以是單個(gè)字符、詞或一段文字等,也常稱為字符串。VB中,對(duì)該類數(shù)據(jù)賦值時(shí)要用雙引號(hào)將值括起來(lái)。1.變長(zhǎng)字符串變長(zhǎng)字符串是指字符串的長(zhǎng)度是可變的,隨著對(duì)該數(shù)據(jù)的修改或重新賦值,它的長(zhǎng)度可增可減。例如:
"VisualBasic6.0""2+3="2.定長(zhǎng)字符串定長(zhǎng)字符串是指它在程序執(zhí)行過(guò)程中,始終保持其長(zhǎng)度不變的字符串。可用語(yǔ)法“String*Size”表示,例如,聲明一個(gè)長(zhǎng)度為8個(gè)字符的字符串變量x:DimxAsString*83.1.2數(shù)值型數(shù)據(jù)1.整型數(shù)整型數(shù)(Integer)是不帶小數(shù)點(diǎn)和指數(shù)符號(hào)的數(shù),可以是正整數(shù)、負(fù)整數(shù)或0。例如:
876534567–1230–252.長(zhǎng)整型數(shù)長(zhǎng)整型數(shù)(Long)也是一個(gè)整數(shù),它表示的范圍更大。例如:
32768–123456899876543213.單精度數(shù)單精度數(shù)(Single)用來(lái)表示帶有小數(shù)部分的實(shí)數(shù)。例如:
–2.3123.4+1.234.0000567
單精度數(shù)的浮點(diǎn)形式:
–1.2E8123.4E–1234.56E+28.00098765E–204.雙精度數(shù)雙精度數(shù)(Double)與單精度數(shù)相似,但所占的存儲(chǔ)空間更大,取值范圍更寬,例如:
–12.1234567891230.987654321100000000.1234
雙精度數(shù)的浮點(diǎn)形式:
–1.234567D92123.123456789D–450.123456789D+53.1.3布爾型數(shù)據(jù)
布爾型數(shù)據(jù)(Boolean)用于進(jìn)行邏輯判斷,其結(jié)果是一個(gè)邏輯值,用于表示兩個(gè)值的狀態(tài),如邏輯的真與假,電燈的開(kāi)與關(guān),選擇題答案的對(duì)與錯(cuò),性別的男與女。布爾型數(shù)據(jù)只有True(真)和False(假)兩個(gè)值。當(dāng)把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為Boolean型數(shù)據(jù)時(shí),0會(huì)轉(zhuǎn)換為False,其他非0值轉(zhuǎn)換為T(mén)rue。當(dāng)把Boolean值轉(zhuǎn)換為數(shù)值型數(shù)據(jù)時(shí),F(xiàn)alse轉(zhuǎn)換為0,True轉(zhuǎn)換成-1。3.1.4日期型數(shù)據(jù)
日期型數(shù)據(jù)(Date)用來(lái)表示日期和時(shí)間,可以表示多種格式的日期和時(shí)間,表示的日期范圍從公元100年1月1日~9999年12月31日,而時(shí)間可以從0:00:00~23:59:59。
Date型數(shù)據(jù)用兩個(gè)“#”符號(hào)把表示日期和時(shí)間的值括起來(lái),就像字符串?dāng)?shù)據(jù)用雙引號(hào)括起來(lái)一樣。例如:
#07/30/2007##2007–07–30##07/30/200707:25:12AM#3.1.5變體型數(shù)據(jù)
變體型數(shù)據(jù)(Variant)是一種可變的數(shù)據(jù)類型,可以存放任何類型的數(shù)據(jù),因此變體型可說(shuō)是VB中用途最廣、最靈活的一種變量類型。在程序中不特別說(shuō)明時(shí),VB會(huì)自動(dòng)將該變量默認(rèn)為Variant型變量。例如:a="6"'a的值為字符型數(shù)據(jù)“6”a=6–2 'a的值為數(shù)值型數(shù)據(jù)4a="D"&a'a的值為字符型數(shù)據(jù)“D4”返回目錄3.2常量和變量在程序設(shè)計(jì)中,不同類型的數(shù)據(jù)可以以常量的形式出現(xiàn),也可以以變量的形式出現(xiàn)。常量是指在程序運(yùn)行過(guò)程中其值保持不變的量,變量是指在程序運(yùn)行過(guò)程中其值可以變化的量。3.2.1常量1.直接常量
直接常量是在程序中直接使用的常量值。
(1)字符串常量字符串常量是用雙引號(hào)括起來(lái)的一串字符。例如:
"$3,123.123""3859987""Visual"(2)數(shù)值常量數(shù)值常量有整數(shù)、長(zhǎng)整數(shù)、單精度數(shù)、雙精度數(shù)。例如:
1239876543213.1415926(3)布爾常量布爾常量只有True(真)和False(假)兩個(gè)值。
(4)日期常量用“#”把表示日期和時(shí)間的值括起來(lái)表示日期常量。例如:
#07/30/2007##30/07/2007#2.符號(hào)常量在程序設(shè)計(jì)中,如果多次出現(xiàn)的某個(gè)常量值是一個(gè)很大的數(shù)字或很長(zhǎng)的字符串,為了改進(jìn)代碼的可讀性和可維護(hù)性,可以給某一特定的值賦予一個(gè)名字,以后用到這個(gè)常量時(shí)就用名字代替,這個(gè)名字就是符號(hào)常量。
(1)系統(tǒng)提供的常量系統(tǒng)提供的常量是指VB內(nèi)置的一些便于記憶的常量。
(2)用戶聲明的常量聲明常量的語(yǔ)法格式為:Const〈常量名〉[As〈數(shù)據(jù)類型〉]=〈表達(dá)式〉3.2.2變量變量的命名規(guī)則:
(1)只能由字母、數(shù)字或下劃線組成,如int.sum是非法的(因其中有小數(shù)點(diǎn))。
(2)必須以字母開(kāi)頭。如xm、ab2,不能為2ab。
(3)組成變量名的字符數(shù)不得超過(guò)255個(gè)。
(4)不能用VB的保留字作變量名,但可以把保留字嵌入變量名中;同時(shí),變量名也不能是末尾帶有類型說(shuō)明符的保留字。如Print和Print$是非法的變量名。
聲明變量的語(yǔ)法格式為:
Dim〈變量名〉[As〈類型〉]返回目錄3.3VB表達(dá)式3.3.1算術(shù)表達(dá)式算術(shù)表達(dá)式的格式為:〈數(shù)值1〉〈算術(shù)運(yùn)算符1〉〈數(shù)值2〉[〈算術(shù)運(yùn)算符2〉〈數(shù)值3〉]運(yùn)算符名稱示例^乘方2^3,值為8*乘法2*3,值為6/浮點(diǎn)除法1/2,值為0.5\整數(shù)除法1\2,值為0Mod求余的模運(yùn)算1Mod2,值為1+加法1+2,值為3–減法、取負(fù)3–2,值為13.3.2字符串表達(dá)式1.字符串運(yùn)算符字符串表達(dá)式由字符串常量、字符串變量、字符串函數(shù)和字符串運(yùn)算符組成。
〈字符串1〉&〈字符串2〉[&〈字符串3〉]例如:"12AB"&"3C"&"4DE"'連接后結(jié)果為"12AB3C4DE“
另外,還可以用“+”把兩個(gè)字符串連接成一個(gè)字符串。但是“+”容易與算術(shù)加法運(yùn)算符產(chǎn)生混淆,所以建議最好用“&”號(hào)。3.3.3日期表達(dá)式日期型表達(dá)式的3種運(yùn)算
(1)兩個(gè)日期型數(shù)據(jù)相減,結(jié)果是一個(gè)數(shù)值型數(shù)據(jù)(兩個(gè)日期相差的天數(shù))。例如:#07/20/2008#–#07/10/2008#(2)一個(gè)表示天數(shù)的數(shù)值型數(shù)據(jù)加到日期型數(shù)據(jù)中,結(jié)果仍然為一日期型數(shù)據(jù)(向后推算日期)。例如:
#07/20/2008#+10(3)表示天數(shù)的數(shù)值型數(shù)據(jù)從日期型數(shù)據(jù)中減掉它,結(jié)果仍然為一日期型數(shù)據(jù)(向前推算日期)。例如:
#07/20/2008#–10返回目錄3.4常用內(nèi)部函數(shù)3.4.1數(shù)學(xué)運(yùn)算函數(shù)Int函數(shù):返回不大于給定數(shù)的最大整數(shù)。Sqr函數(shù):返回?cái)?shù)的平方根。Abs函數(shù):返回?cái)?shù)的絕對(duì)值。Exp函數(shù):返回e的指定次冪。3.4.2字符串函數(shù)Str函數(shù):返回把數(shù)值型數(shù)據(jù)轉(zhuǎn)換為字符型后的字符串。Val函數(shù):把一個(gè)數(shù)字字符串轉(zhuǎn)換為相應(yīng)的數(shù)值。Mid函數(shù):返回從字符串指定位置開(kāi)始的指定數(shù)目字符。Len函數(shù):返回字符串的長(zhǎng)度。Left函數(shù):返回從字符串左邊開(kāi)始的指定數(shù)目的字符。Right函數(shù):返回從字符串右端開(kāi)始的指定數(shù)目的字符。String函數(shù):返回包含一個(gè)字符重復(fù)指定次數(shù)的字符串。Lcase函數(shù):返回以小寫(xiě)字母組成的字符串。Ucase函數(shù):返回以大寫(xiě)字母組成的字符串。3.4.3日期和時(shí)間函數(shù)Date函數(shù):返回當(dāng)前日期(yy–mm–dd)。Time函數(shù):返回當(dāng)前時(shí)間(hh:mm:ss)。Year函數(shù):返回年份(yyyy)。Hour函數(shù):返回小時(shí)(0~23)。Timer函數(shù):返回從午夜算起已過(guò)的秒數(shù)。3.4.4格式輸出函數(shù)用格式輸出函數(shù)Format()可以使數(shù)值、日期或字符型數(shù)據(jù)按指定的格式輸出。語(yǔ)法格式為:
Format(〈表達(dá)式〉,〈格式字符串〉)
說(shuō)明:
〈格式字符串〉是一個(gè)字符串常量或變量,由專門(mén)的格式說(shuō)明字符組成。這些說(shuō)明字符決定了數(shù)據(jù)項(xiàng)〈表達(dá)式〉的顯示格式和長(zhǎng)度。格式說(shuō)明字符按照類型可以分為數(shù)值型說(shuō)明符、日期型說(shuō)明符和字符型說(shuō)明符。3.4.5隨機(jī)數(shù)語(yǔ)句和函數(shù)在測(cè)試、模擬和游戲程序中,經(jīng)常要使用隨機(jī)數(shù),隨機(jī)數(shù)語(yǔ)句和函數(shù)有:
Randomize語(yǔ)句:產(chǎn)生隨機(jī)數(shù)的種子。
Rnd函數(shù):產(chǎn)生0~1之間的隨機(jī)數(shù)。返回目錄3.5語(yǔ)句3.5.1程序語(yǔ)句
VB中的語(yǔ)句是執(zhí)行具體操作的指令,每個(gè)語(yǔ)句行以回車〈Enter〉鍵結(jié)束。程序語(yǔ)句是VB關(guān)鍵字、屬性、函數(shù)、運(yùn)算符以及能夠生成VB編輯器可識(shí)別指令的符號(hào)的任意組合。一個(gè)完整的程序語(yǔ)句可以簡(jiǎn)單到只有一個(gè)關(guān)鍵字,例如:Stop
語(yǔ)句也可以是各種元素的組合,例如下面的語(yǔ)句,把當(dāng)前系統(tǒng)時(shí)間賦值給標(biāo)簽的Caption屬性:Label1.Caption=Time
對(duì)象名屬性名VB函數(shù)賦值號(hào)
建立程序語(yǔ)句時(shí)必須遵從的構(gòu)造規(guī)則稱為語(yǔ)法。編寫(xiě)正確程序語(yǔ)句的前提,就是學(xué)習(xí)語(yǔ)言元素的語(yǔ)法,并在程序中使用這些元素正確地處理數(shù)據(jù)。3.5.2語(yǔ)句的書(shū)寫(xiě)規(guī)則1.自動(dòng)語(yǔ)法檢查如果設(shè)置了“自動(dòng)語(yǔ)法檢測(cè)”(用“工具”菜單→“選項(xiàng)”→“編輯器”),則在輸入語(yǔ)句的過(guò)程中,VB將自動(dòng)對(duì)輸入的內(nèi)容進(jìn)行語(yǔ)法檢查,如果發(fā)現(xiàn)語(yǔ)法錯(cuò)誤,將彈出一個(gè)信息框提示出錯(cuò)的原因。2.格式化處理
VB會(huì)按約定對(duì)語(yǔ)句進(jìn)行簡(jiǎn)單的格式化處理,例如關(guān)鍵字、函數(shù)的第一個(gè)字母自動(dòng)變?yōu)榇髮?xiě),運(yùn)算符前后加空格等。在輸入語(yǔ)句時(shí),命令詞、函數(shù)等可以不必區(qū)分大小寫(xiě)。例如,在輸入Print時(shí),不管輸入Print、print,還是PRINT,按回車鍵后都變?yōu)镻rint。為了提高程序的可讀性,在代碼中應(yīng)加上適當(dāng)?shù)目崭?,同時(shí)應(yīng)按慣例處理字母的大小寫(xiě)。3.復(fù)合語(yǔ)句行一般情況下,輸入程序時(shí)要求一行一句,一句一行。但是VB也允許使用復(fù)合語(yǔ)句行,即把幾個(gè)語(yǔ)句放在一個(gè)語(yǔ)句行中,語(yǔ)句之間用冒號(hào)“:”隔開(kāi)。一個(gè)語(yǔ)句行的長(zhǎng)度最多不能超過(guò)1023個(gè)字符。例如:a=2:b=3:c=44.語(yǔ)句的續(xù)行當(dāng)一條語(yǔ)句很長(zhǎng)時(shí),在代碼編輯窗口閱讀程序時(shí)不便查看,使用滾動(dòng)條又比較麻煩。這時(shí),就可以使用續(xù)行功能,用續(xù)行符“_”(下劃線)將一個(gè)較長(zhǎng)的語(yǔ)句分為多個(gè)程序行。例如:strMyStr="NAME:"&_strname
在使用續(xù)行符時(shí),在它前面至少要加一個(gè)空格,并且續(xù)行符只能出現(xiàn)在行尾。3.5.3命令格式中的符號(hào)約定符號(hào)含義〈〉必選參數(shù)表示符。尖括號(hào)中的中文提示說(shuō)明,由使用者根據(jù)問(wèn)題的需要提供具體參數(shù)。如果缺少必選參數(shù),語(yǔ)句則發(fā)生語(yǔ)法錯(cuò)誤[]可選參數(shù)表示符。方括號(hào)中的內(nèi)容選與不選由用戶根據(jù)具體情況決定,且都不影響語(yǔ)句本身的功能。如省略,則默認(rèn)為缺省值|多中取一表示符,含義為“或者選擇”。豎線分隔多個(gè)選擇項(xiàng),必須選擇其中之一{}包含多中取一的各項(xiàng),...表示同類項(xiàng)目的重復(fù)出現(xiàn)...表示省略了在當(dāng)時(shí)敘述中不涉及的部分返回目錄結(jié)束返回目錄單元四
順序結(jié)構(gòu)程序設(shè)計(jì)單元四順序結(jié)構(gòu)程序設(shè)計(jì)數(shù)據(jù)輸出
1常用基本語(yǔ)句
2利用文本框進(jìn)行數(shù)據(jù)輸入
3使用對(duì)話框
44.1數(shù)據(jù)輸出4.1.1直接輸出到窗體1.使用Print方法
[〈對(duì)象名〉.]Print[表達(dá)式表][{,|;}]逗號(hào)分隔符,各輸出項(xiàng)按標(biāo)準(zhǔn)輸出(分區(qū)輸出)格式顯示,此時(shí),以14個(gè)字符寬度為單位將輸出行分為若干區(qū)段,逗號(hào)后面的表達(dá)式在下一個(gè)區(qū)段輸出。分號(hào)分隔符,按緊湊格式輸出,即各輸出項(xiàng)之間無(wú)間隔地連續(xù)輸出。PrivateSubCommand1_Click()
PrintPrint"2*3+4=";2*3+4
Print Print"祝你學(xué)好"Print,"Visual?
Print,,"Baisc"
PrintPrint"祝您學(xué)好",
Print"Visual";"Baisc"EndSub2.與Print方法有關(guān)的函數(shù)
(1)Tab函數(shù)
(2)Spc函數(shù)PrivateSubForm_Click()ShowFontSize=12PrintPrintTab(10);"姓名";Tab(25);"性別";Tab(40);"年齡"PrintPrintTab(10);"張紅";Tab(25);"女";Tab(40);17PrintTab(10);"海小翔";Tab(25);"男";Tab(40);18EndSub3.使用位置屬性和字體屬性PrivateSubCommand1_Click()DimxAsStringx="輕輕松松學(xué)VB"FontSize=20
FontName="黑體"CurrentX=2000CurrentY=1500ShowPrintxEndSub4.清除方法ClsPrivateSubCommand2_Click()
ClsEndSub4.1.2使用Label控件實(shí)現(xiàn)數(shù)據(jù)輸出PrivateSubCommand1_Click()Label1.Caption="你是男是女呀?"
Label2.Caption="女生"
Label2.Alignment=2
Label2.BorderStyle=0EndSub
Label控件的常用屬性:
(1)Caption屬性用來(lái)在標(biāo)簽中顯示文本。在缺省情況下,Caption(標(biāo)題)是Label控件中唯一的可見(jiàn)部分。
(2)BorderStyle屬性用來(lái)設(shè)置標(biāo)簽的邊框。該屬性可以取兩個(gè)值,即0和1。默認(rèn)情況下,該屬性值為0,標(biāo)簽無(wú)邊框。如果把BorderStyle(邊框樣式)屬性設(shè)置成1,那么Label就有了一個(gè)邊框。
(3)其他外觀屬性可以通過(guò)設(shè)置Label控件的BackColor、ForeColor和Font等屬性來(lái)改變Label的外觀。返回目錄4.2常用基本語(yǔ)句4.2.1賦值語(yǔ)句[Let]〈名稱〉=〈表達(dá)式〉實(shí)現(xiàn)兩變量的交換。PrivateSubCommand1_Click()t=Label3.CaptionLabel3.Caption=Label4.CaptionLabel4.Caption=tEndSub
4.2.2卸載對(duì)象語(yǔ)句UnloadUnload〈對(duì)象名〉PrivateSubCommand2_Click()UnloadMe'Me表示按鈕所在的窗體對(duì)象EndSub4.2.3注釋語(yǔ)句RemRem〈注釋內(nèi)容〉'〈注釋內(nèi)容〉例如:s=pi*r^2'計(jì)算圓的面積v=4/3*pi*r^3:Rem計(jì)算球的體積返回目錄4.3利用文本框進(jìn)行數(shù)據(jù)輸入4.3.1TextBox控件的簡(jiǎn)單使用
(1)Text屬性:文本框中包含的文本內(nèi)容。
(2)Locked屬性:控件是否可編輯。Locked屬性值為T(mén)rue時(shí),文本框內(nèi)容不可編輯;為False時(shí)可編輯。
(3)PassWordChar屬性:顯示在文本框中的替代符,如一串“*”號(hào)等。主要用于口令的輸入。
(4)MaxLength屬性:顯示在文本框中的字符數(shù),超出部分不接收,并同時(shí)發(fā)出嘟嘟聲。PrivateSubForm_Load()Text1.Text="":Text2.Text=""Text3.Text="":Text4.Text=""Text5.Text=""
Text5.Locked=True
EndSubPrivateSubCommand1_Click()DimaAsSingle,bAsSingle,cAsSinglea=Val(Text2.Text)
b=Val(Text3.Text)c=Val(Text4.Text)Text5.Text=(a+b+c)/3EndSub4.3.2多行文本的輸入MultiLine值為False,ScrollBars值為0(缺省情況下)MultiLine值為T(mén)rue,ScrollBars值為0MultiLine值為T(mén)rue,ScrollBars值為2MultiLine值為T(mén)rue,ScrollBars值為14.3.3焦點(diǎn)與Tab鍵序
焦點(diǎn)就是光標(biāo),當(dāng)對(duì)象具有“焦點(diǎn)”時(shí)才能響應(yīng)用戶輸入。當(dāng)控件的Visible和Enabled屬性值為T(mén)rue時(shí),控件才能接收焦點(diǎn)。但是,某些控件不具有焦點(diǎn),如標(biāo)簽、框架、計(jì)時(shí)器等。程序運(yùn)行時(shí),可以通過(guò)下列方法改變焦點(diǎn):
用鼠標(biāo)單擊對(duì)象。
按〈Tab〉鍵或〈Shift〉+〈Tab〉在當(dāng)前窗體的各對(duì)象之間巡回移動(dòng)焦點(diǎn)。
按熱鍵選擇對(duì)象??刂芓ab鍵序的屬性有:1)TabIndex屬性:決定控件接收焦點(diǎn)的順序。2)TabStop屬性:決定焦點(diǎn)是否能夠停在該控件上。
4.3.4Frame控件PrivateSubCommand1_Click()DimhAsInteger,mAsInteger,sAsInteger
DimxAsLongh=Val(Text1.Text)
m=Val(Text2.Text)
s=Val(Text3.Text)
x=h*3600+m*60+s
Label1.Caption="共計(jì)秒數(shù)"&Str(x)&"秒"EndSub返回目錄4.4使用對(duì)話框?qū)崿F(xiàn)數(shù)據(jù)輸入輸出4.4.1輸入框(InputBox)InputBox函數(shù)顯示一個(gè)能接受用戶輸入數(shù)據(jù)的對(duì)話框,并返回用戶在對(duì)話框中輸入的信息。
變量=InputBox(〈信息內(nèi)容〉[,〈對(duì)話框標(biāo)題〉][,〈默認(rèn)內(nèi)容〉])PrivateSubCommand1_Click()DimhAsInteger,fAsIntegerh=Val(InputBox("雞和兔的總頭數(shù)","請(qǐng)輸入",0))f=Val(InputBox("雞和兔的總腳數(shù)(偶數(shù))","請(qǐng)輸入",0))x=(4*h–f)/2y=(f–2*h)/2Label2.Caption="設(shè)籠中雞和兔的總頭數(shù)為"&h&",總腳數(shù)為"&f&"。"Label3.Caption="則籠中雞有"&x&"只,兔有"&y&"只。"EndSub4.4.2消息框(MsgBox)
MsgBox函數(shù)在對(duì)話框中顯示信息,等待用戶單擊按鈕,并返回一個(gè)整數(shù)以標(biāo)明用戶單擊了哪個(gè)按鈕。MsgBox函數(shù)的語(yǔ)法格式為:
變量=MsgBox(〈消息內(nèi)容〉[,〈對(duì)話框類型〉[,〈對(duì)話框標(biāo)題〉]])〈對(duì)話框類型〉有3個(gè)參數(shù)。參數(shù)1——出現(xiàn)按鈕值常量說(shuō)明0vbOKOnly確定按鈕1vbOKCancel確定和取消按鈕2vbAbortRetryIgnore終止、重試和忽略按鈕3vbYesNoCancel是、否和取消按鈕4vbYesNo是和否按鈕5vbRetryCancel重試和取消按鈕參數(shù)2——圖標(biāo)類型值常量說(shuō)明16vbCritical停止圖標(biāo)32vbQuestion問(wèn)號(hào)(?)圖標(biāo)48vbExclamation感嘆號(hào)(?。﹫D標(biāo)64vbInformation消息圖標(biāo)參數(shù)3——默認(rèn)按鈕值常量說(shuō)明0vbDefaultButton1默認(rèn)按鈕為第一按鈕256vbDefaultButton2默認(rèn)按鈕為第二按鈕512vbDefaultButton3默認(rèn)按鈕為第三按鈕msg=MsgBox("請(qǐng)確認(rèn)輸入的數(shù)據(jù)是否正確!",3+32+0,"數(shù)據(jù)檢查")若不需要返回值,則可以使用MsgBox的命令形式:
MsgBox〈信息內(nèi)容〉[,〈對(duì)話框類型〉[,〈對(duì)話框標(biāo)題〉]]返回目錄結(jié)束返回目錄單元五
選擇結(jié)構(gòu)程序設(shè)計(jì)
選擇結(jié)構(gòu)是一種常用的基本結(jié)構(gòu),是計(jì)算機(jī)科學(xué)用來(lái)描述自然界和社會(huì)生活中分支現(xiàn)象的重要手段。其特點(diǎn)是:根據(jù)所給定的條件為真(即條件成立)與否,而決定從各實(shí)際可能的不同分支中執(zhí)行某一分支的相應(yīng)操作,并且任何情況下總有:“無(wú)論分支多寡,必?fù)衿湟?;縱然分支眾多,僅選其一”的特性。單元五選擇結(jié)構(gòu)程序設(shè)計(jì)條件表達(dá)式1簡(jiǎn)單條件選擇結(jié)構(gòu)的程序設(shè)計(jì)2多分支條件選擇結(jié)構(gòu)的程序設(shè)計(jì)3計(jì)時(shí)器控件Timer4單選鈕控件OptionButton5復(fù)選框控件CheckBox65.1條件表達(dá)式5.1.1關(guān)系表達(dá)式〈表達(dá)式1〉〈關(guān)系運(yùn)算符〉〈表達(dá)式2〉[〈關(guān)系運(yùn)算符〉〈表達(dá)式3〉…](1)3<6,值為T(mén)rue
(2)8<=5,值為False
(3)3>2,值為T(mén)rue
(4)2>=3,值為False
(5)2=3,值為False
(6)"a"<>"b",值為T(mén)rue
(7)3*4<1+2,值為False5.1.2布爾表達(dá)式
(1)Not(1>0),值為:False
(2)Not("a"<>"a"),值為:True
(3)2>3And1<2,值為:False
(4)2>3Or1<2,值為:TrueabNotaaAndbaOrbTrueTrueFalseTrueTrueTrueFalseFalseFalseTrueFalseTrueTrueFalseTrueFalseFalseTrueFalseFalse5.1.3運(yùn)算符的優(yōu)先順序VB表達(dá)式2+3>1+4AndNot6<8的值。①算術(shù)運(yùn)算: 5>5AndNot6<8②關(guān)系運(yùn)算: FalseAndNotTrue③非運(yùn)算: FalseAndFalse④結(jié)果: False
優(yōu)先順序運(yùn)算符類型運(yùn)算符運(yùn)算符類型運(yùn)算符1算術(shù)運(yùn)算符^(指數(shù))字符串運(yùn)算符&(字符串連接)2–(負(fù)數(shù))3*、/(乘法和除法)4\(整除)5Mod(求模)6+、–(加法和減法)7關(guān)系運(yùn)算符=、<>、<、>、<=、>=8布爾運(yùn)算符Not9And10Or返回目錄5.2簡(jiǎn)單條件選擇結(jié)構(gòu)的程序設(shè)計(jì)5.2.1單行結(jié)構(gòu)條件語(yǔ)句
If〈條件〉Then[〈語(yǔ)句組1〉][Else〈語(yǔ)句組2〉]PrivateSubCommand1_Click()DimxAsIntegerx=Val(Text1.Text)
IfxMod2=0ThenLabel2.Caption="偶數(shù)"ElseLabel2.Caption="奇數(shù)"EndSubPrivateSubCommand2_Click()Text1.Text=""EndSubPrivateSubCommand3_Click()UnloadMeEndSub5.2.2多行結(jié)構(gòu)條件語(yǔ)句If〈條件〉Then〈語(yǔ)句組1〉[Else〈語(yǔ)句組2〉]EndIfPrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)y=Val(Text2.Text)Ifx<yThent=x:x=y:y=t
EndIfLabel3.Caption="較大數(shù)為"&Str(x)EndSubPrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)y=Val(Text2.Text)Ifx<yThenLabel3.Caption="較大數(shù)為"&Str(y)ElseLabel3.Caption="較大數(shù)為"&Str(x)EndIfEndSub5.2.3If語(yǔ)句的嵌套
If語(yǔ)句的嵌套是指If或Else后面的語(yǔ)句塊中又包含If語(yǔ)句。語(yǔ)句形式如下:If〈條件1〉ThenIf〈條件2〉Then
…EndIf
…EndIf
鐵路托運(yùn)行李,從甲地到乙地,規(guī)定每張客票托運(yùn)費(fèi)計(jì)算方法是:行李重量不超過(guò)50千克時(shí),每千克0.25元;超過(guò)50千克而不超過(guò)100千克時(shí),其超過(guò)部分每千克0.35元;超過(guò)100千克時(shí),其超過(guò)部分每千克0.45元。編寫(xiě)程序,輸入行李重量,計(jì)算并輸出托運(yùn)的費(fèi)用。PrivateSubCommand1_Click()DimwAsSingle,xAsSinglew=Val(Text1.Text)
Ifw<=50Thenx=0.25*wElse
Ifw<=100Thenx=0.25*50+0.35*(w-50)Elsex=0.25*50+0.35*50+0.45*(w-100)EndIf
EndIfText2.Text=xEndSub5.2.4If語(yǔ)句的嵌套格式ElseIfIf〈條件1〉Then〈語(yǔ)句組1〉ElseIf〈條件2〉Then〈語(yǔ)句組2〉...[Else〈語(yǔ)句組n+1〉]EndIf某百貨公司為了促銷,采用購(gòu)物打折扣的優(yōu)惠辦法,即每位顧客一次購(gòu)物:
(1)在1000元以上2000元以下者,按九五折優(yōu)惠;
(2)在2000元以上3000元以下者,按九折優(yōu)惠;
(3)在3000元以上5000元以下者,按八五折優(yōu)惠;
(4)在5000元以上者,按八折優(yōu)惠。PrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)
Ifx<1000Theny=xElseIfx<2000Theny=0.95*x
ElseIfx<3000Theny=0.9*x
ElseIfx<5000Theny=0.85*x
Elsey=0.8*x
EndIfText2.Text=yEndSub返回目錄5.3多分支條件選擇結(jié)構(gòu)的程序設(shè)計(jì)SelectCase〈測(cè)試條件〉[Case〈表達(dá)式表1〉〈語(yǔ)句組1〉][Case〈表達(dá)式表2〉〈語(yǔ)句組2〉]...[CaseElse〈語(yǔ)句組n+1〉]EndSelect為某航空公司設(shè)計(jì)程序,根據(jù)月份和訂票張數(shù)決定票價(jià)的優(yōu)惠率。假設(shè)優(yōu)惠規(guī)定如下:
(1)在旅游的旺季7~9月份,如果訂票數(shù)超過(guò)20張,票價(jià)優(yōu)惠15%,20張以下,優(yōu)惠5%;
(2)在旅游的淡季1~5月份、10月份、11月份,如果訂票數(shù)超過(guò)20張,票價(jià)優(yōu)惠30%,20張以下,優(yōu)惠20%;
(3)其他情況一律優(yōu)惠10%。PrivateSubCommand1_Click()DimmAsInteger,nAsInteger,rAsIntegerm=Val(Text1.Text)n=Val(Text2.Text)
SelectCasemCaseIs<=5,10,11
Ifn<20Thenr=20Elser=30Case7To9
Ifn<20Thenr=5Elser=15CaseElse r=10EndSelectLabel4.Caption="所訂機(jī)票的優(yōu)惠率為:"&Str(r)&"%"EndSub返回目錄5.4計(jì)時(shí)器控件Timer
Timer(計(jì)時(shí)器)控件能有規(guī)律地以一定的時(shí)間間隔激發(fā)Timer事件而執(zhí)行相應(yīng)的程序代碼。
(1)Timer控件在設(shè)計(jì)時(shí)顯示為一個(gè)小時(shí)鐘圖標(biāo),而在運(yùn)行時(shí)并不顯示在屏幕上,通常用標(biāo)簽來(lái)顯示時(shí)間。
(2)計(jì)時(shí)器控件Timer的主要屬性有2個(gè)。①Enabled屬性:該屬性為T(mén)rue時(shí),定時(shí)器開(kāi)始工作;為False時(shí),暫停。②Interval屬性:表示兩個(gè)計(jì)時(shí)器事件之間的時(shí)間間隔,其值以毫秒(ms)為單位,介于0~64767ms之間,所以最大的時(shí)間間隔約為1.5min。PrivateSubTimer1_Timer()Label2.Caption=Time$EndSub返回目錄5.5單選鈕控件OptionButton單選鈕(OptionButton)的左邊有一個(gè)。一般來(lái)說(shuō),單按鈕總是成組(單選按鈕組)出現(xiàn),用戶在一組單選鈕中必須選擇一項(xiàng),并且最多只能選擇一項(xiàng)。當(dāng)某一項(xiàng)被選定后,其左邊的圓圈中出現(xiàn)一個(gè)黑點(diǎn)。單選鈕主要用于在多種功能中由用戶選擇一種功能的情況。5.5.1單選鈕控件的簡(jiǎn)單使用
(1)單選鈕的主要屬性有:
Alignment屬性:當(dāng)其值為0時(shí),表示單選鈕在左邊,標(biāo)題顯示在右邊,缺省設(shè)置;當(dāng)值為1時(shí),表示單選鈕在右邊,標(biāo)題顯示在左邊。Value屬性:當(dāng)值為T(mén)rue時(shí),表示單選鈕被選定;值為False,表示單選鈕未被選定,缺省設(shè)置。
Enabled屬性:要禁用某單選鈕,可將其Enabled屬性設(shè)置為False。程序運(yùn)行時(shí),若此單選鈕顯示模糊,表示無(wú)法選取。輸入圓的半徑r,利用選項(xiàng)按鈕,選擇計(jì)算圓面積、計(jì)算圓周長(zhǎng)等。PrivateSubText1_KeyPress(KeyAsciiAsInteger)DimrAsStringIfKeyAscii=13Thenpi=3.14159r=Val(Text1.Text)
SelectCaseTrueCaseOption1.Valuen=pi*r*rLabel1.Caption="圓的面積為:"&Str(n)CaseOption2.Valuen=2*pi*rLabel1.Caption="圓的周長(zhǎng)為:"&Str(n)CaseOption3.Valuen=pi*r*rm=2*pi*rLabel1.Caption="圓的面積為:"&Str(n)&Chr(13)&"周長(zhǎng)為:"&Str(m)EndSelectText1.SelStart=0Text1.SelLength=Len(Text1.Text)EndIfEndSubPrivateSubText1_GotFocus()Text1.SelStart=0Text1.SelLength=Len(Text1.Text)EndSubPrivateSubOption1_Click()Text1.SetFocusEndSubPrivateSubOption2_Click()Text1.SetFocusEndSubPrivateSubOption3_Click()Text1.SetFocusEndSub5.5.2使用單選按鈕組PrivateSubCommand1_Click()
IfOption1.ValueThenText1.FontName="宋體"ElseText1.FontName="黑體"EndIfIfOption3.ValueThenText1.FontSize=10ElseText1.FontSize=14EndIfEndSubPrivateSubCommand2_Click()UnloadMeEndSub5.5.3使用圖形選項(xiàng)按鈕修改Timer1的屬性:Interval改為100,Enabled改為False。修改Option1~Option4的Style屬性為:1-Graphical(圖形方式)。PrivateSubCommand1_Click()IfCommand1.Caption="&S暫停"ThenCommand1.Caption="&C繼續(xù)"Timer1.Enabled=FalseElseCommand1.Caption="&S暫停"Timer1.Enabled=TrueEndIfEndSubPrivateSubTimer1_Timer()IfLabel1.Left+Label1.Width>0ThenLabel1.MoveLabel1.Left–20
ElseLabel1.Left=Form1.ScaleWidth
EndIfEndSubPrivateSubOption1_Click()Label1.FontName="宋體"EndSubPrivateSubOption2_Click()Label1.FontName="隸書(shū)"EndSubPrivateSubOption3_Click()Label1.FontName="黑體"EndSubPrivateSubOption4_Click()Label1.FontName="楷體_GB2312"EndSub返回目錄5.6復(fù)選框控件CheckBox用復(fù)選框控制文本輸入是否加上“下劃線”和“斜體顯示”。PrivateSubText1_Change()IfCheck1.Value=1ThenText1.FontUnderline=TrueElseIfCheck2.Value=1ThenText1.FontItalic=TrueEndIfEndSubPrivateSubCheck1_Click()IfCheck1.Value=1ThenText1.FontUnderline=TrueElseText1.FontUnderline=FalseEndIfEndSubPrivateSubCheck2_Click()IfCheck2.Value=1ThenText1.FontItalic=TrueElseText1.FontItalic=FalseEndIfEndSub
返回目錄結(jié)束返回目錄單元六
循環(huán)結(jié)構(gòu)程序設(shè)計(jì)程序設(shè)計(jì)中的循環(huán)結(jié)構(gòu)(簡(jiǎn)稱循環(huán))是指在程序中,從某處開(kāi)始有規(guī)律地反復(fù)執(zhí)行某一操作塊(或程序塊)的現(xiàn)象。被重復(fù)執(zhí)行的該操作塊(或程序塊)稱為循環(huán)體,循環(huán)體的執(zhí)行與否及次數(shù)多少視循環(huán)類型與條件而定。當(dāng)然,無(wú)論何種類型的循環(huán)結(jié)構(gòu),其共同的特點(diǎn)是:必須確保循環(huán)體的重復(fù)執(zhí)行能被終止(即非無(wú)限循環(huán))。單元六循環(huán)結(jié)構(gòu)程序設(shè)計(jì)For循環(huán)1Do循環(huán)2列表框與組合框控件3常用算法實(shí)例46.1For循環(huán)6.1.1For循環(huán)的簡(jiǎn)單設(shè)計(jì)
求1+3+5+…+99的值。PrivateSubCommand1_Click()DimsAsInteger,nAsIntegers=0
Forn=1To100Step2s=s+n
NextnLabel2.Caption=sEndSubFor〈循環(huán)變量〉=〈初值〉To〈終值〉[Step〈步長(zhǎng)〉][語(yǔ)句組1][ExitFor][語(yǔ)句組2]Next[循環(huán)變量]
For語(yǔ)句的執(zhí)行過(guò)程:進(jìn)入For循環(huán)后,首先把〈初值〉賦給〈循環(huán)變量〉,檢查〈循環(huán)變量〉的值是否超過(guò)〈終值〉。如果超過(guò)就停止執(zhí)行循環(huán)體,跳出循環(huán),執(zhí)行Next后面的語(yǔ)句;否則執(zhí)行一次循環(huán)體,然后把〈循環(huán)變量〉+〈步長(zhǎng)〉的值賦給〈循環(huán)變量〉,重復(fù)上述過(guò)程。6.1.2For循環(huán)的循環(huán)次數(shù)循環(huán)體為:
Forn=1To100Step2s=s+n
Nextn
循環(huán)體執(zhí)行次數(shù)=Int((100-1)/2+1)=Int(99/2+1)=Int(49.5+1)=Int(50.5)=50次。
【相關(guān)知識(shí)】
(1)For循環(huán)遵循“先檢查,后執(zhí)行”的原則,即先檢查〈循環(huán)變量〉是否超過(guò)〈終值〉,然后決定是否執(zhí)行循環(huán)體。因次,循環(huán)的最少執(zhí)行次數(shù)為0次。(2)循環(huán)次數(shù)通過(guò)下式計(jì)算:
循環(huán)次數(shù)=INT((終值-初值)/步長(zhǎng)+1)
如果計(jì)算出的循環(huán)次數(shù)小于或者等于0,循環(huán)次數(shù)為0,這時(shí)系統(tǒng)將不執(zhí)行循環(huán)體。6.1.3利用For循環(huán)實(shí)現(xiàn)圖形的輸出PrivateSubForm_Load()Print:Print:Print
Show
Fori=1To5
PrintTab(5+i);String(6–i,"★");Spc(6);String(i,"▲");Spc(6);String(6–i,"★")NextiEndSub6.1.4For循環(huán)的嵌套PrivateSubForm_Load()ShowFontSize=12PrintTab(25);"九九表"
Print"*";
Fori=1To9
PrintTab(i*6);i;
NextiPrint
Forj=1To9
Printj;"";
Fork=1To9
m=j*kPrintTab(k*6);m;"";NextkPrint
NextjEndSub返回目錄6.2Do循環(huán)6.2.1前測(cè)型Do循環(huán)語(yǔ)句設(shè)有一張厚為xmm,面積足夠大的紙,將它不斷地對(duì)折。試問(wèn)對(duì)折多少次后,厚度可達(dá)珠穆朗瑪峰的高度。PrivateSubCommand1_Click()n=0
h=Text1.Text
DoWhileh<8848000n=n+1
h=2*h
LoopText2.Text=nText2.Locked=TrueEndSub
已知s=1×2×3×…×n,計(jì)算出s不大于5000時(shí)的最大n值。
PrivateSubCommand1_Click()DimnAsInteger,sAsLongCurrentY=Label2.Height+200
n=1 s=1
DoUntils>5000
n=n+1 s=s*n
Printn,s
LoopLabel1.Caption="n="&Str(n–1)EndSub前測(cè)型Do循環(huán)的特點(diǎn)是:先判斷循環(huán)條件,根據(jù)條件決定是否執(zhí)行循環(huán)體,執(zhí)行循環(huán)體的最少次數(shù)為0。其語(yǔ)法格式為:Do[{While|Until}〈條件〉][〈語(yǔ)句組1〉][ExitDo][〈語(yǔ)句組2〉]Loop6.2.2后測(cè)型Do循環(huán)語(yǔ)句設(shè)計(jì)程序,完成華氏溫度向攝氏溫度的轉(zhuǎn)換。
PrivateSubForm_Load()DimhAsString,sAsSingle,tsAsStringDoh=InputBox("請(qǐng)輸入華氏溫度","華氏溫度")
Ifh<>""Thens=Int((h-32)*5/9)
MsgBox"攝氏溫度為"&Str(s),0+48+256,"轉(zhuǎn)換為攝氏溫度"EndIfLoopWhileh<>"" EndSub
輸入有效數(shù)字的位數(shù),利用公式計(jì)算圓周率
的近似值。PrivateSubCommand1_Click()DimmAsInteger
m=Val(Text1.Text)p=0#:s=2#:e=0.1^mDo
t=s:p=Sqr(2+p):s=s*2/pLoopUntilAbs(t-s)<0.1^mf=String(m-1,"#")Text2.Text=Format(s,"0."&f)Text1.SetFocusEndSubPrivateSubText1_GotFocus()Text1.SelStart=0Text1.SelLength=Len(Text1.Text)EndSub
后測(cè)型Do循環(huán)的執(zhí)行特點(diǎn)是:先執(zhí)行循環(huán)體,然后判斷條件,根據(jù)條件決定是否繼續(xù)執(zhí)行循環(huán),因此執(zhí)行循環(huán)的最少次數(shù)為1。其語(yǔ)法格式為:Do[〈語(yǔ)句組1〉][ExitDo][〈語(yǔ)句組2〉]Loop[{While|Until}〈條件〉]返回目錄6.3列表框與組合框控件6.3.1列表框
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版新能源汽車推廣使用合同范本一4篇
- 二零二五版辦公車輛租賃與車輛保養(yǎng)維修合同2篇
- 2024年09月江蘇蘇州銀行總行大數(shù)據(jù)管理部招考(114)號(hào)筆試歷年參考題庫(kù)附帶答案詳解
- 2025年度硫酸生產(chǎn)項(xiàng)目環(huán)境影響評(píng)價(jià)合同4篇
- 2024年09月上海2024年浦發(fā)銀行總行金融市場(chǎng)部校園招考筆試歷年參考題庫(kù)附帶答案詳解
- 加油站的油價(jià)政策解讀
- 2025年數(shù)字經(jīng)濟(jì)園區(qū)場(chǎng)地租賃及數(shù)字基礎(chǔ)設(shè)施建設(shè)合同3篇
- 2024年08月東莞銀行股份有限公司韶關(guān)分行招考筆試歷年參考題庫(kù)附帶答案詳解
- 2024版外包勞動(dòng)合同
- 2024年05月華夏銀行龍巖分行2024年招考筆試歷年參考題庫(kù)附帶答案詳解
- 物業(yè)民法典知識(shí)培訓(xùn)課件
- 2023年初中畢業(yè)生信息技術(shù)中考知識(shí)點(diǎn)詳解
- 2024-2025學(xué)年山東省德州市高中五校高二上學(xué)期期中考試地理試題(解析版)
- 《萬(wàn)方數(shù)據(jù)資源介紹》課件
- 麻風(fēng)病病情分析
- 《急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)》
- 第一章-地震工程學(xué)概論
- JJF(陜) 063-2021 漆膜沖擊器校準(zhǔn)規(guī)范
- 《中國(guó)糖尿病防治指南(2024版)》更新要點(diǎn)解讀
- TSGD7002-2023-壓力管道元件型式試驗(yàn)規(guī)則
- 2024年度家庭醫(yī)生簽約服務(wù)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論