




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第1章 Visual basic概述一、VB是在Windows平臺下,用于開發(fā)和創(chuàng)立具有圖形用戶界面的應(yīng)用程序的工具.二、VB是面向?qū)ο蟮某绦蛟O(shè)計(jì)語言;工作方式為事件驅(qū)動/消息驅(qū)動.1 .對象對象是動作體的邏輯模型,是人們可限制的某種東西,應(yīng)用程序的每個窗體和窗體上的種種控件都是VB的對象2 .屬性屬性指對象的特性.3 .方法方法指對象可以進(jìn)行的動作或行為.4 .事件事件是指能被對象所識別的動作.5 .事件驅(qū)動只有在事件發(fā)生時程序才會運(yùn)行.6 .工程工程是應(yīng)用程序文件的集合,一個工程一般會包含以下文件,如表1l所示.表1 1應(yīng)用程序文件類型文件類型說明工程文件.vbp它是與該工程有美的全部文件
2、和對象的清單,該文件是必選項(xiàng)囪體文件.frm它包含事件過程,以及該窗體及窗體上的各個控件對象的屬性設(shè) 置以及相關(guān)的說明,該文件是必選項(xiàng)二進(jìn)制數(shù)據(jù)文件.frx當(dāng)窗體中含有二進(jìn)制屬性如圖片或圖標(biāo)時,該文件將自動產(chǎn)生標(biāo)準(zhǔn)模塊文件.bas它包含可以被任何窗體或?qū)ο笳{(diào)用的過程程序代碼,該文件是可選項(xiàng)類模塊文件. cls該文件是可選項(xiàng)包含ActiveX控件的文件.ocx該文件是可選項(xiàng)第2章創(chuàng)立用戶界面知識點(diǎn)概括1 .用戶界面用戶界面是應(yīng)用程序中最重要的局部,是程序與用戶進(jìn)行交互的橋梁,標(biāo)準(zhǔn)的Windows應(yīng)用程序界面都是由窗口、菜單條、各種按鈕、文本框、列表框等對象構(gòu)成的.2 .窗體窗體是包容用戶界面或?qū)?/p>
3、話框所需的各種控件對象的容器.在創(chuàng)立一個新的工程時,默認(rèn)的第一個窗體即為啟動窗體.3 .控件控件是與用戶進(jìn)行交互的可視化部件,向窗體上添加控件應(yīng)在窗體編輯器中進(jìn)行.4 .命令菜單命令菜單是應(yīng)用程序窗口的根本組成元素之一,它由菜單條、菜單、菜單項(xiàng)、子菜單、彈出式菜單組成,可以通過VB提供的菜單編輯器創(chuàng)立程序菜單.(1) 連字符(一)&5 .設(shè)計(jì)用戶界面的步驟(1) 確定窗體的大小和位置.(2) 根據(jù)程序的功能和要求,添加所需的控件.(3) 合理地分布控件的位置與大小.(4) 設(shè)置各個對象的屬性.6 .窗體及常用控件的常用屬性、事件、方法熟悉各對象的常用屬性、事件和方法,對于創(chuàng)立應(yīng)用程序有
4、著舉足輕重的作用,表21給出了窗體及常用控件的常用屬性、事件以及方法使用說明.表2 1窗體及常用控件的常用居住、事件以及方法一覽表對象名 稱說 明通用屬性Namer設(shè)置對象在程序代碼中的引用名Caption設(shè)置對象的標(biāo)題欄中或圖標(biāo)卜面的文本Font設(shè)置文本的字體、字型、字號等通用屬性left設(shè)置對象的左邊界距容器坐標(biāo)系縱軸的距離:Top設(shè)置對象的上邊界距容器坐標(biāo)系橫軸的距離Height設(shè)置對象的高度Width設(shè)置對象的寬度Enabled設(shè)置對象是否被激活Visible設(shè)置對象是否可見BackColor設(shè)置對象的背景色ForeColor設(shè)置對象的前景色I(xiàn)ndex設(shè)置控件在控件數(shù)組中的標(biāo)識號Tab
5、Infex設(shè)置窗體中的對象響應(yīng)Tab鍵的順序TabStop設(shè)置用戶是否可以使用 Tab鍵來選定對象Style設(shè)置控件的外觀Boderstyle設(shè)置窗體的邊框風(fēng)格窗體(Form)屬性Icon設(shè)置運(yùn)行時窗體最小化所顯示的圖標(biāo)Picture設(shè)置窗體上的背景圖像AutoRedraw設(shè)置從Graphics方法到一個持久性位圖的輸 出方 法Hide用于隱藏MDIFoHn或Fonn對象,但不卸載Show用于顯示 MDIFoM 或FoM對象MOVe用于改變對象的位置和大小Print用于在ForM和PictureBox上顯本文本和圖形Cls用于去除Form和PictureBox上的文本和圖形PrintForm用
6、于將From對象的圖形逐位發(fā)送給打印機(jī)事件Initialize當(dāng)應(yīng)用程序創(chuàng)立某對象時發(fā)生,可應(yīng)用該事件初始化窗體所用的數(shù)據(jù),它在load事件前發(fā)生load子-個窗體被加載時發(fā)生Unload當(dāng)窗體卸載時發(fā)生Click當(dāng)在一個對象上單擊鼠標(biāo)左鍵時發(fā)生Dblclick當(dāng)在一個對象上雙擊鼠標(biāo)左鍵時發(fā)生Resize身-個對象首次顯示或窗口狀態(tài)改變時發(fā)生Activate子-個窗體成為當(dāng)前窗體時發(fā)生Deactivate一個窗體不再是當(dāng)前窗體時發(fā)生對象名 稱說明文本框(TextBox)屬性text設(shè)置控件中包含的文本小于32KBmaxlength設(shè)置控件中可以輸入字符的最大 數(shù),0為任意個字符MultiLin
7、e設(shè)置用戶是否可以接受多行文本A1ignment設(shè)置復(fù)選框或選項(xiàng)按鈕或一個控件 的文本的對齊ScrollBar設(shè)置對象是否有水平或垂直滾動條PasswordChar設(shè)置是否在控件中顯示用戶鍵入的 字符SelStart設(shè)置所選擇文本的起始點(diǎn)Sellength設(shè)置所選擇文本的字符數(shù)SelText設(shè)置包含當(dāng)前所選擇文本的字符串n方 法Refresh強(qiáng)制全部重繪一個窗體或控件SetFocus將焦點(diǎn)移至指定的窗體或控件事件Change當(dāng)文本框的內(nèi)容改變或通過代碼改 變Text屬性的設(shè)置時發(fā)生lostFocus當(dāng)對象失去焦點(diǎn)時發(fā)生GotFocus當(dāng)對象獲得焦點(diǎn)時發(fā)生KeyPress次-個對象具有焦點(diǎn),按下
8、并松開一個鍵時發(fā)生命令按鈕(CommandBut ton)屬性Cancel設(shè)置該命令按鈕是否為窗體的 “取消按鈕Default設(shè)置該命令按鈕是否為窗體的默 認(rèn)按鈕Style設(shè)置命令按鈕的外觀是標(biāo)準(zhǔn)風(fēng)格 或圖形風(fēng)格Value設(shè)置命令按鈕是否選中,True為選中,False為未選中方法setFocus事件CLick標(biāo)簽(label)屬性AutoSize設(shè)置控件是否能自動調(diào)整大小以顯 示所有的內(nèi)容WordWrap設(shè)置控件是否擴(kuò)大以多行方式顯示標(biāo)題文子,前提是 AutoSize為trueBorderStYle設(shè)置邊框是立體的或是平面的BackStyle設(shè)置背景是透明的或是不透明的方法Befresh、M
9、ove事件C1ick、DblClick選項(xiàng)按鈕(OptionButton)屬 性Caption設(shè)置選項(xiàng)按鈕旁的標(biāo)題文字Aliglment設(shè)置選項(xiàng)按鈕是在標(biāo)題文字的 左邊還是在右邊Value設(shè)置選項(xiàng)按鈕是否被選中,True 為選中,False為未選中事件Click、DblClick復(fù)選框(CheckBox)屬 性Caption同選項(xiàng)按鈕Alignment同選項(xiàng)按鈕Value設(shè)置選項(xiàng)按鈕是否被選中,0表小未選中,1表小選中,2表 示變灰,暫時不能訪問事件Click框架(Frame)Caption該屬性為空時,可作升-個封 閉邊框?qū)ο竺Q說明List設(shè)置列表框中包含的工程Text表小運(yùn)行中在列表框中
10、最后選中的列表項(xiàng) 的正文文本屬listindex表小運(yùn)行中在列表框中最后選中的列表項(xiàng) 序號性ListCount表小運(yùn)色中列表框中的列表項(xiàng)數(shù)目列表框(listBox)Sorted設(shè)置是否將列表框中的列表項(xiàng)按ASCII碼自動排序Columns設(shè)置列表框中的工程是按一列還是按多列 顯示方法AddItem向列表框添加工程Removeltem將列表框中所選中的列表項(xiàng)刪除Clear清空列表框中的所有工程事件click、DblClick組合框(ComboBox)屬性Style決定組合列表框的外觀其余同ListBox方法同 listBox事件當(dāng)Style為0或2時可響應(yīng) Click事件,當(dāng)Style為1時可響
11、 應(yīng)DblClick事件,當(dāng)style為0或1時可響應(yīng) Change事件圖片框(PictureBox)屬性Picture設(shè)置圖片框的背景圖像Autosize設(shè)置圖片框是否能自動調(diào)整大小以顯 示完整的圖片方法Print、Move、Refresh事件Click圖像(Image)屬性Picture設(shè)置圖像控件的背景圖像stretch設(shè)置是否縮放圖形來適應(yīng)圖像控件大 小方法Move、Refresh定時器(Timer)屬性Enabled設(shè)置該控件是否被激活I(lǐng)nterval設(shè)置調(diào)用Timer控件的Timer事件間隔的時間單位為 ms,最大為65535ms事件TimerTimer控件可以有規(guī)律地每隔一段時間
12、執(zhí) 行一次代碼水平/垂直 滾動條(HscrollBa /VscrollBar)屬性Min設(shè)置滾動塊位于滾動條頂端或者最左側(cè) 時所代表的值Max設(shè)置滾動塊位于滾動條底端或者最右側(cè) 時所代表的值LargeChange設(shè)置當(dāng)用戶在滾動條的空白處單擊時增 減的值SmallChange設(shè)置當(dāng)用戶在滾動條兩端的箭頭按鈕上 單擊時增減的值Value設(shè)置滾動條當(dāng)前的值事件Change在滾動塊移動后或通過代碼改變value屬性的設(shè)置時發(fā)生Scroll在滾動塊移動時發(fā)生注:加*號的屬性為只能通過代碼設(shè)置的屬性即在屬性窗口中沒有顯示7、Print 方法第3章語言根底3 .1知識點(diǎn)概括一個應(yīng)用程序就是一個工程,在一個
13、工程中可以包含假設(shè)干個文件,應(yīng)用程序的根本組成如圖31所示.應(yīng)用程序的根本組成工程文件(.vbp)一個或假設(shè)干個窗體模塊(.frm)一個或假設(shè)干個標(biāo)準(zhǔn)模塊(.bas)事件過程(Sub)用戶自定義過程(sub)用戶自定義函數(shù)過程(Function)用戶自定義過程(Sub)用戶自定義函數(shù)過程(Function)I其它文件圖3-1應(yīng)用程序的根本組成1 .過程與模塊程序的最根本單位是過程,一般在VB中將過程分為事件過程和通用過程有窗體模塊和標(biāo)準(zhǔn)模塊,關(guān)于過程與模塊的概念和說明見表3 1.表31過程與模塊概念說明過程事件過程為窗體以及窗體上的對象所編寫的用來響應(yīng)由用戶 或系統(tǒng)引發(fā)的各種事件的程序代碼通用
14、過程一個應(yīng)用程序中的小向窗體或者,個囪體內(nèi)/、向的 事件過程可以共享的程序代碼模塊窗體模塊 (.frm)窗體模塊中包含事件過程,以及該窗體及窗體上的 各個控件對象的屬性設(shè)置和相關(guān)的說明;窗體模塊還 可包含通用過程,它對來自任何事件過程的調(diào)用都作 出響應(yīng)標(biāo)準(zhǔn)模塊(,bas)標(biāo)準(zhǔn)模塊中保存的都是通用過程及相關(guān)的說明2 .數(shù)據(jù)類型數(shù)據(jù)是計(jì)算機(jī)程序處理的對象,VB具有強(qiáng)大的數(shù)據(jù)處理水平,在 VB中定義了標(biāo)準(zhǔn)數(shù)據(jù)類型,其具體說明見表 32.表32數(shù)據(jù)類型數(shù)據(jù)類型類型名稱類型說明符存儲空間(Byte)初始值數(shù)值型整型Integer%20長整型long&4單精度型Single!4雙精度型Double
15、#8貨幣型Currency8字節(jié)型Byte1字符型變長字符串String$10+串長度空字符串:定長字符串String*Size$串長度布爾型Boolean2False日期型Date80:00:00變體型Variant>=16空字符串對象型Object43 . 常量常量就是在程序運(yùn)行中取值始終保持不變的數(shù)據(jù),可以是具體的數(shù)值也可以是專門說明的符號,各種常量白表示見表 33.表33 常 量類型示 例數(shù)值常量123、-9. 876E-5單精度、3. 14159265D8雙精度、& 0137八進(jìn)制、& H2AB8十六進(jìn)制字符常量"Visual Basic"、
16、"中國 北京2021奧運(yùn)會"注:字符常量rt要 放在四文雙引號內(nèi)邏輯常量True真卜False假卜非0值轉(zhuǎn)換為 True、0值轉(zhuǎn)換為 False日期常量#12: 35: 48#、#7/12/2004#回車與換行符Chr(13)十 Chr(10)或 vbcrlf符 號 常 量自 定 義語句格式:Const常量名類型說明符As數(shù)據(jù)類型=表達(dá)式Const Pi! =3. 1415926Const OlymPic As Sting = "中國 北京 2021 奧運(yùn)會顏 色 常 量紅色vbRed胃fevbcyan綠色vbGreen洋紅色vbMagenta藍(lán)色vbBlue黑色
17、vbblack黃色vbYellow白色vbwhite4 .變量變量就是以符號形式出現(xiàn)在程序中, 其值在程序執(zhí)行期間可以發(fā)生變化的數(shù)據(jù). 變量的 作用域的不同,可將變量分為局部變量、 窗體/模塊級變量和全局變量. 表34中給出了各 種變量的聲明方式和聲明位置的比擬.表3-4 變 量局部變量窗體模塊級變量全局變量聲明位置過程中通用聲明通用聲明聲明方式DimStatic(靜態(tài))DimPrivatePublic作用域僅在說明它的過程中使用在定義該變量的模塊 或窗體的所有過程內(nèi) 均啟效在工程內(nèi)的所有過程中都 成效5 .運(yùn)算符與表達(dá)式1運(yùn)算符.VB中包括四種運(yùn)算:算術(shù)運(yùn)算、35符在程序設(shè)計(jì)的過程中,經(jīng)常要
18、進(jìn)行各種各樣的運(yùn)算,在 連接運(yùn)算、關(guān)系運(yùn)算和邏輯運(yùn)算,相關(guān)運(yùn)算符的說明見表VB表達(dá)式中只能使用圓表3 5 運(yùn)算類型運(yùn)算符/優(yōu)先等級算術(shù)運(yùn)算符人指數(shù)一取負(fù)一*和/一 整除- Mod取余一 + 和一連接運(yùn)算符+運(yùn)算符兩邊同為字符型和&強(qiáng)制將兩個不向類型的表達(dá)式作字符串連接關(guān)系運(yùn)算符>、<、>=、< =、<>,不等于、Is比擬兩個對象的引用變量 卜Like比擬樣 式邏輯運(yùn)算符Not邏輯非一 And邏輯與一 or邏輯或一 xor邏輯異或2表達(dá)式.把常量和變量用運(yùn)算符、括號連接起來的式子就是表達(dá)式.在 括號,且括號必'須成對使用.3運(yùn)算規(guī)那么.運(yùn)算符運(yùn)
19、算優(yōu)先順序?yàn)椋豪ㄌ栕顑?yōu)先-> 術(shù)運(yùn)算-> 連接運(yùn)算-> 關(guān)系運(yùn)算-> 邏輯運(yùn)算.相同數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行運(yùn)算,運(yùn)算結(jié)果也是同一類型.不同數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行運(yùn)算,運(yùn)算結(jié)果為兩個運(yùn)算對象中存儲長度較長的對象的類型.例如:Dim x As Integer , y As Integerx =200: Y= 200Print x*yy As Integer改為 y As Single ,執(zhí)行以上程序段,將出現(xiàn)“溢出錯誤信息,假設(shè)將其中 那么運(yùn)算結(jié)果為40000.6 .常用內(nèi)部函數(shù)8章中進(jìn)行介表36表3- 10VB 中有兩類函數(shù):內(nèi)部函數(shù)和用戶自定義函數(shù).用戶自定義函數(shù)將在第 紹.內(nèi)
20、部函數(shù)是由系統(tǒng)提供的, 可在任何一個vB程序中隨時使用的程序段. 分別列出了常用函數(shù)的格式與功能.注意:使用時要注意每個函數(shù)的功能、參數(shù)個數(shù)及類型,以及函數(shù)返回值的類型. 表3-6算術(shù)函數(shù)函數(shù)名功 能示 例表 達(dá) 式結(jié)果Sgr(x)求x的平方根值,x> 0Sqr(16)4log(x)求x的自然對數(shù),x>0log0. 69314Exp(x)求以e為底的哥值,即求eXExP7.38906Abs(x)求x的絕對值A(chǔ)bs( 4. 8)4.8Hex(x)求x的十六進(jìn)制數(shù)值,結(jié)果為 一字符串Hex(1000)3E8Oct(x)求x的八進(jìn)制數(shù)值,結(jié)果汁-字 符串Oct(1000)1750Sgn(
21、x)求x的符號,x>0為1, x 0為0, x<0 為-1Sgn(-10)Sgn(10)-11Rnd(x)產(chǎn)一個在0, 1區(qū)間均勻分布 的隨機(jī)數(shù).假設(shè)產(chǎn)生 m n之間的 隨機(jī)整數(shù),其通式為: Int(Rnd*(n-m)+1)+mInt(Rnd*(99-10)+1)+10產(chǎn)生兩位隨 機(jī)整數(shù)Sin(x)求x的正弦值,x單位為弧度Sin(30*3.141592 / 180)0.5Cos(x)求x的余弦值,x單位為弧度Cos(30*3.141592 /180)0.866025Tan(x)求x的正切值,x單位為弧度Tan(30*3.141592/180)0.57735Atn(x)求x的反正切
22、值,x單位為弧度Atn(30*3.141592 / 180)0.48235表3-7字符串函數(shù)函數(shù)名功 能示 例表 達(dá) 式結(jié)果len(St)求字符串St的長度(字符個數(shù))Ch=" I am a Student len(Ch)14left(St, n)從字符串S,左邊起取n個字符left(Ch,4)“I am Right(St, n)從字符串St右邊起取n個字符Right(Ch,7)“Studentg Mid(St , n1, n2)從字符串S,左邊第n1個位置開始 向右起取n2個字符,假設(shè)n2省略,那么 取從n1到結(jié)尾的所用字符Mid(Ch , 3, 2)Mid(Ch , 6)am“a
23、 Student Ucase(St)將字符串St中所有的小寫字符改為 大寫字符Ucas6("Neu")“ NEWlcase(St)將字符串St中所有的大寫字符改為 小寫字符lcase("NAMe") _ nameltrim(St)去掉字符串St的前導(dǎo)空格ltrim(" New")" HewRtrim(St)去掉字符串St的尾隨空格Rtrim(" New ")"New"Trim(St)去掉字符串St的前導(dǎo)空格和尾隨空 格Tnm(" New ")N New"I
24、nstr(n , St1 ,St2)從St1的第n個位置起查找給定的字 符St2,返回該字符在 Stl中最先出現(xiàn) 的位置,n的缺省值為1,假設(shè)沒有找 到5t2,那么函數(shù)的返回值為0Instr(4, Ch, " a" ) Instr(Ch , " R")60String(n . st)得到由n個給定字符St組成的一個String(6,"#")"#"字符串Space(n)得到n個空格“Aa Space(3)& BAb表38轉(zhuǎn)換函數(shù)函數(shù)名功 能示 例表 達(dá) 式結(jié)果Str(x)將數(shù)值數(shù)據(jù)x轉(zhuǎn)換成字符串含符號位Str
25、(1024)“1024 CStr(x)將x轉(zhuǎn)換成字符串型,假設(shè) x為數(shù)值型, 那么轉(zhuǎn)為數(shù)字字符串對于正數(shù)符號位不 予保存CStr(1024)“1024 Val(x)將字符串x中的數(shù)字轉(zhuǎn)換成數(shù)值Val( “1024)1024Chr(x)返回以x為ASCII代碼值的字符Chr(65)“ AAsc(x)給出字符x的A5C1I代碼值十進(jìn)制數(shù)Asc( "A )65CInt(x)將數(shù)值型數(shù)據(jù)x的小數(shù)局部四舍五入取 整CInt(16.8)CInt(-16.8)17-17Fix(x)將數(shù)值型數(shù)據(jù)x的小數(shù)局部舍去Fix(-16.8)-16Int(x)取小于等于x的最大整數(shù)Int(16.8)Int(-1
26、6.8)16-17表3-9日期函數(shù)函數(shù)名功 能Date $返回系統(tǒng)當(dāng)前的日期Time $返回系統(tǒng)當(dāng)前的時間Now返回系統(tǒng)當(dāng)前的日期和時間Year(x返回一個表示x的年號的整數(shù),x升-有效的日期變量、常量或字符表 送式Month(x)返回一個表示x的月份的整數(shù).x/L有效的日期變量、常量或字符表 送式Day(x)返回131之間的整型數(shù).x升-有效的日期變量、常量或字符表達(dá)式Weekday(x , c)返回x是星期幾,x升-有效的日期變量、常量或字符表達(dá)式,c是用于指定星期幾升-個星期第一天的常數(shù),缺省時表示一周的星期天為第一天表3-10其他常用函數(shù)函數(shù)名格式和功能InputBox格式InputB
27、ox(PromPt , Title , Default , xpos , ypos ,HelPfile , Context)功能在一對話框中顯示提示. 等待用戶輸入正文或按下按鈕, 并返回包含文本框內(nèi)容的字符串格式MsgBox(PromPt , Buttons , Title , HelPfile , Context )MsgBox功能在對話框中顯示消息,等待用戶單擊按鈕,并返回一個整數(shù) 告訴用戶單擊哪一按鈕format格式Format(Expression , Format , fristdayofweek ,Firstweekofyear)功能返回Variant(Sting),根據(jù)格式表達(dá)
28、式 Format中的指令來格式 化Isnumeric格式IsNumeric(ExPression)功能返回Boolean值.指出表達(dá)式的運(yùn)算結(jié)果是否為數(shù)字.如果為數(shù)子,那么IsNumeric返回True;否那么返回False:石是日期 表送式,那么IsNumeric返回FalseloadPicture格式loadPicture(Filename,size 2 , ColorDepth , x, y)功能將圖形載入到囪體、PicNreBox控件或Image控件的 Picture屬性RGB格式RGB(Red,Green , Blue)功能返回一個long整數(shù),用來表示一個 RGB顏色值賦值語句的作
29、用就是在程序中改變對象的屬性或變量的值,如果一個賦值語句左邊變量的類型與右邊表達(dá)式的類型不同,系統(tǒng)將視具體情況作出如下處理,如表312所示,表中出現(xiàn)的變量定義為:x As Integer , y As Double , st As String , Flag As Boolean .表312 不同類型的數(shù)據(jù)處理右邊表達(dá)左邊變系統(tǒng)處理示 例數(shù)值型數(shù)值型先求出表達(dá)式的值,再將其轉(zhuǎn)換 為相應(yīng)數(shù)值類型后賦值y = 2. 56: x = y,結(jié)果:x = 3字符型先求出表達(dá)式的值,再將其轉(zhuǎn)換為字符型后賦值x= 100 : y = 3.5: St= x 十 y ,結(jié) 果: 103.5x = 100: y=
30、3. 5: St=x&y,結(jié) 果: 1003.5邏輯型假設(shè)為非0值,返回true;假設(shè)為0值,返回Falsex=100: Flag=x,結(jié)果:True字符型數(shù)值型由數(shù)字構(gòu)成的字符串可以轉(zhuǎn)換 為數(shù)值,否那么將出現(xiàn)“類型不匹 配錯誤信息x = “ 12" +"34",結(jié)果:x= 1234 x= 12 十"34",結(jié)果:x=46St = " 12+34" : x=St,結(jié)果:出錯信 息邏輯型"True"轉(zhuǎn)換為 True, " False轉(zhuǎn) 換為False,數(shù)字串轉(zhuǎn)換為數(shù)值型再轉(zhuǎn)換為邏輯型,否那
31、么將出現(xiàn)“類型/、匹配錯誤信息St = " rdse" : flag = st,結(jié)果:False 5t = " 1234" : flag = st,結(jié)果:trueSt = " 12+ 34" : flag = st,結(jié)果:出 錯信息邏輯型其他類型False轉(zhuǎn)換為0, True轉(zhuǎn)換為-1St = " 123" : Flag = Truex= Flag 十 st,結(jié)果:x= 122第4章算法根底及 Visual BaSiC的根本語句知識點(diǎn)概括1 .算法算法是解決某個問題或者處理某件事情的方法和步驟.在程序設(shè)計(jì)中,算法專
32、指用計(jì) 算機(jī)解決某一個問題的方法和步驟.2 .算法分類算法分?jǐn)?shù)值計(jì)算算法和非數(shù)值計(jì)算算法.3 .評價算法的依據(jù)評價算法的優(yōu)劣主要是看算法的正確性、運(yùn)行的效率以及占用系統(tǒng)資源的多少.4 .算法的特征算法具有確定性、可行性、有窮性、輸入性以及輸出性特征.5 .算法設(shè)計(jì)可以采用“逐步求精來進(jìn)行算法設(shè)計(jì)并逐步將程序編寫完善.所謂“逐步求精,是 指對一個復(fù)雜問題,不是一步就編成一個可執(zhí)行的程序,而是分步進(jìn)行.所謂“抽象程序,是指程序所描述的解決問題的處理規(guī)那么,是由那些“做什么操作 組成的,而不涉及這些操作“怎樣做以及解決問題的對象具有什么結(jié)構(gòu),不涉及構(gòu)造的每 個局部細(xì)節(jié).逐步求精方法有多種具體做法.例
33、如,流程圖方法、基于過程或函數(shù)的方法.程序設(shè)計(jì)的最抽象的三大步驟為:(1) 數(shù)據(jù)輸入;(2) 數(shù)據(jù)處理;(3) 數(shù)據(jù)輸出.在針對具體問題的時候,對這幾步進(jìn)行細(xì)化,根據(jù)問題選擇使用什么樣的限制結(jié)構(gòu). 然在具體的問題中,有時候這三大步不能很清楚地區(qū)分清楚,可能會出現(xiàn)交叉處理的現(xiàn)象, 這時候就需要根據(jù)具體問題來作具體處理了.6 .根本算法結(jié)構(gòu)(1)順序結(jié)構(gòu).系統(tǒng)在執(zhí)行程序時,按順序處理每條語句.(a) lf-Thcn-Elsc-End If 結(jié)構(gòu)語句(b) Selccl-Case-End Select 結(jié)構(gòu)語句Select Case eCase cl A組語句Case c2塊形式行形式 塊形式一行形
34、式 單分支結(jié)構(gòu) 雙分支結(jié)構(gòu)多分支結(jié)構(gòu)嵌套的分支葡(2)分支結(jié)構(gòu).系統(tǒng)在執(zhí)行程序的過程中,根據(jù)條件判斷決定程序的走向,分支結(jié)構(gòu)有多種形式,其具 體語句格式與流程圖如表4-1所示.表44分支結(jié)構(gòu)B組語句 Case Eke N組語句End Select(3)循環(huán)結(jié)構(gòu).VB中有兩種循環(huán),即逐比日循環(huán)和5以中循環(huán),其結(jié)構(gòu)與特點(diǎn)如表4.2所示.*42搐環(huán)結(jié)枸旃句形式執(zhí)行方KFnr v = el To cl Step c3 giExit ForNpjrt t循壞令量遞堆&循環(huán)布出遂聲&=口死循環(huán)漸壞次數(shù)=Tni( (p2 - H )/e3) + 1注意:在循環(huán)體中.當(dāng)循肝限制變盤的值破 改空
35、后,循環(huán)的次數(shù)將不礴定;H、蛭、心足循環(huán)斤蛤時進(jìn)行一次性() Kor-Nil 棚(L) Do"】4mp循環(huán)流程圖¥=+3當(dāng)型林懷有利陰沙坤1X> Whik e» B +限ii !) J+ 4I copDn Vnlil e【Fjcit 口o J« Lwfi的 * iLiii J)o Ijkqi While t)n#/ iEul Do *¥ Loop Ualil eDqIf t thrn E*l Do *h呷先科斷,再執(zhí)行考條件成立時執(zhí)行循環(huán)體先杵斷.再執(zhí)行當(dāng)條件不成*時執(zhí)行循環(huán)體先執(zhí)行.再判斷當(dāng)條附成在時執(zhí)行網(wǎng)環(huán)體 至少執(zhí)行一次慚邪先執(zhí)行,
36、裨判斷當(dāng)條忤不成立時執(zhí)行循環(huán)體 至少執(zhí)行一次睇壞此條件挑打循環(huán)作.即死徑環(huán)口假設(shè)在循環(huán)體中參加配合U語句使用 的Eik %.就可以構(gòu)成有條件的循環(huán) 結(jié)構(gòu)循環(huán)體K坪體7、Exit語句程序執(zhí)行到Exit語句時,就會直接退出相關(guān)的結(jié)構(gòu),轉(zhuǎn)而去執(zhí)行該結(jié)構(gòu)后的下一條語句.常見的形式是與IF語句結(jié)合使用,格式如下:if e then Exit <for /do/sub /function>語句格式相關(guān)結(jié)構(gòu)說明Exit doDo-loop循環(huán)結(jié)構(gòu)跳出循環(huán)結(jié)構(gòu),轉(zhuǎn)而去執(zhí)行循 環(huán)之后的下一行語句Exit forFor-next循環(huán)結(jié)構(gòu)Exit subSub過程跳出過程,轉(zhuǎn)而去執(zhí)行調(diào)用語 句之后的下一
37、行語句Exit functionFunction 過程8、循環(huán)嵌套如果在一個循環(huán)內(nèi)完整地包含另一個循環(huán)結(jié)構(gòu),那么成為多重循環(huán)或循環(huán)嵌套.嵌套的層數(shù)可以根據(jù)需要而定,嵌套一層稱為二重循環(huán),嵌套二層稱為三重循環(huán).對于循環(huán)的嵌套,要注 意以下事項(xiàng):(1)內(nèi)循環(huán)限制變量與外循環(huán)限制變量不能同名;(2)外循環(huán)必須完全包含內(nèi)循環(huán),不能交叉;(3)不能從循環(huán)體外轉(zhuǎn)向循環(huán)體內(nèi),也不能從外循環(huán)轉(zhuǎn)向內(nèi)循環(huán),反之那么可.9.For循環(huán)與Do循環(huán)的差異FOR循環(huán)中循環(huán)限制變量的值的改變已經(jīng)包含在語句結(jié)構(gòu)中,使用簡單方便;DO循環(huán)本身并補(bǔ)包含循環(huán)限制變量的值的改變,所以必須另外添加語句(如I=I+1 )對循環(huán)限制變量進(jìn)
38、行限制.練習(xí):1執(zhí)行下面程序,當(dāng)單擊窗體時,變量 sum和I的值分別是多少?Private Sub Form_Click()Dim i As Integer, sum As IntegerX=8.5For i = 0.5 To x Step 2.5sum = sum + i * 10Next iPrint sumPrint iEnd Sub注意step為負(fù)值的情形假設(shè)循環(huán)體內(nèi)有I=I+1.5的語句,那么?假設(shè)循環(huán)體內(nèi)有 x=x+1.5的語句,那么?Key:200 1012012200102 .素?cái)?shù)問題for I=2 to x-1if x mod I=0 then exit fornext Ii
39、f I=x then print是素?cái)?shù)"*for循環(huán)的兩個結(jié)束條件是判斷素?cái)?shù)的依據(jù)第5章數(shù)組一、命名1、必須符合標(biāo)識符命名規(guī)那么2、在作用域內(nèi)不能與變量名、過程名、函數(shù)名相同3、數(shù)組名代表整個數(shù)組二、定義1、數(shù)組是一組具有相同類型變量的有序集合.2、數(shù)組中的變量使用一段連續(xù)的存儲單元.3、數(shù)組分固定大小數(shù)組、動態(tài)數(shù)組和控件數(shù)組.4、數(shù)組的定義形式見下表.數(shù)組說 明固 格定 式Public|Private|Static|Dim數(shù)組名)(聚界te義)As數(shù)據(jù)類型)大1、public只能在標(biāo)準(zhǔn)模塊中定義公用(全局)數(shù)組小 注private用于模塊中,定義模塊級數(shù)組數(shù) 意dim用于模塊中,定
40、義模塊級數(shù)組組 事用于過程中,定義過程級數(shù)組static用于過程中,定義靜態(tài)數(shù)組項(xiàng)2、數(shù)組的默認(rèn)下界是03、維的上、下界說明必須是常數(shù)表達(dá)式,不可以是變量名或含變量的表達(dá)式,即使變量的值已給出也不可以4、上、下界必須是整數(shù),假設(shè)不是整數(shù),VB自動四舍五入取整5、數(shù)組必須先定義后使用(1)定義時不指明大小的數(shù)組,語法格式如下:格Publicprivate | Static|Dim 數(shù)組名 >()As< 數(shù)據(jù)5® > 動(2)在確定了數(shù)組所需白大小后,使用ReDim語句來動態(tài)地定義數(shù)組的大小,分配存儲態(tài)式空間,語法格式如下:數(shù)ReDimPreserve數(shù)組名(維界定義)
41、組注1、ReDim語句是一個可執(zhí)行語句,只能出現(xiàn)在過程中.意2、重新定義動態(tài)數(shù)組時,不能改變數(shù)組的數(shù)據(jù)類型.事3、可以使用變量說明動態(tài)數(shù)組新的大小項(xiàng)4、如果用redim定義的數(shù)組不存在,那么系統(tǒng)會先創(chuàng)立一個動態(tài)數(shù)組,再給定大小.5、假設(shè)原數(shù)組后值,用redim后,全部喪失;假設(shè)要保存,用 Preserve.用了 Preserve后,只能改變最舟-維的維上界方(1)創(chuàng)立同名控件控法(2)復(fù)制現(xiàn)存控件件注1、同一控件數(shù)組內(nèi)的控件類型是相同的數(shù)意2、控件數(shù)組中所有的控件名稱相同;組事3、控件數(shù)組中所有的控件所對應(yīng)的事件過程是相同的;項(xiàng)4、控件數(shù)組中每個控件的Index屬性用于區(qū)別數(shù)組的其他控件三、數(shù)
42、組結(jié)構(gòu)二維數(shù)組:按列存放三維數(shù)組:按頁、歹h行存放四、根本操作1、賦值與輸出2、數(shù)組元素的引用五、數(shù)組函數(shù)及數(shù)組語句表52給出了與數(shù)組相關(guān)的函數(shù)和語句的說明表54與敵組相關(guān)的函數(shù)和語句函數(shù)或麗句功能亞例Option Ba&e Oil1 Oplio.i Base 1語句.表示數(shù)組維下界值為】 12無0而皿B11sH語句,表示數(shù)組維下界侑曳01所un帆數(shù)組名匚維效返回?cái)?shù)組可用的最小下標(biāo)IMm A(6) M biger,Dim B(3, -1 lb 4) As Single 那么LIMnd(再)的值是0, LBounW B ,工)的值是- 1Utfesd數(shù)綱名,維效:返回?cái)?shù)組可用的最大下標(biāo)D
43、im A(6) As nteg)erd B(3, - 1 To 4) A& Single那么Uftmmdf A )的畸是 6, UBound B. 1)的值是工 LBuiui" B,2)的值是4Emc數(shù)紈名1,教組名2,功能;重新初始化固定大小數(shù)組的元素,或者釋放動態(tài)數(shù)組 的存儲空間Fur Each Element In < 政組名 >語旬期Exit F<nf j:語句組Next . Elemenl J功能:讀語句根據(jù)效組的結(jié)構(gòu),依次對數(shù)組中的每一個元素 執(zhí)行一次循環(huán)體.數(shù)組有多少個元素就執(zhí)行莖少次循環(huán)悚3 .戴蒯的根本操作】數(shù)組元素的輸入q,對數(shù)組的處理一
44、般采用循環(huán)結(jié)構(gòu),一維數(shù)組用單循環(huán),二維數(shù)組用雙循環(huán).根據(jù)程序的 需要,對數(shù)組元素的賦值可以采用不同的方式,表5&列出了常用的賦值方式.表常用數(shù)坦元素的M值方式方 式示例直接賦他Dim A(3) Afi IntegerA(l) =28: A(2 =456 /=2337使用R«d隨數(shù)賦值Dim B(6t3) As lnlegerhi As InlcgttrFor i - 1 Tn 6For j = J To 3B(ij) =1m(Rnd*90) +10Ntxt jNeki i使用InputBtnc函數(shù)賦值Dim C(4) Ah Integer/ Aa IntegerFoe 1 T
45、o 4Cf i)=聞M*請輸人第*國i & ,個元素的值) Nsl i使用Array函載瓶值只可以第VMarn變量賦值Dim X As VariantK =.式7,5,3,2,1)Print X(l)tX(4)pX(5)2變量的輸出方式口當(dāng)程序顯示信息時,可以以不同的方式顯示,表5H總結(jié)了常見的輸出方式和語句 格式口«5 4變的出方式對象格 式說 明窗體Print < m >聲出信息m,然后換行Print <ml > & < m2 >信息ml和m2相連在冏一行上,然后換行Print <ml > ; <m2 >
46、同上IMnt < m > ;愉出而息m.但不換行Prim不輸出信息,立接換行文本根Textl = < m >信息m替代文本框的原內(nèi)容Textl =Text! & < m >Textl的蹤內(nèi)容后增加信息mTextl = Textl & 番 <m>Textl的原內(nèi)容后增加空格和信息mToll =T«1I & Oir(13) & Chr( 10) 或 Textl = Textl & bCrLf使Textl換打.以后再增加信息時會顯示到下一 行上(注意,必須設(shè)餐文本框的MuhiLine = True)圖片
47、根Picturrl. PrintPrint的使用格式同窗體列裝樞l(wèi)iMl. Addllern < m >增加信息m作為列表悵的新一個條目listl. Addltcm <ml > & < m2 >%息皿1和m2合并成為列&他的新一個條目消息窗口MyBox雨數(shù)該函數(shù)的使用方式虹表3105-2上機(jī)實(shí)驗(yàn)實(shí)險(xiǎn)5-1 找數(shù)手串,寅鰲要求圖5找數(shù)字串輸入一申字符串,內(nèi)有數(shù)字和作數(shù)字字 符,如 al23x57 17?48 s84 sutnd 9,將其中連續(xù) 的數(shù)字作為一個整數(shù),依次存放到一個數(shù)組 中,統(tǒng)計(jì)共有多少個整數(shù),并顯示這些整數(shù), 如圖51所示.1 .
48、盲體設(shè)計(jì)與屬桂謾JL2 .算法分析(D當(dāng)徜人一個字符串以后,我們不可能預(yù)先知道所包含數(shù)字的個數(shù),這里可以采用動態(tài)數(shù)組來處理.(2)判斷并別離出整數(shù). 用循環(huán)結(jié)構(gòu)對每一字符逐一進(jìn)行判斷. 使用標(biāo)志變成來標(biāo)記當(dāng)前字符是否是數(shù)字字符.判斷數(shù)字字符的表達(dá)式是:ch>=VAndch<=P將數(shù)字字符轉(zhuǎn)換為數(shù)值的方法是:AscCchJ-AscCIDo 拼接數(shù)字.第6章程序調(diào)試知識點(diǎn)概括1 . VB的工作狀態(tài)VB有三種工作狀態(tài),如表 6-1所示,在窗口的標(biāo)題欄上將顯示當(dāng)前的工作狀態(tài) 表6-1 VB的工作狀態(tài)工作狀態(tài)說明切換狀態(tài)的方法設(shè)計(jì)態(tài)在設(shè)計(jì)態(tài)時,可以設(shè)計(jì)程序的交互界面 和編寫相關(guān)的代碼單擊“運(yùn)
49、行菜單中的“啟動菜單項(xiàng)單擊標(biāo)渡工具欄中的,?按鈕運(yùn)行態(tài)程序止在運(yùn)行的時期,此狀態(tài)卜口查看代碼但不能改動程序代碼單擊“運(yùn)行菜單中的“結(jié)束菜單項(xiàng)單擊標(biāo)準(zhǔn)工具欄中的按鈕中斷態(tài)程序在運(yùn)行的中途被暫停執(zhí)行的狀態(tài). 在中斷模式下,可以修改程序代碼,檢 查、調(diào)試、重置、單步執(zhí)行或繼續(xù)執(zhí)行 程序運(yùn)行時因發(fā)生運(yùn)行錯誤而暫停程序的執(zhí)行運(yùn)行態(tài)卜按Ctrl+Break組合鍵或單擊“運(yùn)行菜單中的“中斷菜單項(xiàng)程序執(zhí)行到斷點(diǎn)所在的代碼行按逐語句或逐過程執(zhí)行時,每執(zhí)行完一個語句或一個過程后切換到設(shè)計(jì)態(tài):單擊標(biāo)準(zhǔn)工具欄中的按鈕切換到運(yùn)行態(tài):單擊標(biāo)準(zhǔn)工具欄中的,?按鈕2 .錯誤類型在VB程序設(shè)計(jì)中所產(chǎn)生的錯誤類型有三種,如表6-
50、2所示.表62錯誤類型錯誤類型說明常見的錯誤違反VB語言有關(guān)語句使用形式或使用規(guī)關(guān)鍵字拼寫錯誤語法錯誤那么而產(chǎn)生的錯誤標(biāo)點(diǎn)符號錯誤語句/、完整對象名稱或?qū)傩悦?、方法名、系統(tǒng)函數(shù)試圖執(zhí)彳L 個不口執(zhí)行的操作而引起的名拼寫錯誤運(yùn)行錯誤錯誤在通用聲明處使用了 0ption Explicit語句,相關(guān)變量未定義或變量名拼寫錯誤if沒有對應(yīng)的end if語句編寫的程序代碼不能實(shí)現(xiàn)預(yù)定的處理功能for循環(huán)沒有對應(yīng)的 Next語句邏輯錯誤要求而廣生的錯誤Do循環(huán)沒有對應(yīng)的100P語句3.程序調(diào)試程序調(diào)試的目的就是找出發(fā)生錯誤的地方,確定導(dǎo)致錯誤結(jié)果的原因,并修改程序直到正確為止.調(diào)試的技巧并不神秘,每次的調(diào)
51、試工作也無章可循.程序調(diào)試常用的手段就是在程序運(yùn)行中對各段代碼運(yùn)行后的結(jié)果進(jìn)行檢查,以確認(rèn)錯誤發(fā)生的位置,因此,我們可以通過限制程序的運(yùn)行來逐步進(jìn)行觀察.VB 提供的程序調(diào)試工具及其相關(guān)說明如表63所示.表63程序調(diào)試工具調(diào)試工具說 明操作方式逐語句一次執(zhí)彳L個語句,每執(zhí)彳L個語句就進(jìn)入 中斷模式按F8鍵單擊調(diào)試工具欄中的按鈕逐過程一次執(zhí)彳L個語句 C當(dāng)遇到過程調(diào)用語句 時,不對過程中的語句逐句執(zhí)行,而是一次 性格過程執(zhí)行完畢按shift+F8鍵單擊調(diào)試工具欄中的按鈕從過程中跳出當(dāng)前執(zhí)行點(diǎn)在過程中,假設(shè)要跳出過程,那么一 次性執(zhí)行完過程中未執(zhí)行的代碼段后,使 程序的執(zhí)行點(diǎn)轉(zhuǎn)到調(diào)用過程語句的下一句按ctrl+shift+F8組合鍵單擊調(diào)試工具欄中的按鈕斷點(diǎn)程序代碼中做了標(biāo)記的位置,程序在執(zhí)行到斷點(diǎn)所在處將由運(yùn)行態(tài)轉(zhuǎn)換到中斷態(tài)設(shè) 置 斷 點(diǎn)在代碼行左端豎欄中單擊鼠標(biāo)按F8鍵單擊“調(diào)試菜單中的“切換斷點(diǎn)菜單項(xiàng)單擊調(diào)試工具欄中的按鈕清 除 斷 點(diǎn)按Ctrl+Shift+F9組合鍵單擊“調(diào)試菜單中的“去除所有斷點(diǎn)菜單項(xiàng)4 .程序調(diào)試窗口(1)本地窗口.用于自動顯示出所有當(dāng)前過程中聲明的變量及其值.(2)監(jiān)視窗口.用于查看指定表達(dá)式的值.(3)立即窗口.當(dāng)調(diào)試一個應(yīng)用程序時,可以用“
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 新型頁巖氣開采技術(shù)2025年環(huán)境影響評估與效益分析報(bào)告:環(huán)境風(fēng)險(xiǎn)評估與技術(shù)創(chuàng)新
- 深入探討樂理的關(guān)鍵術(shù)語試題及答案
- 婚姻輔導(dǎo)測試題及答案
- 數(shù)學(xué)擴(kuò)展思維試題及答案
- 有機(jī)合成操作練習(xí)題目及答案
- 綜采鉗工考試題及答案
- 山東輕工職業(yè)學(xué)院《工程安全健康與環(huán)境管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 新興醫(yī)藥領(lǐng)域2025年CRO外包模式下的個性化治療方案研究
- 西安培華學(xué)院《計(jì)算機(jī)輔助飛機(jī)制造》2023-2024學(xué)年第二學(xué)期期末試卷
- 江西省余干縣重點(diǎn)達(dá)標(biāo)名校2025年初三第八次聯(lián)考語文試題含解析
- 海岸工程學(xué)設(shè)計(jì)計(jì)算書
- 大學(xué)美育知到智慧樹章節(jié)測試課后答案2024年秋長春工業(yè)大學(xué)
- 創(chuàng)新設(shè)計(jì)前沿知到智慧樹章節(jié)測試課后答案2024年秋浙江大學(xué)
- 《城市級實(shí)景三維數(shù)據(jù)規(guī)范》
- 厚積薄發(fā) 行穩(wěn)致遠(yuǎn)-六年級期中家長會【課件】
- 《中西藥物的合理配伍與禁忌探究》6400字(論文)
- 2024年10月高等教育自學(xué)考試14169設(shè)計(jì)基礎(chǔ)試題及答案
- 地鐵導(dǎo)向標(biāo)識安裝施工方案
- 政務(wù)新媒體管理培訓(xùn)
- 智能垃圾分類答辯
- 2024年湖北省武漢市中考英語真題(含解析)
評論
0/150
提交評論