




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第一章VisualBasic程序設(shè)計(jì)概述1.了解VB的運(yùn)行環(huán)境及啟動、退出。2.了解VB功能及特點(diǎn)。3.熟習(xí)VB的集成開發(fā)環(huán)境。4.初步建立事件驅(qū)動面向?qū)ο蟪绦蛟O(shè)計(jì)的概念。本章要求:1.1中文VisualBasic6.0簡介一、VisualBasic的發(fā)展VisualBasic是Microsoft公司開發(fā)的Windows應(yīng)用程序開發(fā)工具,Visual
——“可視化的”,是一種開發(fā)圖形戶界面(GUI)的方法。
1991年推出VB1.01992、1993、1995、1997、1998,2000相繼推出:2.0,3.0,4.0,5.0,
6.0,VB.Net(7.0)版本
5.0,6.0包含三種版本(學(xué)習(xí)版、專業(yè)版和企業(yè)版)
英文Visual的意思是“視覺的”,“可視的Baisc”這個(gè)名字可能抽象了點(diǎn),但實(shí)際上它卻是最直觀的編程方法,之所以叫做“可視”,你只要看到VB的界面就會明白,實(shí)際上你無需編程,就可以完成許多步驟。在VB中引入了控件的概念,在Windows中控件的身影無處不在,如按鈕、文本框等,VB把這些控件模式化,并且每個(gè)控件都有若干屬性用來控制控件的外觀,工作方法,能夠響應(yīng)用戶操作(事件)。這樣你就可以象在畫板上一樣,隨意點(diǎn)幾下鼠標(biāo),一個(gè)按鈕就完成了,這些在以前的編程語言下是要經(jīng)過相當(dāng)復(fù)雜的工作的。何為可視三、VisualBasic6.0的新特性1.數(shù)據(jù)訪問的新特性2.Internet功能的增強(qiáng)3.控件、語言和向?qū)Х矫娴男略鎏匦?.高度可移植化的代碼5.創(chuàng)建ActiveX控件更加輕松方便6.在線幫助更加完善。1.2安裝和運(yùn)行VisualBasic6.0一、運(yùn)行環(huán)境1、硬件:
486DX/66MHz或更高的處理器(推薦Pentium或更高的處理器),一個(gè)CD-ROM驅(qū)動器,VGA或分辨率更高的監(jiān)視器。>=16MBRAM,鼠標(biāo)或其它定點(diǎn)設(shè)備。2、軟件:
Windows95或更高版本,或WindowsNT3.51或更高版本。二、安裝在CD-ROM驅(qū)動器中插入VisualBasic6.0系統(tǒng)CD盤。安裝程序在CD盤的根目錄下,運(yùn)行安裝程序Setup.exe,即可進(jìn)入“安裝程序向?qū)А?。如果您的?jì)算機(jī)能夠在系統(tǒng)中運(yùn)行AutoPlay,則在插入CD盤時(shí),安裝程序?qū)⒈蛔詣蛹虞d。選取“安裝VisualBasic6.0”。同樣進(jìn)入“安裝程序向?qū)А?.3VisualBasic6.0的集成開發(fā)環(huán)境菜單欄工具欄代碼窗口工具箱窗體窗口立即窗口監(jiān)視窗口工程窗口屬性窗口布局窗口1.主窗口
應(yīng)用程序窗口,由標(biāo)題欄、菜單欄和工具欄組成VB的三種工作模式(標(biāo)題欄總顯示當(dāng)前模式)
(1)設(shè)計(jì)模式:創(chuàng)建應(yīng)用程序的大多數(shù)工作都是在設(shè)計(jì)時(shí)完成的。在設(shè)計(jì)時(shí),可以設(shè)計(jì)窗體、繪制控件、編寫代碼并使用“屬性”窗口來設(shè)置或查看屬性設(shè)置值。
(2)運(yùn)行模式:代碼正在運(yùn)行的時(shí)期,用戶可與應(yīng)用程序交流??刹榭创a,但不能改動它。
(3)中斷模式:程序在運(yùn)行的中途被停止執(zhí)行時(shí)。在中斷模式下,用戶可查看各變量及不是屬性的當(dāng)前值,從而了解程序執(zhí)行是否正常。還可以修改程序代碼,檢查、調(diào)試、重置、單步執(zhí)行或繼續(xù)執(zhí)行程序。2.窗體(Form)設(shè)計(jì)窗口
窗體設(shè)計(jì)窗口是屏幕中央的主窗口,它可以作為自定義窗口用來設(shè)計(jì)應(yīng)用程序的界面。用戶可以在窗體中添加控件、圖形和圖片來創(chuàng)建所希望的外觀。每個(gè)窗口必須有一個(gè)的窗體名字,建立窗體時(shí)缺省名為Form1,Form2,...。應(yīng)注意窗體名即Name屬性和窗體文件名的區(qū)別3.代碼(code)窗口在設(shè)計(jì)模式中,通過雙擊窗體或窗體上任何對象或通過“工程資源管理器”窗口中的“查看代碼”按鈕來打開代碼編輯器窗口。代碼編輯器是輸入應(yīng)用程序代碼的編輯器。4.屬性(properties)窗口屬性是指對象的特征,如大小、標(biāo)題或顏色等數(shù)據(jù)。在VisualBasic6.0設(shè)計(jì)模式中,屬性窗口列出了當(dāng)前選定窗體或控件的屬性的值,用戶可以對這些屬性值進(jìn)行設(shè)置。
工程是指用于創(chuàng)建一個(gè)應(yīng)用程序的文件的集合。工程資源管理器列出了當(dāng)前工程中的窗體和模塊5.工程資源管理器(projectexpror)窗口窗體布局窗口顯示在屏幕右下角。用戶可使用表示屏幕的小圖像來布置應(yīng)用程序中各窗體的位置。這個(gè)窗口在多窗體應(yīng)用程序中很有用,因?yàn)檫@可以指定每個(gè)窗體相對于主窗體的位置。
7.窗體布局窗口1.4VisualBasic6.0幫助系統(tǒng)的使用一、MSDN的安裝二、使用MSDNLibrary查閱器三、上下文幫助在VisualBasic界面的任何上下文相關(guān)部分上按F1鍵,就可顯示有關(guān)該部分的信息。上下文相關(guān)部分是:
VisualBasic中的每個(gè)窗口(“屬性”窗口、“代碼”窗口等)
工具箱中的控件
窗體或文檔對象內(nèi)的對象
“屬性”窗口中的屬性
VisualBasic關(guān)鍵詞(語句、聲明、函數(shù)、屬性、方法、事件和特殊對象)錯(cuò)誤信息四、運(yùn)行系統(tǒng)所提供的樣例2.1程序設(shè)計(jì)方法概述1.初期的程序設(shè)計(jì)
高運(yùn)行效率、少占用內(nèi)存為目標(biāo)2.結(jié)構(gòu)化程序設(shè)計(jì)
程序的可讀性、可維護(hù)性為目標(biāo)程序=算法+數(shù)據(jù)結(jié)構(gòu)+計(jì)算機(jī)語言+面向過程的程序設(shè)計(jì)方法3.面向?qū)ο蟮某绦蛟O(shè)計(jì)
降低程序的復(fù)雜性、提高軟件的開法效率和改善工作界面為目標(biāo)程序=對象+消息+面向?qū)ο蟮某绦蛟O(shè)計(jì)面向?qū)ο蟮某绦蛟O(shè)計(jì)具有如下的優(yōu)點(diǎn):1.符合人們習(xí)慣的思維方法,便于分解大型的復(fù)雜多變的問題。由于對象對應(yīng)于現(xiàn)實(shí)世界中的實(shí)體,因而可以很自然地按照現(xiàn)實(shí)世界中處理實(shí)體的方法來處理對象,軟件開發(fā)者可以很方便地與問題提出者進(jìn)行溝通和交流。
2.易于軟件的維護(hù)和功能的增減。對象的封裝性及對象之間的松散組合,都給軟件的修改和維護(hù)帶來了方便。3.可重用性好。重復(fù)使用一個(gè)類(類是對象的定義,對象是類的實(shí)例化),可以比較方便地構(gòu)造出軟件系統(tǒng),加上繼承的方式,極大地提高了軟件開發(fā)的效率。4.與可視化技術(shù)相結(jié)合,改善了工作界面。隨著基于圖形界面操作系統(tǒng)的流行,面向?qū)ο蟮某绦蛟O(shè)計(jì)方法也將深入人心。它與可視化技術(shù)相結(jié)合,使人機(jī)界面進(jìn)入GUI時(shí)代。2.2VB中的一些基本概念
一、對象與類1.對象是基本的運(yùn)行時(shí)的實(shí)體,如窗體、各種控件等,它既包括作用于對象的操作(方法)和對象的響應(yīng)(事件)。將數(shù)據(jù)和處理這些數(shù)據(jù)的過程封裝在一起.2.類
類是一個(gè)抽象的整體概念,對象是類的實(shí)例化。類與對象是面向?qū)ο蟪绦蛟O(shè)計(jì)語言的基礎(chǔ)。以“汽車”為例,說明類與對象的關(guān)系。汽車是一個(gè)籠統(tǒng)的名稱,是整體概念,我們把汽車看成一個(gè)“類”,一輛輛具體的汽車(比如你的汽車)就是這個(gè)類的實(shí)例,也就是這個(gè)類的對象。3、對象的建立和命名(1)對象的建立
方法一:
單擊工具箱控件對象在窗體上按住左鍵拖拉到所需要的大小后釋放。
方法二:
雙擊工具箱控件對象,則立即在窗體出現(xiàn)一個(gè)默認(rèn)大小的對象框。(2)編輯對象
先選中對象(單擊對象),放大、縮小刪除對象復(fù)制對象(3)、對象的命名
每一個(gè)對象都有有自己的名字。每個(gè)窗體、控件對象在建立時(shí)VB系統(tǒng)給出了一個(gè)默認(rèn)名。用戶可通過屬性窗口設(shè)置(名稱)來給對象命名。命名的原則:1)必須由字母或漢字開頭、隨后可以是字母、漢字、數(shù)字、下劃線(最好不用)串組成。2)長度<=255個(gè)字符。本教材采用智能化命規(guī)則:用前3個(gè)小定字母組成前綴(指明對象的類型)和表示該對象作用的縮寫字母組成。附表2_1四、方法(Method)
在對象上可操作的過程,是VB系統(tǒng)提供的一種特殊的過程和函數(shù)——方法。方法是面向?qū)ο蟮?,所以對象的方法調(diào)用一般要指明對象。對象方法調(diào)用形式:
[對象.]方法[參數(shù)列表]
如省略對象,表示在當(dāng)對象,一般指窗體。例如:
Form1.print"VB程序設(shè)計(jì)"五、VB應(yīng)用程序的工作方式VB應(yīng)用程序采用的是以事件驅(qū)動應(yīng)用程序的工作方式。下面是事件驅(qū)動應(yīng)用程序中的典型工作方式:1、啟動應(yīng)用程序,裝載和顯示窗體。2、窗體(或窗體上的控件)接收事件。事件可由用戶引發(fā)(例如通過鍵盤或鼠標(biāo)操作),可由系統(tǒng)引發(fā)(例如定時(shí)器事件),也可由代碼間接引發(fā)(例如當(dāng)代碼裝載窗體時(shí)的Load事件)。3、如果在相應(yīng)的事件過程中已編寫了相應(yīng)的程序代碼,就執(zhí)行該代碼。4、應(yīng)用程序等待下一次事件。2.3窗體的常用屬性、方法和事件
窗體屬性決定了窗體的外觀與操作。窗體外觀如下圖一.屬性(一)基本屬性1.Name名稱屬性(任何對象都具有的)
創(chuàng)建的對象名稱,有默認(rèn)的名.在程序中,控件名是作為對象的標(biāo)識而引用,不會顯示在窗體上。2.Height、width、top和left屬性
單位為twip:1twip=1/20點(diǎn)=1/1440英寸=1/567cm
注意:這四個(gè)屬性決定窗體(或控件)的大小,在容器中的位置。如右圖。3.Caption標(biāo)題屬性:決定出現(xiàn)在窗體的標(biāo)題欄上的文本內(nèi)容,也是當(dāng)窗體被最小化后出現(xiàn)在窗體圖標(biāo)下的文本。如圖2-2中窗體的Caption屬性值是“VB窗體”4字體Font屬性組
FontName屬性是字符型,決定對象上正文的字體(缺省為宋體)。FontSize屬性是整型,決定對象上正文的字體大小。FontBold屬性是邏輯型,決定對象上正文是否是粗體。FontItalic屬性是邏輯型,決定對象上正文是否是斜體。FontStrikeThru屬性是邏輯型,決定對象上正文是否加一刪除線。FontUnderLine屬性是邏輯型,決定對象上正文是否帶下劃線。
5.Enabled屬性(邏輯值)決定控件是否可操作。True:允許用戶進(jìn)行操作,并對操作出響應(yīng)(缺省值)。False:呈暗淡色,禁止用戶進(jìn)行操作。6.Visible屬性(邏輯值)決定控件是否可見True:運(yùn)行時(shí)控件可見(缺省值)。False:運(yùn)行時(shí)控件隱藏,用戶看不到,但控件本身是存在的。7.BackColor屬性和ForeColor屬性BackColor屬性用于返回或設(shè)置對象的背景顏色,F(xiàn)oreColor屬性用于返回或設(shè)置在對象里顯示圖片和文本的前景顏色。它們是十六進(jìn)制長整型數(shù)據(jù)在程序代碼中可用Windows運(yùn)行環(huán)境的紅-綠-藍(lán)(RGB)顏色方案,使用調(diào)色板或在代碼中使用RGB或QBColor函數(shù)指定標(biāo)準(zhǔn)RGB顏色。例如,將窗體Form1的背景色設(shè)置為紅色,則可使用下面三種情況:Form1.BackColor=RGB(255,0,0)Form1.BackColor=&HFF&Form1.BackColor=vbRed(二)窗體的其它常用屬性1.MaxButton最大化按鈕和MinButton最小化按鈕:當(dāng)值為Ture,有最大或最小化按鈕,F(xiàn)alse則無。2.Icon控制圖標(biāo)屬性:返回或設(shè)置窗體左上角顯示或最小化時(shí)顯示的圖標(biāo)。注意:此屬性必須在ControlBox屬性設(shè)置為Ture才有效3.ControlBox控制菜單框?qū)傩裕涸O(shè)置Ture為有,如設(shè)置為False則無控件菜單,同時(shí)窗體也無最大化按鈕和最小化按鈕,即使MaxButton屬性和MinButton屬性設(shè)置為Ture。4.Picture圖片屬性:設(shè)置窗體中要顯示的圖片。加載圖片操作同Icon控制圖標(biāo)屬性。5.BorderStyle:邊框風(fēng)格,通過改變BorderStyle屬性,可以控制窗體如何調(diào)整大小。
0-None:無邊框;1-FixedSingle:單線邊框,不可以改變窗口大小;2-Sizable:雙線邊框,可以改變窗口大??;3-FixedDouble:雙線框架,不可以改變窗口大小。4-FixedToolWindow:窗體外觀與工具條相似。有關(guān)閉按鈕,不可以改變窗口大小。5-SizableToolWindow:窗體外觀與工具條相似。有關(guān)閉按鈕,可以改變窗口大小。6.WindowsState屬性 0-Normal:正常窗口狀態(tài),有窗口邊界; 1:最小化狀態(tài),以圖標(biāo)方式運(yùn)行; 2:最大化狀態(tài),無邊框,充滿整個(gè)屏幕。
7.AutoRedraw屬性 該屬性決定窗體被隱藏或被另一窗口覆蓋之后重新顯示,是否重新還原該窗體被隱藏或覆蓋以前的畫面。即是否重畫如Circle、Line、Pset和Print等方法的輸出。當(dāng)為True時(shí),重新還原該窗體以前的畫面。當(dāng)為False時(shí),則不重畫AutoRedraw屬性。二、事件最常用的事件 1Click/DblClick:單擊/雙擊窗體觸發(fā)。
2Load:窗體被裝入時(shí)觸發(fā)的事件。該事件通常用來在啟動應(yīng)用程序時(shí)對屬性和變量進(jìn)行初始化。
3、Unload事件卸載窗體時(shí)觸發(fā)該事件。4、Resize事件無論是因?yàn)橛脩艚换?,還是通過代碼調(diào)整窗體的大小,都會觸發(fā)一個(gè)Resize事件。三、常用方法窗體常用的方法有:打印輸出Print、移動Move、清除Cls、顯示Show、隱藏Hide等方法。方法是面向?qū)ο蠊适褂玫男问?[對象.]方法1.Print方法
形式:[對象.]Print[{Spc(n)|Tab(n)}][表達(dá)式列表][;|,]作用:在對象上輸出信息對象:窗體、圖形框或打印機(jī)(Pinter),省略對象在窗體上輸出。Spc(n)函數(shù):插入n個(gè)空格,允許重復(fù)使用。Tab(n)函數(shù):左端開始右移動n列,允許重復(fù)使用。;(分號):光標(biāo)定位上一個(gè)顯示的字符后。,(逗號):光標(biāo)定位在下一個(gè)打印區(qū)的開始位置處。每個(gè)打印區(qū)占14列。無;,換行。
開始打印的位置是由對象的CurrentX和CurrentY屬性決定,缺省為打印對象的左上角0,0。例2.3在窗體Form1的單擊事件中寫入如下代碼:PrivateSubForm_Click()a=10:b=3.14:c=100Print"a=";a,"b=";bPrint"a=";a,"b=";bPrint"a=";a,"b=";bPrint
‘空一行Print;"a=";a,"b=";bPrint"a=";a,Tab(18);"b=";b
Print"a=";a,Spc(18);"b=";bPrint
Print"a=";a,"b=";bPrintTab(18);“a=”;a,“b=”;b
‘
從第18列開始打印輸出PrintSpc(18);"a=";a,"b=";b
EndSub2.Cls方法
形式:[對象.]Cls
作用:清除運(yùn)行時(shí)在窗體或圖形框中顯示的文本或圖形。
注意:不清除在設(shè)計(jì)時(shí)的文本和圖形。清屏后坐標(biāo)當(dāng)前回到原點(diǎn)。3.Move方法形式:
[對象.]Move左邊距離[,上邊距離[,寬度[,高度]]]
作用:移動窗體或控件,并可改變其大小。
對象:可以是窗體及除時(shí)鐘、菜單外的所有控件,省略代表窗體。左邊距離,上邊距離,寬度,高度:數(shù)值表達(dá)式,以twip為單位。如果是窗體對象,則“左邊距”和“上邊距”是以屏幕左邊界和上邊界為準(zhǔn)。其它則是以窗體的左邊和上邊界為準(zhǔn)。例2.4使用Move方法移動一個(gè)窗體。雙擊窗體,窗體移動并定位在屏幕的左上角,同時(shí)窗體的長寬也縮小一倍。為了實(shí)現(xiàn)這一功能,可以在窗體Forml的“代碼”窗口中輸入下列代碼:PrivateSubForm_DblClick()Form1.Move0,0,Form1.Width/2,Form1.Height/2EndSub4.Show(顯示)方法Show方法用于在屏幕上顯示一個(gè)窗體,調(diào)用Show方法與設(shè)置窗體Visible屬性為True具有相同的效果。其調(diào)用格式如下:
窗體名.Show[vbModal|vbModeless]說明(1)它有兩種可能值:vbModal(缺?。┗騰bModeless,Show方法的可選參數(shù)表示從當(dāng)前窗口或?qū)υ捒蚯袚Q到其他窗口或?qū)υ捒蛑坝脩舯仨毑扇〉膭幼鳌.?dāng)參數(shù)為vbModal時(shí),要求用戶必須對當(dāng)前的窗口或?qū)υ捒蜃龀鲰憫?yīng),才能切換到其他窗口。(2)如果要顯示的窗體事先未裝入,該方法會自動裝入該窗體再顯示。5.Hide(隱藏)方法Hide方法用于使指定的窗體不顯示,但不從內(nèi)存中刪除窗體。其調(diào)用格式為:
窗體名.Hide例2.5實(shí)現(xiàn)將指定的窗體在屏幕上進(jìn)行顯示或隱藏的切換。為了實(shí)現(xiàn)這一功能,可以在窗體Forml的“代碼”窗口中輸入下列代碼:PrivateSubForm_Click()Form1.Hide'隱藏窗體MsgBox"單擊確定按鈕,使窗體重現(xiàn)屏幕"'顯示信息Forml.Show'重現(xiàn)窗體EndSub
說明:當(dāng)一個(gè)窗體從屏幕上隱去時(shí),其Visible屬性被設(shè)置成False,并且該窗體上的控件也變得不可訪問,但對運(yùn)行程序間的數(shù)據(jù)引用無影響。若要隱去的窗體沒有裝入,則Hide方法會裝入該窗體但不顯示。一.命令按鈕CommandButton
接受用戶輸入的命令.輸入命令可以有三種方式:
(1)鼠標(biāo)單擊;(2)按Tab鍵焦點(diǎn)跳轉(zhuǎn)到該按鈕,再按回車鍵;(3)快捷鍵(Alt+有下劃線的字母)(一)屬性
1.基本屬性
Name、Height、Width、Top、Left、Enabled、Visible、Font等與窗體的使用相同。
2.常用屬性
(1)Caption:
標(biāo)題屬性——命令按鈕顯示的內(nèi)容,可在某字母前加“&“設(shè)置快捷鍵。例如:&Ok,顯示Ok2.4命令按鈕、標(biāo)簽、文本框(2)Default:確認(rèn)屬性(邏輯值),設(shè)置為True時(shí),按Enter鍵相當(dāng)于用鼠標(biāo)器單擊了該按鈕。注意:在一個(gè)窗體只能的一個(gè)按鈕的Default設(shè)置為Ture(3)Cancel:取消功能屬性(邏輯值),當(dāng)設(shè)置為Ture時(shí),程序運(yùn)行時(shí)按Esc鍵與單擊此命令按鈕的效果相同。注意:在一個(gè)窗體只能的一個(gè)按鈕的Cancel屬性設(shè)置為Ture(4)Value:
檢查該按鈕是否按下.該屬性在設(shè)計(jì)時(shí)無效.(5)Picture:
按鈕可顯示圖片文件(.bmp和.Ico),只有當(dāng)Style屬性值設(shè)為1時(shí)有效(6)Style:
確定顯示的形式.0只能顯示文字,1文字、圖形均可。(7)ToolTipText:設(shè)置工具提示,和Picture結(jié)合使用。(二).事件
單擊事件Click二、標(biāo)簽Label用于顯示文本(輸出)信息,不能作為輸入信息的界面。1.基本屬性Name、Height、Width、Top、Left、Enabled、Visible、Font、ForeColor、BackColor等與窗體的使用相同。
2.常用屬性(1)Caption屬性Caption屬性用來改變Label控件中顯示的文本。Caption屬性允許文本的長度最多為1024字節(jié)。缺省情況下,當(dāng)文本超過控件寬度時(shí),文本會自動換行,而當(dāng)文本超過控件高度時(shí),超出部分將被裁剪掉。(2)Alignment屬性設(shè)置Caption屬性中文本的對齊方式,共有三種可選值:
0左對齊(LeftJustify);1右對齊(RightJustify);2居中對齊(CenterJustify)。(3)BackStyle屬性該屬性用于確定標(biāo)簽的背景是否透明。有兩種情況可選:值為0時(shí),表示背景透明,標(biāo)簽后的背景和圖形可見;值為1時(shí),表示不透明,標(biāo)簽后的背景和圖形不可見。(4)AutoSize屬性AutoSize屬性確定標(biāo)簽是否會隨標(biāo)題內(nèi)容的多少自動變化。如果值為True,則隨Caption內(nèi)容的大小自動調(diào)整控件本身的大小,且不換行;如果值為False,表示標(biāo)簽的尺寸不能自動調(diào)整,超出尺寸范圍的內(nèi)容不予顯示。例2.6在窗體上,放置5個(gè)標(biāo)簽,其名稱使用默認(rèn)值Label1-Label5,它們的高度與寬度相同,在屬性窗口,按下表設(shè)置它們的屬性
默認(rèn)控件名Name標(biāo)題Caption有關(guān)屬性設(shè)置Label1左對齊Alignment=0,BorderStyle=1Label2水平居中Alignment=1,BorderStyle=1Label3自動AutoSize=True,WordWarp=False,BorderStyle=1Label4背景白BackColor=&H00FFFFFF&,BorderStyle=0Label5前景紅ForeColor=&H000000FF&,BorderStyle=0(5)WordWrap屬性設(shè)置后各標(biāo)簽的顯示如下圖3、事件標(biāo)簽可響應(yīng)單擊(Click)和雙擊(DblClick)事件,但一般情況不對它進(jìn)行編程三、
文本框TextBox是一個(gè)文本編輯區(qū)域,可在該區(qū)域輸入,編輯和顯示正文內(nèi)容。(一)屬性1.基本屬性
Name、Height、Width、Top、Left、Enabled、Visible、Font,F(xiàn)oreColor、BackColor等與標(biāo)簽控件相同。
2.常用屬性(1).Text文本屬性在文本框中顯示的正文內(nèi)容存放在Text屬性中。當(dāng)程序運(yùn)行時(shí),用戶通過鍵盤輸入正文內(nèi)容,保存在Text屬性中。
文本框沒有Caption屬性(2)Maxlength:設(shè)置正文的最多字符個(gè)數(shù),
0任意長度值。(3)MultiLine:是否為多行,默認(rèn)一行.False(4)ScrollBars:
當(dāng)MultiLine為True時(shí),該屬性才有效,滾動條的形式。
0-None:無滾動條、1-Horizontal:水平滾動條、2-Vertical垂直滾動條、3-Both水平和垂直滾動條。(5)Locked:是否可被編輯屬性,F(xiàn)alse,表示為可編輯。(6)PassWordChar屬性設(shè)置PasswordChar屬性為了掩蓋文本框中輸入的字符。該屬性的設(shè)置只有在MultiLine設(shè)為
False才有效(7)SelStart、SelLength和SelText屬性這三個(gè)屬性是文本框中對文本的編輯屬性。SelStart:確定在文本框選中文本的起始位置。第一字符的位置為0。若沒有選擇文本,則用于返回或設(shè)置文本的插入點(diǎn)位置,如果SelStart的值大于文本的長度,則SelStart取當(dāng)前文本的長度:SelLength:設(shè)置或返回文本框中選定的文本字符串長度(字符個(gè)數(shù))。SelText:設(shè)置或返回當(dāng)前選定文本中的文本字符串。(二)常用事件
Change:
當(dāng)改變文本框的Text屬性時(shí)會引發(fā)該事件。當(dāng)用輸入一個(gè)字符,就會觸發(fā)一次Change事件。
KeyPress(KeyAsciiAsInteger):
當(dāng)用戶按下并釋放鍵盤上一個(gè)ANSI鍵時(shí),就會觸發(fā)一次該事件,并返回一個(gè)KeyAscii參數(shù)(字符的Ascii值)到該事件過程中。
例如:輸入“A”,則KeyAscii的值是65??捎煤瘮?shù)Chr$(KeyAscii)可得到字符“A”。
LostFocus:當(dāng)控件失去焦點(diǎn)時(shí)發(fā)生。
GotFocus:當(dāng)控件獲得焦點(diǎn)時(shí)發(fā)生。(三)常用方法
文本框最有用的方法是:SetFocus,使用形式:
[對象.]SetFocus
功能:是把光標(biāo)移到指定的文本框?qū)ο笾?。例題:2.5簡單應(yīng)用程序的建立一.工程的組成
工程文件(.Vbp)包含了一個(gè)應(yīng)用程序的所有文件(詳見Pg.42表1.2.10)
窗體文件(.frm):控件及屬性、事件過程和自定義過程
窗體的二進(jìn)制數(shù)據(jù)文件(.frx),自動產(chǎn)生同名..frx文件。
標(biāo)準(zhǔn)模塊文件(.bas)類模塊的文件(.cls) 資源文件(.res) ActiveX控件的文件(.ocx)一個(gè)VB應(yīng)用程序中各主要文件的結(jié)構(gòu)關(guān)系如下圖:二、創(chuàng)建應(yīng)用程序的步驟:
分析問題,確定程序要完成什么任務(wù),按下面的步驟創(chuàng)建應(yīng)用程序。
(1)新建工程。創(chuàng)建一個(gè)應(yīng)用程序首先要打開一個(gè)新的工程。(2)創(chuàng)建應(yīng)用程序界面。(3)設(shè)置屬性值。(4)對象事件過程的編程。(5)保存文件。(6)程序運(yùn)行與調(diào)試。再次保存修改后的程序三、一個(gè)簡單的VB程序的創(chuàng)建(實(shí)例)例2.7設(shè)計(jì)一簡單應(yīng)用程序,在窗體上放置1個(gè)文本框、2個(gè)命令按鈕,用戶界面如圖2-9所示。第三章數(shù)據(jù)類型、常量、變量及表達(dá)式本章內(nèi)容及要求:1熟悉VB程序中代碼和語句書寫規(guī)則;2掌握VB的數(shù)據(jù)類型;3掌握VB的運(yùn)算符和表達(dá)式的使用;4掌握常用內(nèi)部函數(shù)的使用;本章重點(diǎn):變量和常量的定義及使用、運(yùn)算符和表達(dá)式的使用及常用內(nèi)部函數(shù)的使用。本章難點(diǎn):數(shù)據(jù)類型、內(nèi)部函數(shù)。3.1VB語言字符集及編碼規(guī)則一、VB的字符集l
字母:大寫英文字母A—Z;小寫英文字母a—z。l
數(shù)字:0一9;l專用字符:共27個(gè),二、編碼規(guī)則與約定(一)、編碼規(guī)則1.VB代碼中不區(qū)分字母的大小寫。2.在同一行上可以書寫多條語句,但語句間要用冒號“:”分隔。3.若一個(gè)語句行不能寫下全部語句,或在特別需要時(shí),可以換行。換行時(shí)需在本行后加入續(xù)行符,1個(gè)空格加下劃線“_”。4.一行最多允許255個(gè)字符。5.注釋以Rem開頭,也可以使用單引號“'”,注釋內(nèi)容可直接出現(xiàn)在語句的后面。6.在程序轉(zhuǎn)向時(shí)需用到標(biāo)號,標(biāo)號是以字母開始而以冒號結(jié)束的字符串。(二)、約定1.為了提高程序的可讀性,對于VB中的關(guān)鍵字其首字母大寫,其余字母小寫2.注釋有利于程序的維護(hù)和調(diào)試Rem開始或單撇‘。例如:’ThisisaVBREMThisisaVB
在6.0中新增了“塊注釋/取消塊注釋”3.通常不使用行號4.對象名命名約定:每個(gè)對象的名字由3個(gè)小寫字母組成的前綴(指明對象的類型)和表示該對象作用的縮寫字母組成。3.2
數(shù)據(jù)類型一.標(biāo)準(zhǔn)數(shù)據(jù)類型表3.2二、自定義類型在模塊級別中使用,用于定義包含一個(gè)或多個(gè)元素的用戶自定義的數(shù)據(jù)類型。使用形式:
Type自定義類型名 元素名[([下標(biāo)])]As類型名 元素名[([下標(biāo)])]As類型名...EndType說明
TypeStudent XhAsSting XmAsString XbAsString NlAsInteger ScoreAsSingleEndType例如:對于一個(gè)學(xué)生的“學(xué)號”、“姓名”、“性別”、“年齡”、“入學(xué)成績”等數(shù)據(jù),為了處理數(shù)據(jù)的方便,常常需要把這些數(shù)據(jù)定義成一個(gè)新的數(shù)據(jù)類型(如Student類型)。3.3常量和變量3.3.1常量在程序運(yùn)行過程中,其值不能被改變的量稱為常量。在VB中有三類常量:普通常量符號常量系統(tǒng)常量。一、普通常量1.
整型常量
(1)整型(Integer):表示-32768至32767之間的整數(shù)例如:1011020(2)長整型(Long):
表示-2,147,483,648至2,147,483,647之間的整數(shù)例如:長整型常數(shù)的書寫:23&通常我們說的整型常量指的是十進(jìn)制整數(shù),但VB中可以使用八進(jìn)制和十六進(jìn)制形式的整型常數(shù),因此整型常數(shù)有如下三種形式:
1)十進(jìn)制整數(shù)。如125,0,-89。202)八進(jìn)制整數(shù)。以&或&O(字母O)開頭的整數(shù)是八進(jìn)制整數(shù),如&O25表示八進(jìn)制整數(shù)25,即(25)8
,等于十進(jìn)制數(shù)21。3)十六進(jìn)制。以&H開頭的整數(shù)是十六進(jìn)制整數(shù),如&H25表示十六進(jìn)制整數(shù)25,即(25)16,等于十進(jìn)制數(shù)37。VB中的顏色數(shù)據(jù)常常用十六進(jìn)制整數(shù)表示。2、實(shí)數(shù)1)單精度實(shí)型(Single):有效數(shù)為7位表示-3.37E+38至3.37E+38之間的實(shí)數(shù)2)雙精度實(shí)型(Double):有效數(shù)為15位常量的表示:1)十進(jìn)制小數(shù)形式。它是由正負(fù)號(+,-)、數(shù)字(0~9)和小數(shù)點(diǎn)(.)或類型符號(!、#)組成,即±n.n,±n!或±n#,其中n是0~9的數(shù)字。例如0.123、.123、123.0、123!、123#等都是十進(jìn)制小數(shù)形式。2)指數(shù)形式?!纍E±m(xù)或
±n.nE±m(xù),±nD±m(xù)或
±n.nD±m(xù)
例:1.25E+3和1.25D+3相當(dāng)于1250.0或者1.25×103。3、字符串常量在VB中字符串常量是用雙引號“"”括起的一串字符,例如"ABC","abcdefg","123","0","VB程序設(shè)計(jì)"等。說明:(1)字符串中的字符可以是所有西文字符和漢字、標(biāo)點(diǎn)符號等;(2)""表示空字符串,而""表示有一個(gè)空格的字符串;(3)若字符串中有雙引號,例如ABD"XYZ,則用連續(xù)兩個(gè)雙引號表示,即:"ABD""XYZ“4、邏輯(Boolean)數(shù)據(jù)類型只有兩個(gè)值True,或False。將邏輯數(shù)據(jù)轉(zhuǎn)換成整型時(shí):True為-1,F(xiàn)alse為0;其它數(shù)據(jù)轉(zhuǎn)換成邏輯數(shù)據(jù)時(shí):非0為True,0為False。5、日期常量日期(Date)型數(shù)據(jù)按8字節(jié)的浮點(diǎn)數(shù)來存儲,表示日期范圍從公元100年1月1日~9999年12月31日,而時(shí)間范圍從0:00:00~23:59:59。一種在字面上可被認(rèn)作日期和時(shí)間的字符,只要用號碼符“#”括起來,都可以作為日期型數(shù)值常量。例:#09/02/99#、#January4,1989#,#2002-5-414:30:00PM#都是合法的日期型常量。說明:當(dāng)以數(shù)值表示日期數(shù)據(jù)時(shí),整數(shù)部分代表日期,而小數(shù)部分代表時(shí)間;例如1表示1899年12月31日。大于1的整數(shù)表示該日期以后的日期,0和小于0的整數(shù)表示該日期以前的日期。
二、符號常量
在程序中,某個(gè)常量多次被使用,則可以使用一個(gè)符號來代替該常量,這樣不僅在書寫上方便,而且有效地改進(jìn)了程序的可讀性和可維護(hù)性。VB中使用關(guān)鍵字Const聲明符號常量。其格式如下:Const常量名[As類型|類型符號]=常數(shù)表達(dá)式例如:ConstPI#=3.1415926535等價(jià)于:ConstPIAsDouble=3.1415926535三、系統(tǒng)常量VB系統(tǒng)提供了應(yīng)用程序和控件的系統(tǒng)定義常數(shù)。它們存放于系統(tǒng)的對象庫中,在“對象瀏覽器”中的VisualBasic(VB)和VisualBasicforapplications(VBA)對象庫中列舉了VisualBasic的常數(shù)例如,要將文本框Text1的前景顏色設(shè)置為紅色,可以使用下面的語句:Text1.ForeColor=vbRed這里的vbRed就是系統(tǒng)常量。這比直接使用16進(jìn)制數(shù)來設(shè)置要直觀得多。
又如,窗口狀態(tài)屬性WindowsState可取0,1,2三個(gè)值,對應(yīng)三種不同狀態(tài)(參見第二章表2-2所示)。在程序中使用語句Myform.WindowsState=vbMaxmized,將窗口極大化,顯然要比使用語句Myform.WindowsState=2易于閱讀和理解。一.變量和常量的命名規(guī)則1.以字母或漢字開頭,后可跟字母、數(shù)字或下劃線組成,長度小于等于40個(gè)字符;2.不能使用VB中的關(guān)鍵字;3.VB中不區(qū)分變量名的大小寫.4.為了增加程序的可讀性,可在變量名前加一個(gè)縮寫的前綴來表明該變量的數(shù)據(jù)類型。例如:strAbc,(字符串變量)iCount,(整型變量)dblx,(雙精度變量)sYz(單精度變量)3.3.2變量二.變量聲明
1.用Dim語句顯式聲明變量形式:Dim變量名[AS類型] Dim變量名[類型符]例 DimiCountAsinteger,sumAssingle 等價(jià)于DimiCount%,sum!2.隱式聲明VisualBasic允許用戶在編寫應(yīng)用程序時(shí),不聲明變量而直接使用,系統(tǒng)臨時(shí)為新變量分配存儲空間并使用,這就是隱式聲明。所有隱式聲明的變量都是Variant數(shù)據(jù)類型。VisualBasic根據(jù)程序中賦予變量的值來自動調(diào)整變量的類型。例如:下面是一個(gè)很簡單的程序,其使用的變量a,b,Sum都沒有事先定義。PrivateSubForm_Click()Sum=0a=10:b=20Sum=a+bPrint"Sum=";SumEndSub3.強(qiáng)制顯式聲明——OptionExplicit語句良好的編程習(xí)慣都應(yīng)該是“先聲明變量,后使用變量”,這樣做可以提高程序的效率,同時(shí)也使程序易于調(diào)試。VisualBasic中可以強(qiáng)制顯式聲明,可以在窗體模塊、標(biāo)準(zhǔn)模塊和類模塊的通用聲明段中加入語句:OptionExplicit3.4運(yùn)算符和表達(dá)式一.運(yùn)算符
1.算術(shù)運(yùn)算符(均是雙目運(yùn)算,ia=3)例:5+10mod10\9/3+2^2結(jié)果是:102.字符串運(yùn)算符與字符串表達(dá)式
字符串運(yùn)算符有:&、+。功能是字符串連接例如:"ABCD"+"EFGHI"'結(jié)果為:ABCDEFGHI“VB”&“程序設(shè)計(jì)教程”'結(jié)果為:VB程序設(shè)計(jì)教程說明:當(dāng)連接符兩旁的操作量都為字符串時(shí),上述兩個(gè)連接符等價(jià)。它們區(qū)別是:
+(連接運(yùn)算):兩個(gè)操作數(shù)均應(yīng)為字符串類型;
&(連接運(yùn)算):兩個(gè)操作數(shù)既可為字符型也可為數(shù)值型,當(dāng)是數(shù)值型時(shí),系統(tǒng)自動先將其轉(zhuǎn)換為數(shù)字字符,然后進(jìn)行連接操作。例:"100"+123'結(jié)果為223"100"+"123"'結(jié)果為100123"Abc"+"123"'出錯(cuò)"100"&123'結(jié)果為100123100&123'結(jié)果為100123"Abc"&"123"'結(jié)果為Abc123"Abc"&123'結(jié)果為Abc123注意:使用運(yùn)算符“&”時(shí),變量與運(yùn)算符“&”之間應(yīng)加一個(gè)空格。這是因?yàn)榉枴?”還是長整型的類型定義符,如果變量與符號“&”接在一起,VB系統(tǒng)先把它作為類型定義符處理,因而就會出現(xiàn)語法錯(cuò)誤。3.4.3關(guān)系運(yùn)算符與關(guān)系表達(dá)式
關(guān)系運(yùn)算符都是雙目運(yùn)算,是用來比較兩個(gè)運(yùn)算量之間的關(guān)系,關(guān)系表達(dá)式的運(yùn)算結(jié)果為邏輯量。若關(guān)系成立,結(jié)果為True,若關(guān)系不成立,結(jié)果為False。VB中的關(guān)系運(yùn)算符如下表所示。運(yùn)算符含義優(yōu)先級實(shí)例結(jié)果<小于所有關(guān)系運(yùn)算優(yōu)先級相同。低于算術(shù)運(yùn)算的加“+”,減“-”運(yùn)算,高于邏輯非“Not”運(yùn)算。15+10<20False<=小于或等于10<=20True>大于10>20False>=大于或等于"This">="That"True=等于"This"="That"False<>不等于"This"<>"That"TrueLike字符串匹配"This"Like"*is"TrueIs對象比較
關(guān)系運(yùn)算的規(guī)則如下:(1)當(dāng)兩個(gè)操作式均為數(shù)值型,按數(shù)值大小比較。(2)字符串比較,則按字符的ASCII碼值從左到右一一比較,直到出現(xiàn)不同的字符為止.。例:"ABCDE">"ABRA" 結(jié)果為False
(3)數(shù)值型與可轉(zhuǎn)換為數(shù)值型的數(shù)據(jù)比較,如:29>"189",按數(shù)值比較,結(jié)果為False。(4)數(shù)值型與不能轉(zhuǎn)換成數(shù)值型的字符型比較,如:77>"sdcd",不能比較,系統(tǒng)出錯(cuò)。(5)“Like”運(yùn)算符是VB6.0新增加的。其使用格式為:str1Likestr23.4.4邏輯運(yùn)算符與邏輯表達(dá)式
Not邏輯非為單目運(yùn)算符(要求一個(gè)操作數(shù)),其它為雙目運(yùn)算符。
條件表達(dá)式1And條件表達(dá)式2條件表達(dá)式均為T結(jié)果為T條件表達(dá)式1Or條件表達(dá)式2條件表達(dá)式有一個(gè)T結(jié)果為T說明:(1)邏輯運(yùn)算符的優(yōu)先級不相同,Not(邏輯非)最高,但它低于關(guān)系運(yùn)算,Imp(邏輯蘊(yùn)含)最低。(2)VB中常用的邏輯運(yùn)算符是Not、And和Or。它們用于將多個(gè)關(guān)系表達(dá)式進(jìn)行邏輯判斷。例如,數(shù)學(xué)上表示某個(gè)數(shù)在某個(gè)區(qū)域時(shí)用表達(dá)式:10≤X<20,用VB程序中應(yīng)寫成:X>=10AndX<20(3)參與邏輯運(yùn)算的量一般都應(yīng)是邏輯型數(shù)據(jù),如果參與邏輯運(yùn)算的兩操作數(shù)是數(shù)值量,則以數(shù)值的二進(jìn)制值逐位進(jìn)行邏輯運(yùn)算(0當(dāng)False,1當(dāng)True)。關(guān)系表達(dá)式與邏輯表達(dá)式常常用在條件語句與循環(huán)語句中,作為條件控制程序的流程走向。4.4.5日期型表達(dá)式日期型數(shù)據(jù)是一種特殊的數(shù)值型數(shù)據(jù),只能有下面3種情況:1.一個(gè)日期型數(shù)據(jù)可以相減:
DateB-DateA結(jié)果是一個(gè)數(shù)值型整數(shù)(兩個(gè)日期相差的天數(shù))。例如:#05/08/2002#-#05/01/2002#其結(jié)果為數(shù)值:72.一個(gè)日期型數(shù)據(jù)(DateA)與一數(shù)值數(shù)據(jù)(N)可作加法運(yùn)算:DateA+N其結(jié)果仍是一個(gè)日期型數(shù)據(jù)。例如:#05/01/2002#+7其結(jié)果為日期型數(shù)據(jù):#05/08/2002#3.一個(gè)日期型數(shù)據(jù)(DateA)與一數(shù)值數(shù)據(jù)(N)可作減法運(yùn)算:DateA-N其結(jié)果仍是一個(gè)日期型數(shù)據(jù)。例如:#05/08/2002#-7其結(jié)果為日期型數(shù)據(jù):#05/01/2002#3.4.6運(yùn)算符的執(zhí)行順序
表達(dá)式中出現(xiàn)了多種不同類型的運(yùn)算符時(shí),其運(yùn)算符優(yōu)先級如下:
算術(shù)運(yùn)算符>=字符運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算
說明:1.當(dāng)一個(gè)表達(dá)式中出現(xiàn)多種運(yùn)算符時(shí),首先進(jìn)行算術(shù)運(yùn)算符,接著處理字符串連接運(yùn)算符,然后處理比較運(yùn)算符,最后處理邏輯運(yùn)算符,在各類運(yùn)算中再按照相應(yīng)的優(yōu)先次序進(jìn)行。2.可以用括號改變優(yōu)先順序,強(qiáng)令表達(dá)式的某些部分優(yōu)先運(yùn)行。括號內(nèi)的運(yùn)算總是優(yōu)先于括號外的運(yùn)算。對于多重括號,總是由內(nèi)到外。3.表達(dá)式的書寫中需注意的問題(1)運(yùn)算符不能相鄰。例a+-b是錯(cuò)誤的。(2)乘號不能省略。例x乘以y應(yīng)寫成:x*y(3)括號必須成對出現(xiàn),均使用圓括號。(4)表達(dá)式從左到右在同一基準(zhǔn)并排書寫,不能出現(xiàn)上下標(biāo)(5)要注意各種運(yùn)算符的優(yōu)先級別,為保持運(yùn)算順序,在寫VB表達(dá)式時(shí)需要適當(dāng)添加括號(),若用到庫函數(shù)必須按庫函要求書寫。如:
(b-sqr(b*b-4*a*c))/(2*a)(a+b)/(a-b)
VB提供了上百種內(nèi)部函數(shù)(庫函數(shù)),要求掌握這些常用函數(shù)的功能及使用。調(diào)用方法:
函數(shù)名(參數(shù)列表)有參函數(shù)函數(shù)名無參函數(shù)說明:
(1)使用庫函數(shù)要注意參數(shù)的個(gè)數(shù)及其參數(shù)的數(shù)據(jù)類型(2)要注意函數(shù)的定義域(自變量或參數(shù)的取值范圍)例如:sqr(x)要求:x>=0(3)要注意函數(shù)的值域。如:exp(23773)的值就超出實(shí)數(shù)在計(jì)算機(jī)中的表示范圍。3.5常用內(nèi)部函數(shù)1.數(shù)學(xué)函數(shù)常用的數(shù)學(xué)函數(shù)見表3-8所示Abs(N)Cos(N)Sin(N)Exp(N)Log(N)Sqr(N)Rnd[(N)]Sgn(N)說明:(1)在三角函數(shù)中的自變量是以弧度為單位。如:sin300sin(3.14159/180*30)(2)Rnd函數(shù)返回0~1(包括0和不包括1)之間的雙精度隨機(jī)數(shù)。若要產(chǎn)生1-100的隨機(jī)整數(shù):Int(Rnd*100)+1
提問:怎樣產(chǎn)生[N,M]區(qū)間的隨機(jī)數(shù)?
2.轉(zhuǎn)換函數(shù)
常用的轉(zhuǎn)換函數(shù)見表3-9所示說明:(1)要區(qū)別兩個(gè)取整函數(shù)int()和fix()Fix(N)為截?cái)嗳≌?,即去掉小?shù)后的數(shù)。Int(N)不大于N的最大整數(shù)。N>0與int(N)相同,當(dāng)N<0時(shí),int(N)與fix(N)-1相等。例如:Fix(9.59)=9,Int(9.59)=9Fix(-9.59)=-9,Int(-9.59)=-10
思考:如何實(shí)現(xiàn)四舍五入取整?(2)Asc("Abcd")
值為:65(只取首字母的Ascii值)
(3)Val("abc123")值為:0,Val("1.2sa10")值為1.2注意:Val()函數(shù)只將最前面的數(shù)字字符轉(zhuǎn)換為數(shù)值。3.字符串操作函數(shù)
常用的字符串函數(shù)見表3-10
說明:如果返回是字符型,則函數(shù)后有“$”字符。當(dāng)然一般也可以不寫,習(xí)慣都寫上。例如:len("Thisisabook!")15Left$("ABCDEFG",3)"ABC"Mid$("ABCDEFG",2,3)"BCD"InStr(2,“ABCDEFGEF”,“EF”) 5(第一次出現(xiàn)的位置)4.日期、時(shí)間函數(shù)
常用的日期時(shí)間函數(shù)見表3-11
掌握:Time()Date()NowYrar()Month()Day()
5.格式輸出函數(shù)使用格式
Format$(表達(dá)式[,“格式字符串”])
功能:按用戶指定格式返回表達(dá)式,常常用在print方法中。使用形式:print
Format$(表達(dá)式[,“格式字符串”])表達(dá)式:可以是數(shù)值、日期或字符串型表達(dá)式。格式字符串:表示輸出表達(dá)式時(shí)采用的輸出格式。不同數(shù)據(jù)類型所采用的格式字符串是不同的。(1)數(shù)值型數(shù)據(jù)格式化(見表3-12)注意:對于符號:0與#,當(dāng)數(shù)值的實(shí)際位數(shù)比格式控制給定的位數(shù)多時(shí),系統(tǒng)將按四舍五入返回給定的位數(shù)。如:Format(3.14159,“###.###”),其值為3.142
(2)日期和時(shí)間型數(shù)據(jù)格式化(見表3-13)缺省日期格式為:“mm/dd/yy”,時(shí)間格式:“hh:mm:ss”
(3)字符串類型數(shù)據(jù)格式化(見表3-14)第四章三種基本結(jié)構(gòu)程序設(shè)計(jì)本章內(nèi)容及要求:1.了解算法概念及算法的表示,掌握用N—S流程序表示算法2.熟練掌握賦值語句、End語句和注釋語句等語句及輸入/輸出消息框函數(shù)的使用;3.熟練掌握行if語句、塊if結(jié)構(gòu)、SelectCase情況選擇結(jié)構(gòu)有使用,掌握選擇的嵌套結(jié)構(gòu);4.熟練掌握實(shí)現(xiàn)循環(huán)結(jié)構(gòu)的For/Next循環(huán)結(jié)構(gòu)及ExitFor語句、Do/Loop循環(huán)結(jié)構(gòu)的使用,掌握多重循環(huán)。重點(diǎn):選擇結(jié)構(gòu)及循環(huán)結(jié)構(gòu)的實(shí)現(xiàn)及其應(yīng)用難點(diǎn):選擇的嵌套及多重循環(huán)結(jié)構(gòu)4.1算法及算法的表示4.1.1算法概述什么是算法:廣義地講:算法是為完成一項(xiàng)任務(wù)所應(yīng)當(dāng)遵循的一步一步的規(guī)則的、精確的、無歧義的描述,它的總步數(shù)是有限的。狹義地講:算法是解決一個(gè)問題采取的方法和步驟的描述。下面通過兩個(gè)簡單的例子加以說明:例4.1輸入三個(gè)數(shù),然后輸出其中最大的數(shù)。將三個(gè)數(shù)依次輸入到變量A、B、C中,設(shè)變量MAX存放最大數(shù)。其算法如下:
例4.2輸入10個(gè)數(shù),打印輸出其中最大的數(shù)。算法設(shè)計(jì)如下:(1)輸入1個(gè)數(shù),存入變量A中,將記錄數(shù)據(jù)個(gè)數(shù)的變量N賦值為1,即N=1(2)將A存入表示最大值的變量Max中,即Max=A(3)再輸入一個(gè)值給A,如果A>Max則Max=A,否則Max不變(4)讓記錄數(shù)據(jù)個(gè)數(shù)的變量增加1,即N=N+1(5)判斷N是否小于10,若成立則轉(zhuǎn)到第(3)步執(zhí)行,否則轉(zhuǎn)到第(6)步。(6)打印輸出max1)輸入A、B、C。2)A與B中大的一個(gè)放入MAX中。3)把C與MAX中大的一個(gè)放入MAX中。4)輸出MAX,MAX即為最大數(shù)。4.1.2算法的特性有窮性確定性有0個(gè)或多個(gè)輸入有一個(gè)或多個(gè)輸出有效性4.1.3算法的表示一、自然語言與偽代碼表示算法自然語言:就是指人們?nèi)粘J褂玫恼Z言,可以是漢語、英語或其它語言。偽代碼:是用介于自然語言和計(jì)算機(jī)語言之間的文字和符號(包括數(shù)學(xué)符號)來描述算法。例如:例4.1可用如下的偽代碼表示Begin(算法開始)
輸入A,B,CIFA>B則A→Max
否則B→MaxIFC>Max則C→MaxPrintMaxEnd(算法結(jié)束)二用傳統(tǒng)流程圖表示算法處理框起止框I/O框判斷框流程線連接點(diǎn)1、傳統(tǒng)流程圖中的基本符號2、三種基本結(jié)構(gòu)的表示(1)順序結(jié)構(gòu)條件語句1語句2YN語句1語句2(2)選擇結(jié)構(gòu)條件(a)條件語句組(3)循環(huán)結(jié)構(gòu)a)當(dāng)型循環(huán)b)直到循環(huán)YNYN(b)語句組三種基本結(jié)構(gòu)的特點(diǎn):(1)只有一個(gè)入口(2)只有一個(gè)出口(3)不存在死語句(4)不存在死循環(huán)例:例4.2輸入10個(gè)數(shù),打印輸出其中的最大的數(shù)的流程圖從10個(gè)數(shù)中選出最大的數(shù)的流程圖N<10Max=AN=1A>MaxMax=A輸入A開始再輸入給AN=N+1打印Max結(jié)束YNNY4.1.4用N—S流程圖表示算法將全部算法寫在一個(gè)矩形框內(nèi),在矩形內(nèi)還可包含其它從屬于它的框三種基本結(jié)構(gòu)的N—S圖表示:語句A語句B語句A語句B條件YN1、順序結(jié)構(gòu)2、選擇結(jié)構(gòu)語句組(3)循環(huán)結(jié)構(gòu)a)當(dāng)型循環(huán)b)直到循環(huán)當(dāng)條件成立語句組直到當(dāng)條件成立例:畫出從10個(gè)數(shù)中選出最大的數(shù)的N—S流程圖(a)(b)傳統(tǒng)流程圖N<10Max=AN=1A>MaxMax=A輸入A開始再輸入給AN=N+1打印Max結(jié)束YNNY輸入A當(dāng)N<=10Max=AN=N+1打印Max輸入AN—S流程圖A>=MaxYNPrivateSubForm_Click()Dima%,max%,i%max=aFori=1To10a=Val(InputBox("A=?"))Ifa>maxThenmax=aNextiPrint"Max=";maxEndSub最后需要說明的是:上面介紹的算法表示是給人看的,即是為幫助程序開發(fā)人員閱讀、編寫程序而設(shè)計(jì)的一種輔助工具,程序則必須符一計(jì)算機(jī)語言的語法規(guī)則。下面是例4.2的計(jì)算機(jī)程序,即為用計(jì)算機(jī)語言表示算法:4.1.6結(jié)構(gòu)化程序設(shè)計(jì)方法(補(bǔ)充)(一)、用計(jì)算機(jī)解決問題的過程提出、分析問題確定算法模型設(shè)計(jì)算法編寫程序調(diào)試程序分析輸出結(jié)果正確合理結(jié)束不正確(二)、結(jié)構(gòu)化程序設(shè)計(jì)思想自頂向下、逐步細(xì)化、模塊化自頂向下:先從全局、整體設(shè)計(jì)逐步細(xì)化:將一個(gè)問題分解成幾個(gè)較小的問題解決模塊化:將一個(gè)大任務(wù)分解成若干個(gè)較小的部分,每個(gè)部分承擔(dān)一定功能,稱為“功能模塊”例:給100個(gè)整數(shù),打印輸出其中的素?cái)?shù)S1N—S流程圖輸入100個(gè)數(shù)存入X1,x2,……x100打印x1…..x100中不等于0的數(shù)讓x1,x2,……x100中的非素變?yōu)?S3S2輸入xi當(dāng)i<=100i=i+1i=1S1細(xì)化xi≠0當(dāng)i<=100i=i+1i=1YN打印xiS3細(xì)化S1N—S流程圖輸入100個(gè)數(shù)存入X1,x2,……x100打印x1…..x100中不等于0的數(shù)讓x1,……x100中的非素變?yōu)?S3S2S2細(xì)化判斷xi是否是素?cái)?shù),若不是則將xi=0當(dāng)i<=100i=i+1i=1S21r=0r<=將x1除j的余j=j+1j=2YNxi=0直到j(luò)>xi/2S21細(xì)化輸入100個(gè)數(shù)存入X1,x2,……x100打印x1…..x100中不等于0的數(shù)讓x1,……x100中的非素變?yōu)?細(xì)化后的流程圖輸入xi當(dāng)i<=100i=i+1i=1當(dāng)i<=100i=1r=0r=xi%jj=j+1j=2YNxi=0直到j(luò)>xi/2i=i+1xi≠0當(dāng)i<=100i=1YN打印xii=i+14.2順序結(jié)構(gòu)4.2.1賦值語句
形式:變量名=表達(dá)式對象.屬性=表達(dá)式
功能:將表達(dá)式的值賦值給變量名或指定對象的屬性。一般用于給變量賦值或?qū)丶O(shè)定屬性值.例:sRate!=0.1Text1.Text="歡迎使用VisualBasic6.0”說明:1執(zhí)行過程:先求表達(dá)式的值,然后將值賦值給左邊的變量。2右邊的表達(dá)式可以是變量、常量、函數(shù)調(diào)用等特殊的表達(dá)式。3不要將“=”理解為數(shù)學(xué)上的等號:A=A+1是表示將A單元的值加1后以放回到A單元。執(zhí)行過程如右圖4.賦值符號“=”左邊一定只能是變量名或?qū)ο蟮膶傩砸茫荒苁浅A?、符號常量、表達(dá)式。下面的賦值語句都是錯(cuò)的:5=X'左邊是常量。Abs(X)=20'左邊是函數(shù)調(diào)用,即是表達(dá)式。5.賦值符號“=”兩邊的數(shù)據(jù)類型一般要求應(yīng)一致。4.2.2數(shù)據(jù)的輸出——Print方法Print方法的一般格式:[對象名.]Print[<表達(dá)式表>][{,|;}]說明:[對象名.]可以是窗體名、圖片框名,也可是立即窗口“Debug”。若省略對象,則表示在當(dāng)前窗體上輸出。在2.3節(jié)窗體對象的方法中對Print方法做了詳細(xì)的介紹。用Print方法在圖片框和立即窗口對象中輸出與在窗體對象中輸出完全相同。缺省值標(biāo)題題提示4.2.3用戶交互函數(shù)和過程
1.InputBox函數(shù)變量名=InputBox[$](<提示信息>[,<標(biāo)題>][,<缺省>][,<x坐標(biāo)>][,<y坐標(biāo)>])
其中:提示提示信息,標(biāo)題標(biāo)題區(qū)顯示,缺省輸入?yún)^(qū)缺省值有$返回字符類型,否則為數(shù)值類型.例如,要在屏幕上顯示如下的對話框:例如:有下列語句如下:
DimstrNameAsString*40,strS1AsString*40strS1=“請輸入你的姓名”+Chr(13)+Chr(10)+“然后單擊確定”strName=InputBox$(strS1,“輸入框”,,100,100)
當(dāng)鍵盤輸入“王曉明”后,變量strName獲得鍵盤輸入的值.缺省值標(biāo)題題提示2.MsgBox函數(shù)和MsgBox過程
函數(shù)形式:變量[%]=MsgBox(提示[,按鈕[+圖標(biāo)]+[缺省按鈕]+[模式]][,標(biāo)題])過程形式:MsgBox提示[,按鈕[+圖標(biāo)]+[缺省按鈕]+[模式]][,標(biāo)題]圖標(biāo)標(biāo)題提示信息命令按鈕說明:1“標(biāo)題”和“提示”與InputBox函數(shù)中對應(yīng)的參數(shù)相同;2“按鈕+圖標(biāo)+缺省按鈕+模式”是整型表達(dá)式,決定信息框按鈕數(shù)目、出現(xiàn)在信息框上的圖標(biāo)類型及操作模式(見表4.1)3若程序中需要返回值,則使用函數(shù),否則可調(diào)用過程。按鈕及圖標(biāo)值如下:根據(jù)用戶所選按鈕,函數(shù)返回1—7的整數(shù)值,其含義如下表:(表4.2)4.2.4注釋語句其語法格式為:Rem<注釋內(nèi)容>或'<注釋內(nèi)容>說明:1.<注釋內(nèi)容>指要包括的任何注釋文本。在Rem關(guān)鍵字和注釋內(nèi)容之間要加一個(gè)空格。可以用一個(gè)英文單引號“'”來代替Rem關(guān)鍵字。2.如果在其他語句行后面使用Rem關(guān)鍵字,必需用冒號(:)與語句隔開。若用英文單引號“'”,則在其他語句行后面不必加冒號(:)。例如:ConstPI=3.1415925'符號常量PIS=PI*r*r :Rem計(jì)算圓的面積4.3選擇結(jié)構(gòu)
1.If…Then語句(單分支結(jié)構(gòu))
If<表達(dá)式>Then語句塊EndIf
或
If<表達(dá)式>Then<語句>
例:已知兩個(gè)數(shù)x和y,比較它們的大小,使得x大于y.
Ifx<yThent=x:x=y:y=tEndIf
或Ifx<yThent=x:x=y:y=t2.If…Then…Else語句(雙分支結(jié)構(gòu))
If<表達(dá)式>Then<語句塊1>Else<語句塊2>EndIf
If<表達(dá)式>Then<語句1>Else<語句2>
例如:輸出x,y兩個(gè)中值較大的一個(gè)值。IFX>YThenPrintXElsePrintYEndIf也可以寫成如下的單行形式:IFX>YThenPrintXElsePrintY雙分支選擇結(jié)構(gòu)執(zhí)行過程例4.1設(shè)計(jì)一個(gè)求解一元二次方程的程序3.If…Then…ElseIf語句(多分支結(jié)構(gòu))
形式
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 國家思政課題申報(bào)書
- 高職省級課題申報(bào)書
- 黨建雙創(chuàng)課題申報(bào)書
- 醫(yī)學(xué)婦科課題申報(bào)書范文
- 養(yǎng)殖設(shè)備銷售合同范本
- ai生成課題申報(bào)書
- 合同范本封面彩色設(shè)計(jì)
- 課題如何寫申報(bào)書
- 信用保證保險(xiǎn)合同范本
- 印刷租賃合同范本
- 腦梗塞的急救護(hù)理
- 肝細(xì)胞癌轉(zhuǎn)化治療
- 廣東省佛山一中、石門中學(xué)2025屆高考語文考前最后一卷預(yù)測卷含解析
- 讀后續(xù)寫+摯友離別:不舍與成長交織的瞬間+講義 高一上學(xué)期期中聯(lián)考英語試題
- 地質(zhì)災(zāi)害預(yù)防培訓(xùn)課件
- 2024-2030年中國飾面板行業(yè)發(fā)展?fàn)顩r及前景趨勢研究報(bào)告
- 2025新譯林版英語七年級下單詞默寫表
- 部編版小學(xué)語文三年級下冊第六單元教材解讀及教學(xué)建議
- DB11T 1315-2015 綠色建筑工程驗(yàn)收規(guī)范
- 山東省2024年夏季普通高中學(xué)業(yè)水平合格考試地理試題02(解析版)
- 《ISO 41001-2018 設(shè)施管理- 管理體系 要求及使用指南》專業(yè)解讀與應(yīng)用指導(dǎo)材料之16:“8運(yùn)行”(雷澤佳編制-2024)
評論
0/150
提交評論