VB基礎教程入門全篇精講_第1頁
VB基礎教程入門全篇精講_第2頁
VB基礎教程入門全篇精講_第3頁
VB基礎教程入門全篇精講_第4頁
VB基礎教程入門全篇精講_第5頁
已閱讀5頁,還剩261頁未讀, 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

2第一章VisualBasic程序設計概述

1.1概述

1.2運行環境、安裝和啟動

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

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

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

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

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

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

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

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

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

EndSubPrivateSubCommand2_Click()End

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

例2.2在窗體上建立兩個叮囑按鈕Command1和Command2,Command2的Font通過屬性窗口設置,其余屬性通過代碼實現。347.Forecolor前景顏色屬性設置控件的前景顏色(即正文顏色).其值是一個16進制常數,用戶可以在調色板中干脆選擇所需顏色。8.Backcolor背景顏色屬性9.Backstyle背景風格屬性0-transparent:透亮顯示,即控件背景顏色顯示不出來10.BorderStyle邊框風格屬性0-None:控件四周沒有邊框1-FixedSingle:控件帶有單邊框。11.Alignment屬性控件上正文水平對齊方式0:正文左對齊1:右對齊 2:居中12.AutoSize屬性控件是否依據正文自動調整大小,False.3513.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例:有關屬性的綜合應用。對象設置:效果:37二、窗體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、兩者的不同在于:屬性設置時設置的圖片,會被保存起來并與窗體同時加載,而運行時加載的圖片,不和應用程序一起保存。382.事務:P28Click、DblClick、Load、UnLoad等Load當裝入窗體時激發,通常用于對屬性和變量初始化3.方法:P28Print、Cls、Move、Show、Hide等當在Form_Load事務中運用Print方法時,必需將該窗體的AutoRedraw設置為True,否則Print方法無效。

例上述屬性、Click、DblClick和Load事務演示。書上例子:P2839三.標簽Label1、功能:用于顯示文本(輸出)信息,不能作為輸入信息的界面。2、屬性:P293、事務:click、Dblclick、Change例2.5.顯示浮雕效果的文字,實現方法:字顏色、標簽位置書上例子:P29四.文本框TextBox功能:是一個文本編輯區域,可以輸入,編輯和顯示正文內容。1、屬性:P30Text:正文內容Maxlength:設置正文的最多字符個數,0隨意長度值.MultiLine:是否為多行,默認一行.FALSEScrollBars:當MultiLine為True時,該屬性才有效,表示滾動條的形式0-None、1-Horizontal、2-Vertical、3-Both。Locked:是否可被編輯屬性,False,表示為可編輯。PassWordchar:口令字符.Text屬性返回輸入的數據,屏幕顯示該字符,SelStart,SelLength,SelText:選中文本的起始、長度、內容。例2.6復制選中的文本402.常用事務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五.叮囑按鈕CommandButton功能:接受用戶輸入的叮囑。輸入叮囑可以有三種方式:鼠標單擊Tab鍵焦點到該按鈕快捷鍵1.屬性:P33Caption:叮囑按鈕顯示的內容,可設置快捷鍵,例&Ok,顯示OkValue:檢查該按鈕是否按下.該屬性在設計時無效.Picture:按鈕可顯示圖片文件(.bmp和.Ico),當Style為1時有效Style:確定顯示的形式.0只能顯示文字,1文字、圖形均可。ToolTipText:設置工具提示,和Picture結合運用。2.事務Click423.應用:例2.8建立一個允許剪切、復制和粘貼的簡潔便箋板程序。可增加內容:利用MouseMove事務確定叮囑按鈕的有效性,即當選中內容,“剪切”、“復制”按鈕有效,否則無效。43DimstAsStringPrivateSubcmdcopy_Click()st=txtnoteedit.SelTextcmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndSubPrivateSubmdcut_Click()st=txtnoteedit.SelTexttxtnoteedit.SelText=""cmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndSubPrivateSubcmdexit_Click()EndEndSubPrivateSubcmdpaste_Click()txtnoteedit.SelText=stEndSubPrivateSubForm_Load()cmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=FalseEndSub44Subtxtnoteedit_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)Iftxtnoteedit.SelText<>""Thencmdcopy.Enabled=Truecmdcut.Enabled=Truecmdpaste.Enabled=FalseElsecmdcopy.Enabled=Falsecmdcut.Enabled=Falsecmdpaste.Enabled=TrueEndIfEndSub45六、常用方法Vb中運用方法的語法結構是相同的[對象.]方法[參數列表]1.print方法形式:[對象.]print[{spc(n)|tab(n)}][表達式列表]作用:在對象上輸出信息。對象:可以是窗體(form)、圖形框(picturebox)、打印機。若省略,則在窗體上輸出。46表達式列表起先位置是由對象的currentx和currenty屬性確定的,缺省為打印對象的左上角0,0。例2-9:print方法輸出圖形。PrivateSubForm_Click()Form1.CurrentX=200Form1.CurrentY=550Fori=1To5PrintTab(i+5);String(6-i,"▼");_Spc(6);String(i,"▲")NextiEndSub472、cls方法形式:[對象.]cls(如:picture.cls)作用:用于清除運行時在窗體或圖形框中顯示的文本或圖形。留意:(1)cls方法只清除運行時在窗體或圖形框中顯示的文本或圖形,不清除窗體在設計時的文本或圖形。(2)cls方法運用后,currentx和currenty屬性被設置為0。483、move方法形式:[對象.]move左邊距離[,上邊距離[,寬度[,高度]]]作用:用于移動窗體或控件,并可變更其大小。對象:可以是窗體及除時鐘、菜單外的全部控件,省略對象為窗體。假如對象是窗體,則“左邊距離”和“上邊距離”以屏幕左邊界和上邊界為準,否則以窗體的左邊界和上邊界為準,寬度和高度表示可變更其大小。49例2-10

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

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

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

