VB基礎(chǔ)教程入門全篇精講_第1頁
VB基礎(chǔ)教程入門全篇精講_第2頁
VB基礎(chǔ)教程入門全篇精講_第3頁
VB基礎(chǔ)教程入門全篇精講_第4頁
VB基礎(chǔ)教程入門全篇精講_第5頁
已閱讀5頁,還剩261頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

VisualBasic程序設(shè)計(jì)(6.0版)皖南醫(yī)學(xué)院計(jì)算機(jī)教研室畢迎春1課程要求期末考核要求:理論考試期末評分比例:平常成果30%+期末成果70%

2第一章VisualBasic程序設(shè)計(jì)概述

1.1概述

1.2運(yùn)行環(huán)境、安裝和啟動(dòng)

1.3VB集成開發(fā)環(huán)境31.1概述一、VB簡介:VisualBasic是基于Basic的可視化的程序設(shè)計(jì)語言。VisualBasic6.0中文版是Microsoft公司最新推出的可視化開發(fā)工具,是一種基于Windows操作系統(tǒng)的新型的現(xiàn)代程序設(shè)計(jì)語言,是一種易于學(xué)習(xí)、功能強(qiáng)、效率高的編程工具。任何具有初步程序設(shè)計(jì)基礎(chǔ)的人,都能在很短的時(shí)間內(nèi)駕馭好VB,并有效地編寫出各種Windows程序。VB6.0包括三個(gè)版本:學(xué)習(xí)版、專業(yè)版、企業(yè)版4二、VB主要功能特點(diǎn):1.具有面對對象的可視化設(shè)計(jì)工具2.事務(wù)驅(qū)動(dòng)的編程機(jī)制3.供應(yīng)了易學(xué)易用的應(yīng)用程序集成開發(fā)環(huán)境4.結(jié)構(gòu)化的程序設(shè)計(jì)語言5.支持多種數(shù)據(jù)庫系統(tǒng)的訪問6.OLE技術(shù)。VB核心就是其對對象的鏈接與嵌入(OLE)的支持。7.Active技術(shù)8.完備的help聯(lián)機(jī)幫助功能三、VB6.0新功能特點(diǎn)51.2運(yùn)行環(huán)境、安裝和啟動(dòng)一、運(yùn)行環(huán)境:二、安裝:安裝文件:setup.exe三、啟動(dòng):方法:1、雙擊桌面VB快捷方式。2、“起先”|程序|MicrosoftVisualStudio6.0|MicrosoftVisualBasic6.03、“起先”|運(yùn)行|C:\programfiles\MicrosoftVisualStudio\VB98\VB6.exe6進(jìn)入VB6.0窗口71.3VB集成開發(fā)環(huán)境81.主窗口應(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ì)窗體、繪制控件、編寫代碼并運(yùn)用“屬性”窗口來設(shè)置或查看屬性設(shè)置值。(2)運(yùn)行模式:代碼正在運(yùn)行的時(shí)期,用戶可與應(yīng)用程序溝通。可查看代碼,但不能改動(dòng)它。(3)中斷模式:程序在運(yùn)行的中途被停止執(zhí)行時(shí)。在中斷模式下,用戶可查看各變量及不是屬性的當(dāng)前值,從而了解程序執(zhí)行是否正常。還可以修改程序代碼,檢查、調(diào)試、重置、單步執(zhí)行或接著執(zhí)行程序。92.窗體(Form)設(shè)計(jì)窗口窗體設(shè)計(jì)窗口是屏幕中心的主窗口,它可以作為自定義窗口用來設(shè)計(jì)應(yīng)用程序的界面。用戶可以在窗體中添加控件、圖形和圖片來創(chuàng)建所希望的外觀。每個(gè)窗口必需有一個(gè)的窗體名字,建立窗體時(shí)缺省名為Form1,Form2,...。窗體網(wǎng)格點(diǎn)間距的設(shè)置:設(shè)計(jì)模式-”工具”–”選項(xiàng)”應(yīng)留意窗體名(代碼中運(yùn)用的標(biāo)識對象名稱)和窗體文件名的區(qū)分10窗體設(shè)計(jì)窗口窗體名窗體文件名113.代碼(code)窗口在設(shè)計(jì)模式中,通過雙擊窗體或窗體上任何對象或通過“工程資源管理器”窗口中的“查看代碼”按鈕來打開代碼編輯器窗口。代碼編輯器是輸入應(yīng)用程序代碼的編輯器。

代碼窗口主要包括:a.對象列表框b.過程列表框c.代碼框d.過程查看按鈕

e.全模塊查看按鈕12134.屬性(properties)窗口

屬性是指對象的特征,如大小、標(biāo)題或顏色等數(shù)據(jù)。在VisualBasic6.0設(shè)計(jì)模式中,屬性窗口列出了當(dāng)前選定窗體或控件的屬性的值,用戶可以對這些屬性值進(jìn)行設(shè)置。14

工程是指用于創(chuàng)建一個(gè)應(yīng)用程序的文件的集合。工程資源管理器列出了當(dāng)前工程中的窗體和模塊5.工程資源管理器(projectexplorer)窗口15工程文件的擴(kuò)展名為.VBP工程資源管理器下面的列表窗口,以層次列表形式組成這個(gè)工程的全部文件。主要包括三種類型的文件:窗體文件(.FRM)存儲(chǔ)窗體上運(yùn)用的全部控件對象和有關(guān)的屬性、對象相應(yīng)的事務(wù)過程、程序代碼。標(biāo)準(zhǔn)模塊文件(.BAS)全部模塊級變量和用戶自定義的通用過程(可以被應(yīng)用程序各處調(diào)用的過程)類模塊文件(.CLS)包含用戶對象的屬性及方法。16工具箱供應(yīng)一組工具,用于設(shè)計(jì)時(shí)在窗體中放置控件生成應(yīng)用程序的用戶接口。系統(tǒng)啟動(dòng)后缺省的General工具箱就會(huì)出現(xiàn)在屏幕左邊,上面有常用“部件”6.工具箱(ToolBox)窗口17定制工具箱添加選項(xiàng)卡:對添加的選項(xiàng)卡加控件的方法:

(1)在已有的選項(xiàng)卡中拖動(dòng)所需控件(2)激活選項(xiàng)卡-”工程”-“部件”

18窗體布局窗口顯示在屏幕右下角。用戶可運(yùn)用表示屏幕的小圖像來布置應(yīng)用程序中各窗體的位置。這個(gè)窗口在多窗體應(yīng)用程序中很有用,因?yàn)檫@可以指定每個(gè)窗體相對于主窗體的位置。7.窗體布局窗口19立刻窗口:中斷模式中調(diào)試應(yīng)用程序。對象閱讀窗口:可查看工程定義的模塊或過程,也可查看對象庫、類型庫、類、方法、屬性及可在過程中運(yùn)用的常數(shù)。20其次章簡潔的VB程序設(shè)計(jì) 2.1程序設(shè)計(jì)方法的發(fā)展 2.2對象的概念 2.3建立簡潔的應(yīng)用程序 2.4窗體和基本控件 2.5工程的管理及環(huán)境設(shè)置2.6制作成安裝盤2.7運(yùn)用幫助系統(tǒng)

