![VB程序設(shè)計(jì)課件(全套).ppt_第1頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/a654ce89-130b-4010-acb4-49fc9525c215/a654ce89-130b-4010-acb4-49fc9525c2151.gif)
![VB程序設(shè)計(jì)課件(全套).ppt_第2頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/a654ce89-130b-4010-acb4-49fc9525c215/a654ce89-130b-4010-acb4-49fc9525c2152.gif)
![VB程序設(shè)計(jì)課件(全套).ppt_第3頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/a654ce89-130b-4010-acb4-49fc9525c215/a654ce89-130b-4010-acb4-49fc9525c2153.gif)
![VB程序設(shè)計(jì)課件(全套).ppt_第4頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/a654ce89-130b-4010-acb4-49fc9525c215/a654ce89-130b-4010-acb4-49fc9525c2154.gif)
![VB程序設(shè)計(jì)課件(全套).ppt_第5頁(yè)](http://file1.renrendoc.com/fileroot_temp2/2020-3/23/a654ce89-130b-4010-acb4-49fc9525c215/a654ce89-130b-4010-acb4-49fc9525c2155.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1,Visual Basic 程序設(shè)計(jì)簡(jiǎn)明教程 第一章 Visual Basic程序設(shè)計(jì)概述(2) 第二章 VB簡(jiǎn)單的程序設(shè)計(jì)(6) 第三章 VB語(yǔ)言基礎(chǔ)(4) 第四章 基本的控制結(jié)構(gòu)(8) 第五章 數(shù)組(5) 第六章 過(guò)程(4) 第七章 常用控件(2) 第八章 界面設(shè)計(jì)(2) 第九章 文件(2) 第十章 圖形(1) 第十一章 數(shù)據(jù)庫(kù)技術(shù)(自學(xué)) 第十二章 系統(tǒng)開(kāi)發(fā)案例 (自學(xué)),2,第一章 Visual Basic概述,1.1 程序設(shè)計(jì)基本概念 1.2 VB的發(fā)展和特點(diǎn) 1.3 VB的安裝和啟動(dòng) 1.4 VB集成開(kāi)發(fā)環(huán)境,本書(shū)目錄,3,1.1程序設(shè)計(jì)基本概念,1.1.1程序和程序設(shè)計(jì),下一頁(yè)
2、,1.程序 人們想用計(jì)算機(jī)解決一個(gè)問(wèn)題,必須事先設(shè)計(jì)好計(jì)算機(jī)處理信息的步驟,把這些步驟用計(jì)算機(jī)能夠識(shí)別的指令編寫(xiě)出來(lái)并送入計(jì)算機(jī)執(zhí)行,計(jì)算機(jī)才能按照人的意圖完成指定的工作。我們把計(jì)算機(jī)能執(zhí)行的指令序列稱為程序,而編寫(xiě)程序的過(guò)程稱為程序設(shè)計(jì)。 例如,下面是某一個(gè)學(xué)校頒獎(jiǎng)大會(huì)的程序: 宣布大會(huì)開(kāi)始 介紹出席大會(huì)的領(lǐng)導(dǎo) 校長(zhǎng)講話 宣布獲獎(jiǎng)名單 頒獎(jiǎng) 獲獎(jiǎng)代表發(fā)言 宣布大會(huì)結(jié)束,程序主要用于描述完成某項(xiàng)功能所涉及的對(duì)象和動(dòng)作規(guī)則 領(lǐng)導(dǎo)、校長(zhǎng)、名單、代表、話、獎(jiǎng)等都是對(duì)象; 而宣布、介紹、講、頒等都是動(dòng)作,本章目錄,上一頁(yè),4,上一頁(yè),下一頁(yè),Visual Basic編寫(xiě)的程序,顯示教齡30年的教職工姓
3、名 Sub Form_Click() Open zg.dat For Input As #1 Do While Not EOF(1) Input #1, 姓名, 部門(mén), 教齡 If 教齡 = 30 Then Print 姓名, 部門(mén) Loop Close #1 End Sub,本章目錄,5,上一頁(yè),下一頁(yè),1.1.2程序設(shè)計(jì)語(yǔ)言,人與計(jì)算機(jī)交流使用的是“程序設(shè)計(jì)語(yǔ)言”。同人類語(yǔ)言一樣,程序設(shè)計(jì)語(yǔ)言也是由字、詞和語(yǔ)法規(guī)則構(gòu)成的一個(gè)系統(tǒng)。 程序設(shè)計(jì)語(yǔ)言發(fā)展的過(guò)程,分為三類: 1.機(jī)器語(yǔ)言 2.匯編語(yǔ)言 3.高級(jí)語(yǔ)言,本章目錄,6,要介紹Visual Basic,不能不提到BASIC語(yǔ)言。BASIC
4、是英文Beginners All-purpose Symbolic Instruction Code(初學(xué)者通用符號(hào)指令代碼)的縮寫(xiě),它是專門(mén)為初學(xué)者設(shè)計(jì)的高級(jí)語(yǔ)言。,1.2 Visual Basic的發(fā)展和特點(diǎn),7,Visual Basic是Microsoft公司于1991年推出的基于窗口的可視化程序設(shè)計(jì)語(yǔ)言?!癡isual”是“可視化的”、“形象化的”的意思。Visual Basic的語(yǔ)法與BASIC語(yǔ)言的語(yǔ)法基本相同,因此Visual Basic也具有易學(xué)易用的特點(diǎn),此外它還提供了一套可視化設(shè)計(jì)工具,大大簡(jiǎn)化了Windows程序界面的設(shè)計(jì)工作,同時(shí)其編程系統(tǒng)采用了面向?qū)ο?、事件?qū)動(dòng)機(jī)制,
5、與傳統(tǒng)BASIC有很大的不同。目前Visual Basic的最新版本是Visual Basic 6.0(簡(jiǎn)稱VB 6.0),其功能十分強(qiáng)大,應(yīng)用Visual Basic可以方便地完成從小的應(yīng)用程序,到大型的數(shù)據(jù)庫(kù)管理系統(tǒng)、多媒體信息處理、功能強(qiáng)大的Internet應(yīng)用程序等各項(xiàng)任務(wù)。,8, 學(xué)習(xí)版:使用一組工具來(lái)創(chuàng)建功能完備的Windows應(yīng)用程序,(它包括所有的內(nèi)部控件連同網(wǎng)絡(luò)、數(shù)據(jù)綁定等控件)適用于初學(xué)者 專業(yè)版:在學(xué)習(xí)版的基礎(chǔ)上添加了一些專門(mén)的工具和一個(gè)報(bào)表編制工具。它主要針對(duì)計(jì)算機(jī)專業(yè)開(kāi)發(fā)人員,(除了具有學(xué)習(xí)版的全部功能外,還包括ActiveX和Internet控件開(kāi)發(fā)工具之類的高級(jí)特
6、性) 企業(yè)版:包括了用于客戶/服務(wù)器應(yīng)用程序的工具。(除了具有專業(yè)版的全部功能外,還包括了一些特殊的工具) VB 6.0安裝完成后,“Microsoft Visual Basic 6.0中文版”菜單選項(xiàng)即加入到“開(kāi)始”菜單的“程序”組中。單擊其中的“Microsoft Visual Basic 6.0中文版”即可啟動(dòng)VB 6.0。,9,上一頁(yè),下一頁(yè),1.2.2 Visual Basic功能特點(diǎn),1 引例 例1.1簡(jiǎn)單的動(dòng)畫(huà)演示。 一行文字“歡迎使用Visual Basic”在具有背景圖案的窗體中上、下移動(dòng)(稍改動(dòng)也可左、右移動(dòng))。 移動(dòng)方法有兩種:?jiǎn)螕羰謩?dòng)按鈕,移動(dòng)50單位;單擊自動(dòng)按鈕,按
7、時(shí)鐘觸發(fā)頻率連續(xù)移動(dòng);當(dāng)內(nèi)容超出窗體范圍時(shí),進(jìn)行反彈。,本章目錄,10,上一頁(yè),下一頁(yè),2 功能特點(diǎn) 1) 具有面向?qū)ο蟮目梢暬O(shè)計(jì)工具 2) 事件驅(qū)動(dòng)的編程機(jī)制 3) 提供了易學(xué)易用的應(yīng)用程序集成開(kāi)發(fā)環(huán)境 4) 結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言 5) 強(qiáng)大的數(shù)據(jù)庫(kù)功能 6) Active技術(shù) 7) 網(wǎng)絡(luò)功能 8) 多個(gè)應(yīng)用程序向?qū)?9) 完備的Help聯(lián)機(jī)幫助功能,本章目錄,VB功能特點(diǎn),11,上一頁(yè),下一頁(yè),1.3 VB的安裝和啟動(dòng),1.3.1 安裝 VB6.0是Windows下的一個(gè)應(yīng)用程序,有學(xué)習(xí)版、專業(yè)版和企業(yè)版三種版本形式。 VB6.0系統(tǒng)可以在一張CD盤(pán)上,也可以在Visual Studio
8、產(chǎn)品的第一張CD盤(pán)上。一般都有一個(gè)VB自動(dòng)安裝程序,也可以執(zhí)行VB6.0子目錄下的Setup.exe,在安裝程序的提示下進(jìn)行,對(duì)初學(xué)者可采用典型安裝方式。 VB6.0聯(lián)機(jī)幫助文件都使用MSDN文檔的幫助方式,聯(lián)機(jī)幫助文件不在VB6.0系統(tǒng)盤(pán)上,而與Visual Studio產(chǎn)品的幫助集合在兩張CD盤(pán)上,在安裝過(guò)程中,系統(tǒng)會(huì)提示插入MSDN盤(pán)。,本章目錄,12,上一頁(yè),下一頁(yè),1.3.2 啟動(dòng),選擇程序菜單中的Microsoft Visual Basic 6.0中文版程序,就可啟動(dòng)VB 6.0。 在VB 6.0窗口列出了VB能夠建立的應(yīng)用程序類型,初學(xué)者只要選擇默認(rèn)標(biāo)準(zhǔn).EXE。 在該窗口中有三
9、個(gè)按鈕: 新建:建立新工程 現(xiàn)存:選擇和打開(kāi)現(xiàn)有的工程 最新:列出最近使用過(guò)的工程 單擊新建按鈕,就可創(chuàng)建該 類型的應(yīng)用程序。,本章目錄,13,上一頁(yè),下一頁(yè),1.4 集成開(kāi)發(fā)環(huán)境,本章目錄,14,上一頁(yè),下一頁(yè),1.主窗口 應(yīng)用程序窗口由標(biāo)題欄、菜單欄和工具欄組成 2.窗體(form)窗口 設(shè)計(jì)vb程序的 界面 3.代碼(code)窗口 編輯窗體、標(biāo)準(zhǔn)模塊中的代碼 4.屬性(properties)窗口 所有窗體或控件的屬性設(shè)置 5.工程資源管理器(project expror)窗口 保存一個(gè)應(yīng)用程序所有的文件 6. 工具箱(toolbox)窗口 顯示各種控件的制作工具,供用戶在窗體上設(shè)計(jì),本
10、章目錄,15,上一頁(yè),下一頁(yè),1.4.1 窗體窗口,窗體是建立VB應(yīng)用程序的主要部分,用戶通過(guò)與窗體上的控制部件交互可得到結(jié)果。每個(gè)窗體窗口必須有一個(gè)惟一的窗體名字,建立窗體時(shí)默認(rèn)名為Form1、Form2 在設(shè)計(jì)狀態(tài)的窗體由網(wǎng)格點(diǎn)構(gòu)成,方便用戶對(duì)控件的定位,網(wǎng)格點(diǎn)間距可以通過(guò)工具|選項(xiàng)命令,在通用標(biāo)簽的窗體設(shè)置網(wǎng)格中輸入寬度和高度來(lái)改變; 運(yùn)行時(shí)可通過(guò)屬性控制窗體的可見(jiàn)性(窗體的網(wǎng)格始終不顯示)。 一個(gè)應(yīng)用程序至少有一個(gè)窗體窗口,用戶可在應(yīng)用程序中擁有多個(gè)窗體窗口。,本章目錄,16,上一頁(yè),下一頁(yè),1.4.2 屬性窗口,所有窗體或控件的屬性,如顏色、字體、大小等,可以通過(guò)屬性窗口來(lái)修改。,本
11、章目錄,17,上一頁(yè),下一頁(yè),1.4.3 工程資源管理器窗口,工程資源管理器窗口保存一個(gè)應(yīng)用程序所有屬性以及組成這個(gè)應(yīng)用程序所有的文件。工程文件的擴(kuò)展名為 .VBP。,本章目錄,18,上一頁(yè),下一頁(yè),1.4.4 代碼窗口,代碼窗口用來(lái)顯示和編輯程序代碼。打開(kāi)代碼窗口方法: (1) 從工程窗口中選擇一個(gè)窗體或標(biāo)準(zhǔn)模塊,并選擇查看代碼按鈕; (2) 從窗體窗口中打開(kāi)代碼窗口,可用鼠標(biāo)雙擊一個(gè)控件或窗體本身; (3) 從視圖菜單中選擇代碼窗口命令。,本章目錄,19,上一頁(yè),下一頁(yè),1.4.5 工具箱窗口,工具箱窗口由21個(gè)被繪制成按鈕形式的圖標(biāo)所構(gòu)成,顯示了各種控件的制作工具,利用這些工具,用戶可以
12、在窗體上設(shè)計(jì)各種控件。其中20個(gè)控件稱為標(biāo)準(zhǔn)控件(注意,指針不是控件,僅用于移動(dòng)窗體和控件,以及調(diào)整它們的大小)。 用戶也可通過(guò)工程|部件命令將來(lái)裝入Windows中注冊(cè)過(guò)的其他控件裝入到工具箱。,本章目錄,20,第二章 簡(jiǎn)單的VB程序設(shè)計(jì),2.1 VB對(duì)象的概念 2.2 建立簡(jiǎn)單的應(yīng)用程序 2.3 窗體和基本控件 2.4 工程的管理及環(huán)境的設(shè)置 2.5 使用幫助系統(tǒng) 2.6 程序調(diào)試,本書(shū)目錄,21,上一頁(yè),下一頁(yè),2.1 Visual Basic對(duì)象的概念,2.1.1 對(duì)象和類 1.對(duì)象 可以把對(duì)象想象成日常生活中的某個(gè)實(shí)在的物體。 例如,一個(gè)人、一輛汽車、一張桌子、一臺(tái)電腦等都是一個(gè)個(gè)對(duì)
13、象。 任何對(duì)象都具有各自的特征(屬性)、行為(方法)。 人有身高、體重、視力、聽(tīng)力等特征;也具有起立、行走、說(shuō)話、使用電腦、踢足球等行為。 在VB中,將反映對(duì)象的屬性和行為封裝在一起,是面向?qū)ο缶幊痰幕驹亍?本章目錄,22,上一頁(yè),下一頁(yè),2.類的概念,類是創(chuàng)建對(duì)象實(shí)例的模板,是同種對(duì)象的集合與抽象,它包含所創(chuàng)建對(duì)象的屬性描述和行為特征的定義。 例如,人類是人的抽象,一個(gè)個(gè)不同的人是人類的實(shí)例。各個(gè)人具有不同的身高、體重等屬性值和不同的行為。 在VB中,工具箱上的可視圖標(biāo)是VB系統(tǒng)設(shè)計(jì)好的標(biāo)準(zhǔn)控件類。通過(guò)將控件類實(shí)例化,可以得到真正的控件對(duì)象,也就是當(dāng)在窗體上畫(huà)一個(gè)控件時(shí),就將類轉(zhuǎn)換為對(duì)象
14、,即創(chuàng)建了一個(gè)控件對(duì)象,簡(jiǎn)稱為控件。,本章目錄,23,上一頁(yè),下一頁(yè),例:工具箱內(nèi)的TextBox是類,它確定了TextBox的屬性、方法和事件。窗體上顯示的是兩個(gè)Text對(duì)象 。,本章目錄,24,3.對(duì)象的建立和編輯,對(duì)象的建立 (1)在工具箱中單擊左鍵進(jìn)行選擇 (2)在窗體上按下鼠標(biāo)左鍵拖動(dòng)到適當(dāng)大小 對(duì)象的選定 單個(gè)對(duì)象:?jiǎn)螕魧?duì)象 多個(gè)對(duì)象: (1)先選定一個(gè)對(duì)象,按CTRL鍵再單擊其他對(duì)象 (2)拖動(dòng)鼠標(biāo),將欲選定的對(duì)象包圍在一個(gè)虛線框內(nèi) 對(duì)象的復(fù)制和刪除 復(fù)制:選中對(duì)象-單擊復(fù)制-單擊粘貼 -彈出的對(duì)話框中選“否” 刪除:選中對(duì)象,按DEL鍵,25,上一頁(yè),下一頁(yè),屬性、事件和方法構(gòu)
15、成了對(duì)象的三要素。 1. 屬性 屬性保存對(duì)象中的數(shù)據(jù)。例如,控件名稱(Name)、標(biāo)題(Caption)、顏色(Color)、字體(FontName)等屬性決定了對(duì)象展現(xiàn)給用戶的界面具有什么樣的外觀及功能。 可以通過(guò)以下兩種方法設(shè)置對(duì)象的屬性: 1) 在設(shè)計(jì)階段利用屬性窗口直接設(shè)置對(duì)象的屬性值 2) 在程序運(yùn)行時(shí)間通過(guò)語(yǔ)句 對(duì)象名.屬性名=屬性值 實(shí)現(xiàn) 例如:Command1.Caption=確定 注意:有一些屬性只能在設(shè)計(jì)階段通過(guò)屬性窗口設(shè)置,在程序運(yùn)行階段不可改變,稱為只讀屬性。,2.1.2 對(duì)象的屬性、事件和方法,本章目錄,26,上一頁(yè),下一頁(yè),2. 事件、事件過(guò)程和事件驅(qū)動(dòng) (1) 事
16、件 事件就是發(fā)生在對(duì)象上的事情。同一事件,作用于不同的對(duì)象,就會(huì)引發(fā)不同的反應(yīng),產(chǎn)生不同的結(jié)果。 例如,在學(xué)校,教室樓的鈴聲是一個(gè)事件,教師聽(tīng)到鈴聲就要準(zhǔn)備開(kāi)始講課,向?qū)W生傳授知識(shí);學(xué)生聽(tīng)到鈴聲,就要準(zhǔn)備聽(tīng)教師上課,接受知識(shí);而行政人員對(duì)鈴聲可不于響應(yīng)。 在VB中,系統(tǒng)為每個(gè)對(duì)象預(yù)先定義好了一系列的事件。 例如,單擊(Click)、雙擊(DblClick)、改變(Change)、獲取焦點(diǎn)(GotFocus)、鍵盤(pán)按下(KeyPress)等。,事件,本章目錄,27,上一頁(yè),下一頁(yè),(2) 事件過(guò)程 應(yīng)用程序處理事件的步驟就是事件過(guò)程。它是針對(duì)某一對(duì)象的過(guò)程,并與該對(duì)象的一個(gè)事件相聯(lián)系。 VB應(yīng)用
17、程序設(shè)計(jì)的主要工作就是為對(duì)象編寫(xiě)事件過(guò)程中的程序代碼。 事件過(guò)程的形式如下: Sub 對(duì)象名_事件 (參數(shù)列表) 事件過(guò)程代碼 End Sub 例如單擊命令按鈕Command1 ,使按鈕的字體大小改為20磅: Sub Command1_Click() Command1.FontSize=20 End Sub,本章目錄,事件過(guò)程,28,上一頁(yè),下一頁(yè),(3) 事件驅(qū)動(dòng)程序設(shè)計(jì) 程序執(zhí)行的先后次序與程序設(shè)計(jì)者無(wú)關(guān),取決于用戶的操作,這就是事件驅(qū)動(dòng)程序設(shè)計(jì)方式。 VB程序的執(zhí)行步驟如下: 啟動(dòng)應(yīng)用程序,裝載和顯示窗體; 窗體(或窗體上的控件)等待事件的發(fā)生; 事件發(fā)生時(shí),執(zhí)行對(duì)應(yīng)的事件過(guò)程; 重復(fù)執(zhí)
18、行步驟和。,本章目錄,事件驅(qū)動(dòng),29,方法,上一頁(yè),下一頁(yè),3. 方法 面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言,為程序設(shè)計(jì)人員提供了一種特殊的過(guò)程和函數(shù)稱為方法。 因?yàn)榉椒ㄊ敲嫦驅(qū)ο蟮?,所以在調(diào)用時(shí)一定要用對(duì)象。對(duì)象方法的調(diào)用格式為: 對(duì)象.方法 參數(shù)名表 若省略了對(duì)象,表示為當(dāng)前對(duì)象,一般指窗體。 例如:Form1.Print 歡迎您使用Visual Basic 6.0! 使用Print方法在對(duì)象為Form1窗體中顯示“歡迎您使用Visual Basic 6.0!”的字符串。,本章目錄,30,2.2 建立簡(jiǎn)單的應(yīng)用程序,上一頁(yè),下一頁(yè),例2.1編寫(xiě)一個(gè)人民幣與美圓兌換的程序。 建立一個(gè)應(yīng)用程序分為以下幾步進(jìn)
19、行: (1) 建立用戶界面的對(duì)象; (2) 對(duì)象屬性的設(shè)置; (3) 對(duì)象事件過(guò)程及編程; (4) 保存和運(yùn)行程序。,本章目錄,測(cè)驗(yàn): 在屏幕上顯示“您好,朋友”,采用4個(gè)控件,文本控件用來(lái)顯示信息,3個(gè)命令按紐分別用來(lái)執(zhí)行顯示、清除、結(jié)束操作。,31,2.3 窗體和基本控件,上一頁(yè),下一頁(yè),2.3.1 基本屬性 (1)Name名稱屬性 所有對(duì)象都具有的屬性,是所創(chuàng)建的對(duì)象名稱。所有的控件在創(chuàng)建時(shí)由VB自動(dòng)提供一個(gè)默認(rèn)名稱。在程序中,對(duì)象名稱是作為對(duì)象的標(biāo)識(shí)在程序中而引用。 (2)Caption標(biāo)題屬性 該屬性決定了控件上顯示的內(nèi)容。 (3)Height、Width、Top和Left屬性 He
20、ight和Width屬性決定了控件的高 度和寬度,Top和Left屬性決定了控件在窗體中的位置。,本章目錄,32,2.3.1 基本屬性之二,上一頁(yè),下一頁(yè),(4) Enabled屬性 決定控件是否允許操作 True:允許用戶進(jìn)行操作,并對(duì)操作作出響應(yīng) False:禁止用戶進(jìn)行操作,呈暗淡色 (5) Visible屬性 決定控件是否可見(jiàn) True:程序運(yùn)行時(shí)控件可見(jiàn) False:程序運(yùn)行時(shí)控件隱含起來(lái),但控件本身存在 (6) Font屬性組 改變文本的外觀,其中: FontName字體、FontSize字體大小、FontBold粗體、FontItalic斜體、FontStrikethru刪除線、
21、FontUnderline下劃線,本章目錄,例2.2 在窗體是建立兩個(gè)命令按鈕,33,基本屬性之三,上一頁(yè),下一頁(yè),(7) ForeColor屬性 設(shè)置或返回控件的前景顏色 (8) BackColor屬性 正文以外的顯示區(qū)域的顏色 (9) MousePointer鼠標(biāo)指針類型屬性 當(dāng)鼠標(biāo)移動(dòng)到對(duì)象的一個(gè)特定部分時(shí),被顯示的鼠標(biāo)指針的類型,設(shè)置值的范圍為015 。若值為99,由用戶提供的圖形文件定義鼠標(biāo)指針形狀。 (10) MouseIcon屬性 設(shè)置自定義的鼠標(biāo)圖標(biāo),文件類型為.ico或.cur,圖標(biāo)庫(kù)在Graphics目錄下。該屬性必須在MousePointer屬性設(shè)為99時(shí)使用。,本章目錄
22、,34,基本屬性之四,上一頁(yè),下一頁(yè),(11) TabIndex屬性 TabIndex屬性決定了按Tab鍵時(shí),焦點(diǎn)在各個(gè)控件移動(dòng)的順序。 當(dāng)對(duì)象具有焦點(diǎn)時(shí),可接受用戶的輸入。Windows環(huán)境下,可同時(shí)運(yùn)行多個(gè)應(yīng)用程序,有多個(gè)窗口,但焦點(diǎn)只有一個(gè)。 當(dāng)窗體上有多個(gè)控件時(shí),對(duì)大部分控件系統(tǒng)會(huì)分配一個(gè)Tab順序。所謂Tab順序,就是按Tab鍵時(shí)焦點(diǎn)在各個(gè)控件上移動(dòng)的順序。一般,其順序與控件建立的順序相同,若要改變順序,可以設(shè)置控件的TabIndex屬性,TabIndex屬性決定了它在Tab中的位置。按默認(rèn)值規(guī)定,第一個(gè)建立的控件的TabIndex屬性值為0,第二個(gè)為1,依次類推。,本章目錄,35,
23、基本屬性之五,上一頁(yè),下一頁(yè),(12) 控件默認(rèn)屬性 所謂默認(rèn)屬性是程序運(yùn)行時(shí),可以改變某控件的值,而不必指定該控件的哪個(gè)屬性。,例如,下面兩條語(yǔ)句是等價(jià)的: Text1.Text=Visual BASIC Text1 =Visual BASIC,本章目錄,36,2.3.2 窗體,上一頁(yè),下一頁(yè),窗體是一塊畫(huà)布,是所有控件的容器,用戶可以根據(jù)自己的需要利用工具箱上的控件在畫(huà)布上畫(huà)界面。 1. 主要屬性 窗體屬性決定了窗體的外觀和操作。,本章目錄,37,窗體-屬性,上一頁(yè),下一頁(yè),(1) Caption屬性 決定窗體標(biāo)題欄顯示的內(nèi)容 (2) MaxButton和MinButton屬性 控制窗體右
24、上角有最大化按鈕和最小化按鈕的顯示 (3) ControlBox屬性 控制窗體左上角有控制菜單框是否出現(xiàn),當(dāng)無(wú)控制菜單框,時(shí),系統(tǒng)將MaxButton和MinButton自動(dòng)設(shè)置為False。 (4) Icon屬性 設(shè)置窗體最小化時(shí)顯示圖標(biāo) (5) Picture屬性 設(shè)置窗體中要顯示的圖片 (6) BorderStyle屬性 此屬性決定窗體的邊框類型 (7) WindowsState屬性 窗體執(zhí)行時(shí)顯示狀態(tài),正常狀態(tài)、最小化狀態(tài)最大化狀態(tài),本章目錄,38,窗體-事件,上一頁(yè),下一頁(yè),最常用的事件有Click、DblClick和Load。 Load事件是在窗體被裝入工作區(qū)時(shí)觸發(fā)的事件。當(dāng)應(yīng)用程
25、序啟動(dòng),自動(dòng)執(zhí)行該事件,該事件通常用來(lái)在啟動(dòng)應(yīng)用程序時(shí)對(duì)屬性和變量進(jìn)行初始化。 例2.3使窗體無(wú)最大化按鈕和最小化按鈕,在窗體啟動(dòng)時(shí),在標(biāo)題欄顯示“裝入窗體”,并在窗體上裝入一背景圖;當(dāng)用戶單擊窗體,在標(biāo)題蘭顯示“鼠標(biāo)單擊”,在窗體中顯示“歡迎使用VB”,雙擊窗體,在標(biāo)題蘭顯示“鼠標(biāo)雙擊” ,并在窗體中顯示“結(jié)束使用VB” 。,本章目錄,39,2.3.3 標(biāo)簽-屬性,上一頁(yè),下一頁(yè),除了Caption、Font、Left、Top等外,還有: (1) BackStyle屬性 控制控件是否透明(0透明, 1不透明) (2) BorderStyle屬性 控件周圍是否有邊框(0無(wú), 1有) (3) A
26、lignment屬性 決定Caption屬性值內(nèi)容的對(duì)齊方式。 0-左對(duì)齊;1-右對(duì)齊;2-居中。 (4) AutoSize屬性 AutoSize屬性決定控件是否自動(dòng)調(diào)整大小 WordWrap屬性決定標(biāo)簽內(nèi)容超出標(biāo)簽寬度時(shí),是否自動(dòng)換行。 例2.4標(biāo)簽-屬性,本章目錄,40,例2.4 控件設(shè)置 效果,41,2.3.3 標(biāo)簽-事件,上一頁(yè),下一頁(yè),標(biāo)簽經(jīng)常接收的事件有:?jiǎn)螕?Click),雙擊(DblClick)和改變(Change)。但通常標(biāo)簽僅起到在窗體上顯示文字作用,因此,一般不需編寫(xiě)事件過(guò)程。 例2.5利用兩個(gè)標(biāo)簽控件,顯示具有浮雕效果的文字 實(shí)現(xiàn)思路:浮雕效果可利用兩種顏色的文字錯(cuò)位疊
27、加來(lái)實(shí)現(xiàn)。 為了實(shí)現(xiàn)錯(cuò)位,可使兩個(gè)標(biāo)簽的Left、Top屬性值有一點(diǎn)差距。為了避免疊加上去的標(biāo)簽覆蓋原來(lái)標(biāo)簽顯示的文字,要將標(biāo)簽的BackStyle背景樣式屬性設(shè)置為0,即透明的。,本章目錄,42,2.3.4 文本框-屬性之一,上一頁(yè),下一頁(yè),文本框是一個(gè)文本編輯區(qū)域,用戶可以在該區(qū)域輸入、編輯、修改和顯示正文內(nèi)容。 1. 主要屬性 (1) Text文本屬性 文本框無(wú)Caption屬性,顯示的正文內(nèi)容存放在Text屬性中。當(dāng)程序執(zhí)行時(shí),用戶通過(guò)鍵盤(pán)輸入、編輯正文。 (2) Maxlength屬性 指明文本框中能夠輸入的正文內(nèi)容的最大長(zhǎng)度。 0-任意長(zhǎng)字符串;非零值-文本框中字符個(gè)數(shù)的最大值。
28、注意:在VB中字符長(zhǎng)度以字為單位,也就是一個(gè)西文字符與一個(gè)漢字都是一個(gè)字,長(zhǎng)度為1。,本章目錄,43,文本框?qū)傩灾?上一頁(yè),下一頁(yè),(3) MultiLine多行屬性 當(dāng)MultiLine屬性為T(mén)rue時(shí),文本框可以輸入或顯示多行正文,同時(shí)具有文字處理器的自動(dòng)換行功能,即輸入的正文超出顯示框時(shí),會(huì)自動(dòng)換行。按Enter鍵可插入一空行。 (4) ScrollBars滾動(dòng)條屬性 當(dāng)MultiLine屬性為T(mén)rue時(shí),ScrollBars屬性才有效。 0(vbNone)無(wú)滾動(dòng)條; 1(vbHorizontal) 加水平滾動(dòng)條; 2(vbVertical) 加垂直滾動(dòng)條; 3(vbBoth) 同時(shí)加
29、水平和垂直滾動(dòng)條。 注意:當(dāng)加入了水平滾動(dòng)條以后,文本框內(nèi)的自動(dòng)換行功能會(huì)自動(dòng)消失,只有按Enter鍵才能回車換行。,本章目錄,44,文本框?qū)傩灾?上一頁(yè),下一頁(yè),(5) Locked屬性 控制文本控件的內(nèi)容是否可被編輯,當(dāng)設(shè)置為T(mén)rue時(shí),文本控件相當(dāng)于標(biāo)簽的作用。 (6) SelStart、SelLength和SelText屬性 在程序運(yùn)行中,用來(lái)標(biāo)識(shí)用戶選中的正文。 SelStart 選定的正文的開(kāi)始位置,第一個(gè)字符的位置是0。 SelLength 選定的正文長(zhǎng)度。 SelText 選定的正文內(nèi)容。 設(shè)置了SelStart和SelLength屬性后,VB會(huì)自動(dòng)將設(shè)定的正文存入SelTe
30、xt。 例2.6創(chuàng)建一個(gè)簡(jiǎn)單的文本編輯器,本章目錄,45,2.3.4 文本框-事件,上一頁(yè),下一頁(yè),(1) Change事件 當(dāng)Text屬性值發(fā)生改變時(shí)會(huì)引發(fā)該事件。用戶每輸入一個(gè)字符就會(huì)引發(fā)一次Change事件。 (2) KeyPress事件 當(dāng)按下并且釋放鍵盤(pán)上的一個(gè)鍵時(shí),就會(huì)引發(fā)焦點(diǎn)所在控件的KeyPress事件,參數(shù)KeyAscii指示按鍵的Ascii碼值。 事件中最常用于判斷是否輸入回車符(KeyAscii的值為13) (3) LostFocus事件 此事件是在一個(gè)對(duì)象失去焦點(diǎn)時(shí)發(fā)生。 (4) GotFocus事件 當(dāng)一個(gè)對(duì)象獲得焦點(diǎn)時(shí)發(fā)生。,本章目錄,46,2.3.4 文本框-方法
31、,上一頁(yè),下一頁(yè),文本框最有用的方法是SetFocus,該方法是把光標(biāo)移到指定的文本框中。當(dāng)在窗體上建立了多個(gè)文本框后,可以用該方法把光標(biāo)置于所需要的文本框上。其形式如下: 對(duì)象.SetFocus,本章目錄,47,例2.7 對(duì)輸入的數(shù)據(jù)進(jìn)行合法性檢驗(yàn),過(guò)濾不合法的數(shù)據(jù)。 當(dāng)輸入結(jié)束時(shí),對(duì)于輸入正確的數(shù)據(jù),顯示正確信息;對(duì)輸入的非數(shù)字?jǐn)?shù)據(jù)顯示錯(cuò)誤信息、清除文本框中的內(nèi)容,并使焦點(diǎn)重新回到文本框。 分析:在文本框輸入數(shù)據(jù),可通過(guò)回車鍵或按Tab鍵表示輸入結(jié)束,當(dāng)然引發(fā)的事件也不同。按回車鍵,焦點(diǎn)沒(méi)有離開(kāi),通過(guò)KeyPress事件來(lái)判斷;按Tab鍵,焦點(diǎn)離開(kāi)該控件,通過(guò)LostFocus事件來(lái)判斷。
32、本例以按Tab鍵表示輸入結(jié)束。 Text2_ LostFocus 當(dāng)輸入結(jié)束按Tab鍵時(shí),該事件激發(fā) IsNumeric(Text2) : 判斷是否輸入非數(shù)字?jǐn)?shù)據(jù). Text2.SetFocus : 使焦點(diǎn)重新回到文本框,文本框的應(yīng)用 數(shù)據(jù)過(guò)濾,48,2.3.5 命令按鈕,上一頁(yè),下一頁(yè),在程序運(yùn)行時(shí),當(dāng)用戶選中某個(gè)命令按扭時(shí)就會(huì)執(zhí)行相應(yīng)的事件過(guò)程。常用以下方法可以選中命令按鈕: (1) 用鼠標(biāo)單擊。 (2) 按Tab鍵將焦點(diǎn)移到相應(yīng)按鈕上,再按回車鍵。 (3) 快捷鍵(Alt+有下劃線的字母)。 1. 主要屬性 (1) Caption 屬性 如果某個(gè)字母前加入 String(6 - I, )
33、; Spc(6); String(I, ) Next i End Sub 考慮:若把Spc(6)換成Tab(6),效果如何?,54,常用方法,上一頁(yè),下一頁(yè),1)Cls方法 形式 : 對(duì)象.Cls 作用 : 清除運(yùn)行時(shí)在窗體或圖形框中顯示的文本或圖形。 注意 : 不清除在設(shè)計(jì)時(shí)的文本和圖形。 2) Move方法 形式 : 對(duì)象.Move 左邊距離,上邊距離,寬度,高度 作用 : 移動(dòng)窗體或控件,并可改變其大小。 對(duì)象:可以是窗體及除時(shí)鐘、菜單外的所有控件 例2.10移動(dòng)圖形示例,程序運(yùn)行時(shí)在圖像框裝入一幅圖,單擊窗體使圖像框移到窗體的中心,本章目錄,55,2.4 工程的管理及環(huán)境的設(shè)置,一.工
34、程的組成 一個(gè)工程包括各種類型的文件: 工程文件(.Vbp):與該工程有關(guān)的全部文件和對(duì)象的清單 窗體文件(.frm):控件及屬性、事件過(guò)程和自定義過(guò)程 窗體的二進(jìn)制數(shù)據(jù)文件(.frx):當(dāng)窗體上控件的數(shù)據(jù)屬性含有二進(jìn)制值時(shí)(如圖片),將窗體保存時(shí),系統(tǒng)自動(dòng)產(chǎn)生同名.frx文件。 標(biāo)準(zhǔn)模塊文件(.bas):包含模塊級(jí)的變量和外部過(guò)程的聲明 二.創(chuàng)建、打開(kāi)和保存工程(略),本章目錄,56,注意: 1.窗體名和窗體文件名概念, 窗體名:窗體的Name屬性,在代碼中用來(lái)引用該窗體,同一工程不能有相同的窗體名; 窗體文件名:窗體存放在磁盤(pán)上的文件名,該文件包含了該窗體的所有控件屬性和代碼,同一文件夾不
35、能有相同的文件名。 2. 在工程中添加現(xiàn)存的窗體時(shí),只是將對(duì)該窗體文件的引用納入工程,而不是添加該文件的復(fù)制件。因此,如果更改窗體并保存它,會(huì)影響包含此窗體文件的任何工程。 3. 在工程中刪除窗體時(shí),僅將此窗體從工程里刪除掉,但是窗體文件仍存在于磁盤(pán)上。但是,如果在VB之外刪除一個(gè)窗體文件,VB不能更新此工程文件,當(dāng)打開(kāi)此工程時(shí),將顯示一個(gè)文件丟失的錯(cuò)誤信息。 4.對(duì)窗體文件改名(P43),三.添加、刪除和保存文件,57,2.5 使用幫助系統(tǒng),上一頁(yè),下一頁(yè),使用MSDN Library查閱器 通過(guò)VB的幫助菜單,選擇內(nèi)容、索引或搜索菜單項(xiàng),本章目錄,58,2.6 程序調(diào)試,.錯(cuò)誤類型 (1)
36、編輯錯(cuò)誤 在編輯代碼時(shí),VB會(huì)對(duì)鍵入的代碼直接進(jìn)行語(yǔ)法檢查。當(dāng)發(fā)現(xiàn)代碼存在打字錯(cuò)誤,遺漏關(guān)鍵字或標(biāo)點(diǎn)符等語(yǔ)法錯(cuò)誤,VB在Form窗口中彈出一個(gè)子窗口,提示出錯(cuò)信息,出錯(cuò)的那一行變成紅色。這時(shí),用戶必須單擊“確定”按鈕,關(guān)閉出錯(cuò)提示窗,然后對(duì)出錯(cuò)行進(jìn)行修改。,本章目錄,59,(2)編譯錯(cuò)誤 編譯錯(cuò)誤指按了“啟動(dòng)”按鈕,VB開(kāi)始運(yùn)行程序前,先編譯執(zhí)行的程序段時(shí),產(chǎn)生的錯(cuò)誤。此類錯(cuò)誤由于用戶未定義變量、遺漏關(guān)鍵字等原因產(chǎn)生。這時(shí),Visual Basic也彈出一個(gè)子窗口,提示出錯(cuò)信息,出錯(cuò)的那一行被高亮度顯示。,60,(3) 運(yùn)行錯(cuò)誤 運(yùn)行時(shí)錯(cuò)誤指VB在編譯通過(guò)后,運(yùn)行代碼時(shí)發(fā)生的錯(cuò)誤。這類錯(cuò)誤往往
37、是指令代碼執(zhí)行了一非法操作引起的。例如類型不匹配、試圖打開(kāi)一個(gè)不存在的文件等。,61,(4) 邏輯錯(cuò)誤 程序運(yùn)行后,得不到所期望的結(jié)果,這說(shuō)明程序存在邏輯錯(cuò)誤。這類錯(cuò)誤往往是程序存在邏輯上的缺陷所引起。例如,運(yùn)算符使用不正確、語(yǔ)句的次序不對(duì)、循環(huán)語(yǔ)句的起始、終值不正確等。通常,邏輯錯(cuò)誤不會(huì)產(chǎn)生錯(cuò)誤提示信息,故錯(cuò)誤較難排除,需要程序員仔細(xì)地閱讀分析程序以及調(diào)試。,62,2 調(diào)試錯(cuò)誤 (1) VB的三種模式 設(shè)計(jì)模式設(shè)計(jì) 進(jìn)行程序的界面設(shè)計(jì)、屬性設(shè)置、代碼編寫(xiě)等。 運(yùn)行模式運(yùn)行 執(zhí)行“運(yùn)行/啟動(dòng)”命令,可以查看程序代碼,但不能修改。 中斷模式中斷 當(dāng)在運(yùn)行模式,按了“中斷”命令或當(dāng)程序出現(xiàn)運(yùn)行時(shí)錯(cuò)
38、誤時(shí)進(jìn)入中斷模式??梢圆榭创a、修改代碼、檢查數(shù)據(jù)。,63,2 設(shè)置斷點(diǎn)和逐語(yǔ)句跟蹤 斷點(diǎn)是告訴VB掛起程序執(zhí)行的一個(gè)標(biāo)記,當(dāng)程序執(zhí)行到斷點(diǎn)處即暫停程序的運(yùn)行,進(jìn)入中斷模式。設(shè)置或刪除斷點(diǎn)的步驟: 中斷模式下,直接查看某個(gè)變量的值,只要把鼠標(biāo)指向所關(guān)心的變量處,稍停一下,就在鼠標(biāo)下方顯示該變量的值。,斷點(diǎn)標(biāo)記,當(dāng)前行,64,1. 使用中文標(biāo)點(diǎn)符號(hào) 系統(tǒng)產(chǎn)生“無(wú)效字符”,以紅色顯示 2. 字母和數(shù)字形狀相似 小寫(xiě)字母“l(fā)”和數(shù)字“1”形式相同、小寫(xiě)字母“o”與數(shù)字“0”。 3. 對(duì)象名稱(Name) 寫(xiě)錯(cuò) Text1、Text2、Command1 txtInput、txtOutput、cmdOk
39、 4.對(duì)象的屬性名、方法名、標(biāo)準(zhǔn)函數(shù)名寫(xiě)錯(cuò) 盡量使用自動(dòng)列出成員功能。正確的系統(tǒng)按規(guī)定的大小寫(xiě)表示。 5. 無(wú)意形成控件數(shù)組 建立控件時(shí)小心使用“復(fù)制”、“粘貼”按鈕 6. 打開(kāi)工程時(shí)找不到對(duì)應(yīng)的文件 保存文件時(shí)先保存窗體.frm文件、再保存.vbp文件,注意路徑。,2.7 常見(jiàn)錯(cuò)誤,65,第三章 Visual Basic語(yǔ)言基礎(chǔ),3.1 數(shù)據(jù)類型 3.2 變量與常量 3.3 運(yùn)算符和表達(dá)式 3.4 常用內(nèi)部函數(shù) 3.5 編碼規(guī)則,本書(shū)目錄,66,3.1 數(shù)據(jù)類型,上一頁(yè),下一頁(yè),本章目錄,67,3.1 VB中的數(shù)據(jù)類型,一 數(shù)據(jù)類型 在為計(jì)算機(jī)編程時(shí),會(huì)使用各種各樣的數(shù)據(jù)。因此,我們?cè)诰帉?xiě)程
40、序代碼時(shí)就必須事先說(shuō)明所使用的數(shù)據(jù)類型,以便計(jì)算機(jī)能夠正確識(shí)別.VB中提供了:數(shù)值型、字符型、布爾型 、日期型、對(duì)象型、變體型等數(shù)據(jù)類型 . 1 數(shù)值(Numeric) 數(shù)值型包括:整型Integer(%)、長(zhǎng)整型Long( 若密碼錯(cuò),顯示有關(guān)信息,選擇“重試”按鈕,清除原內(nèi)容再輸入,選擇“取消”按鈕,停止運(yùn)行。密碼3次有錯(cuò),退出! 分析: 帳號(hào)6位,MaxLength為6 , LostFocus判斷數(shù)字IsNumeric函數(shù) 密碼PassWordChar為“*”,MsgBox函數(shù)設(shè)置密碼錯(cuò)對(duì)話框.,117,課堂作業(yè),從鍵盤(pán)上輸入4個(gè)數(shù),編寫(xiě)程序,計(jì)算并輸出這4個(gè)數(shù)的和及平均值。 要求: (1
41、)單擊窗體,通過(guò)Inputbox函數(shù)輸入數(shù)據(jù)。 (2)在窗體上顯示這4個(gè)數(shù)及數(shù)的和、平均值。程序運(yùn)行界面如下圖所示,118,上一頁(yè),下一頁(yè),4.2 選擇結(jié)構(gòu),計(jì)算機(jī)要處理的問(wèn)題往往是復(fù)雜多變的,僅采用順序結(jié)構(gòu)是不夠的。必須利用選擇結(jié)構(gòu)等來(lái)解決實(shí)際應(yīng)用中的各種問(wèn)題。VB中提供了多種形式的條件語(yǔ)句來(lái)實(shí)現(xiàn)選擇結(jié)構(gòu),有If條件語(yǔ)句和Select情況語(yǔ)句等。它們都是對(duì)條件進(jìn)行判斷,根據(jù)判斷結(jié)果,選擇執(zhí)行不同的分支。,本章目錄,119,上一頁(yè),下一頁(yè),4.2.1 If條件語(yǔ)句,1. IfThen語(yǔ)句(單分支結(jié)構(gòu)) If Then 語(yǔ)句塊(可以是一句或多句語(yǔ)句) End If 或 If Then 表達(dá)式:關(guān)
42、系表達(dá)式、邏輯表達(dá)式,算術(shù)表達(dá)式。表達(dá)式值按非零為T(mén)rue,零為False進(jìn)行判斷。 該語(yǔ)句的作用是當(dāng)表達(dá)式的值為T(mén)rue,執(zhí)行Then后面的語(yǔ)句塊,否則不做任何操作。,本章目錄,120,上一頁(yè),下一頁(yè),單分支結(jié)構(gòu),例:已知兩個(gè)數(shù)x和y,比較它們的大小,使得x大于y。 If xy Then t=x x=y y=t End If 或 If xy Then t=x: x=y: y=t 簡(jiǎn)單If形式無(wú)End If,只能是一句語(yǔ)句或語(yǔ)句間用冒號(hào)分隔,而且必須在一行上書(shū)寫(xiě)。 重要的是學(xué)會(huì)兩個(gè)數(shù)的交換,若上述語(yǔ)句次序變一下,結(jié)果如何?,本章目錄,121,雙分支結(jié)構(gòu),上一頁(yè),下一頁(yè),2. IfThenEls
43、e語(yǔ)句 If 表達(dá)式 Then 語(yǔ)句塊1 Else 語(yǔ)句塊2 End If 或 If 表達(dá)式 Then 語(yǔ)句1 Else 語(yǔ)句2 當(dāng)表達(dá)式的值為T(mén)rue時(shí),執(zhí)行Then后面的語(yǔ)句塊1,否則執(zhí)行Else后面的語(yǔ)句塊2,本章目錄,122,雙分支結(jié)構(gòu)例,上一頁(yè),下一頁(yè),計(jì)算分段函數(shù),單分支結(jié)構(gòu)實(shí)現(xiàn): y=cos(x)x3+3*x If x0 Then y=sin(x)+sqr (x*x+1),雙分支結(jié)構(gòu)實(shí)現(xiàn): If x0 Then y=sin(x)+sqr (x*x+1) Else y=cos(x)x3+3*x End If,本章目錄,123,例題,例1:由鍵盤(pán)輸入一個(gè)數(shù),該數(shù)大于等于0,則求該數(shù)的
44、平方根,否則,輸出錯(cuò)誤信息。 例2:文本框Tex1作為數(shù)字輸入框,當(dāng)輸入的為數(shù)字,則將其在Tex2中輸出。否則清除Tex1中的內(nèi)容,并將焦點(diǎn)定位在Tex1中,124,上一頁(yè),下一頁(yè),多分支結(jié)構(gòu),3. IfThenElseIf語(yǔ)句 If 表達(dá)式1 Then 語(yǔ)句塊1 ElseIf 表達(dá)式2 Then 語(yǔ)句塊2 Else 語(yǔ)句塊 n+1 End If,該語(yǔ)句的作用是根據(jù)不同的表達(dá)式值確定執(zhí)行哪個(gè)語(yǔ)句塊,本章目錄,125,上一頁(yè),下一頁(yè),例4.5已知變量strC中存放了一個(gè)字符,判斷該字符是字母字符、數(shù)字字符還是其他字符。 If Ucase(strC) =A And Ucase (strC) =0
45、And strC =9 Then Print strC + 是數(shù)字字符 Else Print strC + 其他字符 End If,不管有幾個(gè)分支,依次判斷,當(dāng)某條件滿足,執(zhí)行相應(yīng)的語(yǔ)句,其余分支不再執(zhí)行;若條件都不滿足,且有Else子句,則執(zhí)行該語(yǔ)句塊,否則什么也不執(zhí)行。. ElseIf不能寫(xiě)成 Else If。,多分支結(jié)構(gòu)例,本章目錄,126,例 已知百分制成績(jī)mark,顯示對(duì)應(yīng)的五級(jí)制成績(jī) 哪些正確,哪些錯(cuò)誤?,返回,127,上一頁(yè),下一頁(yè),If語(yǔ)句的嵌套是指If或Else后面的語(yǔ)句塊中又包含If語(yǔ)句 If 表達(dá)式1 Then If 表達(dá)式11 Then End If End If,If
46、 xy Then t=x: x=y: y=t If yz Then t=y: y=z: z=t If xy Then t=x: x=y: y=t End If End If,If語(yǔ)句的嵌套,例已知x,y,z三個(gè)數(shù),使得xyz 用一個(gè)IF語(yǔ)句和一個(gè)嵌套的IF語(yǔ)句實(shí)現(xiàn),本章目錄,128,上一頁(yè),下一頁(yè),4.2.2 Select Case語(yǔ)句,Select Case 變量或表達(dá)式 Case 表達(dá)式列表1 語(yǔ)句塊1 Case 表達(dá)式列表2 語(yǔ)句塊2 Case Else 語(yǔ)句塊n+1 End Select,表達(dá)式列表與變量或表達(dá)式的類型必須相同,是下面4種形式之一 : 表達(dá)式 例: A 一組用逗號(hào)分隔的
47、枚舉值 2,4,6,8 表達(dá)式1 To 表達(dá)式2 60 To 100 Is 關(guān)系運(yùn)算符表達(dá)式 Is 60,本章目錄,129,上一頁(yè),下一頁(yè),Select Case語(yǔ)句例,將例4.5改成Select Case語(yǔ)句實(shí)現(xiàn)如下: Select Case strC Case a To z,A To Z Print strC + 是字母字符 Case 0 To 9 Print strC +是數(shù)字字符 Case Else Print strC + 是其他字符 End Select 對(duì)于多分支結(jié)構(gòu),用Select Case語(yǔ)句比用IfThenElseIf語(yǔ)句直觀,程序可讀性強(qiáng)。但不是所有的多分支結(jié)構(gòu)均可用Se
48、lect Case語(yǔ)句代替IfThenElseIf語(yǔ)句。,本章目錄,130,上一頁(yè),下一頁(yè),Select Case語(yǔ)句例,例4.6 已知坐標(biāo)點(diǎn)(x,y),判斷其落在哪個(gè)象限。,代碼一 If x 0 And y 0 Then Print 在第一象限 ElseIf x 0 Then Print 在第二象限 ElseIf x 0 And y 0 Then Print 在第四象限 End If,代碼二 Select Case x,y Case x 0 And y 0 Print 在第一象限 Case x 0 Print 在第二象限 Case x 0 And y 0 Print 在第四象限 End Se
49、lect,代碼二錯(cuò)誤: 1. Select Case 后不能出現(xiàn)多個(gè)變量; 2. Case后不能出現(xiàn)邏輯表達(dá)式。,本章目錄,131,例 輸入百分制成績(jī)mark,顯示對(duì)應(yīng)的五級(jí)制成績(jī),哪些能實(shí)現(xiàn),哪些不能實(shí)現(xiàn)?,返回,132,例4.7由計(jì)算機(jī)來(lái)當(dāng)一年級(jí)的算術(shù)老師,要求給出一系列的110的操作數(shù)和運(yùn)算符,學(xué)生輸入該題的答案,計(jì)算機(jī)根據(jù)學(xué)生的答案判斷正確與否,當(dāng)結(jié)束時(shí)給出成績(jī)。 分析:產(chǎn)生110操作數(shù),可通過(guò)Int(10 * Rnd + 1) 實(shí)現(xiàn),Command1,Picture1,Text1,label1,133,上一頁(yè),下一頁(yè),4.2.3 條件函數(shù),1)IIf 函數(shù) IIf(表達(dá)式,當(dāng)表達(dá)式為
50、True時(shí)的值,當(dāng)表達(dá)式為False時(shí)的值) 例如,求x,y中大的數(shù),放入Tmax變量中,語(yǔ)句如下: Tmax=IIf(x y,x,y) 2)Choose函數(shù) Choose(數(shù)字型變量,值為1的返回值,值為2的返回值) 例如,Nop是14的值,轉(zhuǎn)換成 + 、-、運(yùn)算符的語(yǔ)句如下: Op= Choose(Nop,+,-,) 當(dāng)值為1,返回字符串“+”,然后放入Op變量中,值為2,返回字符串“-”,依次類推;當(dāng)Nop是14的非整數(shù),系統(tǒng)自動(dòng)取整再判斷;若Nop不在14之間,函數(shù)返回Null值。,本章目錄,134,常見(jiàn)錯(cuò)誤 1在選擇結(jié)構(gòu)中缺少配對(duì)的結(jié)束語(yǔ)句 2. 多分支選擇ElseIf關(guān)鍵字的書(shū)寫(xiě)
51、ElseIf 不要寫(xiě)成Else If; 3.條件表達(dá)式的表示 多個(gè)條件表達(dá)式次序問(wèn)題,見(jiàn)例 3. Select Case語(yǔ)句的使用 Select Case 后不能出現(xiàn)多個(gè)變量;Case子句后不能出現(xiàn)變量見(jiàn)例,135,課堂作業(yè),某航空公司規(guī)定:在旅游旺季79月份,如果訂票超過(guò)20張,優(yōu)惠票價(jià)的15%;20張以下的優(yōu)惠5%;在旅游淡季15月份、10、11月份,訂票超過(guò)20張,優(yōu)惠票價(jià)的30%;20張以下的優(yōu)惠20%;其它時(shí)間訂票的一律優(yōu)惠2%。(要求要對(duì)輸入的數(shù)據(jù)進(jìn)行判斷),136,上一頁(yè),下一頁(yè),4.3 循環(huán)結(jié)構(gòu),我們已經(jīng)學(xué)習(xí)了順序結(jié)構(gòu)和分支結(jié)構(gòu),這種結(jié)構(gòu)的特點(diǎn)是任何一條語(yǔ)句至多只執(zhí)行一次,但是
52、在處理實(shí)際問(wèn)題的過(guò)程中,用這種結(jié)構(gòu)來(lái)編寫(xiě)程序就長(zhǎng)得不能忍受。,本章目錄,引例:求1+2+3+100的和? S=0 S=S+1 S=S+2 S=S+3 共101條語(yǔ)句,實(shí)際上這就是一種重復(fù)循環(huán)操作, VB中提供了兩種類型的循環(huán)語(yǔ)句:一種是計(jì)數(shù)循環(huán)語(yǔ)句;另一種是條件型循環(huán)語(yǔ)句。,137,上一頁(yè),下一頁(yè),4.3.1 For循環(huán)語(yǔ)句,For循環(huán)語(yǔ)句用于控制循環(huán)次數(shù)預(yù)知的循環(huán)結(jié)構(gòu)。 For 循環(huán)變量 初值 To 終值 Step 步長(zhǎng) 語(yǔ)句塊 Exit For 語(yǔ)句塊 Next 循環(huán)變量 循環(huán)變量必須為數(shù)值型。 循環(huán)次數(shù),0 初值終值 =0 死循環(huán),步長(zhǎng),本章目錄,138,上一頁(yè),下一頁(yè),For循環(huán)語(yǔ)句,
53、循環(huán)流程: (1) 循環(huán)變量被賦初值,它僅被賦值一次。 (2) 判斷循環(huán)變量是否在終值內(nèi),如果是,執(zhí)行循環(huán)體;如果否,結(jié)束循環(huán),執(zhí)行Next的下一語(yǔ)句。 (3) 循環(huán)變量加步長(zhǎng),轉(zhuǎn)(2),繼續(xù)循環(huán),本章目錄,139,循環(huán)執(zhí)行次數(shù) 輸出I的值分別為: 2 5 8 11 出了循環(huán)輸出為: I=14,例: For I=2 To 13 Step 3 Print I , Next I Print Print “I=“, I,例4.8 計(jì)算1100的累加和 問(wèn)題:求1100中偶數(shù)和、奇數(shù)和,如何修改上例程序。,140,例題,例4.9求自然數(shù)15的階乘,用圖形框輸出 例4.10:利用隨機(jī)數(shù)函數(shù)(RND)產(chǎn)生
54、200個(gè)200600之間的整數(shù),每行輸出10個(gè)數(shù),找出這些整數(shù)中最大數(shù)和最小數(shù)。 P90 例4.10(自學(xué)),141,上一頁(yè),下一頁(yè),4.3.2 DoLoop循環(huán)語(yǔ)句,Do循環(huán)用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。 形式1: Do While|Until 語(yǔ)句塊 Exit Do 語(yǔ)句塊 Loop 形式1為先判斷后執(zhí)行,有可能一次也不執(zhí)行; 形式2為先執(zhí)行后判斷,至少執(zhí)行一次。,形式2: Do 語(yǔ)句塊 Exit Do 語(yǔ)句塊 Loop While|Until ,本章目錄,142,描述,1、在DO循環(huán)中都可以使用EXIT DO退出循環(huán)。 2、DO WHILE 循環(huán)是首先判斷條件是否為真(滿足),為真執(zhí)行
55、循環(huán)體,執(zhí)行完循環(huán)體再判斷條件是否為真,為真重復(fù)執(zhí)行,直至條件為假(不滿足)時(shí)退出循環(huán)。先判斷、后執(zhí)行。 3、DO UNTIL循環(huán)是首先判斷條件是否為真(滿足),若條件為真則退出循環(huán),只有為假(條件不滿足)時(shí)才執(zhí)行循環(huán)。先判斷、后執(zhí)行。 4、DO LOOP WHILE 循環(huán)是首先執(zhí)行循環(huán)體,再判斷條件是否為真,若為真繼續(xù)循環(huán),條件為假(不滿足)退出該循環(huán),它是先執(zhí)行、后判斷。 5、DO LOOP UNTIL 循環(huán)是首先執(zhí)行循環(huán)體,然后再判斷條件,若條件為真(滿足),則退出循環(huán),若條件不滿足,繼續(xù)循環(huán)。直到條件滿足(為真)才退出該循環(huán),它是先執(zhí)行、后判斷。,143,上一頁(yè),下一頁(yè),DoLoop流
56、程,本章目錄,144,例題,Do While Loop s = 0: c = 0 Do While c Loop s = 1: c = 2 Do Until c 5 s = s * c Print c, s c = c + 2 Loop,145,測(cè)試,分別用DO循環(huán)的5種形式編寫(xiě)求自然數(shù)11000和的程序。,i = 1: sum = 0 Do While i = 100 sum = sum + i i = i + 1 Loop Print sum,i = 1: sum = 0 Do Until i 100 sum = sum + i i = i + 1 Loop Print sum,i = 1
57、: sum = 0 Do sum = sum + i i = i + 1 If i 100 Then Exit Do Loop Print sum,146,上一頁(yè),下一頁(yè),循環(huán)例題,例4.11 我國(guó)有13億人口,按人口年增長(zhǎng)0.8%計(jì)算,多少年后我國(guó)人口超過(guò)26億。,本章目錄,x = 13 n = 0 Do While x 26 x = x * 1.008 n = n + 1 Loop Print n, x,147,上一頁(yè),下一頁(yè),循環(huán)例題,例4.12 用輾轉(zhuǎn)相除法求兩自然數(shù)的最大公約數(shù)和最小公倍數(shù)。 求最大公約數(shù)的算法思想: (1)對(duì)于已知兩數(shù)m,n,使得mn (2) m除以n得余數(shù)r (3
58、)若r=0,則n為最大公約數(shù),結(jié)束;否則執(zhí)行(4) (4)mn,nr,再重復(fù)執(zhí)行(2) 最小公倍數(shù):兩數(shù)相乘除以最大公約數(shù),例 m=14 n=6 的最大公約數(shù) m=14, n= 6 r=2 M=6, n=2 r=0 最大公約數(shù)為 :2 最小公倍數(shù)為:42,本章目錄,Do r = m Mod n If r = 0 Then Exit Do Else m = n: n = r End If Loop While r 0,148,輾轉(zhuǎn)相減法,Do If m n Then r = m - n Else r = n - m End If If r = 0 Then Exit Do m = IIf(m n, m, n): n = r Loop,m-n mn n-m nm 0 m=n,1.對(duì)于已知m,n,計(jì)算,2.若r=0 ,則m或n為最大公約數(shù),結(jié)束,否則,轉(zhuǎn)3 3.m=min(m,n),n=r,再重復(fù)執(zhí)行1,149,4.3.3 循環(huán)的嵌套,例4.13:二重循環(huán)。 Private Sub Command1_Click() Dim m%, n% For m = 1 To 3 For n = 1 To
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 能源行業(yè)新能源技術(shù)研發(fā)與應(yīng)用推廣方案
- 農(nóng)業(yè)生產(chǎn)技術(shù)培訓(xùn)與教育方案
- 游戲角色設(shè)計(jì)作業(yè)指導(dǎo)書(shū)
- 房屋土地買(mǎi)賣合同書(shū)
- 計(jì)算機(jī)與辦公設(shè)備行業(yè)作業(yè)指導(dǎo)書(shū)
- 屋頂防水合同
- 公寓裝修協(xié)議合同
- 2025年佛山貨運(yùn)從業(yè)資格證模擬考試題下載
- 2024-2025學(xué)年新教材高中地理第五章地球上的植被與土壤第一節(jié)主要植被與自然環(huán)境課后篇鞏固提升含解析湘教版必修第一冊(cè)
- 湘教版九年級(jí)數(shù)學(xué)下冊(cè)2.5直線與圓的位置關(guān)系2.5.2第1課時(shí)切線的判定聽(tīng)評(píng)課記錄
- 中央2025年公安部部分直屬事業(yè)單位招聘84人筆試歷年參考題庫(kù)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- 春節(jié)節(jié)后復(fù)工全員安全意識(shí)提升及安全知識(shí)培訓(xùn)
- 道路運(yùn)輸企業(yè)主要負(fù)責(zé)人和安全生產(chǎn)管理人員安全考核試題庫(kù)(含參考答案)
- 貴州省貴陽(yáng)市2023-2024學(xué)年高一上學(xué)期期末考試 物理 含解析
- 小學(xué)六年級(jí)數(shù)學(xué)計(jì)算題100道(含答案)
- 青島版五四制五下數(shù)學(xué)課程綱要
- 失去爆破和不完全爆破
- 稻盛和夫的哲學(xué)與阿米巴
- 冷庫(kù)驗(yàn)證方案
- 行政事業(yè)單位會(huì)計(jì)實(shí)操
評(píng)論
0/150
提交評(píng)論