5、保存窗體文件:若只想保存窗體文件而不保存工程文件,可干脆在“工程資源管理器”中選定,然后執行“文件”菜單中的相應選項。542.6制作成安裝盤2.6.1運用打包和綻開向導打包:把工程中用到的各種類型的文件(包括工程自身的文件、必要的系統文件和安裝主文件)進行打包壓縮后,存放到特定的書目下。綻開:把打包的文件綻開到用戶可以攜帶的用來安裝的軟盤、光盤等介質。管理腳本:記錄打包或綻開過程中的設置,便于以后做同樣的操作。系統的壓縮文件以.cab擴展名保存。2.6.2檢測安裝程序55第三章VB語言基礎

3.1編碼基礎

3.2數據類型

3.3常量與變量

3.4運算符和表達式

3.5基本語句

3.6數組

3.7過程

3.8常用算法舉例

3.9程序調試

563.1編碼基礎一、書寫要求:1.VB代碼不區分字母的大小寫系統關鍵字自動轉換每個單詞的首字母大寫;用戶自定義行以第一次為準2.語句書寫自由一行可書寫幾個語句,之間用冒號分隔;一行最多255個字符;一條語句可分若干行書寫,用續行符(空格+下劃線)連接3.注釋有利于程序的維護和調試Rem或單撇號“‘”以及“編輯”工具欄的“設置注釋塊”;VB中注釋語句會自動變為綠色4.保留行號與標號5.其他留意事項:保留字與變量之間至少有一空格;字母“l”與數字“1”、字母“o”與數字“0”的運用。573.2數據類型

一、標準數據類型:

