




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
VisualBasic程序設計(6.0版)皖南醫學院計算機教研室畢迎春1精選2021版課件課程要求期末考核要求:理論考試期末評分比例:
平時成績30%+期末成績70%
2精選2021版課件第一章VisualBasic程序設計概述
1.1概述
1.2運行環境、安裝和啟動
1.3VB集成開發環境3精選2021版課件1.1概述一、VB簡介:VisualBasic是基于Basic的可視化的程序設計語言。VisualBasic6.0中文版是Microsoft公司最新推出的可視化開發工具,是一種基于Windows操作系統的新型的現代程序設計語言,是一種易于學習、功能強、效率高的編程工具。任何具有初步程序設計基礎的人,都能在很短的時間內掌握好VB,并有效地編寫出各種Windows程序。
VB6.0包括三個版本:學習版、專業版、企業版4精選2021版課件二、VB主要功能特點:1.具有面向對象的可視化設計工具2.事件驅動的編程機制3.提供了易學易用的應用程序集成開發環境4.結構化的程序設計語言5.支持多種數據庫系統的訪問6.OLE技術。VB核心就是其對對象的鏈接與嵌入(OLE)的支持。7.Active技術8.完備的help聯機幫助功能三、VB6.0新功能特點5精選2021版課件1.2運行環境、安裝和啟動一、運行環境:二、安裝:安裝文件:setup.exe三、啟動:方法:1、雙擊桌面VB快捷方式。2、“開始”|程序|MicrosoftVisualStudio6.0|MicrosoftVisualBasic6.03、“開始”|運行|C:\programfiles\MicrosoftVisualStudio\VB98\VB6.exe6精選2021版課件進入VB6.0窗口7精選2021版課件1.3VB集成開發環境8精選2021版課件1.主窗口應用程序窗口,由標題欄、菜單欄和工具欄組成VB的三種工作模式(標題欄總顯示當前模式)
(1)設計模式:創建應用程序的大多數工作都是在設計時完成的。在設計時,可以設計窗體、繪制控件、編寫代碼并使用“屬性”窗口來設置或查看屬性設置值。
(2)運行模式:代碼正在運行的時期,用戶可與應用程序交流??刹榭创a,但不能改動它。
(3)中斷模式:程序在運行的中途被停止執行時。在中斷模式下,用戶可查看各變量及不是屬性的當前值,從而了解程序執行是否正常。還可以修改程序代碼,檢查、調試、重置、單步執行或繼續執行程序。9精選2021版課件2.窗體(Form)設計窗口
窗體設計窗口是屏幕中央的主窗口,它可以作為自定義窗口用來設計應用程序的界面。用戶可以在窗體中添加控件、圖形和圖片來創建所希望的外觀。每個窗口必須有一個的窗體名字,建立窗體時缺省名為Form1,Form2,...。窗體網格點間距的設置:設計模式-”工具”–”選項”應注意窗體名(代碼中使用的標識對象名稱)和窗體文件名的區別10精選2021版課件窗體設計窗口窗體名窗體文件名11精選2021版課件3.代碼(code)窗口在設計模式中,通過雙擊窗體或窗體上任何對象或通過“工程資源管理器”窗口中的“查看代碼”按鈕來打開代碼編輯器窗口。代碼編輯器是輸入應用程序代碼的編輯器。
代碼窗口主要包括:a.對象列表框b.過程列表框c.代碼框d.過程查看按鈕
e.全模塊查看按鈕12精選2021版課件13精選2021版課件4.屬性(properties)窗口
屬性是指對象的特征,如大小、標題或顏色等數據。在VisualBasic6.0設計模式中,屬性窗口列出了當前選定窗體或控件的屬性的值,用戶可以對這些屬性值進行設置。14精選2021版課件
工程是指用于創建一個應用程序的文件的集合。工程資源管理器列出了當前工程中的窗體和模塊5.工程資源管理器(projectexplorer)窗口15精選2021版課件工程文件的擴展名為.VBP工程資源管理器下面的列表窗口,以層次列表形式組成這個工程的所有文件。主要包括三種類型的文件:窗體文件(.FRM)存儲窗體上使用的所有控件對象和有關的屬性、對象相應的事件過程、程序代碼。標準模塊文件(.BAS)所有模塊級變量和用戶自定義的通用過程(可以被應用程序各處調用的過程)類模塊文件(.CLS)包含用戶對象的屬性及方法。16精選2021版課件工具箱提供一組工具,用于設計時在窗體中放置控件生成應用程序的用戶接口。系統啟動后缺省的General工具箱就會出現在屏幕左邊,上面有常用“部件”6.工具箱(ToolBox)窗口17精選2021版課件定制工具箱添加選項卡:對添加的選項卡加控件的方法:
(1)在已有的選項卡中拖動所需控件(2)激活選項卡-”工程”-“部件”
18精選2021版課件窗體布局窗口顯示在屏幕右下角。用戶可使用表示屏幕的小圖像來布置應用程序中各窗體的位置。這個窗口在多窗體應用程序中很有用,因為這可以指定每個窗體相對于主窗體的位置。
7.窗體布局窗口19精選2021版課件立即窗口:中斷模式中調試應用程序。對象瀏覽窗口:可查看工程定義的模塊或過程,也可查看對象庫、類型庫、類、方法、屬性及可在過程中使用的常數。20精選2021版課件第二章簡單的VB程序設計
2.1程序設計方法的發展
2.2對象的概念
2.3建立簡單的應用程序
2.4窗體和基本控件
2.5工程的管理及環境設置
2.6制作成安裝盤
2.7使用幫助系統
21精選2021版課件2.1程序設計方法的發展1.初期的程序設計
高運行效率、少占用內存為目標2.結構化程序設計
程序的可讀性、可維護性為目標程序=算法+數據結構的面向過程的程序設計3.面向對象的程序設計(OOP)
降低程序的復雜性、提高軟件的開法效率和改善工作界面為目標程序=對象+消息的面向對象的程序設計22精選2021版課件結構化的分解突出過程(Howtodo?)面向對象的分解突出真實世界和抽象的對象(Whattodo?)目前常用的面向對象語言有:VisualBasic、VisualC++、VisualFoxPro等優點a.符合人們的思維方法b.易于軟件的維護和功能的增減c.能用繼承的方式減短程序開發時間d.與可視化技術結合,改善了工作界面23精選2021版課件2.2對象的概念一、對象和類1、類:是創建對象實例的模板,是同種對象的集合與抽象,包含了創建對象的屬性描述和行為特征的定義.2、對象:是類的一個實例,繼承了類的屬性、方法。Vb中常用的對象有:窗體、控件等。3、控件:以圖標的形式放在工具箱中。VB中的控件分為三類:
內部控件(標準控件):如工具箱上的控件,20個
ActiveX控件:“工程/部件”命令加載
可插入對象:Windows應用程序的對象,如Excel工作表。二、對象的建立和編輯:
1、對象的建立:兩種方法2、對象的選定:單選、多選3、復制或刪除對象4、對象的命名24精選2021版課件三、對象的三要素:屬性、事件和方法(1)屬性
對象的性質,即用來描述和反映對象特征的參數。(2)事件對象的響應稱為事件,它發生在用戶與應用程序交互時。如單擊控件、鼠標移動、鍵盤按下等。事件過程指附在該對象上的用戶編寫的程序代碼,是事件的處理程序。事件驅動過程是圖形用戶界面的本質,由用戶控制而代碼作出響應。25精選2021版課件VB程序執行步驟:啟動應用程序,裝載和顯示窗體窗體(或窗體上的控件)等待事件的發生事件發生時,執行對應的事件過程重復執行(2)和(3),直到遇到“END”結束語句結束程序的運行或單擊“結束”按鈕強制停止程序的運行26精選2021版課件(3)方法
對象的動作,即將一些通用的過程編寫好并封裝起來,作為方法供用戶直接調用。對象方法的調用格式:
[對象.]方法[參數名表]例如:在窗體上顯示一行文字。Form1.Print”歡迎使用VisualBasic6.0”27精選2021版課件2.3建立簡單的應用程序設計一個VB應用程序的通用步驟:1.設計用戶界面的對象2.設置對象的屬性3.編寫對象事件代碼4.保存文件5.程序運行和調試(解釋執行:
或“運行|啟動”
或
按F5)6.建立可執行文件。(編譯運行:“文件”|“生成…exe”)28精選2021版課件例2.1編寫一個對輸入字符進行轉換的程序轉換規則為:將其中的大寫字母轉換成小寫字母,小寫字母轉換成大寫字母,空格不轉換,其余轉換成“*”。要求每輸入一個字符,馬上就進行判斷和轉換。29精選2021版課件PrivateSubText1_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&aaEndSub30精選2021版課件PrivateSubCommand1_Click()Text1.Text=""Text2.Text=""
EndSubPrivateSubCommand2_Click()End
EndSub31精選2021版課件2.3.4保存和運行程序保存窗體文件保存工程程序的運行(1)編譯運行模式——生成.exe(2)解釋運行模式——F532精選2021版課件2.4窗體和基本控件一、基本屬性
1.Name名稱屬性創建的對象名稱,有默認的名.在程序中,控件名是作為對象的標識而引用,不會顯示在窗體上。
2.Caption標題屬性 該屬性決定了控件上顯示的內容。3.Height、width、top和left屬性33精選2021版課件4.Enabled屬性控件是否可操作.當設置為false時,呈暗淡色,禁止用戶進行操作.5.Visible屬性控件是否可見.當設置為false時,用戶看不到,但控件本身存在。6.Font屬性
Fontname字體Fontsize字體大小Fontbold是否是粗體 Fontitalic是否斜體Fontstrikethru是否加一刪除線Fontunderline是否帶下劃線
例2.2在窗體上建立兩個命令按鈕Command1和Command2,Command2的Font通過屬性窗口設置,其余屬性通過代碼實現。34精選2021版課件7.Forecolor前景顏色屬性設置控件的前景顏色(即正文顏色).其值是一個16進制常數,用戶可以在調色板中直接選擇所需顏色。8.Backcolor背景顏色屬性9.Backstyle背景風格屬性0-transparent:透明顯示,即控件背景顏色顯示不出來10.BorderStyle邊框風格屬性
0-None:控件周圍沒有邊框1-FixedSingle:控件帶有單邊框。11.Alignment屬性控件上正文水平對齊方式
0:正文左對齊1:右對齊 2:居中12.AutoSize屬性控件是否根據正文自動調整大小,False.35精選2021版課件13.MousePointer屬性
指示鼠標指針的類型,當為99時為用戶自定義類型。MouseIcon屬性
設置鼠標的圖標,當MousePointer為99時起作用。圖標庫在Graphics目錄下,擴展名一般為.ico或.cur14.WordWarp屬性為True時水平方向上下發生變化。15.TabIndex屬性決定了按Tab鍵時,焦點在各個控件移動的順序。各個控件默認的TabIndex值就是控件建立時的順序,第一個為0.16.控件默認屬性
反映該控件最重要的屬性,使用時可省略屬性名。如:Text1.text=“Welcome”與Text1=“Welcome”是等價的。
部份控件默認值:文本框的為:Text命令按鈕為:Default標簽為:Caption單選/復選按鈕為:Value圖形/圖像框為:Picture
注意:Command的Default為True,當按Enter鍵,該控件起作用。36精選2021版課件例:有關屬性的綜合應用。對象設置:效果:37精選2021版課件二、窗體1.屬性:P27StartUpPosition、Icon、ControlBoxMaxButton、MinButtonWhatsThisButton、WhatsThisHelpPicture、AutoRedrawBorderStyle(012345)WindowsState(0-正常、1-最小化、2-最大化)注:1、Picture屬性可在屬性窗口設置,也可通過Loadpicture函數用代碼來實現。函數格式為:[對象].Picture=Loadpicture(“文件路徑\文件名”)對象可以是窗體、圖片框、圖像框,缺省時為窗體。VB可以識別的圖形格式有:.bmp.gif.jpg.wmf.ico.cur等。2、兩者的不同在于:屬性設置時設置的圖片,會被保存起來并與窗體同時加載,而運行時加載的圖片,不和應用程序一起保存。38精選2021版課件2.事件:P28
Click、DblClick、Load、UnLoad
等Load當裝入窗體時激發,通常用于對屬性和變量初始化3.方法:P28Print、Cls、Move、Show、Hide等
當在Form_Load事件中使用Print方法時,必須將該窗體的AutoRedraw設置為True,否則Print方法無效。
例上述屬性、Click、DblClick和Load
事件演示。書上例子:P2839精選2021版課件三.標簽Label1、功能:用于顯示文本(輸出)信息,不能作為輸入信息的界面。2、屬性:P293、事件:click、Dblclick、Change
例2.5.顯示浮雕效果的文字,實現方法:字顏色、標簽位置書上例子:P29四.文本框TextBox功能:是一個文本編輯區域,可以輸入,編輯和顯示正文內容。
1、屬性:P30
Text:正文內容Maxlength:設置正文的最多字符個數,0任意長度值.
MultiLine:是否為多行,默認一行.FALSE
ScrollBars:當MultiLine為True時,該屬性才有效,表示滾動條的形式
0-None、1-Horizontal、2-Vertical、3-Both。
Locked:是否可被編輯屬性,False,表示為可編輯。PassWordchar:口令字符.Text屬性返回輸入的數據,屏幕顯示該字符,
SelStart,SelLength,SelText:選中文本的起始、長度、內容。
例2.6復制選中的文本40精選2021版課件2.常用事件
Change:當改變文本框的Text屬性時會引發該事件.
KeyPress(KeyAsciiAsInteger):同上,并可返回一個KeyAscii參數
KeyAscii
為13,按回車鍵;為0去除剛輸入的字符.
LostFocus:當控件失去焦點時發生.
GotFocus:當控件獲得焦點時發生.3.常用方法
[對象.]SetFocus:是把光標移到指定的文本框對象中(即設置焦點)。4.文本框的應用數據過濾例2.7要求輸入合法的數字數據。當輸入結束時(按Tab鍵),對于輸入正確的數據,顯示正確信息;對輸入的非數字數據,則響鈴(Beep)、顯示錯誤信息、清除文本框中的內容,并使焦點重新回到文本框。
Text2_LostFocus
當輸入結束按Tab鍵時,該事件激發
IsNumeric(Text2):判斷是否輸入非數字數據.Text2.SetFocus:使焦點重新回到文本框
書上例子:P3241精選2021版課件五.命令按鈕CommandButton
功能:接受用戶輸入的命令。
輸入命令可以有三種方式:鼠標單擊Tab鍵焦點到該按鈕快捷鍵
1.屬性:P33Caption:命令按鈕顯示的內容,可設置快捷鍵,例&Ok,顯示OkValue:檢查該按鈕是否按下.該屬性在設計時無效.Picture:按鈕可顯示圖片文件(.bmp和.Ico),當Style為1時有效Style:確定顯示的形式.0只能顯示文字,1文字、圖形均可。ToolTipText:設置工具提示,和Picture結合使用。2.事件Click42精選2021版課件3.應用:例2.8建立一個允許剪切、復制和粘貼的簡單便箋板程序??稍黾觾热荩豪肕ouseMove事件決定命令按鈕的有效性,即當選中內容,“剪切”、“復制”按鈕有效,否則無效。43精選2021版課件DimstAsStringPrivateSubcmdcopy_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=FalseEndSub44精選2021版課件Subtxtnoteedit_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Iftxtnoteedit.SelText<>""Thencmdcopy.Enabled=Truecmdcut.Enabled=Truecmdpaste.Enabled=FalseElsecmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndIfEndSub45精選2021版課件六、常用方法Vb中使用方法的語法結構是相同的[對象.]方法[參數列表]1.print方法形式:[對象.]print[{spc(n)|tab(n)}][表達式列表]作用:在對象上輸出信息。對象:可以是窗體(form)、圖形框(picturebox)、打印機。若省略,則在窗體上輸出。46精選2021版課件表達式列表開始位置是由對象的currentx和currenty屬性決定的,缺省為打印對象的左上角0,0。例2-9:print方法輸出圖形。PrivateSubForm_Click()Form1.CurrentX=200Form1.CurrentY=550Fori=1To5PrintTab(i+5);String(6-i,"▼");_Spc(6);String(i,"▲")NextiEndSub47精選2021版課件2、cls方法形式:[對象.]cls(如:picture.cls)作用:用于清除運行時在窗體或圖形框中顯示的文本或圖形。注意:(1)cls方法只清除運行時在窗體或圖形框中顯示的文本或圖形,不清除窗體在設計時的文本或圖形。(2)cls方法使用后,currentx和currenty屬性被設置為0。48精選2021版課件3、move方法形式:[對象.]move左邊距離[,上邊距離[,寬度[,高度]]]作用:用于移動窗體或控件,并可改變其大小。對象:可以是窗體及除時鐘、菜單外的所有控件,省略對象為窗體。如果對象是窗體,則“左邊距離”和“上邊距離”以屏幕左邊界和上邊界為準,否則以窗體的左邊界和上邊界為準,寬度和高度表示可改變其大小。49精選2021版課件例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精選2021版課件七、應用舉例例2-11:根據房產商提供的信息,購房者選擇房型、面積、單價、按揭期等信息,編寫計算每月支付貸款的程序。程序由兩個窗體構成,第一個窗體輸入或選擇買房的數據,該窗體由列表框選擇數據、標簽顯示數據、文本框輸入數據;第二個窗體顯示房屋的平面圖,該窗體僅有一個圖形控件。51精選2021版課件2.5工程的管理一、工程的組成
工程文件包含了一個應用程序的所有文件:工程文件(.vbp):工程組文件(.vbg):窗體文件(.frm):控件及屬性、事件過程和自定義過程 窗體的二進制數據文件(.frx),自動產生同名.frx文件。標準模塊文件(.bas)類模塊文件(.cls) 資源文件(.res) ActiveX控件的文件(.ocx)二、創建、打開和保存工程:“文件”菜單52精選2021版課件三.添加、刪除和保存文件:可利用“文件”和“工程”菜單
1、窗體名和窗體文件名概念
窗體名:窗體的Name屬性,在代碼中用來引用該窗體,同一工程不能有相同的窗體名;
窗體文件名:窗體存放在磁盤上的文件名,該文件包含了該窗體的所有控件屬性和代碼,同一文件夾不能有相同的文件名。
2、在工程中添加現存的窗體時,只是對該窗體文件的引用納入工程。因此,如果更改窗體并保存它,會影響包含此窗體文件的任何工程。
3、在工程中刪除窗體時,僅將此窗體從工程里刪除掉,但是窗體文件仍存在于磁盤上。但是,如果在VB之外刪除一個窗體文件,VB不能更新此工程文件,當打開此工程時,將顯示一個文件丟失的錯誤信息。
窗體文件名窗體名53精選2021版課件四、環境設置“工具”——”選項”1.”編輯器”選項卡2、“通用”選項卡4、對窗體文件改名方法:在“工程資源管理器”中--右擊窗體文件--“Form另存為…”
5、保存窗體文件:若只想保存窗體文件而不保存工程文件,可直接在“工程資源管理器”中選定,然后執行“文件”菜單中的相應選項。54精選2021版課件2.6制作成安裝盤2.6.1使用打包和展開向導打包:把工程中用到的各種類型的文件(包括工程自身的文件、必要的系統文件和安裝主文件)進行打包壓縮后,存放到特定的目錄下。展開:把打包的文件展開到用戶可以攜帶的用來安裝的軟盤、光盤等介質。管理腳本:記錄打包或展開過程中的設置,便于以后做同樣的操作。系統的壓縮文件以.cab擴展名保存。2.6.2檢測安裝程序55精選2021版課件第三章VB語言基礎
3.1編碼基礎
3.2數據類型
3.3常量與變量
3.4運算符和表達式
3.5基本語句
3.6數組
3.7過程
3.8常用算法舉例
3.9程序調試
56精選2021版課件3.1編碼基礎一、書寫要求:1.VB代碼不區分字母的大小寫
系統關鍵字自動轉換每個單詞的首字母大寫;用戶自定義行以第一次為準2.語句書寫自由
一行可書寫幾個語句,之間用冒號分隔;一行最多255個字符;一條語句可分若干行書寫,用續行符
(空格+下劃線)連接3.注釋有利于程序的維護和調試
Rem或單撇號“‘”以及“編輯”工具欄的“設置注釋塊”;
VB中注釋語句會自動變為綠色4.保留行號與標號5.其他注意事項:保留字與變量之間至少有一空格;字母“l”與數字“1”、字母“o”與數字“0”的使用。57精選2021版課件3.2數據類型
一、標準數據類型:
58精選2021版課件1、數值數據類型:IntegerLongSingleDoubleCurrencyByte(1)Integer和Long型用于保存整數(2)Single和Double型用于保存浮點實數(3)Currency型是定點實數或整數(4)Byte字節型用于存儲二進制數59精選2021版課件2、日期(Date)數據類型
按8字節浮點數來存儲。日期范圍:公元100年1月1日~9999年12月31日時間范圍:0:00:00~23:59:59表示方法:一般日期形式前后加#來表示另一種是以數字序列表示日期和時間(1)一般日期表示法:使用成對#將任何可被認作日期和時間的字符括起來。公元年份默認19年,因而填入1995年與填入95年效果一樣,但年的部分輸入0~29間的數字,則VB自動轉換為20年。例如:#5/25/24#與#5/25/2024#等價。而#5/25/95#,#May25,95#,#May-25-95#,#25May1995#,#1995May25#等均為合法日期格式。60精選2021版課件(2)數字序列表示法數字序列是雙精度的浮點數,由VB自動解釋。序號的整數部分表示日期,小數部分表示時間。在VB中,基準日期為公元1899年12月30日,這一天的整數部分為0,比基準早的日期序號為負數,比其晚的日期序號為正數,其取值范圍為657434(公元100年1月1日)到2958465(公元9999年12月31日)。小數部分:以某個時間點占一天24小時的比例表示。如:6:00AM會以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:0061精選2021版課件3、邏輯(布爾型)數據型:Boolean當邏輯型轉換成整型數據時:true–(-1)false—(0)
當其他類型數據轉換成邏輯數據時:非0數轉換為true,0轉換為false4、字符串型:String“”
5、對象數據類型:Object作為32位(4個字節)地址來存儲62精選2021版課件6、變體類型:Variant
是所有未定義的變量的缺省數據類型,它可以包括標準數據類型,還包含四個特殊的數據:empty(空)表示未指定確定的數據null(無效)表示數據不合法Error(出錯)指出過程中出現了一個錯誤條件Nothing(無指向)表示數據還沒有指向一個具體對象Vartype:檢測變體型變量中保存的數值類型如:dimtVartype(t)或Vartype(667)63精選2021版課件二、自定義類型讓用戶自己定義的數據類型,由若干個標準數據類型組成。是一組不同類型變量的集合。相當于C語言中的結構類型;Pascal中的記錄類型。1.自定義類型的定義
形式如下:
Type自定義類型名 元素名[(下標)]As類型名
… [元素名[(下標)]As類型名]
EndType其中:元素名:表示自定義類型中的一個成員下標:表示數組類型名:為標準類型64精選2021版課件例如,以下定義了一個有關學生信息的自定義類型:TypeStudType NoAsInteger '學號 NameAsString*20 '姓名 SexAsString*1 '性別 Mark(1To4)AsSingle '4門課程成績 TotalAsSingle '總分EndType注意:
(1)自定義類型一般在標準模塊(.BAS)中定義,默認是Public;在窗體必須是Private。(2)自定義類型中的元素類型可以是字符串,但應是定長字符串。(3)不要將自定義類型名和該類型的變量名混淆,前者表示了如同Integer、Single等的類型名,后者VB根據變量的類型分配所需的內存空間,存貯數據。(4)自定義類型一般和數組結合使用,簡化程序的編寫。65精選2021版課件2.自定義類型變量的聲明和使用(1)聲明形式:Dim變量名As自定義類型名例DimStudentAsStudType(2)引用:形式:變量名.元素名例表示Student變量中的姓名,第4門課程的成績,則表示如下: Student.Name,Student.Mark(4)(3)賦值:
如:Student.Name=“王剛”Student.Mark(4)=9866精選2021版課件3.3常量與變量一.常量和變量的命名規則常量:在程序運行中其值不可以改變。變量:在程序運行中其存儲的值可以改變。
命名規則:1.以字母或漢字開頭,后可跟漢字、字母、數字或下劃線組合,長度小于等于255個字符;2.不能使用VB中的關鍵字;3.VB中不區分變量名的大小寫.4.為了增加程序的可讀性,可在變量名前加一個縮寫的前綴來表明該變量的數據類型。如:strMystring、intCount67精選2021版課件VB6.0的關鍵字有:AsBinaryByRefByValDateElseEmptyErrorFalseForFriendGetInputIsLenLetLockMeMidNewNextNothingNullOnOptionOptionalParamArrayPrintPrivatePropertyPublicResumeSeekSetStaticStepStringThenTimeToTrueWithEvents68精選2021版課件二.常量
(一)直接常量有數值常量(整數、長整數、定點數和浮點數)、字符串常量、布爾常量、日期常量(二)符號常量1.系統提供的常量系統定義常量位于對象庫中,可通過“對象瀏覽器”查看.例:vbNormal、vbMinimized、vbMaximized、vbblue等form1.windowsstate=vbmaximized‘將窗口極大化
form1.windowsstate=2‘與上面的語句等價的69精選2021版課件2.用戶聲明常量
形式:Const常量名[AS類型]=表達式省略[AS類型],常量的類型由表達式值的類型決定,也可在常量后加類型符。
表達式:可以是數值常數、字符串常數以及由運算符組成的表達式。對于數值常數除了可用十進制表示外,還可以使用十六進制數(數值前加&H)和八進制數(數值前加&O)。
為使與變量名區分,一般常量名使用大寫字母例ConstMAX=100ConstPI=3.14159ConstPI#=3.14159ConstMAXasinteger=&O14470精選2021版課件三.變量1.用Dim語句顯式聲明變量
形式:Dim變量名[AS類型]Dim變量名類型符例DimiCountAsinteger,sAllsumAssingle等價于DimiCount%,sAllsum!
對于字符串變量,根據其長度是否固定,有兩種方法:Dim字符串變量名AsStringDim字符串變量名AsString*字符數2.隱式聲明
未進行上述的聲明而直接使用,其類型為Variant類型。建議不使用。注意:在通用聲明處加OptionExplicit語句可強制顯式聲明變量。71精選2021版課件3.4運算符和表達式一.運算符
1.算術運算符例:5+10mod10\9/3+2^2結果:10取ia=372精選2021版課件2.字符串運算符:
&、+
“&”和
“
+”,都是將兩個字符串拼接起來。
"123"+"456"結果"123456""123"&"456"結果"123456"
區別:若+的兩旁的操作數均為數值型則進行算術加;若一個為數字字符型,另一個為數值型,則自動將數字字符轉換為數值,然后進行算術加;若一個為非數字字符型,另一個為數值型,則出錯。&則不管什么類型,強制轉換為字符型進行拼接。
例如:"abcdef"&12345'結果為"abcdef12345""abcdef"+12345'出錯"123"&456'結果為"123456""123"+456'結果為579
12000+“123”&100‘結果為“12123100”Val(left$(“12345678”,4)+mid$(“12345678”,4,2))‘結果為123445注意:(1)"123"+True'結果為122True轉換為數值-1,False轉換為數值0(2)使用“&”時,最好在兩側的操作數間加入一個空格。因為Long類型變量的類型符以及八進制、十六進制數值表示法的起始字符也為“&”。73精選2021版課件3.關系運算符
將兩個操作數進行大小比較,結果為邏輯量。
(1)關系運算符的優先級相同;(2)“Like”運算符與通配符:“?”、“*”、“#”、“[字符列表]”、“[!字符列表]”結合使用,常用于模糊查詢。其中“?”表示任何單一字符,“*”表示零個或多個字符,“#”表示任何一個數字(0~9),[字符列表]表示字符列表中的任何單一字符,[!字符列表]表示不在字符列表中的任何單一字符。例如,找姓名變量中姓張的學生,則表達式為:姓名Like“張*”,又如找沒有張字的學生,表達式為:姓名Like“[!張]”74精選2021版課件4.邏輯運算符說明:1、Not:進行取反運算;2、And:操作數均為真時,結果才為真;3、Or:操作數中有一個為真時,結果為真;4、Xor:操作數相反時,結果才為真;5、Eqv:操作數相同時,結果才為真;6、Imp:第1個操作數為真,第2個為假時,結果才為假,其余結果均為真。7、優先級:Not>And>OR>Xor>Eqv>Imp75精選2021版課件如果邏輯運算符對數值進行運算,則以數字的二進制值逐位進行邏輯運算。(1)And運算符常用于屏蔽某些位。(2)Or運算符常用于把某些位置1。(3)連續兩次進行Xor運算,可恢復原值。例:10and710or776精選2021版課件二.表達式
1.表達式組成
變量、常量、函數、運算符和圓括號
2.書寫規則(1)運算符不能相鄰。例a+-b是錯誤的。(2)乘號不能省略。例x乘以y應寫成:x*y(3)括號必須成對出現,均使用圓括號。(4)表達式從左到右在同一基準上書寫,無高低、大小。3.不同數據類型的轉換運算結果的數據類型向精度高的數據類型靠.Integer<Long<Single<Double<Currency4.優先級算術運算符>字符運算符>關系運算符>邏輯運算77精選2021版課件表達式書寫舉例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精選2021版課件例:用人單位招聘秘書:年齡小于40歲的女性,學歷專科或本科年齡<40性別=“女”(學歷=“??啤睂W歷=“本科”)
And
And
Or比a小,比b大用Ora小數b大數a小數b大數比a大,比b小用And例:表示算術表達式:正確的VB表達式:3<=xAndx<=7
錯誤的VB表達式:3<=x<=7或3<=xOrx<=7考慮:若分別寫成:年齡<40And性別=“女”And(學歷=“專科”And學歷=“本科”)年齡<40Or性別=“女”Or(學歷=“??啤監r學歷=“本科”)79精選2021版課件1.數學函數:Rnd函數返回0和1(包括0但不包括1)之間的雙精度隨機數.例:產生1~100的隨機整數:Int(Rnd*100)+1產生100~3000的隨機整數:Int(Rnd*2901)+100隨機產生“A”~“Z”的字符:Chr(Int(Rnd*26+65))
注意:(1)產生一定范圍內的隨機整數通常表示為:
Int(Rnd*范圍)+基數或Int(Rnd*范圍+基數)(2)每次運行時,要產生不同序列的隨機數,執行Randomize語句。
Randomize[number]
注:函數名后有$符號,表示函數返回值為字符串。三、常用內部函數80精選2021版課件2.轉換函數
Chr(66)"B" Asc("B")66Asc(Chr(99))99Chr(Asc("K"))"K"Ucase$("abcdefg")"ABCDEFG“3.日期函數:Date返回系統日期Time返回系統時間Now返回系統日期和時間Year返回年份(1)DateAdd增減日期函數(2)DateDiff間隔日期函數三、常用內部函數81精選2021版課件4.字符串編碼及操作函數(1)字符串編碼Windows系統對字符采用了DBCS編碼,中文2字節,西文1字節VB中字符Unicode編碼,任何字符2字節.Len(“中國good”)為6LenB(“中國good”)為12StrConv()進行DBCS與Unicode之間轉換.(2)字符串函數Mid$("ABCDEFG",2,3)"BCD"InStr(2,“EFABCDEFG","EF") 7
注:函數的自變量中有M,表示M=0區分大小寫,M=1不區分,省略M區分大小寫。82精選2021版課件5.格式輸出函數Format()
功能:Format()可以使數值、日期或字符串按指定的格式輸出。格式:Format(表達式[,格式字符串])其中,表達式:為要格式化的數值、日期和字符串類型表達式。格式字符串:表示按其指定的格式輸出表達式的值。格式字符串有三類:(1)數值格式化:將數值表達式的值按“格式字符串”指定的格式輸出。(2)日期和時間格式化(3)字符串格式化格式字符串要加雙引號83精選2021版課件84精選2021版課件6.Shell函數
功能:Shell函數負責執行一個可執行文件(擴展名為.exe、.com、.bat),返回一個Variant,如果成功,代表這個程序的進程ID,若不成功,則會返回0。
形式:Shell(命令字符串[,窗口類型])缺省窗口類型最小化為圖標。
85精選2021版課件X=shell(“c:\windows\pbrush.exe”,1)Y=shell(“c:\windows\write.exe”,1)Z=shell(“C:\ProgramFiles\MicrosoftOffice\Office\winword.exe”,1)提示:如果不知道應用程序的路徑名,可用Start命令啟動程序
i=Shell(start&"calc.exe");i=Shell(start&“vb6.exe“)舉例:i=Shell("c:\windows\calc.exe",1)
j=Shell("c:\",1)86精選2021版課件3.5基本語句3.5.1賦值語句
形式:[LET]變量名=表達式
作用:將表達式的值賦值給變量名.一般用于給變量賦值或對控件設定屬性值.例:sRate!=0.1Text1.Text="歡迎使用VisualBasic6.0”注意:
1、當表達式的類型與變量的類型不一致時,強制轉換成左邊的精度。如:iA%=10/3iA中的結果為32、雖然賦值號與關系運算符等于號都用“=”表示,VB系統會根據所處的位置自動判斷是何種意義的符號。3、賦值號左邊只能是變量,不能是常量或表達式。4、不能在一句賦值語句中,同時給多個變量賦值。
87精選2021版課件3.5.2人機交互函數和過程
VB與用戶之間的直接交互是通過InputBox()函數、MsgBox()函數和MsgBox過程進行的。
1.InputBox函數
InputBox(提示[,標題][,缺省][,x坐標位置][,y坐標位置])
其中:提示提示信息,標題對話框標題,缺省輸入區缺省值函數返回字符類型.例要在屏幕上顯示圖示的對話框:88精選2021版課件相應的語句如下:DimstrNameAsString*40strName=InputBox(“請輸入你的姓名”+vbCrLf+“然后單擊確定”,“輸入框”)也可以使用如下語句:DimstrNameAsString*40,strS1AsString*40strS1=“請輸入你的姓名”+Chr(13)+Chr(10)+“然后單擊確定”strName=InputBox(strS1,“輸入框”,,100,100)當鍵盤輸入“王曉明”后,變量strName獲得鍵盤輸入的值.89精選2021版課件2.MsgBox函數和MsgBox過程
函數形式:變量[%]=MsgBox(提示[,按鈕][,標題])過程形式:MsgBox提示[,按鈕][,標題]
按鈕值如下:函數返回所選按鈕整數值:90精選2021版課件例3.2編一帳號和密碼檢驗程序。要求:
帳號不超過6位數字,有錯,清除原內容再輸入.密碼輸入時在屏幕上以“*”代替;若密碼錯,顯示有關信息,選擇“重試”按鈕,清除原內容再輸入,選擇“取消”按鈕,停止運行。分析:帳號6位,MaxLength為6,LostFocus判斷數字IsNumeric函數密碼PassWordChar為“*”,MsgBox函數設置密碼錯對話框.91精選2021版課件3.5.3選擇結構
1.If…Then語句(單分支結構)
If<表達式>Then語句塊EndIf
或
If<表達式>Then<語句>
例:已知兩個數x和y,比較它們的大小,使得x大于y.
Ifx<yThent=xx=yy=tEndIf
或Ifx<yThent=x:x=y:y=t92精選2021版課件2.If…Then…Else語句(雙分支結構)(1)If<表達式>Then<語句塊1>Else<語句塊2>EndIf(2)If<表達式>Then<語句1>Else<語句2>
計算分段函數單分支結構實現:[ifx=0then]y=cos(x)-x^3+3*xIfx<>0Theny=sin(x)+sqr(x*x+1)
雙分支結構實現:
Ifx<>0Theny=sin(x)+sqr(x*x+1)Elsey=cos(x)-x^3+3*xEndIf93精選2021版課件3.If…Then…ElseIf語句(多分支結構)
形式:
If<表達式1>Then <語句塊1>ElseIf<表達式2>Then <語句塊2> … [Else語句塊n+1]EndIf94精選2021版課件例已知變量strC中存放了一個字符,判斷該字符是字母字符、數字字符還是其他字符。用多分支結構實現:
IfUcase(strC)>="A"AndUcase(strC)<="Z"Then
PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是數字字符"Else PrintstrC+"其他字符"EndIf不管有幾個分支,依次判斷,當某條件滿足,執行相應的語句,其余分支不再執行;若條件都不滿足,且有Else子句,則執行該語句塊,否則什么也不執行。.
ElseIf不能寫成
ElseIf。95精選2021版課件例已知百分制成績mark,顯示對應的五級制成績哪些正確,哪些錯誤?正確:方法一、二錯誤:方法三96精選2021版課件4.If語句的嵌套If語句的嵌套是指If或Else后面的語句塊中又包含If語句。形式如下:
If<表達式1>Then
If<表達式11>Then…EndIf…EndIf
例已知x,y,z三個數,使得x>y>z用一個IF語句和一個嵌套的IF語句實現Ifx<yThent=x:x=y:y=t
Ify<zThent=y:y=z:z=t
Ifx<yThent=x:x=y:y=tEndIf
EndIfIf語句的嵌套注意事項:書寫鋸齒型;EndIf與它前面最近的if配對。97精選2021版課件<表達式列表>:與<變量或表達式>的類型必須相同,可以是下面四種形式之一:表達式例:"A"一組枚舉表達式(用逗號分隔)2,4,6,8
表達式1To表達式2 60To100
Is關系運算符表達式 Is<605.SelectCase語句(情況語句)形式:
SelectCase變量或表達式 Case表達式列表1 語句塊1 Case表達式列表2 語句塊2 … [CaseElse 語句塊n+1] EndSelect變量:只能含有一個表達式:數值型或字符串98精選2021版課件注意:關鍵字Is定義條件時,只能是簡單的條件,不能用邏輯運算符將兩個或多個簡單的條件組合在一起。例如“CaseIs>20andIs<40”是不合法的。而“CaseIs<2,12,13,15,Is>20”是正確的。99精選2021版課件例變量strC中存放了一個字符,判斷該字符類型。用多分支結構實現:
IfUcase(strC)>="A"AndUcase(strC)<="Z"Then PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是數字字符"Else PrintstrC+"其他字符"EndIf用SelectCase語句實現:
SelectCasestrC Case"a"To"z","A"To"Z" PrintstrC+"是字母字符" Case"0"To"9" PrintstrC+"是數字字符" CaseElse PrintstrC+"其他字符"EndSelect100精選2021版課件例:已知坐標點(x,y),判斷其落在哪個象限。
哪個能實現,哪個不能實現?方法一
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方法二代碼錯誤:1.SelectCase后不能出現多個變量;2.Case后不能出現變量及有關運算符。比較:SelectCase結構清晰,但使用受到限制,因此,凡是對多個變量的條件判斷只能用If的多分支結構來實現。101精選2021版課件例由計算機來當一年級的算術老師,要求給出一系列的1~10的操作數和運算符,學生輸入該題的答案,計算機根據學生的答案判斷正確與否,當結束時給出成績。分析:產生1~10操作數,可通過Int(10*Rnd+1)實現
設置的控件名Label1 Text1
Picture1 Command1102精選2021版課件6.條件函數
(1)IIf函數形式是:
IIf(表達式,當表達式為True時的值,當表達式為False時的值)例如,求x,y中大的數,放入Tmax變量中,語句如下:Tmax=IIf(x>y,x,y)
(2)Switch函數形式是:Switch(條件表達式1,條件表達式1為True時的值[,條件表達式2,條件表達式2為True時的值……])103精選2021版課件(3)Choose函數形式是:
Choose(數字類型變量,值為1的返回值,值為2的返回值……)
例如:Nop是1-4的值,轉換成+、-、×、÷運算符Op=Choose(Nop,“+","-","×","÷")當值為1,返回字符串“+”,然后放入Op變量中,值為2,返回字符串“-”,依次類推;當Nop是1-4的非整數,系統自動取Nop的整數辦法在判斷;若Nop不在1-4之間,函數返回Null值。104精選2021版課件1.在選擇結構中缺少配對的結束語句對多行式的If塊語句中,應有配對的EndIf語句結束。2.多邊選擇ElseIf關鍵字的書寫和條件表達式的表示ElseIf不要寫成ElseIf;多個條件表達式次序問題3.SelectCase語句的使用SelectCase后不能出現多個變量;Case子句后不能出現變量本節常見錯誤105精選2021版課件3.5.4循環結構1.For循環語句(一般用于循環次數已知)形式
For循環變量=初值to終值[Step步長] 語句塊 [ExitFor] 語句塊Next循環變量
循環變量<=終值
語句塊
ExitFor
語句塊
循環變量加步長
T
F
循環變量得初值
循環體例計算1~100的奇數和Dimi%,s%等價于:Dimi%,s%s=0 s=0:i=1Fori=1To100step2 re:Ifi<=100Thens=s+i s=s+iNexti i=i+2 GoTore EndIf106精選2021版課件>0初值<終值=1時,可省略<0初值>終值=0死循環循環次數要注意:出了循環,循環控制變量值的問題。例程序段:
Fori=2To13Step3循環執行次數
Printi,輸出i的值分別為:Nexti25811
Print:Print“I=“,i出了循環輸出為:I=14
在循環體內對循環控制變量可多次引用;但最好不要對其賦值,否則影響原來的循環控制規律。步長107精選2021版課件例
改變循環控制變量對循環的影響。PrivateSubCommand1_Click()j=0Fori=1To20St
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025建筑工程施工合同范本
- 2025年小型激光切割機買賣合同
- 2025購房補貼借款合同模板
- 2025律師版權許可使用合同
- 河南省項城市2024~2025學年 高三下冊第一次考試數學試卷附解析
- 貴州省六校聯考2024~2025學年 高三下冊3月月考數學試卷附解析
- 福建省龍巖市2024~2025學年 高二下冊第一次月考(2月)數學試卷附解析
- 城市服務職業學院招聘筆試真題2024
- 2025年大學計算機復試機試題
- 序列動作特征的多模態融合研究-洞察闡釋
- 《閥門檢修及維護》課件
- 中學化學實驗員培訓材料
- 30題投資管理類崗位常見面試問題含HR問題考察點及參考回答
- 15D501 建筑物防雷設施安裝
- 世界500強CFO的財務管理筆記2
- 申請提取住房公積金個人授權、承諾書(樣表)
- 小動物外科手術學-浙江大學中國大學mooc課后章節答案期末考試題庫2023年
- 物流公司運輸安全管理制度
- 三個合伙人分配合同范本
- PLC課程設計-四人搶答器
- 化妝品生產工藝及流程圖
評論
0/150
提交評論