212.1程序設(shè)計(jì)方法的發(fā)展1.初期的程序設(shè)計(jì)高運(yùn)行效率、少占用內(nèi)存為目標(biāo)2.結(jié)構(gòu)化程序設(shè)計(jì) 程序的可讀性、可維護(hù)性為目標(biāo)程序=算法+數(shù)據(jù)結(jié)構(gòu)的面對過程的程序設(shè)計(jì)3.面對對象的程序設(shè)計(jì)(OOP)降低程序的困難性、提高軟件的開法效率和改善工作界面為目標(biāo)程序=對象+消息的面對對象的程序設(shè)計(jì)22結(jié)構(gòu)化的分解突出過程(Howtodo?)面對對象的分解突出真實(shí)世界和抽象的對象(Whattodo?)目前常用的面對對象語言有:VisualBasic、VisualC++、VisualFoxPro等優(yōu)點(diǎn)a.符合人們的思維方法b.易于軟件的維護(hù)和功能的增減c.能用繼承的方式減短程序開發(fā)時(shí)間d.與可視化技術(shù)結(jié)合,改善了工作界面232.2對象的概念一、對象和類1、類:是創(chuàng)建對象實(shí)例的模板,是同種對象的集合與抽象,包含了創(chuàng)建對象的屬性描述和行為特征的定義.2、對象:是類的一個(gè)實(shí)例,繼承了類的屬性、方法。Vb中常用的對象有:窗體、控件等。3、控件:以圖標(biāo)的形式放在工具箱中。VB中的控件分為三類:內(nèi)部控件(標(biāo)準(zhǔn)控件):如工具箱上的控件,20個(gè)ActiveX控件:“工程/部件”叮囑加載可插入對象:Windows應(yīng)用程序的對象,如Excel工作表。二、對象的建立和編輯:1、對象的建立:兩種方法2、對象的選定:單選、多選3、復(fù)制或刪除對象4、對象的命名24三、對象的三要素:屬性、事務(wù)和方法(1)屬性對象的性質(zhì),即用來描述和反映對象特征的參數(shù)。(2)事務(wù)對象的響應(yīng)稱為事務(wù),它發(fā)生在用戶與應(yīng)用程序交互時(shí)。如單擊控件、鼠標(biāo)移動(dòng)、鍵盤按下等。事務(wù)過程指附在該對象上的用戶編寫的程序代碼,是事務(wù)的處理程序。事務(wù)驅(qū)動(dòng)過程是圖形用戶界面的本質(zhì),由用戶限制而代碼作出響應(yīng)。25VB程序執(zhí)行步驟:啟動(dòng)應(yīng)用程序,裝載和顯示窗體窗體(或窗體上的控件)等待事務(wù)的發(fā)生事務(wù)發(fā)生時(shí),執(zhí)行對應(yīng)的事務(wù)過程重復(fù)執(zhí)行(2)和(3),直到遇到“END”結(jié)束語句結(jié)束程序的運(yùn)行或單擊“結(jié)束”按鈕強(qiáng)制停止程序的運(yùn)行26(3)方法

對象的動(dòng)作,即將一些通用的過程編寫好并封裝起來,作為方法供用戶干脆調(diào)用。對象方法的調(diào)用格式:[對象.]方法[參數(shù)名表]例如:在窗體上顯示一行文字。Form1.Print”歡迎運(yùn)用VisualBasic6.0”272.3建立簡潔的應(yīng)用程序設(shè)計(jì)一個(gè)VB應(yīng)用程序的通用步驟:1.設(shè)計(jì)用戶界面的對象2.設(shè)置對象的屬性3.編寫對象事務(wù)代碼4.保存文件5.程序運(yùn)行和調(diào)試(說明執(zhí)行:或“運(yùn)行|啟動(dòng)”或按F5)6.建立可執(zhí)行文件。(編譯運(yùn)行:“文件”|“生成…exe”)28例2.1編寫一個(gè)對輸入字符進(jìn)行轉(zhuǎn)換的程序轉(zhuǎn)換規(guī)則為:將其中的大寫字母轉(zhuǎn)換成小寫字母,小寫字母轉(zhuǎn)換成大寫字母,空格不轉(zhuǎn)換,其余轉(zhuǎn)換成“*”。要求每輸入一個(gè)字符,馬上就進(jìn)行推斷和轉(zhuǎn)換。29PrivateSubText1_KeyPress(KeyAsciiAsInteger)DimaaAsString*1aa=Chr$(KeyAscii)SelectCaseaaCase"a"To"z"aa=Chr$(KeyAscii-32)Case"A"To"Z"aa=Chr$(KeyAscii+32)Case""CaseElseaa="*"EndSelectText2.Text=Text2.Text&aaEndSub30PrivateSubCommand1_Click()Text1.Text=""Text2.Text=""

EndSubPrivateSubCommand2_Click()End

EndSub312.3.4保存和運(yùn)行程序保存窗體文件保存工程程序的運(yùn)行(1)編譯運(yùn)行模式——生成.exe(2)說明運(yùn)行模式——F5322.4窗體和基本控件一、基本屬性1.Name名稱屬性創(chuàng)建的對象名稱,有默認(rèn)的名.在程序中,控件名是作為對象的標(biāo)識而引用,不會(huì)顯示在窗體上。2.Caption標(biāo)題屬性 該屬性確定了控件上顯示的內(nèi)容。3.Height、width、top和left屬性334.Enabled屬性控件是否可操作.當(dāng)設(shè)置為false時(shí),呈暗淡色,禁止用戶進(jìn)行操作.5.Visible屬性控件是否可見.當(dāng)設(shè)置為false時(shí),用戶看不到,但控件本身存在。6.Font屬性Fontname字體Fontsize字體大小Fontbold是否是粗體 Fontitalic是否斜體Fontstrikethru是否加一刪除線Fontunderline是否帶下劃線

