版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
課程
:計算機(jī)技術(shù)基礎(chǔ)——VisualBasic
程序設(shè)計學(xué)時:56/18上課:38學(xué)時,共19次,一周2次實驗:18學(xué)時,共9次上機(jī),一周1次教師:郵箱:QQ
:學(xué)習(xí)內(nèi)容:第1章——第8章學(xué)習(xí)方法:用功記住理論知識真正理解、勤思考自己動手編程、做題上課專心聽講、上機(jī)認(rèn)真完成實驗題目上機(jī)考試:選擇題、填空題、編程題里仁學(xué)院司亞利第1章VisualBasic程序設(shè)計概述VisualBasic程序設(shè)計1、什么是VisualBasic?Basic:BeginnersAll-PurposeSymbolicInstructionCode,
初學(xué)者通用指令代碼語言。Visual:原意是指“可視的”或“看得見的”,是為用戶開發(fā)圖形用戶界面(GUI)提供的一種方法。2、VB是微軟公司開發(fā),于1991年推出第一個版本VB1.0。本課程使用VisualBasic6.0
:標(biāo)準(zhǔn)版;專業(yè)版;企業(yè)版。1.1VB簡介3、VB的特點
VisualBasic是
Microsoft公司開發(fā)的,一種可視化的、面向?qū)ο蠛筒捎檬录?qū)動方式的結(jié)構(gòu)化高級程序設(shè)計語言,可用于開發(fā)Windows環(huán)境下的各類應(yīng)用程序。(P1下)4、VB的功能強(qiáng)大1.1VB簡介1、VisualBasic6.0的運行環(huán)境2、VisualBasic6.0的安裝3、VisualBasic6.0的啟動4、VisualBasic6.0的退出1.2VB6.0的啟動
VB應(yīng)用程序設(shè)計是在一個集成開發(fā)環(huán)境(IDE,IntegratedDevelopingEnvironment)中完成的。集成開發(fā)環(huán)境是指將程序的設(shè)計、編輯、修改、運行、調(diào)試查錯等各種功能一體化的開發(fā)環(huán)境。(P2下)
1、主窗口
2、其他窗口窗體設(shè)計器窗口屬性窗口工程資源管理器窗口代碼窗口(P4第一段和圖1-2-3)1.2VB6.0的基本界面窗體布局窗口立即窗口工具箱窗口菜單欄工具欄標(biāo)題欄工具箱工程管理窗口屬性窗口布局窗口立即窗口窗體設(shè)計窗口1.2VB6.0的基本界面各窗口知識要點:1、標(biāo)題欄中顯示的VB工作模式,3種:設(shè)計模式:design可以設(shè)計界面,可以編寫代碼。運行模式:run不可設(shè)計界面,不可編寫代碼。中斷模式:break程序運行暫時中斷。不可設(shè)計界面,可編寫代碼。按F5/單擊“繼續(xù)”、單擊“結(jié)束”。2、窗體窗口:最多255個;網(wǎng)格點;窗體名(name)、窗體文件名(保存時)、窗體標(biāo)題欄名(caption)3者的區(qū)別
1.2VB6.0的基本界面3、工具箱:(P5)
包含用來構(gòu)造應(yīng)用程序界面的各種控件。含有20個標(biāo)準(zhǔn)控件;增添新控件:右擊工具箱→“部件”→選擇控件→“確定”4、立即窗口:(P25-26)2個作用
運行命令或函數(shù);10*26+10mod4*2+1
調(diào)試程序,輸出中間運行結(jié)果。1.2VB6.0的基本界面5、工程資源管理器窗口:以樹型結(jié)構(gòu)列出應(yīng)用程序所包含的文件。
工程管理功能:右擊添加文件、刪除文件等;
雙擊查看相應(yīng)對象;1.2VB6.0的基本界面工程資源管理器窗口的文件分為6類:(P25)文件類型擴(kuò)展名縮寫由來窗體文件.frmform標(biāo)準(zhǔn)模塊文件.basbasic類模塊文件.clsclass資源文件.resresource工程文件.vbpVBproject工程組文件.vbgVBprojectgroup1.2VB6.0的基本界面一個VB應(yīng)用程序中各主要文件的結(jié)構(gòu)關(guān)系如下圖:1.2VB6.0的基本界面1.3VB應(yīng)用程序設(shè)計初步步驟:1、分析程序問題。已知條件、要實現(xiàn)什么,在草紙上畫出你設(shè)計的界面,簡單寫寫代碼。2、創(chuàng)建工程。3、在窗體上放置、調(diào)整控件,設(shè)置窗體和控件屬性。(P8-9)4、編寫程序代碼,調(diào)試程序。(P10)5、保存窗體、工程等文件。(P10)6、VB應(yīng)用程序的執(zhí)行,2種方式:(P11)
解釋方式:“啟動”;F5
編譯方式:生成可執(zhí)行(.exe)文件,文件→生成工程.exe
舉例演示:例1-3-1(P7)1.4
面向?qū)ο蟮某绦蛟O(shè)計面向?qū)ο蟮某绦蛟O(shè)計(objectorientedprogramming):
是一種以對象為基礎(chǔ)、以事件驅(qū)動對象對事件進(jìn)行處理的程序設(shè)計技術(shù)。(P13第二段)1.4VB中的對象和類(P13)1、對象:具有屬性和行為的實體。
是數(shù)據(jù)和代碼的集合。例:世上存在的任何事物每個窗體和控件2、類:是具有相同性質(zhì)的對象的集合,也是創(chuàng)建對象實例的模板,而對象則是類的一個實例。屬于同一類的所有對象具有同一組屬性、方法與事件,只是其屬性值不同,對事件的響應(yīng)不同。例:球按鈕控件
1.4VB中的事件同一事件,對不同的對象,會引發(fā)不同的反應(yīng):教師_鈴聲()
講課EndSub學(xué)生_鈴聲()
聽講EndSub其他人員_鈴聲()
可不予響應(yīng)EndSub1.4
對象的三要素(P13下)
對象由3方面組成:屬性、方法、事件每個對象有自己的特征(屬性)、行為(方法)和發(fā)生在該對象上的活動(事件)。例:人具有身高等特征,具有行走、說話等行為,外界作用在人對象上的各種活動,如下雨等。1.4VB中對象的三要素1、屬性:對象的特征,描述對象的數(shù)據(jù)。設(shè)置:屬性窗口,在代碼窗口進(jìn)行語句設(shè)置。(P18)
對象名.屬性名稱=屬性值Label1.Caption="123"2、方法:特定對象能執(zhí)行的動作或功能,已設(shè)計好的特殊程序,要會用。(P21)
格式:對象名.方法名[參數(shù)]Form2.ShowForm1.Print"VB"
Form1.Cls
Form1.Circle(2300,1600),8003、事件:能被對象識別和響應(yīng)的動作。(P20)
事件在代碼窗口中列出,選擇。格式:對象名_事件名(參數(shù)) Label1_Click()1.4VB中的事件事件過程:響應(yīng)事件后執(zhí)行的操作通過一段程序來實現(xiàn),這樣的程序叫事件過程。
Sub對象名_事件名(參數(shù))… →
事件過程代碼
EndSub事件驅(qū)動機(jī)制:(P20)
在沒有事件發(fā)生時,VB應(yīng)用程序處于等待狀態(tài)。當(dāng)一個事件發(fā)生時,程序會執(zhí)行相應(yīng)的事件過程代碼。處理完后,又等待下一個事件的發(fā)生。事件發(fā)生的順序基本上決定了程序代碼的實行順序。
1.4
例題對編程步驟、屬性、方法、事件的應(yīng)用練習(xí):例1-4-1P231.4
學(xué)習(xí)界面設(shè)計的4個控件對象(P14-18)1、窗體2、命令按鈕3、標(biāo)簽4、文本框里仁學(xué)院司亞利
第2章VB語言基礎(chǔ)VisualBasic程序設(shè)計基礎(chǔ)寫代碼部分:sub代碼段的開頭
dim…定義變量(2.1、2.2)
…功能代碼語句(2.3、2.4、第3、5、6章)endsub代碼段的結(jié)尾
編程時使用的VB字符集(必須是英文輸入法下輸入的),3類,共89個字符:字母:A-Za-z數(shù)字:0-9專用字符:27個
%&!#$@+-*/\^><=()'",;:.?_空格符回車鍵2.1VB語言字符集2.1VB的數(shù)據(jù)類型(P29)在實際編程時,要會恰當(dāng)選擇應(yīng)用truefalse真假2.2
常量1、直接常量:代碼中直接給出的數(shù)據(jù)。(P30)數(shù)值常量:s=3.1415926*r*r
前加&O&H表示進(jìn)制;后加&表示長整型字符串常量:textbox1.text="VB程序設(shè)計2010。"邏輯常量:Label1.Visible=tureCommand.Enabled=false
(P32)日期常量:Label1.Caption=#2/23/2010#2、符號常量:用標(biāo)識符代表常量值。(P38)
定義格式:const常量名[As類型]=表達(dá)式
constpi=3.1415926s=pi*r*r:c=2*pi*rVB內(nèi)部定義的符號常量:對象瀏覽器2.2
變量(P32)1、變量:值可改變的量,在內(nèi)存中存儲,通過變量名標(biāo)識。2、變量的2種形式:內(nèi)存變量、屬性變量。3、變量的命名規(guī)則:(P32)要求會辨別合法/非法變量名例:以下合法的VB變量名是()A)ForNextB)ConstC)9abcD)a#x2.2
定義變量1、顯式聲明變量,即先定義再使用。
2種定義形式:<public|private|dim|static>變量名[As數(shù)據(jù)類型](P33)
[dim]變量名類型聲明符(P36下)
給變量賦值(使用):[Let]<變量名>=<表達(dá)式>例:dimaasinteger[dim]a%聲明
a=10a=7使用說明:4點(P33)2、隱式聲明變量:沒有聲明,直接使用。例:a="
12"
這種方法是不好的習(xí)慣,要求變量要用顯式聲明。3、強(qiáng)制顯式聲明:加入語句optionexplicit選項→編輯器2.2
變量1、字符串型變量:(P34下)
變長字符串變量:dim變量名asstring
或
dim變量名$
定長字符串變量:dim變量名asstring*字符串長度
字符串長度表示的是字符的個數(shù),空格填充,截去超出部分。例:dimaasstringdimaasstring*10a=textbox1.texta="hello北京"2、自定義數(shù)據(jù)類型
定義:(P35下)
使用:(P36)2.2
變量3、變量的作用域(P33)
名稱作用域聲明位置使用關(guān)鍵字局部變量過程過程中Dim或Static模塊變量窗體模塊或標(biāo)準(zhǔn)模塊模塊的聲明部分Dim或Private全局變量整個應(yīng)用程序標(biāo)準(zhǔn)模塊的聲明部分Public2.3
運算符1、算術(shù)運算符:(P39表2-3-1)2、字符串運算符:(P40)&:把兩邊看作字符型,連接
+:分情況3、關(guān)系運算符:(P41表)結(jié)果:真true-1假false0
都是數(shù)值型,按數(shù)值大小比較。都是字符型,按ASCII碼從左到右逐個比較。ASCII碼值大小關(guān)系:空格<數(shù)字<大寫字母<小寫字母<漢字4、邏輯運算符:(P42表)
與、或、非例:print10and62.3
表達(dá)式常用的內(nèi)部函數(shù)1、表達(dá)式:用運算符連接常量、變量、函數(shù)、括號等的式子。2、要正確地把數(shù)學(xué)式子寫成VB的表達(dá)式:(P43例子)
寫成一行;乘號不能??;適當(dāng)加括號保證優(yōu)先級。3、運算符的優(yōu)先級別:表2-3-4P434、常用的內(nèi)部函數(shù):P46-53,盡量多掌握函數(shù)。2.3
表達(dá)式常用的內(nèi)部函數(shù)注意:1、三角函數(shù):弧度和角度的轉(zhuǎn)換求30度的正弦值:sin(30*3.14/180)2、取整函數(shù):int(x)fix(x)round(x)、round(x,y):可以四舍五入int(-11.4)fix(-11.4)round(1.512)round(1.512,2)3、隨機(jī)數(shù)函數(shù):(P46)
rnd(x)產(chǎn)生[0,1)內(nèi)的Single類型數(shù)據(jù)如生成[m,n]區(qū)間的隨機(jī)整數(shù),使用表達(dá)式
Int(m+Rnd*(n-m+1))隨機(jī)產(chǎn)生28~66之間的整數(shù)內(nèi)容簡單,自己細(xì)看每一個運算,優(yōu)先級,常用函數(shù)。選擇題,要能正確運算出表達(dá)式的結(jié)果。
學(xué)習(xí)要求2.4VB的編碼規(guī)則(P52)1、不區(qū)分大小寫。2、續(xù)行:行尾加下劃線_3、多條語句寫在一行:用冒號隔開4、注釋代碼后:用’開頭單獨行:用’或rem開頭
“設(shè)置注釋塊”按鈕1、分析問題:
(1)給出的條件(已知)(2)輸出內(nèi)容(求)(3)問題中用到的變量或常量等內(nèi)容
(4)如何解題(思考用什么VB代碼實現(xiàn))2、把上面每一部分都寫成相應(yīng)的代碼塊3、把代碼塊放到到一起4、檢查,啟動運行
寫代碼部分----編程思想順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)
第3章程序流程控制VisualBasic程序設(shè)計基礎(chǔ)1、在順序結(jié)構(gòu)中,語句將按照出現(xiàn)的順序逐條執(zhí)行,從上到下。2、包含3類語句:數(shù)據(jù)輸入賦值語句數(shù)據(jù)輸出
3.1
順序結(jié)構(gòu)程序設(shè)計定義變量輸出計算輸入/賦值1、TextBox文本框控件(P64):返回字符串型字符型轉(zhuǎn)換成數(shù)值型:val(string)函數(shù)數(shù)值型轉(zhuǎn)換成字符型:str(x)函數(shù)函數(shù)名(參數(shù)1,參數(shù)2,……)→得到一個結(jié)果dimaasinteger,basinteger,casinteger,dasstringa=sqr(9):b=val("vb6good"):c=val("35yes42")d=str(-36.8):printa,b,c,d
書上例3-1-7、3-1-83.1
數(shù)據(jù)輸入2、InputBox()輸入框函數(shù)(P66)
可產(chǎn)生一個對話框,作為輸入數(shù)據(jù)的界面,等待用戶輸入數(shù)據(jù),并返回所輸入的內(nèi)容,返回字符串型。變量名=InputBox(提示信息[,標(biāo)題][,默認(rèn)值][,xpos,ypos])
顯示位置3.1
數(shù)據(jù)輸入1、提示內(nèi)容換行:加入回車符chr(13)、換行符chr(10)2、點擊“確定”,返回輸入的內(nèi)容,字符串型。點擊“取消”,返回空字符串?;騝hr(10)3、a=inputbox("您好!"&chr(13)&_"請輸入系統(tǒng)口令:",_"口令輸入","*",1000,500)3.1
InputBox()函數(shù)說明例:單擊窗體時,使用inputbox()函數(shù)/文本框輸入名字和年齡,在窗體上輸出顯示。privatesubform_click()dimnameasstring,ageasintegername=inputbox("請輸入您的名字")age=val(inputbox("請輸入您的年齡","輸入"))printname,ageendsub
name=text1.text:age=val(text2.text)3.1
數(shù)據(jù)輸入
當(dāng)一個對象具有焦點時,它可以接收用戶的輸入。1、接收焦點前提:Enabled和Visible屬性為True2、設(shè)置焦點
·在運行時單擊對象·運行時用快捷鍵選擇對象
·在程序代碼中使用SetFocus方法:例3-1-8中,激活窗體時,焦點位于文本框中。3、涉及到焦點的2個事件:當(dāng)對象得到焦點時,產(chǎn)生GotFocus事件;而當(dāng)對象失去焦點時,將產(chǎn)生LostFocus事件。4、Tab順序:是按Tab時焦點在各個控件間移動的順序。
用TabIndex屬性設(shè)置不參與的,TabStop屬性設(shè)為False5、卸載對象語句:unload對象名結(jié)束語句:end
3.1
焦點和Tab順序(P67)1、格式:
[let]變量名=表達(dá)式
賦值號
[let]對象名.屬性名=表達(dá)式2、含義:(1)計算賦值號右邊表達(dá)式的值;(2)將此值賦給賦值號左邊的標(biāo)識符代表的變量或控件屬性,作為它的當(dāng)前值;x=y(3)該值一直保存到下一次再對它賦值為止。(4)分清賦值號、關(guān)系運算符的等號。A=5=6(5)賦值號兩邊的數(shù)據(jù)類型通常要一致,或轉(zhuǎn)換成左側(cè)的類型。例3-1-1(P56)
。例3-1-2:學(xué)會實現(xiàn)交換的方法。3.1
賦值語句let(P55)類型轉(zhuǎn)換例子:單擊窗體,代碼執(zhí)行結(jié)果是什么?privatesubform_click()dimxasboolean,aasintegerx=-2a=trueprintx,aendsub邏輯數(shù)值型:true-1false0數(shù)值型邏輯:非0true0falsetrue-13.1
賦值語句交換例:書上是交換兩個內(nèi)容,如何交換兩個數(shù)值?privatesubcommand1_click()dimmasdouble,nasdouble,tasdoublem=val(text1.text)n=val(text2.text)t=mm=nn=ttext1.text=mtext2.text=nendsub3.1
賦值語句1、Label標(biāo)簽控件顯示文本(P58)
例3-1-3、3-1-42、TextBox控件顯示文本3、Print方法輸出(P60)
4、format()函數(shù)設(shè)置輸出格式5、msgbox函數(shù)和過程顯示提示信息(P62)3.1
數(shù)據(jù)輸出作用:在對象上輸出信息格式:[對象.]Print[表達(dá)式列表][;|,]對象:窗體、圖片框、立即窗口或打印機(jī)(Pinter),
省略對象在窗體上輸出。
print"VB"form1.print"VB"picture.print"VB"debug.print"VB"printer.print"VB"print表示輸出一個空行。3.1
Print方法(P60)輸出多個表達(dá)式,各項之間可以用;,隔開:;(分號):緊湊格式,光標(biāo)定位上一個顯示的字符后。,(逗號):標(biāo)準(zhǔn)格式,光標(biāo)定位在下一個打印區(qū)的開始位置處。每個打印區(qū)占14列。例3-1-5(P61)Spc(n)函數(shù):插入n個空格,跳過n列。Tab(n)函數(shù):指定輸出的起始列號,第n列。printtab(5);"計算機(jī)";tab(15);"世界"print"計算機(jī)";spc(5);"世界"3.1
Print方法2個作用:1、在對話框中顯示信息:過程使用形式:msgbox"提示信息",對話框樣式,標(biāo)題2、等待用戶單擊按鈕,返回一個整數(shù):函數(shù)使用形式:變量=msgbox("提示信息",對話框樣式,標(biāo)題)
可使用3組VB常量:按鈕+圖標(biāo)+默認(rèn)按鈕例:msgbox"密碼不正確"
,,"登錄"a=msgbox("確定要刪除信息么?"
,3,"確認(rèn)信息")3.1
msgbox函數(shù)和過程顯示提示信息(P62)3.1
順序結(jié)構(gòu)程序設(shè)計例:msgbox的使用舉例privatesubcommand1_click()dimrasintegermsgbox"最簡單的msgbox"r=msgbox("復(fù)雜的msgbox",vbYesNo+vbCritical+vbDefaultButton2,_"你看到了什么?")
print"你按的值為:";rendsub4+16+2563.1
msgbox函數(shù)和過程顯示提示信息例1:在銀行存款,計算本利和的公式為:其中p為存款數(shù),n為年數(shù),r為年利率,s為n年后本金和利息之和。設(shè)p=1000,n=3,r=0.02,編程計算本利和,輸出結(jié)果要求保留小數(shù)點后兩位,四舍五入。例2:用戶輸入三角形的三邊,計算輸出三角形的面積。a,b,c為三邊之長。3.1
順序結(jié)構(gòu)程序設(shè)計例題
選擇結(jié)構(gòu)的作用是使程序依照條件而走不同的支路。程序往往根據(jù)需要而選擇合適的語句結(jié)構(gòu)。VB支持的選擇結(jié)構(gòu)有:
If...ThenIf...Then...ElseIf...Then...ElseifSelectCaseiif函數(shù)3.2
選擇結(jié)構(gòu)程序設(shè)計用If...Then結(jié)構(gòu)可以有條件地執(zhí)行其結(jié)構(gòu)內(nèi)的語句塊。格式一:
If條件表達(dá)式Then語句塊格式二:
If條件表達(dá)式Then
語句塊
EndIf說明:x>yxory表達(dá)式:關(guān)系表達(dá)式、邏輯表達(dá)式,算術(shù)表達(dá)式。表達(dá)式值按非零為True,零為False進(jìn)行判斷。格式一只能是一句語句或語句間用冒號分隔,而且必須在一行上書寫。3.2
選擇結(jié)構(gòu)if...then
單分支結(jié)構(gòu)3.2
選擇結(jié)構(gòu)If...Then
例3-2-1(P69):輸出a,b,c三者之中最大數(shù)。例:已知兩個數(shù)x和y,比較它們的大小,使得x大于y。
Ifx<yThent=xx=yy=tEndIf或Ifx<yThent=x:x=y:y=t3.2
選擇結(jié)構(gòu)If...Then
學(xué)會交換兩個數(shù)可以使用If...Then...Else語句建立兩個分支流程,并根據(jù)條件選擇其中一個分支。語法結(jié)構(gòu):If條件Then語句塊1Else語句塊2
If條件Then
語句塊1Else
語句塊2EndIf
例:用戶輸入一個整數(shù),判斷并輸出是奇數(shù)/偶數(shù)。3.2
選擇結(jié)構(gòu)If...Then...Else雙分支結(jié)構(gòu)3.2
選擇結(jié)構(gòu)If...Then...Else3.2
選擇結(jié)構(gòu)If...Then...Else例:計算分段函數(shù)Ifx<>0Then
雙分支y=sin(x)+sqr(x*x+1)結(jié)構(gòu)實現(xiàn)Elsey=cos(x)-x^3+3*xEndIf單分支
y=cos(x)-x^3+3*x結(jié)構(gòu)實現(xiàn)Ifx<>0Theny=sin(x)+sqrt(x*x+1)例3-2-2(P69)例3-2-3(P72)建立多個分支流程,并根據(jù)條件選擇其中一個分支。語法結(jié)構(gòu):
If條件1Then
語句塊1ElseIf條件2Then
語句塊2...[Else
語句塊n]EndIf
3.2
選擇結(jié)構(gòu)If...Then...Elseif多分支結(jié)構(gòu)不管有幾個分支,依次判斷,當(dāng)某條件滿足,執(zhí)行相應(yīng)的語句,其余分支不再執(zhí)行;若條件都不滿足,且有Else子句,則執(zhí)行該語句塊,否則什么也不執(zhí)行。ElseIf不能寫成ElseIf例:已知變量ch中存放了一個字符,判斷該字符是字母字符、數(shù)字字符還是其他字符。
IfUCase(ch)>="A"AndUCase(ch)<="Z"ThenMsgBoxch+"是字母字符"'考慮大小寫字母
ElseIfch>="0"Andch<="9"Then'數(shù)字字符
MsgBoxch+"是數(shù)字字符"Else'除上述字符以外的字符
MsgBoxch+"是其他字符"EndIf3.2
選擇結(jié)構(gòu)If...Then...Elseif例:求多段函數(shù)值3.2
選擇結(jié)構(gòu)If...Then...Elseif
x2-1x<0x0≤x<10y=x2+110≤x≤20x3+x+120<xdimxassingle,yassinglex=val(inputbox("輸入x的值:"))ifx<0theny=x^2-1elseifx<10theny=xelseifx<=20theny=x^2+1elsey=x^3+x+1endifprint"y=";y例3-2-4(P74)例3-2-5(P75)
SelectCase是用于實現(xiàn)多重選擇,其作用與If...Then...Else語句類似,但主要用于只有一個條件,并且條件值為離散值的分支選擇。SelectCase測試表達(dá)式
Case表達(dá)式1
語句塊1Case表達(dá)式2
語句塊2……CaseElse
語句塊nEndSelect3.2
選擇結(jié)構(gòu)SelectCase
情況語句表達(dá)式與測試表達(dá)式的類型必須相同,是下面4種形式之一:一組用逗號分隔的枚舉值:case2,4,6,11表達(dá)式1To表達(dá)式2:case60To100Is比較運算符表達(dá)式:caseIs<60混合形式:case2,1,4to6,is>323.2
選擇結(jié)構(gòu)SelectCase
例:已知變量ch中存放了一個字符,判斷該字符是字母字符、數(shù)字字符還是其他字符。改用SelectCase語句實現(xiàn):SelectCasech Case"a"To"z","A"To"Z" MsgBoxch+"是字母字符" Case"0"To"9" MsgBoxch+"是數(shù)字字符" CaseElse MsgBoxch+"是其他字符"EndSelect3.2
選擇結(jié)構(gòu)SelectCase
例:判斷坐標(biāo)點(x,y),落在哪個象限。3.2
選擇結(jié)構(gòu)SelectCase
代碼一 Ifx>0Andy>0ThenMsgBox("在第一象限")ElseIfx<0Andy>0ThenMsgBox("在第二象限") ElseIfx<0Andy<0ThenMsgBox("在第三象限") ElseIfx>0Andy<0ThenMsgBox("在第四象限") EndIf
代碼二SelectCasex,yCasex>0Andy>0MsgBox(“在第一象限”)Casex<0Andy>0MsgBox(“在第二象限”)Casex<0Andy<0MsgBox(“在第三象限”)Casex>0Andy<0MsgBox(“在第四象限”)EndSelect代碼二錯誤:1.SelectCase后不能出現(xiàn)多個變量2.Case后不能出現(xiàn)變量及有關(guān)運算符IIf(表達(dá)式,表達(dá)式為真時的函數(shù)值,表達(dá)式為假時的函數(shù)值)IIf函數(shù)是If…Then…Else結(jié)構(gòu)的簡潔表示例:將x,y中大的數(shù),放入Tmax變量中:
Tmax=IIf(x>y,x,y)該語句與如下語句等價:
Ifx>yThenTmax=xElseTmax=y
3.2
選擇結(jié)構(gòu)IIf函數(shù)If表達(dá)式1Then
…
If表達(dá)式2Then…EndIf
…EndIf注意:每個結(jié)構(gòu)塊的清楚劃分,首尾對應(yīng);每個結(jié)構(gòu)塊不能交叉。3.2
條件語句的嵌套例:輸入三個數(shù),按從大到小的順序輸出Ifx<yThent=x:x=y:y=tIfy<zThent=y:y=z:z=tIfx<yThent=x:x=y:y=tEndIfEndIfprintx,y,z3.2
條件語句的嵌套解題思想:先保證x>y,再拿z和y比較,保證y>z,至此z最小,最后比較x和y,保證x>y。
例:不斷單擊窗體,會有什么結(jié)果?privatesubform_click()
dimaasintegera=a+1ifa=1thenform1.caption="第一次單擊窗體"
elseifa=2thenform1.caption="第二次單擊窗體"
elseifa=3thenform1.caption="第三次單擊窗體"
a=0endifendsub3.2
選擇結(jié)構(gòu)staticaasinteger
靜態(tài)變量考慮用selectcase編寫本程序例:根據(jù)輸入的百分制成績Score,轉(zhuǎn)換成優(yōu)、良、中、及格、不及格5個等級,并在窗體上顯示出來。等級劃分標(biāo)準(zhǔn)如下:優(yōu)Score>=90
良80<=Score<90等級=中70<=Score<80
及格60<=Score<70
不及格Score<603.2
選擇結(jié)構(gòu)作業(yè)5種方法
引例:輸出1~100的整數(shù)計算機(jī)最擅長的功能之一就是按規(guī)定的條件,重復(fù)執(zhí)行某些操作。循環(huán)結(jié)構(gòu)有:
Do…Loop語句:控制循環(huán)次數(shù)未知的情況
For…Next語句:控制循環(huán)次數(shù)預(yù)知的情況3.3
循環(huán)結(jié)構(gòu)(P82)
用于控制循環(huán)次數(shù)未知的循環(huán)結(jié)構(gòu)。While當(dāng)型循環(huán)/Until直到循環(huán)形式1:Do[While|Until<條件>
]
語句塊
[ExitDo]Loop形式1為先判斷后執(zhí)行,有可能一次也不執(zhí)行;形式2為先執(zhí)行后判斷,至少執(zhí)行一次。P81例3-3-1到例3-3-4形式2:Do
語句塊
[ExitDo]Loop[While|Until<條件>]3.3
Do…Loop循環(huán)語句【例3-3-1】計算1+2+3+…+100。當(dāng)型循環(huán)PrivateSubForm_Load()DimsAsInteger,nAsIntegerShows=0:n=1DoWhile
n<=100s=s+nn=n+1LoopPrint"1+2+3+…100=";sEndSub
3.3
Do…Loop循環(huán)語句賦初值循環(huán)條件循環(huán)體條件修改【例3-3-1】計算1+2+3+…+100。當(dāng)型循環(huán)PrivateSubForm_Load()DimsAsInteger,nAsIntegerShows=0:n=1DoWhile
n<=100s=s+nn=n+1LoopPrint"1+2+3+…100=";sEndSub
3.3
Do…Loop循環(huán)語句直到循環(huán)DoUntiln>100s=s+nn=n+1LoopDos=s+nn=n+1
Ifn>100ThenExitDoLoop3.3
Do…Loop循環(huán)語句【例3-3-4】輸入兩個正整數(shù),求它們的最大公約數(shù)?!拜氜D(zhuǎn)相除法”:(1)以大數(shù)x作被除數(shù),小數(shù)y作除數(shù),相除后的余數(shù)為r。(2)若r≠0,則將x←y,y←r,繼續(xù)x與y相除得到新的r,若仍有r≠0,則重復(fù)此過程,直到r=0為止。最后的除數(shù)y就是最大公約數(shù)。最小公倍數(shù)=兩個數(shù)相乘/最大公約數(shù)3.3
Do…Loop循環(huán)語句PrivateSubCommand1_Click()x=Val(Text1.Text)y=Val(Text2.Text)Ifx*y=0ThenMsgBox"兩個數(shù)都不能為0!",,"錯誤!"ExitSubEndIfIfx<yThent=x:x=y:y=tDo r=xMody Ifr=0ThenExitDo x=y:y=rLoopLabel3.Caption="兩數(shù)的最大公約數(shù)是:"&Trim(Str(y))EndSubDo r=xMody x=y:y=rLoopwhiler<>03.3
Do…Loop循環(huán)語句For循環(huán)語句用于控制循環(huán)次數(shù)預(yù)知的循環(huán)結(jié)構(gòu)。For循環(huán)變量=初值To終值
[Step步長]
循環(huán)體Next循環(huán)變量注意:(P85)>0初值<終值=1時,可省略<0初值>終值=0死循環(huán)步長3.3
For…Next循環(huán)語句循環(huán)次數(shù)=int((終值-初值)/步長+1)3.3
For…Next循環(huán)語句3.3
For…Next循環(huán)P85例3-3-5到例3-3-7【例3-3-5】求n?。╪為自然數(shù))PrivateSubForm_Activate()DimnAsInteger,iAsIntegerDimkAsLong'防止乘積結(jié)果溢出,將k定義為長整型或?qū)嵭?/p>
n=InputBox("請輸入n","求n!")
k=1賦初值
Fori=1Ton循環(huán)條件
k=k*i循環(huán)體
Nexti條件修改
Printn;"!=";kEndSub其中For循環(huán)語句也可以寫成:k=1Fori=nTo1Step–1k=k*iNexti
【例3-3-5】求,直到第50項PrivateSubForm_Click()DimiAsInteger,tAsDouble,sAsSinglet=1:s=0Fori=1To50t=t*is=s+1/tNextPrint"s=";sEndSub3.3
For…Next循環(huán)P85例3-3-5到例3-3-7求自然對數(shù)e的近似值:Do
循環(huán)體沒有條件的改變,這種為死循環(huán)Loop注意:要防止死循環(huán),一般在循環(huán)體外設(shè)置循環(huán)變量,在循環(huán)體內(nèi)用語句不斷更改循環(huán)變量的值,從而有機(jī)會使循環(huán)條件成為真或假,退出循環(huán)。若出現(xiàn)死循環(huán),可以使用Ctrl+Break鍵結(jié)束程序的執(zhí)行。有時根據(jù)需要,要人為設(shè)置死循環(huán)。
3.3
死循環(huán)
1.Exit語句VB中有多種形式的Exit語句,用于退出某種控制結(jié)構(gòu)的執(zhí)行。Exit的形式如下:
ExitFor、ExitDo、
ExitSub、ExitFunction2.End語句獨立的End語句用于結(jié)束一個程序的運行,它可以放在任何事件過程中。循環(huán)的強(qiáng)制退出3.3
退出和結(jié)束語句
過程的強(qiáng)制退出在一個循環(huán)體內(nèi)又包含了一個完整的循環(huán)結(jié)構(gòu)稱為循環(huán)的嵌套。循環(huán)嵌套對For循環(huán)語句和Do…Loop語句均適用。
fori=1to5…
forj=1toi…fork=1to7…nextk…nextj…nexti3.3
循環(huán)的嵌套P88例3-3-9到例3-3-11【例3-3-9】雙重循環(huán)舉例編寫窗體的激活事件,程序如下:PrivateSubForm_Activate()DimiAsInteger,jAsIntegerFori=1To3
Forj=4To5Printi,jNextjNextiEndSub3.3
循環(huán)的嵌套【例3-3-10】設(shè)計一個窗體打印乘法九九表。PrivateSubForm_Click()FontSize=10PrintTab(31);"乘法九九表"PrintTab(30);"------------"Fori=1To9Forj=1ToiPrintTab((j-1)*8);i&"*"&j&"="&i*j;NextjPrint'每行之后產(chǎn)生一個換行NextiEndSub3.3
循環(huán)的嵌套【例3-3-11】在窗體上輸出如圖3-3-7的圖形。PrivateSubForm_Click()ClsPrint:Print:PrintFori=1To8'輸出8行
PrintTab(20-i);'控制每行的起始位置
Forj=1To2*i-1'每行輸出2*i-1個“*”
Print"*";NextPrint'換行NextEndSub3.3
循環(huán)的嵌套例:輸出1~20的整數(shù)。用5種方法實現(xiàn)。2個do…while2個直到循環(huán)do…until1個for…next3.3
循環(huán)的例子dimiasintegeri=1dowhilei<=20printii=i+1loopdoprintii=i+1loopwhilei<=20doprintii=i+1loopuntili>20dimiasintegeri=1dountili>20printii=i+1loopdimiasintegerfori=1to20printinext例:百元買百雞。假定小雞每只5角,公雞每只2元,母雞每只3元,編程求解購雞方案。分析:(1)設(shè)母雞、公雞、小雞各為x、y、z,列出方程為:
x+y+z=100 3x+2y+0.5z=100三個未知數(shù),兩個方程,此題求若干個整數(shù)解。(2)計算機(jī)求解此類問題,采用試湊法(也稱窮舉法)來實現(xiàn),即將可能出現(xiàn)的各種情況一一羅列測試,判斷是否滿足條件,采用循環(huán)結(jié)構(gòu)來實現(xiàn)。3.3
循環(huán)的綜合應(yīng)用-試湊法例:求自然對數(shù)e的近似值,其誤差小于0.00001。近似公式
分析:本例涉及到程序設(shè)計中兩個重要運算:累加和連乘i!。累加是在原有和的基礎(chǔ)上再加一個數(shù);連乘則是在原有積的基礎(chǔ)上再乘以一個數(shù)。該題先求i!,再將1/i!進(jìn)行累加,循環(huán)次數(shù)未知,可先設(shè)置一個次數(shù)很大的值,然后在循環(huán)體內(nèi)判斷是否到達(dá)精度,也可用DoWhile來實現(xiàn)。3.3
循環(huán)的綜合應(yīng)用-級數(shù)求和遞推(迭代)法基本思想是把一個復(fù)雜的計算過程轉(zhuǎn)化為簡單過程的多次重復(fù)。每次都從舊值的基礎(chǔ)上遞推出新值,并由新值代替舊值。例:小猴有桃若干,第一天吃掉一半多一個;第二天吃剩下桃子的一半多一個;以后每天都吃尚存桃子的一半多一個,到第7天只剩一個,問小猴原有桃多少?分析:用后一天的數(shù)推出前一天的桃子數(shù)。設(shè)第n天的桃子為xn,是前一天的桃子的二分之一減去1。迭代法類似的應(yīng)用求高次方程的近似根。
3.3
循環(huán)的綜合應(yīng)用-遞推法里仁學(xué)院司亞利第4章窗體和常用內(nèi)部控件VisualBasic程序設(shè)計基礎(chǔ)1、窗體2、常用內(nèi)部控件(標(biāo)準(zhǔn)控件)·按鈕·標(biāo)簽·文本框·框架·計時器·滾動條·單選按鈕·復(fù)選框·列表框·組合框·圖片·圖像·形狀·直線
第4章窗體和常用內(nèi)部控件1、窗體是放置VB提供的各種控件的一個容器,在窗體上設(shè)計和編輯應(yīng)用程序的界面。2、窗體的添加修改刪除工程→添加窗體窗體設(shè)計器工程資源管理器3、窗體文件:.frm4、組成:標(biāo)題欄、邊框、窗口區(qū)(P14圖1-4-1)5、網(wǎng)格:工具→選項→通用4.1
窗體1、窗體常用的屬性(P15表1-4-1)name、caption、height、width、left、top2、窗體的事件(P22表1-4-7)
Load、Activate、Click、DblClick、Unload3、窗體的方法
Show、Hide、Move、Print、Cls、Refresh4.1
窗體的屬性、事件和方法Screen.HeightForm1.TopForm1.HeightOk.HeightOk.TopOk.LeftOk.WidthForm1.WidthForm1.LeftScreen.Width位置:top和left屬性大小:width和height屬性1twip=1/20點=1/1440英寸=1/567cm4.1
窗體、控件的位置、大小
應(yīng)用程序有單窗體、多窗體情況,多窗體時:1、設(shè)置啟動窗體工程屬性→通用→啟動對象2、不使用啟動窗體以一個過程開始,選擇SubMain4.1
設(shè)置啟動窗體(P184)4.1SubMain
如果一應(yīng)用程序只包含1個窗體,則程序從執(zhí)行窗體Form的load過程開始。如果有多個窗體,則從設(shè)計階段建立的第1個窗體開始執(zhí)行。有時,希望在運行窗體程序之前先執(zhí)行一些操作,此時可以將這些操作寫在SubMain過程中。
Sub
Main是在模塊中定義的,如果1個程序中包含有多個模塊,只能允許有1個Sub
Main過程。Sub
Main過程中可以包含若干語句。但它與其他語言中的主程序不同,程序啟動時不會自動執(zhí)行。
可以指定程序從哪一個窗體或是SubMain開始執(zhí)行。
P135例4-7-2一個窗體對象從程序啟動到正常關(guān)閉必然觸發(fā)事件的順序:4.1
窗體的生命周期initalize(初始化)load(加載)resizeshow(改變窗體大小、可見狀態(tài))activate(窗體激活,此時處于等待其他事件發(fā)生的狀態(tài))執(zhí)行程序queryunload(查詢卸載)unload(卸載)例:單擊Form1的命令按鈕,使Form2顯示,F(xiàn)orm1隱藏;
Form2加載時,大小為屏幕大小的一半,居中顯示;單擊Form2,用Move方法,使Form2移動并定位在屏幕的左上角,同時Form2的長寬也縮小一倍。Form2.Width=Screen.Width/2Form2.Top=(Screen.Height-Form2.Height)/2Form2.Move0,0,Form2.Width/2,Form2.Height/24.1
窗體的實例按鈕控件:命令按鈕1、按鈕的屬性(P16表1-4-2)name、caption、height、width、left、top、enabled、visible2、按鈕的事件(P22表1-4-7)Click例:設(shè)置一個按鈕,要求:名稱為“sell”,距離窗體左邊500,上3000,按鈕寬3000,高2000,提示文本為
“銷售管理”,單擊按鈕窗體上顯示“按鈕例子!”,
而且按鈕可見但不可用。4.2按鈕Command1、標(biāo)簽:顯示文本(P17表1-4-3)2、文本框:輸入輸出文本(P18表1-4-4)例:設(shè)置一個標(biāo)簽,要求:名稱默認(rèn),可以根據(jù)里面的內(nèi)容自動調(diào)整大小。(autosize)
設(shè)置一個文本框,要求:有水平和垂直滾動條(前提是允許多行),但不允許用戶編輯。設(shè)置用戶輸入密碼文本框,要求顯示都是e。4.3文本控件:標(biāo)簽Label
文本框TextBox例:用戶輸入原始字符串,從中選取一些字符串,顯示在另一個文本框中,并指明起始位置和長度。Text2.text=text1.seltextlabel1.caption=text1.selstartlabel2.caption=text1.sellength4.3按鈕標(biāo)簽文本框綜合練習(xí)容器型的控件:框架、窗體、圖片框。添加框架主要屬性P93例4-1-14-1-24.4框架frame
(P93)1、單選按鈕optionbutton
屬性captionvalue→選中true;沒選中false;Click事件2、復(fù)選框checkbox
屬性:captionvalue→沒選中0;選中1;選中灰色2Click事件
上機(jī)實驗1、2,P99例4-2-24.5選擇控件:單選按鈕、復(fù)選框1、列表框(P106)屬性:list列表框中列出的各個選項ctrl+回車
listindex索引號,從0開始列表框中的第一項是:list2.list(0)="北京"listcount列表框中所有選項的個數(shù)
selected是否被選中truefalselist2.selected(3)=truetext當(dāng)前選中項目的文本內(nèi)容list2.textmultiselect:nonesimpleextendedstyle:標(biāo)準(zhǔn)樣式0;復(fù)選框樣式1sorted是否按字母順序排列truefalseColumns:0列表中顯示垂直滾動條
1~n列表中顯示水平滾動條,同時在列表的寬度范圍內(nèi)顯示1~n列數(shù)據(jù)4.6列表框listbox和組合框combobox
1、列表框Click事件AddItem方法list2.additem"abcd",2RemoveItem方法list2.removeitem3Clear方法list2.clearP108例4-3-14-3-24.6列表框listbox和組合框combobox
2、組合框(P113)
style、text屬性;AddItem、RemoveItem、Clear方法上機(jī)實驗44.6列表框listbox和組合框combobox
1、圖片框PictureBox(P116)
顯示圖形,又可作為其它控件的容器。
Picture、AutoSize、image屬性;loadpicture("");2、圖像框image(P119)
顯示靜態(tài)圖形Picture、stretch屬性上機(jī)實驗43、形狀控件shapeBackStyle:0—透明的1—不透明的
Shape:4、直線line4.7圖片框、圖像框、形狀、直線
沒有width和height屬性
interval屬性:時間間隔,單位毫秒
Timer事件例:綜合運用圖形和時鐘控件,實現(xiàn)運動的小紅球。P121例4-5-14-5-24.8計時器控件timer(P121)
水平滾動條、垂直滾動條(P126)屬性:max和min、smallchange和largechange、value事件:拖動滑塊觸發(fā)Scroll、改變value屬性觸發(fā)ChangeP127例4-6-14-6-24.9滾動條scrollbar
第5章數(shù)組VisualBasic程序設(shè)計基礎(chǔ)里仁學(xué)院司亞利輸入10個數(shù),輸出它們的平均值及大于平均值的那些數(shù)?
引例
輸入A當(dāng)N<=10N=N+1打印AveS=0:N=1S=S+AAve=S/10DimN%,S!,A!,Ave!ForN=1to10A=Val(InputBox(“EnterANumber”))S=S+ANextNAve=S/10PrintAve
引例
如果使用:A1,A2,A3,A4,A5,A6,A7,A11,A9,A10DimN%,S!,Ave!,A1!,A2!….,A10!‘實際程序是不能這樣寫
A1=Val(InputBox(“EnterA1Number”))A2=Val(InputBox(“EnterA2Number”))……S=A1+A2+A3+A4+A5+A6+A7+A11+A9+A10Ave=S/10IFA1>AveThenPrintA1IFA2>AveThenPrintA2……
思考換一種方法,用本章的數(shù)組實現(xiàn)。5.1
數(shù)組的概念1、一組類型相同數(shù)據(jù)的有序集合,用于保存大量的、邏輯上有聯(lián)系的數(shù)據(jù)。2、表現(xiàn)形式:a(i)a(i,j)a是變量名,數(shù)組名i,j是下標(biāo)
A(10)‘一維數(shù)組,對應(yīng)數(shù)學(xué)中的數(shù)列
X(2,10)‘二維數(shù)組,對應(yīng)數(shù)學(xué)中的矩陣
Y(1,2,5)‘三維數(shù)組3、數(shù)組的特點:數(shù)組中的元素類型一致。數(shù)組元素在內(nèi)存空間上是連續(xù)存放。數(shù)組元素的引用可通過下標(biāo)進(jìn)行,每個元素用下標(biāo)變量來區(qū)分;下標(biāo)變量代表元素在數(shù)組中的位置。數(shù)組在使用前必須要定義(聲明)。A(0)A(1)A(2)A(n)….
5.1
數(shù)組的概念4、VB中的數(shù)組分類:按數(shù)組的大小(元素個數(shù))是否可以改變來分為:
固定數(shù)組、動態(tài)(可變長)數(shù)組。按元素的數(shù)據(jù)類型可分為:數(shù)值型數(shù)組、字符串?dāng)?shù)組、邏輯數(shù)組、日期型數(shù)組、變體數(shù)組等、對象數(shù)組。
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《突發(fā)事件處理流程》課件
- 國企投資企業(yè)合同模板
- 小區(qū)路燈銷售合同范例
- 商混銷售合同范例
- 實驗檢測工程合同范例
- 工廠購銷蔬菜合同模板
- 產(chǎn)品模具銷售合同范例
- 度銷售代理合同范例
- 介紹居間合同模板
- 房產(chǎn)特價公寓出售合同范例
- 2023年室內(nèi)裝飾設(shè)計師(三級)理論考試復(fù)習(xí)題庫(含答案)
- 《裝在套子里的人》劇本演繹推理+課件++2023-2024學(xué)年統(tǒng)編版高中語文必修下冊
- 市政工程資料表格填寫范例樣本
- 新生兒輸血完整版本
- 慢性心力衰竭中醫(yī)診療專家共識
- 電腦耗材實施方案、供貨方案、售后服務(wù)方案
- 2024年深圳市地鐵集團(tuán)有限公司招聘筆試參考題庫附帶答案詳解
- (高清版)DZT 0432-2023 煤炭與煤層氣礦產(chǎn)綜合勘查規(guī)范
- 新能源汽車行業(yè)技術(shù)發(fā)展趨勢分析報告
- 《干部監(jiān)督有關(guān)知識》課件
- 擴(kuò)建辦公樓項目可行性研究報告
評論
0/150
提交評論