581、數值數據類型:IntegerLongSingleDoubleCurrencyByte(1)Integer和Long型用于保存整數(2)Single和Double型用于保存浮點實數(3)Currency型是定點實數或整數(4)Byte字節型用于存儲二進制數592、日期(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(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:00613、邏輯(布爾型)數據型:Boolean當邏輯型轉換成整型數據時:true–(-1)false—(0)

當其他類型數據轉換成邏輯數據時:非0數轉換為true,0轉換為false4、字符串型:String“”

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

形式如下:

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

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

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

1.算術運算符例:5+10mod10\9/3+2^2結果:10取ia=3722.字符串運算符:&、+“&”和“+”,都是將兩個字符串拼接起來。"123"+"456"結果"123456""123"&"456"結果"123456"區分:若+的兩旁的操作數均為數值型則進行算術加;若一個為數字字符型,另一個為數值型,則自動將數字字符轉換為數值,然后進行算術加;若一個為非數字字符型,另一個為數值型,則出錯。&則不管什么類型,強制轉換為字符型進行拼接。例如:"abcdef"&12345'結果為"abcdef12345""abcdef"+12345'出錯"123"&456'結果為"123456""123"+456'結果為57912000+“123”&100‘結果為“12123100”Val(left$(“12345678”,4)+mid$(“12345678”,4,2))‘結果為123445留意:(1)"123"+True'結果為122True轉換為數值-1,False轉換為數值0(2)運用“&”時,最好在兩側的操作數間加入一個空格。因為Long類型變量的類型符以及八進制、十六進制數值表示法的起始字符也為“&”。733.關系運算符

將兩個操作數進行大小比較,結果為邏輯量。

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

Chr(66)"B" Asc("B")66Asc(Chr(99))99Chr(Asc("K"))"K"Ucase$("abcdefg")"ABCDEFG“3.日期函數:Date返回系統日期Time返回系統時間Now返回系統日期和時間Year返回年份(1)DateAdd增減日期函數(2)DateDiff間隔日期函數三、常用內部函數814.字符串編碼及操作函數(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區分大小寫。825.格式輸出函數Format()

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

85X=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:\command",1)863.5基本語句3.5.1賦值語句形式:[LET]變量名=表達式作用:將表達式的值賦值給變量名.一般用于給變量賦值或對控件設定屬性值.例:sRate!=0.1Text1.Text="歡迎運用VisualBasic6.0”留意:1、當表達式的類型與變量的類型不一樣時,強制轉換成左邊的精度。如:iA%=10/3iA中的結果為32、雖然賦值號與關系運算符等于號都用“=”表示,VB系統會依據所處的位置自動推斷是何種意義的符號。3、賦值號左邊只能是變量,不能是常量或表達式。4、不能在一句賦值語句中,同時給多個變量賦值。873.5.2人機交互函數和過程VB與用戶之間的干脆交互是通過InputBox()函數、MsgBox()函數和MsgBox過程進行的。1.InputBox函數InputBox(提示[,標題][,缺省][,x坐標位置][,y坐標位置])其中:提示提示信息,標題對話框標題,缺省輸入區缺省值函數返回字符類型.例要在屏幕上顯示圖示的對話框:88相應的語句如下:DimstrNameAsString*40strName=InputBox(“請輸入你的姓名”+vbCrLf+“然后單擊確定”,“輸入框”)也可以運用如下語句:DimstrNameAsString*40,strS1AsString*40strS1=“請輸入你的姓名”+Chr(13)+Chr(10)+“然后單擊確定”strName=InputBox(strS1,“輸入框”,,100,100)當鍵盤輸入“王曉明”后,變量strName獲得鍵盤輸入的值.892.MsgBox函數和MsgBox過程

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

按鈕值如下:函數返回所選按鈕整數值:90例3.2編一帳號和密碼檢驗程序。要求:帳號不超過6位數字,有錯,清除原內容再輸入.密碼輸入時在屏幕上以“*”代替;若密碼錯,顯示有關信息,選擇“重試”按鈕,清除原內容再輸入,選擇“取消”按鈕,停止運行。分析:帳號6位,MaxLength為6,LostFocus推斷數字IsNumeric函數密碼PassWordChar為“*”,MsgBox函數設置密碼錯對話框.913.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=t922.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*xEndIf933.If…Then…ElseIf語句(多分支結構)

形式:

If<表達式1>Then <語句塊1>ElseIf<表達式2>Then <語句塊2> … [Else語句塊n+1]EndIf94例已知變量strC中存放了一個字符,推斷該字符是字母字符、數字字符還是其他字符。用多分支結構實現:IfUcase(strC)>="A"AndUcase(strC)<="Z"Then PrintstrC+"是字母字符"ElseIfstrC>="0"AndstrC<="9"Then PrintstrC+"是數字字符"Else PrintstrC+"其他字符"EndIf不管有幾個分支,依次推斷,當某條件滿足,執行相應的語句,其余分支不再執行;若條件都不滿足,且有Else子句,則執行該語句塊,否則什么也不執行。.ElseIf不能寫成ElseIf。95例已知百分制成果mark,顯示對應的五級制成果哪些正確,哪些錯誤?正確:方法一、二錯誤:方法三964.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<表達式列表>:與<變量或表達式>的類型必需相同,可以是下面四種形式之一:表達式例:"A"一組枚舉表達式(用逗號分隔)2,4,6,8表達式1To表達式2 60To100 Is關系運算符表達式 Is<605.SelectCase語句(狀況語句)形式: SelectCase變量或表達式 Case表達式列表1 語句塊1 Case表達式列表2 語句塊2 … [CaseElse 語句塊n+1] EndSelect變量:只能含有一個表達式:數值型或字符串98留意:關鍵字Is定義條件時,只能是簡潔的條件,不能用邏輯運算符將兩個或多個簡潔的條件組合在一起。例如“CaseIs>20andIs<40”是不合法的。而“CaseIs<2,12,13,15,Is>20”是正確的。99例變量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例:已知坐標點(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例由計算機來當一年級的算術老師,要求給出一系列的1~10的操作數和運算符,學生輸入該題的答案,計算機依據學生的答案推斷正確與否,當結束時給出成果。分析:產生1~10操作數,可通過Int(10*Rnd+1)實現

設置的控件名Label1 Text1

Picture1 Command11026.條件函數

(1)IIf函數形式是:

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

(2)Switch函數形式是:Switch(條件表達式1,條件表達式1為True時的值[,條件表達式2,條件表達式2為True時的值……])103(3)Choose函數形式是:Choose(數字類型變量,值為1的返回值,值為2的返回值……)例如:Nop是1-4的值,轉換成+、-、×、÷運算符Op=Choose(Nop,“+","-","×","÷")當值為1,返回字符串“+”,然后放入Op變量中,值為2,返回字符串“-”,依次類推;當Nop是1-4的非整數,系統自動取Nop的整數方法在推斷;若Nop不在1-4之間,函數返回Null值。1041.在選擇結構中缺少配對的結束語句對多行式的If塊語句中,應有配對的EndIf語句結束。2.多邊選擇ElseIf關鍵字的書寫和條件表達式的表示ElseIf不要寫成ElseIf;多個條件表達式次序問題3.SelectCase語句的運用SelectCase后不能出現多個變量;Case子句后不能出現變量本節常見錯誤1053.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>0初值<終值=1時,可省略<0初值>終值=0死循環循環次數要留意:出了循環,循環限制變量值的問題。例程序段:Fori=2To13Step3循環執行次數Printi,輸出i的值分別為:Nexti25811Print:Print“I=“,i出了循環輸出為:I=14在循環體內對循環限制變量可多次引用;但最好不要對其賦值,否則影響原來的循環限制規律。步長107例變更循環限制變量對循環的影響。PrivateSubCommand1_Click()j=0Fori=1To20Step2i=i+3j=j+1Print"第";j;"次循環i=";iNextiPrint"退出循環后i=";iEndSub正常狀況:i=1,3,5,7,9,11,13,15,17,19現在:i=4,9,14,19例

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

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

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

例求m=14,n=6的最大公約數.

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

620輾轉相減法

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

m、n為公約數m=nDoWhilem<>nmn

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論