例2.2在窗體上建立兩個(gè)叮囑按鈕Command1和Command2,Command2的Font通過屬性窗口設(shè)置,其余屬性通過代碼實(shí)現(xiàn)。347.Forecolor前景顏色屬性設(shè)置控件的前景顏色(即正文顏色).其值是一個(gè)16進(jìn)制常數(shù),用戶可以在調(diào)色板中干脆選擇所需顏色。8.Backcolor背景顏色屬性9.Backstyle背景風(fēng)格屬性0-transparent:透亮顯示,即控件背景顏色顯示不出來10.BorderStyle邊框風(fēng)格屬性0-None:控件四周沒有邊框1-FixedSingle:控件帶有單邊框。11.Alignment屬性控件上正文水平對齊方式0:正文左對齊1:右對齊 2:居中12.AutoSize屬性控件是否依據(jù)正文自動(dòng)調(diào)整大小,False.3513.MousePointer屬性指示鼠標(biāo)指針的類型,當(dāng)為99時(shí)為用戶自定義類型。MouseIcon屬性設(shè)置鼠標(biāo)的圖標(biāo),當(dāng)MousePointer為99時(shí)起作用。圖標(biāo)庫在Graphics書目下,擴(kuò)展名一般為.ico或.cur14.WordWarp屬性為True時(shí)水平方向上下發(fā)生變更。15.TabIndex屬性確定了按Tab鍵時(shí),焦點(diǎn)在各個(gè)控件移動(dòng)的依次。各個(gè)控件默認(rèn)的TabIndex值就是控件建立時(shí)的依次,第一個(gè)為0.16.控件默認(rèn)屬性反映該控件最重要的屬性,運(yùn)用時(shí)可省略屬性名。如:Text1.text=“Welcome”與Text1=“Welcome”是等價(jià)的。部份控件默認(rèn)值:文本框的為:Text叮囑按鈕為:Default標(biāo)簽為:Caption單選/復(fù)選按鈕為:Value圖形/圖像框?yàn)椋篜icture留意:Command的Default為True,當(dāng)按Enter鍵,該控件起作用。36例:有關(guān)屬性的綜合應(yīng)用。對象設(shè)置:效果:37二、窗體1.屬性:P27StartUpPosition、Icon、ControlBoxMaxButton、MinButtonWhatsThisButton、WhatsThisHelpPicture、AutoRedrawBorderStyle(012345)WindowsState(0-正常、1-最小化、2-最大化)注:1、Picture屬性可在屬性窗口設(shè)置,也可通過Loadpicture函數(shù)用代碼來實(shí)現(xiàn)。函數(shù)格式為:[對象].Picture=Loadpicture(“文件路徑\文件名”)對象可以是窗體、圖片框、圖像框,缺省時(shí)為窗體。VB可以識別的圖形格式有:.bmp.gif.jpg.wmf.ico.cur等。2、兩者的不同在于:屬性設(shè)置時(shí)設(shè)置的圖片,會(huì)被保存起來并與窗體同時(shí)加載,而運(yùn)行時(shí)加載的圖片,不和應(yīng)用程序一起保存。382.事務(wù):P28Click、DblClick、Load、UnLoad等Load當(dāng)裝入窗體時(shí)激發(fā),通常用于對屬性和變量初始化3.方法:P28Print、Cls、Move、Show、Hide等當(dāng)在Form_Load事務(wù)中運(yùn)用Print方法時(shí),必需將該窗體的AutoRedraw設(shè)置為True,否則Print方法無效。

例上述屬性、Click、DblClick和Load事務(wù)演示。書上例子:P2839三.標(biāo)簽Label1、功能:用于顯示文本(輸出)信息,不能作為輸入信息的界面。2、屬性:P293、事務(wù):click、Dblclick、Change例2.5.顯示浮雕效果的文字,實(shí)現(xiàn)方法:字顏色、標(biāo)簽位置書上例子:P29四.文本框TextBox功能:是一個(gè)文本編輯區(qū)域,可以輸入,編輯和顯示正文內(nèi)容。1、屬性:P30Text:正文內(nèi)容Maxlength:設(shè)置正文的最多字符個(gè)數(shù),0隨意長度值.MultiLine:是否為多行,默認(rèn)一行.FALSEScrollBars:當(dāng)MultiLine為True時(shí),該屬性才有效,表示滾動(dòng)條的形式0-None、1-Horizontal、2-Vertical、3-Both。Locked:是否可被編輯屬性,F(xiàn)alse,表示為可編輯。PassWordchar:口令字符.Text屬性返回輸入的數(shù)據(jù),屏幕顯示該字符,SelStart,SelLength,SelText:選中文本的起始、長度、內(nèi)容。例2.6復(fù)制選中的文本402.常用事務(wù)Change:當(dāng)變更文本框的Text屬性時(shí)會(huì)引發(fā)該事務(wù).KeyPress(KeyAsciiAsInteger):同上,并可返回一個(gè)KeyAscii參數(shù)KeyAscii為13,按回車鍵;為0去除剛輸入的字符.LostFocus:當(dāng)控件失去焦點(diǎn)時(shí)發(fā)生.GotFocus:當(dāng)控件獲得焦點(diǎn)時(shí)發(fā)生.3.常用方法[對象.]SetFocus:是把光標(biāo)移到指定的文本框?qū)ο笾?即設(shè)置焦點(diǎn))。4.文本框的應(yīng)用數(shù)據(jù)過濾例2.7要求輸入合法的數(shù)字?jǐn)?shù)據(jù)。當(dāng)輸入結(jié)束時(shí)(按Tab鍵),對于輸入正確的數(shù)據(jù),顯示正確信息;對輸入的非數(shù)字?jǐn)?shù)據(jù),則響鈴(Beep)、顯示錯(cuò)誤信息、清除文本框中的內(nèi)容,并使焦點(diǎn)重新回到文本框。Text2_LostFocus當(dāng)輸入結(jié)束按Tab鍵時(shí),該事務(wù)激發(fā)IsNumeric(Text2):推斷是否輸入非數(shù)字?jǐn)?shù)據(jù).Text2.SetFocus:使焦點(diǎn)重新回到文本框書上例子:P3241五.叮囑按鈕CommandButton功能:接受用戶輸入的叮囑。輸入叮囑可以有三種方式:鼠標(biāo)單擊Tab鍵焦點(diǎn)到該按鈕快捷鍵1.屬性:P33Caption:叮囑按鈕顯示的內(nèi)容,可設(shè)置快捷鍵,例&Ok,顯示OkValue:檢查該按鈕是否按下.該屬性在設(shè)計(jì)時(shí)無效.Picture:按鈕可顯示圖片文件(.bmp和.Ico),當(dāng)Style為1時(shí)有效Style:確定顯示的形式.0只能顯示文字,1文字、圖形均可。ToolTipText:設(shè)置工具提示,和Picture結(jié)合運(yùn)用。2.事務(wù)Click423.應(yīng)用:例2.8建立一個(gè)允許剪切、復(fù)制和粘貼的簡潔便箋板程序??稍黾觾?nèi)容:利用MouseMove事務(wù)確定叮囑按鈕的有效性,即當(dāng)選中內(nèi)容,“剪切”、“復(fù)制”按鈕有效,否則無效。43DimstAsStringPrivateSubcmdcopy_Click()st=txtnoteedit.SelTextcmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndSubPrivateSubmdcut_Click()st=txtnoteedit.SelTexttxtnoteedit.SelText=""cmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndSubPrivateSubcmdexit_Click()EndEndSubPrivateSubcmdpaste_Click()txtnoteedit.SelText=stEndSubPrivateSubForm_Load()cmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=FalseEndSub44Subtxtnoteedit_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Iftxtnoteedit.SelText<>""Thencmdcopy.Enabled=Truecmdcut.Enabled=Truecmdpaste.Enabled=FalseElsecmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndIfEndSub45六、常用方法Vb中運(yùn)用方法的語法結(jié)構(gòu)是相同的[對象.]方法[參數(shù)列表]1.print方法形式:[對象.]print[{spc(n)|tab(n)}][表達(dá)式列表]作用:在對象上輸出信息。對象:可以是窗體(form)、圖形框(picturebox)、打印機(jī)。若省略,則在窗體上輸出。46表達(dá)式列表起先位置是由對象的currentx和currenty屬性確定的,缺省為打印對象的左上角0,0。例2-9:print方法輸出圖形。PrivateSubForm_Click()Form1.CurrentX=200Form1.CurrentY=550Fori=1To5PrintTab(i+5);String(6-i,"▼");_Spc(6);String(i,"▲")NextiEndSub472、cls方法形式:[對象.]cls(如:picture.cls)作用:用于清除運(yùn)行時(shí)在窗體或圖形框中顯示的文本或圖形。留意:(1)cls方法只清除運(yùn)行時(shí)在窗體或圖形框中顯示的文本或圖形,不清除窗體在設(shè)計(jì)時(shí)的文本或圖形。(2)cls方法運(yùn)用后,currentx和currenty屬性被設(shè)置為0。483、move方法形式:[對象.]move左邊距離[,上邊距離[,寬度[,高度]]]作用:用于移動(dòng)窗體或控件,并可變更其大小。對象:可以是窗體及除時(shí)鐘、菜單外的全部控件,省略對象為窗體。假如對象是窗體,則“左邊距離”和“上邊距離”以屏幕左邊界和上邊界為準(zhǔn),否則以窗體的左邊界和上邊界為準(zhǔn),寬度和高度表示可變更其大小。49例2-10

PrivateSubForm_Load()Image1.Top=0Image1.Left=0Image1.Picture=LoadPicture(App.Path+"\1.gif")EndSubPrivateSubImage1_Click()Image1.Move(Form1.Left+Form1.Width)\2-Form1.Left,(Form1.Top+Form1.Height)\2-Form1.Top,Image1.Width\2,Image1.Height\2EndSub50七、應(yīng)用舉例例2-11:依據(jù)房產(chǎn)商供應(yīng)的信息,購房者選擇房型、面積、單價(jià)、按揭期等信息,編寫計(jì)算每月支付貸款的程序。程序由兩個(gè)窗體構(gòu)成,第一個(gè)窗體輸入或選擇買房的數(shù)據(jù),該窗體由列表框選擇數(shù)據(jù)、標(biāo)簽顯示數(shù)據(jù)、文本框輸入數(shù)據(jù);其次個(gè)窗體顯示房屋的平面圖,該窗體僅有一個(gè)圖形控件。512.5工程的管理一、工程的組成工程文件包含了一個(gè)應(yīng)用程序的全部文件:工程文件(.vbp):工程組文件(.vbg):窗體文件(.frm):控件及屬性、事務(wù)過程和自定義過程 窗體的二進(jìn)制數(shù)據(jù)文件(.frx),自動(dòng)產(chǎn)生同名.frx文件。標(biāo)準(zhǔn)模塊文件(.bas)類模塊文件(.cls) 資源文件(.res) ActiveX控件的文件(.ocx)二、創(chuàng)建、打開和保存工程:“文件”菜單52三.添加、刪除和保存文件:可利用“文件”和“工程”菜單

1、窗體名和窗體文件名概念窗體名:窗體的Name屬性,在代碼中用來引用該窗體,同一工程不能有相同的窗體名;窗體文件名:窗體存放在磁盤上的文件名,該文件包含了該窗體的全部控件屬性和代碼,同一文件夾不能有相同的文件名。2、在工程中添加現(xiàn)存的窗體時(shí),只是對該窗體文件的引用納入工程。因此,假如更改窗體并保存它,會(huì)影響包含此窗體文件的任何工程。3、在工程中刪除窗體時(shí),僅將此窗體從工程里刪除掉,但是窗體文件仍存在于磁盤上。但是,假如在VB之外刪除一個(gè)窗體文件,VB不能更新此工程文件,當(dāng)打開此工程時(shí),將顯示一個(gè)文件丟失的錯(cuò)誤信息。

窗體文件名窗體名53四、環(huán)境設(shè)置“工具”——”選項(xiàng)”1.”編輯器”選項(xiàng)卡2、“通用”選項(xiàng)卡4、對窗體文件改名方法:在“工程資源管理器”中--右擊窗體文件--“Form另存為…”

5、保存窗體文件:若只想保存窗體文件而不保存工程文件,可干脆在“工程資源管理器”中選定,然后執(zhí)行“文件”菜單中的相應(yīng)選項(xiàng)。542.6制作成安裝盤2.6.1運(yùn)用打包和綻開向?qū)Т虬喊压こ讨杏玫降母鞣N類型的文件(包括工程自身的文件、必要的系統(tǒng)文件和安裝主文件)進(jìn)行打包壓縮后,存放到特定的書目下。綻開:把打包的文件綻開到用戶可以攜帶的用來安裝的軟盤、光盤等介質(zhì)。管理腳本:記錄打包或綻開過程中的設(shè)置,便于以后做同樣的操作。系統(tǒng)的壓縮文件以.cab擴(kuò)展名保存。2.6.2檢測安裝程序55第三章VB語言基礎(chǔ)

3.1編碼基礎(chǔ)

3.2數(shù)據(jù)類型

3.3常量與變量

3.4運(yùn)算符和表達(dá)式

3.5基本語句

3.6數(shù)組

3.7過程

3.8常用算法舉例

3.9程序調(diào)試

563.1編碼基礎(chǔ)一、書寫要求:1.VB代碼不區(qū)分字母的大小寫系統(tǒng)關(guān)鍵字自動(dòng)轉(zhuǎn)換每個(gè)單詞的首字母大寫;用戶自定義行以第一次為準(zhǔn)2.語句書寫自由一行可書寫幾個(gè)語句,之間用冒號分隔;一行最多255個(gè)字符;一條語句可分若干行書寫,用續(xù)行符(空格+下劃線)連接3.注釋有利于程序的維護(hù)和調(diào)試Rem或單撇號“‘”以及“編輯”工具欄的“設(shè)置注釋塊”;VB中注釋語句會(huì)自動(dòng)變?yōu)榫G色4.保留行號與標(biāo)號5.其他留意事項(xiàng):保留字與變量之間至少有一空格;字母“l(fā)”與數(shù)字“1”、字母“o”與數(shù)字“0”的運(yùn)用。573.2數(shù)據(jù)類型

一、標(biāo)準(zhǔn)數(shù)據(jù)類型:

581、數(shù)值數(shù)據(jù)類型:IntegerLongSingleDoubleCurrencyByte(1)Integer和Long型用于保存整數(shù)(2)Single和Double型用于保存浮點(diǎn)實(shí)數(shù)(3)Currency型是定點(diǎn)實(shí)數(shù)或整數(shù)(4)Byte字節(jié)型用于存儲(chǔ)二進(jìn)制數(shù)592、日期(Date)數(shù)據(jù)類型按8字節(jié)浮點(diǎn)數(shù)來存儲(chǔ)。日期范圍:公元100年1月1日~9999年12月31日時(shí)間范圍:0:00:00~23:59:59表示方法:一般日期形式前后加#來表示另一種是以數(shù)字序列表示日期和時(shí)間(1)一般日期表示法:運(yùn)用成對#將任何可被認(rèn)作日期和時(shí)間的字符括起來。公元年份默認(rèn)19年,因而填入1995年與填入95年效果一樣,但年的部分輸入0~29間的數(shù)字,則VB自動(dòng)轉(zhuǎn)換為20年。例如:#5/25/24#與#5/25/2024#等價(jià)。而#5/25/95#,#May25,95#,#May-25-95#,#25May1995#,#1995May25#等均為合法日期格式。60(2)數(shù)字序列表示法數(shù)字序列是雙精度的浮點(diǎn)數(shù),由VB自動(dòng)說明。序號的整數(shù)部分表示日期,小數(shù)部分表示時(shí)間。在VB中,基準(zhǔn)日期為公元1899年12月30日,這一天的整數(shù)部分為0,比基準(zhǔn)早的日期序號為負(fù)數(shù),比其晚的日期序號為正數(shù),其取值范圍為657434(公元100年1月1日)到2958465(公元9999年12月31日)。小數(shù)部分:以某個(gè)時(shí)間點(diǎn)占一天24小時(shí)的比例表示。如:6:00AM會(huì)以0.25來表示。-2.5表示1899-12-2812:00:005.75表示1900-1-418:00:00366.05表示1900-12-311:12:00367.05表示1901-1-11:12:00-367.05表示1898-12-281:12:00613、邏輯(布爾型)數(shù)據(jù)型:Boolean當(dāng)邏輯型轉(zhuǎn)換成整型數(shù)據(jù)時(shí):true–(-1)false—(0)

當(dāng)其他類型數(shù)據(jù)轉(zhuǎn)換成邏輯數(shù)據(jù)時(shí):非0數(shù)轉(zhuǎn)換為true,0轉(zhuǎn)換為false4、字符串型:String“”

5、對象數(shù)據(jù)類型:Object作為32位(4個(gè)字節(jié))地址來存儲(chǔ)626、變體類型:Variant是全部未定義的變量的缺省數(shù)據(jù)類型,它可以包括標(biāo)準(zhǔn)數(shù)據(jù)類型,還包含四個(gè)特殊的數(shù)據(jù):empty(空)表示未指定確定的數(shù)據(jù)null(無效)表示數(shù)據(jù)不合法Error(出錯(cuò))指出過程中出現(xiàn)了一個(gè)錯(cuò)誤條件Nothing(無指向)表示數(shù)據(jù)還沒有指向一個(gè)具體對象Vartype:檢測變體型變量中保存的數(shù)值類型如:dimtVartype(t)或Vartype(667)63二、自定義類型讓用戶自己定義的數(shù)據(jù)類型,由若干個(gè)標(biāo)準(zhǔn)數(shù)據(jù)類型組成。是一組不同類型變量的集合。相當(dāng)于C語言中的結(jié)構(gòu)類型;Pascal中的記錄類型。1.自定義類型的定義

形式如下:

Type自定義類型名 元素名[(下標(biāo))]As類型名

… [元素名[(下標(biāo))]As類型名]

EndType其中:元素名:表示自定義類型中的一個(gè)成員下標(biāo):表示數(shù)組類型名:為標(biāo)準(zhǔn)類型64例如,以下定義了一個(gè)有關(guān)學(xué)生信息的自定義類型:TypeStudType NoAsInteger '學(xué)號 NameAsString*20 '姓名 SexAsString*1 '性別 Mark(1To4)AsSingle '4門課程成果 TotalAsSingle '總分EndType留意:(1)自定義類型一般在標(biāo)準(zhǔn)模塊(.BAS)中定義,默認(rèn)是Public;在窗體必需是Private。(2)自定義類型中的元素類型可以是字符串,但應(yīng)是定長字符串。(3)不要將自定義類型名和該類型的變量名混淆,前者表示了猶如Integer、Single等的類型名,后者VB依據(jù)變量的類型支配所需的內(nèi)存空間,存貯數(shù)據(jù)。(4)自定義類型一般和數(shù)組結(jié)合運(yùn)用,簡化程序的編寫。652.自定義類型變量的聲明和運(yùn)用(1)聲明形式:Dim變量名As自定義類型名例DimStudentAsStudType(2)引用:形式:變量名.元素名例表示Student變量中的姓名,第4門課程的成果,則表示如下: Student.Name,Student.Mark(4)(3)賦值:如:Student.Name=“王剛”Student.Mark(4)=98663.3常量與變量一.常量和變量的命名規(guī)則常量:在程序運(yùn)行中其值不行以變更。變量:在程序運(yùn)行中其存儲(chǔ)的值可以變更。命名規(guī)則:1.以字母或漢字開頭,后可跟漢字、字母、數(shù)字或下劃線組合,長度小于等于255個(gè)字符;2.不能運(yùn)用VB中的關(guān)鍵字;3.VB中不區(qū)分變量名的大小寫.4.為了增加程序的可讀性,可在變量名前加一個(gè)縮寫的前綴來表明該變量的數(shù)據(jù)類型。如:strMystring、intCount67VB6.0的關(guān)鍵字有:AsBinaryByRefByValDateElseEmptyErrorFalseForFriendGetInputIsLenLetLockMeMidNewNextNothingNullOnOptionOptionalParamArrayPrintPrivatePropertyPublicResumeSeekSetStaticStepStringThenTimeToTrueWithEvents68二.常量(一)干脆常量有數(shù)值常量(整數(shù)、長整數(shù)、定點(diǎn)數(shù)和浮點(diǎn)數(shù))、字符串常量、布爾常量、日期常量(二)符號常量1.系統(tǒng)供應(yīng)的常量系統(tǒng)定義常量位于對象庫中,可通過“對象閱讀器”查看.例:vbNormal、vbMinimized、vbMaximized、vbblue等form1.windowsstate=vbmaximized‘將窗口極大化form1.windowsstate=2‘與上面的語句等價(jià)的692.用戶聲明常量形式:Const常量名[AS類型]=表達(dá)式省略[AS類型],常量的類型由表達(dá)式值的類型確定,也可在常量后加類型符。表達(dá)式:可以是數(shù)值常數(shù)、字符串常數(shù)以及由運(yùn)算符組成的表達(dá)式。對于數(shù)值常數(shù)除了可用十進(jìn)制表示外,還可以運(yùn)用十六進(jìn)制數(shù)(數(shù)值前加&H)和八進(jìn)制數(shù)(數(shù)值前加&O)。 為使與變量名區(qū)分,一般常量名運(yùn)用大寫字母例ConstMAX=100ConstPI=3.14159ConstPI#=3.14159ConstMAXasinteger=&O14470三.變量1.用Dim語句顯式聲明變量形式:Dim變量名[AS類型]Dim變量名類型符例DimiCountAsinteger,sAllsumAssingle等價(jià)于DimiCount%,sAllsum!對于字符串變量,依據(jù)其長度是否固定,有兩種方法:Dim字符串變量名AsStringDim字符串變量名AsString*字符數(shù)2.隱式聲明未進(jìn)行上述的聲明而干脆運(yùn)用,其類型為Variant類型。建議不運(yùn)用。留意:在通用聲明處加OptionExplicit語句可強(qiáng)制顯式聲明變量。713.4運(yùn)算符和表達(dá)式一.運(yùn)算符

1.算術(shù)運(yùn)算符例:5+10mod10\9/3+2^2結(jié)果:10取ia=3722.字符串運(yùn)算符:&、+“&”和“+”,都是將兩個(gè)字符串拼接起來。"123"+"456"結(jié)果"123456""123"&"456"結(jié)果"123456"區(qū)分:若+的兩旁的操作數(shù)均為數(shù)值型則進(jìn)行算術(shù)加;若一個(gè)為數(shù)字字符型,另一個(gè)為數(shù)值型,則自動(dòng)將數(shù)字字符轉(zhuǎn)換為數(shù)值,然后進(jìn)行算術(shù)加;若一個(gè)為非數(shù)字字符型,另一個(gè)為數(shù)值型,則出錯(cuò)。&則不管什么類型,強(qiáng)制轉(zhuǎn)換為字符型進(jìn)行拼接。例如:"abcdef"&12345'結(jié)果為"abcdef12345""abcdef"+12345'出錯(cuò)"123"&456'結(jié)果為"123456""123"+456'結(jié)果為57912000+“123”&100‘結(jié)果為“12123100”Val(left$(“12345678”,4)+mid$(“12345678”,4,2))‘結(jié)果為123445留意:(1)"123"+True'結(jié)果為122True轉(zhuǎn)換為數(shù)值-1,F(xiàn)alse轉(zhuǎn)換為數(shù)值0(2)運(yùn)用“&”時(shí),最好在兩側(cè)的操作數(shù)間加入一個(gè)空格。因?yàn)長ong類型變量的類型符以及八進(jìn)制、十六進(jìn)制數(shù)值表示法的起始字符也為“&”。733.關(guān)系運(yùn)算符

將兩個(gè)操作數(shù)進(jìn)行大小比較,結(jié)果為邏輯量。

(1)關(guān)系運(yùn)算符的優(yōu)先級相同;(2)“Like”運(yùn)算符與通配符:“?”、“*”、“#”、“[字符列表]”、“[!字符列表]”結(jié)合運(yùn)用,常用于模糊查詢。其中“?”表示任何單一字符,“*”表示零個(gè)或多個(gè)字符,“#”表示任何一個(gè)數(shù)字(0~9),[字符列表]表示字符列表中的任何單一字符,[!字符列表]表示不在字符列表中的任何單一字符。例如,找姓名變量中姓張的學(xué)生,則表達(dá)式為:姓名Like“張*”,又如找沒有張字的學(xué)生,表達(dá)式為:姓名Like“[!張]”744.邏輯運(yùn)算符說明:1、Not:進(jìn)行取反運(yùn)算;2、And:操作數(shù)均為真時(shí),結(jié)果才為真;3、Or:操作數(shù)中有一個(gè)為真時(shí),結(jié)果為真;4、Xor:操作數(shù)相反時(shí),結(jié)果才為真;5、Eqv:操作數(shù)相同時(shí),結(jié)果才為真;6、Imp:第1個(gè)操作數(shù)為真,第2個(gè)為假時(shí),結(jié)果才為假,其余結(jié)果均為真。7、優(yōu)先級:Not>And>OR>Xor>Eqv>Imp75假如邏輯運(yùn)算符對數(shù)值進(jìn)行運(yùn)算,則以數(shù)字的二進(jìn)制值逐位進(jìn)行邏輯運(yùn)算。(1)And運(yùn)算符常用于屏蔽某些位。(2)Or運(yùn)算符常用于把某些位置1。(3)連續(xù)兩次進(jìn)行Xor運(yùn)算,可復(fù)原原值。例:10and710or776二.表達(dá)式1.表達(dá)式組成變量、常量、函數(shù)、運(yùn)算符和圓括號2.書寫規(guī)則(1)運(yùn)算符不能相鄰。例a+-b是錯(cuò)誤的。(2)乘號不能省略。例x乘以y應(yīng)寫成:x*y(3)括號必需成對出現(xiàn),均運(yùn)用圓括號。(4)表達(dá)式從左到右在同一基準(zhǔn)上書寫,無凹凸、大小。3.不同數(shù)據(jù)類型的轉(zhuǎn)換運(yùn)算結(jié)果的數(shù)據(jù)類型向精度高的數(shù)據(jù)類型靠.Integer<Long<Single<Double<Currency4.優(yōu)先級算術(shù)運(yùn)算符>字符運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算77表達(dá)式書寫舉例sin(45*3.14/180)+(exp(10)+log(10))/sqr(x+y+1)a*b*c*d/e/f/g或a*b*c*d/(e*f*g)78例:用人單位聘請秘書:年齡小于40歲的女性,學(xué)歷??苹虮究颇挲g<40性別=“女”(學(xué)歷=“??啤睂W(xué)歷=“本科”)AndAndOr比a小,比b大用Ora小數(shù)b大數(shù)a小數(shù)b大數(shù)比a大,比b小用And例:表示算術(shù)表達(dá)式:正確的VB表達(dá)式:3<=xAndx<=7

錯(cuò)誤的VB表達(dá)式:3<=x<=7或3<=xOrx<=7考慮:若分別寫成:年齡<40And性別=“女”And(學(xué)歷=“??啤盇nd學(xué)歷=“本科”)年齡<40Or性別=“女”O(jiān)r(學(xué)歷=“??啤監(jiān)r學(xué)歷=“本科”)791.數(shù)學(xué)函數(shù):Rnd函數(shù)返回0和1(包括0但不包括1)之間的雙精度隨機(jī)數(shù).例:產(chǎn)生1~100的隨機(jī)整數(shù):Int(Rnd*100)+1產(chǎn)生100~3000的隨機(jī)整數(shù):Int(Rnd*2901)+100隨機(jī)產(chǎn)生“A”~“Z”的字符:Chr(Int(Rnd*26+65))留意:(1)產(chǎn)生確定范圍內(nèi)的隨機(jī)整數(shù)通常表示為:Int(Rnd*范圍)+基數(shù)或Int(Rnd*范圍+基數(shù))(2)每次運(yùn)行時(shí),要產(chǎn)生不同序列的隨機(jī)數(shù),執(zhí)行Randomize語句。Randomize[number]注:函數(shù)名后有$符號,表示函數(shù)返回值為字符串。三、常用內(nèi)部函數(shù)802.轉(zhuǎn)換函數(shù)

Chr(66)"B" Asc("B")66Asc(Chr(99))99Chr(Asc("K"))"K"Ucase$("abcdefg")"ABCDEFG“3.日期函數(shù):Date返回系統(tǒng)日期Time返回系統(tǒng)時(shí)間Now返回系統(tǒng)日期和時(shí)間Year返回年份(1)DateAdd增減日期函數(shù)(2)DateDiff間隔日期函數(shù)三、常用內(nèi)部函數(shù)814.字符串編碼及操作函數(shù)(1)字符串編碼Windows系統(tǒng)對字符接受了DBCS編碼,中文2字節(jié),西文1字節(jié)VB中字符Unicode編碼,任何字符2字節(jié).Len(“中國good”)為6LenB(“中國good”)為12StrConv()進(jìn)行DBCS與Unicode之間轉(zhuǎn)換.(2)字符串函數(shù)Mid$("ABCDEFG",2,3)"BCD"InStr(2,“EFABCDEFG","EF") 7注:函數(shù)的自變量中有M,表示M=0區(qū)分大小寫,M=1不區(qū)分,省略M區(qū)分大小寫。825.格式輸出函數(shù)Format()

功能:Format()可以使數(shù)值、日期或字符串按指定的格式輸出。格式:Format(表達(dá)式[,格式字符串])其中,表達(dá)式:為要格式化的數(shù)值、日期和字符串類型表達(dá)式。格式字符串:表示按其指定的格式輸出表達(dá)式的值。格式字符串有三類:(1)數(shù)值格式化:將數(shù)值表達(dá)式的值按“格式字符串”指定的格式輸出。(2)日期和時(shí)間格式化(3)字符串格式化格式字符串要加雙引號83846.Shell函數(shù) 功能:Shell函數(shù)負(fù)責(zé)執(zhí)行一個(gè)可執(zhí)行文件(擴(kuò)展名為.exe、、.bat),返回一個(gè)Variant,假如成功,代表這個(gè)程序的進(jìn)程ID,若不成功,則會(huì)返回0。形式:Shell(叮囑字符串[,窗口類型])缺省窗口類型最小化為圖標(biāo)。

85X=shell(“c:\windows\pbrush.exe”,1)Y=shell(“c:\windows\write.exe”,1)Z=shell(“C:\ProgramFiles\MicrosoftOffice\Office\winword.exe”,1)提示:假如不知道應(yīng)用程序的路徑名,可用Start叮囑啟動(dòng)程序i=Shell(start&"calc.exe");i=Shell(start&“vb6.exe“)舉例:i=Shell("c:\windows\calc.exe",1)j=Shell("c:\command",1)863.5基本語句3.5.1賦值語句形式:[LET]變量名=表達(dá)式作用:將表達(dá)式的值賦值給變量名.一般用于給變量賦值或?qū)丶O(shè)定屬性值.例:sRate!=0.1Text1.Text="歡迎運(yùn)用VisualBasic6.0”留意:1、當(dāng)表達(dá)式的類型與變量的類型不一樣時(shí),強(qiáng)制轉(zhuǎn)換成左邊的精度。如:iA%=10/3iA中的結(jié)果為32、雖然賦值號與關(guān)系運(yùn)算符等于號都用“=”表示,VB系統(tǒng)會(huì)依據(jù)所處的位置自動(dòng)推斷是何種意義的符號。3、賦值號左邊只能是變量,不能是常量或表達(dá)式。4、不能在一句賦值語句中,同時(shí)給多個(gè)變量賦值。873.5.2人機(jī)交互函數(shù)和過程VB與用戶之間的干脆交互是通過InputBox()函數(shù)、MsgBox()函數(shù)和MsgBox過程進(jìn)行的。1.InputBox函數(shù)InputBox(提示[,標(biāo)題][,缺省][,x坐標(biāo)位置][,y坐標(biāo)位置])其中:提示提示信息,標(biāo)題對話框標(biāo)題,缺省輸入?yún)^(qū)缺省值函數(shù)返回字符類型.例要在屏幕上顯示圖示的對話框:88相應(yīng)的語句如下:DimstrNameAsString*40strName=InputBox(“請輸入你的姓名”+vbCrLf+“然后單擊確定”,“輸入框”)也可以運(yùn)用如下語句:DimstrNameAsString*40,strS1AsString*40strS1=“請輸入你的姓名”+Chr(13)+Chr(10)+“然后單擊確定”strName=InputBox(strS1,“輸入框”,,100,100)當(dāng)鍵盤輸入“王曉明”后,變量strName獲得鍵盤輸入的值.892.MsgBox函數(shù)和MsgBox過程

函數(shù)形式:變量[%]=MsgBox(提示[,按鈕][,標(biāo)題])過程形式:MsgBox提示[,按鈕][,標(biāo)題]

按鈕值如下:函數(shù)返回所選按鈕整數(shù)值:90例3.2編一帳號和密碼檢驗(yàn)程序。要求:帳號不超過6位數(shù)字,有錯(cuò),清除原內(nèi)容再輸入.密碼輸入時(shí)在屏幕上以“*”代替;若密碼錯(cuò),顯示有關(guān)信息,選擇“重試”按鈕,清除原內(nèi)容再輸入,選擇“取消”按鈕,停止運(yùn)行。分析:帳號6位,MaxLength為6,LostFocus推斷數(shù)字IsNumeric函數(shù)密碼PassWordChar為“*”,MsgBox函數(shù)設(shè)置密碼錯(cuò)對話框.913.5.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=xx=yy=tEndIf

或Ifx<yThent=x:x=y:y=t922.If…Then…Else語句(雙分支結(jié)構(gòu))(1)If<表達(dá)式>Then<語句塊1>Else<語句塊2>EndIf(2)If<表達(dá)式>Then<語句1>Else<語句2>

計(jì)算分段函數(shù)單分支結(jié)構(gòu)實(shí)現(xiàn):[ifx=0then]y=cos(x)-x^3+3*xIfx<>0Theny=sin(x)+sqr(x*x+1)

雙分支結(jié)構(gòu)實(shí)現(xiàn):

Ifx<>0Theny=sin(x)+sqr(x*x+1)Elsey=cos(x)-x^3+3*xEndIf933.If…Then…ElseIf語句(多分支結(jié)構(gòu))

形式:

If<表達(dá)式1>Then <語句塊1>ElseIf<表達(dá)式2>Then <語句塊2> … [Else語句塊n+1]EndIf94例已知變量strC中存放了一個(gè)字符,推斷該字符是字母字符、數(shù)字字符還是其他字符。用多分支結(jié)構(gòu)實(shí)現(xiàn):IfUcase(strC)>="A"AndUcase(strC)<="Z"Then PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是數(shù)字字符"Else PrintstrC+"其他字符"EndIf不管有幾個(gè)分支,依次推斷,當(dāng)某條件滿足,執(zhí)行相應(yīng)的語句,其余分支不再執(zhí)行;若條件都不滿足,且有Else子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。.ElseIf不能寫成ElseIf。95例已知百分制成果mark,顯示對應(yīng)的五級制成果哪些正確,哪些錯(cuò)誤?正確:方法一、二錯(cuò)誤:方法三964.If語句的嵌套If語句的嵌套是指If或Else后面的語句塊中又包含If語句。形式如下:

If<表達(dá)式1>Then

If<表達(dá)式11>Then…EndIf…EndIf

例已知x,y,z三個(gè)數(shù),使得x>y>z用一個(gè)IF語句和一個(gè)嵌套的IF語句實(shí)現(xiàn)Ifx<yThent=x:x=y:y=t

Ify<zThent=y:y=z:z=t

Ifx<yThent=x:x=y:y=tEndIf

EndIfIf語句的嵌套留意事項(xiàng):書寫鋸齒型;EndIf與它前面最近的if配對。97<表達(dá)式列表>:與<變量或表達(dá)式>的類型必需相同,可以是下面四種形式之一:表達(dá)式例:"A"一組枚舉表達(dá)式(用逗號分隔)2,4,6,8表達(dá)式1To表達(dá)式2 60To100 Is關(guān)系運(yùn)算符表達(dá)式 Is<605.SelectCase語句(狀況語句)形式: SelectCase變量或表達(dá)式 Case表達(dá)式列表1 語句塊1 Case表達(dá)式列表2 語句塊2 … [CaseElse 語句塊n+1] EndSelect變量:只能含有一個(gè)表達(dá)式:數(shù)值型或字符串98留意:關(guān)鍵字Is定義條件時(shí),只能是簡潔的條件,不能用邏輯運(yùn)算符將兩個(gè)或多個(gè)簡潔的條件組合在一起。例如“CaseIs>20andIs<40”是不合法的。而“CaseIs<2,12,13,15,Is>20”是正確的。99例變量strC中存放了一個(gè)字符,推斷該字符類型。用多分支結(jié)構(gòu)實(shí)現(xiàn):IfUcase(strC)>="A"AndUcase(strC)<="Z"Then PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是數(shù)字字符"Else PrintstrC+"其他字符"EndIf用SelectCase語句實(shí)現(xiàn):SelectCasestrC Case"a"To"z","A"To"Z" PrintstrC+"是字母字符" Case"0"To"9" PrintstrC+"是數(shù)字字符" CaseElse PrintstrC+"其他字符"EndSelect100例:已知坐標(biāo)點(diǎn)(x,y),推斷其落在哪個(gè)象限。哪個(gè)能實(shí)現(xiàn),哪個(gè)不能實(shí)現(xiàn)?方法一 Ifx>0Andy>0ThenPrint"在第一象限" ElseIfx<0Andy>0ThenPrint"在其次象限" ElseIfx<0Andy<0ThenPrint"在第三象限" ElseIfx>0Andy<0ThenPrint"在第四象限" EndIf 方法二SelectCasex,yCasex>0Andy>0 Print"在第一象限"Casex<0Andy>0 Print"在其次象限"Casex<0Andy<0 Print"在第三象限"Casex>0Andy<0 Print"在第四象限"EndSelect方法二代碼錯(cuò)誤:1.SelectCase后不能出現(xiàn)多個(gè)變量;2.Case后不能出現(xiàn)變量及有關(guān)運(yùn)算符。比較:SelectCase結(jié)構(gòu)清晰,但運(yùn)用受到限制,因此,凡是對多個(gè)變量的條件推斷只能用If的多分支結(jié)構(gòu)來實(shí)現(xiàn)。101例由計(jì)算機(jī)來當(dāng)一年級的算術(shù)老師,要求給出一系列的1~10的操作數(shù)和運(yùn)算符,學(xué)生輸入該題的答案,計(jì)算機(jī)依據(jù)學(xué)生的答案推斷正確與否,當(dāng)結(jié)束時(shí)給出成果。分析:產(chǎn)生1~10操作數(shù),可通過Int(10*Rnd+1)實(shí)現(xiàn)

設(shè)置的控件名Label1 Text1

Picture1 Command11026.條件函數(shù)

(1)IIf函數(shù)形式是:

IIf(表達(dá)式,當(dāng)表達(dá)式為True時(shí)的值,當(dāng)表達(dá)式為False時(shí)的值)例如,求x,y中大的數(shù),放入Tmax變量中,語句如下:Tmax=IIf(x>y,x,y)

(2)Switch函數(shù)形式是:Switch(條件表達(dá)式1,條件表達(dá)式1為True時(shí)的值[,條件表達(dá)式2,條件表達(dá)式2為True時(shí)的值……])103(3)Choose函數(shù)形式是:Choose(數(shù)字類型變量,值為1的返回值,值為2的返回值……)例如:Nop是1-4的值,轉(zhuǎn)換成+、-、×、÷運(yùn)算符Op=Choose(Nop,“+","-","×","÷")當(dāng)值為1,返回字符串“+”,然后放入Op變量中,值為2,返回字符串“-”,依次類推;當(dāng)Nop是1-4的非整數(shù),系統(tǒng)自動(dòng)取Nop的整數(shù)方法在推斷;若Nop不在1-4之間,函數(shù)返回Null值。1041.在選擇結(jié)構(gòu)中缺少配對的結(jié)束語句對多行式的If塊語句中,應(yīng)有配對的EndIf語句結(jié)束。2.多邊選擇ElseIf關(guān)鍵字的書寫和條件表達(dá)式的表示ElseIf不要寫成ElseIf;多個(gè)條件表達(dá)式次序問題3.SelectCase語句的運(yùn)用SelectCase后不能出現(xiàn)多個(gè)變量;Case子句后不能出現(xiàn)變量本節(jié)常見錯(cuò)誤1053.5.4循環(huán)結(jié)構(gòu)1.For循環(huán)語句(一般用于循環(huán)次數(shù)已知)形式

For循環(huán)變量=初值to終值[Step步長] 語句塊 [ExitFor] 語句塊Next循環(huán)變量

循環(huán)變量<=終值

語句塊

ExitFor

語句塊

循環(huán)變量加步長

T

F

循環(huán)變量得初值

循環(huán)體例計(jì)算1~100的奇數(shù)和Dimi%,s%等價(jià)于:Dimi%,s%s=0 s=0:i=1Fori=1To100step2 re:Ifi<=100Thens=s+i s=s+iNexti i=i+2 GoTore EndIf106>0初值<終值=1時(shí),可省略<0初值>終值=0死循環(huán)循環(huán)次數(shù)要留意:出了循環(huán),循環(huán)限制變量值的問題。例程序段:Fori=2To13Step3循環(huán)執(zhí)行次數(shù)Printi,輸出i的值分別為:Nexti25811Print:Print“I=“,i出了循環(huán)輸出為:I=14在循環(huán)體內(nèi)對循環(huán)限制變量可多次引用;但最好不要對其賦值,否則影響原來的循環(huán)限制規(guī)律。步長107例變更循環(huán)限制變量對循環(huán)的影響。PrivateSubCommand1_Click()j=0Fori=1To20Step2i=i+3j=j+1Print"第";j;"次循環(huán)i=";iNextiPrint"退出循環(huán)后i=";iEndSub正常狀況:i=1,3,5,7,9,11,13,15,17,19現(xiàn)在:i=4,9,14,19例

輸出可打印的ASCII碼字符與它的編碼值。

1082.Do…Loop循環(huán)語句(用于限制循環(huán)次數(shù)未知)形式1:Do{While|Until}<條件>語句塊[ExitDo語句塊]Loop形式2:

Do 語句塊 [ExitDo 語句塊] Loop{While|Until}<條件>109例我國有13億人口,按人口年增長0.8%計(jì)算,多少年后我國人口超過26億。分析:解此問題兩種方法,可依據(jù)公式:26=13*(1+0.008)n干脆利用標(biāo)準(zhǔn)對數(shù)函數(shù)求得;也可利用循環(huán)求得,程序如下:PrivateSubCommand1_Click()x=13n=0DoWhilex<26x=x*1.008n=n+1LoopPrintn,xEndSub110例用輾轉(zhuǎn)相除法求兩自然數(shù)m,n的最大公約數(shù)和最小公倍數(shù)。分析:求最大公約數(shù)的算法思想:(1)對于已知兩數(shù)m,n,使得m>n;(2)m除以n得余數(shù)r;(3)若r=0,則n為最大公約數(shù)結(jié)束;否則執(zhí)行(4);(4)mn,nr,再重復(fù)執(zhí)行(2)。

例求m=14,n=6的最大公約數(shù).

Ifm<nThent=m:m=n:n=tr=mmodnDoWhile(r<>0)m=nn=rr=mmodnLoopPrint"最大公約數(shù)=",nmnr1462

620輾轉(zhuǎn)相減法

m=m-nm>nn=n-mn>m

m、n為公約數(shù)m=nDoWhilem<>nmn

Ifm>nThen146m=m–n86Else26n=n–m24EndIf22Loop1113、While…Wend循環(huán):(類似于DoWhile…Loop)格式為:While<表達(dá)式>

溫馨提示

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

評論

0/150

提交評論