官术网_书友最值得收藏!

1.1 Visual Basic簡介

1.1.1 程序設計語言概述

計算機程序設計語言是人和計算機交流的工具,是計算機可以識別的語言。程序設計語言也像人類的語言一樣,由語法和語義構(gòu)成,語法是一組規(guī)則,它描述程序的結(jié)構(gòu)形式和規(guī)則,只有合法的程序(語法正確)才能被編譯和執(zhí)行。語義也是一組規(guī)則,它定義的是程序的執(zhí)行意義。

例如:下面是兩個程序片段

…
If Mark > 60 Then
    Print " 恭喜你!你及格了 。"
Else
    Print " 很遺憾!你不及格 。"
End If
…
If Mark > 60 Then Print " 恭喜你!你及格了。" Else Print " 很遺憾!你不及格。"

以上是兩個語義相同的雙分支結(jié)構(gòu)的If條件語句。但是由于它們一個是塊If語句,另一個是行If語句,所以要按照不同的語法規(guī)則來書寫,否則就不能被計算機編譯和執(zhí)行。

1.程序設計語言分類

計算機程序語言的分類可以從不同的角度進行。

從應用范圍可分為:專用語言(如CAD系統(tǒng)中的繪圖語言,DBMS中的數(shù)據(jù)庫查詢語言(SQL)等)和通用語言(如C、VB、C++、Java等)。

從計算機執(zhí)行的角度來看,程序設計語言可分為:機器語言、匯編語言和高級語言。

(1)機器語言:是用二進制代碼(0和1)表示的計算機能直接識別和執(zhí)行的一種機器指令的集合。它是程序設計人員通過計算機的硬件結(jié)構(gòu)賦予計算機的操作功能。例如運算符號“+”的機器代碼10000000。它的特點是可以直接執(zhí)行且運算速度快,但因與計算機的指令系統(tǒng)密切相關(guān),故不可移植,又因可讀性差,查錯比較困難,很難掌握。現(xiàn)在,除了計算機生產(chǎn)廠家的專業(yè)人員外,絕大多數(shù)程序員已經(jīng)不再學習機器語言了。

(2)匯編語言:是在20世紀50年代在機器語言的基礎上發(fā)展起來的。它用與指令代碼實際含義相近的英文縮寫詞、字母和數(shù)字等助記符號來代替1、0碼組成的指令代碼,以方便人們理解和記憶。例如用ADD表示運算符號“+”的機器代碼10000000。匯編語言不能直接執(zhí)行,要經(jīng)過匯編才可執(zhí)行。由于機器語言和匯編語言都依賴于計算機硬件,所以又稱低級程序設計語言。

(3)高級程序設計語言:高級程序設計語言和計算機的硬件基本無關(guān),它比較接近人類的自然語言。

20世紀60年代至80年代面向過程的程序設計語言被廣泛使用,如:BASIC、Quick BASIC、Pascal、FORTRAN、COBOL、C等,它主要適用于DOS環(huán)境,程序的執(zhí)行是流水線式的,在一個模塊被執(zhí)行完成前,人們不能干別的事,也無法動態(tài)地改變程序的執(zhí)行方向。程序模塊和數(shù)據(jù)結(jié)構(gòu)是緊密地結(jié)合在一起的,當程序比較復雜時,容易出錯且難以維護。

在20世紀90年代出現(xiàn)了面向?qū)ο蟪绦蛟O計語言,如:Visual Basic、Visual C++、Delphi、Java等,主要適用于Windows環(huán)境,面向?qū)ο蠹夹g(shù)被認為是程序設計方法學的一場實質(zhì)性的革命。它將客觀事物抽象為一系列的對象和類,大多數(shù)的類都是由系統(tǒng)設計好的功能模塊,又稱為軟件集成塊。它與具體應用無關(guān),但能相互組合,完成具體的應用功能,同時又能重復使用。本書要介紹的Visual Basic 6.0是一種高級程序設計語言,具有一定的面向?qū)ο蟪绦蛟O計功能。

2.翻譯方式

高級語言編寫的源程序要經(jīng)過翻譯才能被計算機執(zhí)行,翻譯的方式有解釋方式和編譯方式兩種。

(1)解釋方式:事先編好的一個叫作解釋程序的機器語言程序放在計算機中,當高級語言源程序輸入計算機后,解釋程序自動地逐句分析,如果沒有錯誤,即將該語句翻譯成相應的機器指令并執(zhí)行,即翻譯一句執(zhí)行一句。如果發(fā)現(xiàn)錯誤,則立即停止執(zhí)行。解釋方式不產(chǎn)生可執(zhí)行程序。其工作過程如圖1-1所示。

圖1-1 解釋方式的工作過程

(2)編譯方式:事先編好的一個叫作編譯程序的機器語言程序放在計算機中,當高級語言編的源程序輸入計算機時,編譯程序就自動把源程序整個地翻譯成用機器指令表示的目標程序。通常在目標程序中還可能調(diào)用一些其他語言編寫的程序和標準程序庫中的標準子程序。因此需要使用連接程序?qū)⒛繕顺绦蚝陀嘘P(guān)的程序庫組合成一個完整的可執(zhí)行程序,產(chǎn)生的可執(zhí)行程序可以脫離源程序和語言處理程序獨立存在,并可以重復運行。其工作過程如圖1-2所示。

圖1-2 編譯方式的工作過程

作為高級程序設計語言,它們的本質(zhì)性的、規(guī)律性的東西是相通的,掌握了一種高級語言后再學另一種語言就很容易了。

1.1.2 Visual Basic的版本和特點

Visual Basic(簡稱VB)是一種由微軟(Microsoft)公司開發(fā)的基于初學者通用符號指令代碼(Beginner’s All-purpose Symbolic Instruction Code,BASIC)的可視化的、具有面向?qū)ο蠊δ?、采用事件?qū)動編程機制的結(jié)構(gòu)化程序設計語言。它主要用于開發(fā)在Windows環(huán)境下運行的具有圖形用戶界面(Graphic User Interface,GUI)的應用程序。

微軟公司自1991年推出Visual Basic1.0版本獲得巨大成功后,于1992年、1993年、1995年、1997年和1998年相繼推出了2.0版、3.0版、4.0版、5.0版和6.0版。隨著版本的改進,Visual Basic已經(jīng)成為了一種簡單易學,功能強大的編程工具。為了適應網(wǎng)絡技術(shù)快速發(fā)展和廣泛應用的需要,2002年微軟推出了Visual Basic.Net。Visual Basic.Net與Visual Basic并不完全兼容,它增加了更多的特性,將Visual Basic語言提升到了全新的高度,使之演化為完全面向?qū)ο蟮某绦蛟O計語言。VB是目前國內(nèi)外最流行的程序設計語言之一,也是一種很適合初學者學習開發(fā)Windows應用程序的程序設計語言。

本書以Visual Basic 6.0為標準進行講解。Visual Basic 6.0包括3種版本,分別是學習版、專業(yè)版和企業(yè)版。學習版主要是為初學者學習和開發(fā)比較簡單的Windows應用程序設計的;專業(yè)版是為專業(yè)人員開發(fā)基于客戶/服務器的應用程序而設計的;企業(yè)版則是為編程人員開發(fā)高級的分布式、高性能的客戶/服務器或網(wǎng)絡(Internet)上的應用程序而設計的。

Visual Basic具有很多與傳統(tǒng)程序設計語言不同的特點,其中最主要的特點有兩個,即可視化的界面設計和事件驅(qū)動的編程機制。

1.可視化的界面設計

使用過Windows應用程序的用戶一定對窗口界面不陌生。圖1-3和圖1-4所示的過程是一個簡單的窗體界面。這樣一個簡單的界面用傳統(tǒng)的語言來生成就必須編寫一大段程序?qū)ζ溥M行描述,并且設計階段還看不到實際效果,只有程序運行時才可以觀察到結(jié)果,所以需要反復修改和運行,直到結(jié)果滿意為止,費時又費力。而VB的可視化特點使界面的設計變得非常容易,只需要從系統(tǒng)提供的工具箱中選擇合適的控件,在界面的適當位置上畫出來就可以了,相當于將各種零部件從庫中取出來往“紙”上擺放。那些相當復雜的編寫界面的程序代碼由VB系統(tǒng)全權(quán)負責了,因此大大提高了程序設計的效率。

圖1-3 程序運行的初始狀態(tài)

圖1-4 單擊“顯示圖片”按鈕后的狀態(tài)

【例1-1】 編寫一個小程序使一個圖片顯示在圖片框里或從圖片框中消失。程序運行的初始界面如圖1-3所示。當單擊“顯示圖片”按鈕,圖片顯示在圖片框中,如圖1-4所示。當單擊“清除圖片”按鈕,圖片框中的圖片消失,如圖1-3所示。

(1)界面設計:從VB集成開發(fā)環(huán)境所提供的工具箱中取出所需要的控件(本示例包括一個圖片框和兩個命令按鈕),擺放在窗體的適當位置上,再調(diào)整好大小即可,如圖1-5所示。

圖1-5 【例1-1】界面設計

(2)代碼設計:

Private Sub Form_Load()
     Command2.Enabled = False          ' 程序開始運行時按鈕Command2不可用
End Sub
___________________________________________________________________________
Private Sub Command1_Click()
     Picture1.Picture = LoadPicture (App.Path & "\1.jpg")  ' 單擊"顯示圖片"按鈕顯示圖片
     Command1.Enabled = False          ' 按鈕Command1不可用
     Command2.Enabled = True           ' 按鈕Command2可用
End Sub
____________________________________________________________________________
Private Sub Command2_Click()
     Picture1.Picture = LoadPicture("")       ' 單擊"清除圖片"按鈕圖片消失
     Command1.Enabled = True                  ' 按鈕Command1可用
     Command2.Enabled = False                 ' 按鈕Command2不可用
End Sub

2.“事件驅(qū)動”的編程機制

傳統(tǒng)的面向過程的編程思路是根據(jù)程序?qū)崿F(xiàn)功能,編寫一個主程序和若干子程序,執(zhí)行時從主程序第一句執(zhí)行起并不斷轉(zhuǎn)向子程序且中間常需要暫停輸入數(shù)據(jù),這樣一旦出錯就得一步一步去檢查;但VB程序是面向?qū)ο缶帉懙?,程序的?zhí)行是通過事件來驅(qū)動的。所謂事件就是能夠被對象識別的動作,例如,用鼠標單擊某個命令按鈕就產(chǎn)生一個Chick(單擊)事件。VB中的事件是預先定義好的,不同的對象具有不同的事件。VB編程的主要任務就是為對象的事件過程編寫相應的程序代碼,這樣的一段代碼稱為事件過程,也可稱為子程序。執(zhí)行時一般是一個子程序執(zhí)行一個單一的功能,也就是說,一個主程序統(tǒng)一控制的局面被分解成許多獨立的小模塊,每個模塊又獨立地由各種事件來驅(qū)動,各個事件之間不一定有聯(lián)系,程序的運行也沒有固定的順序,這種工作模式稱為事件驅(qū)動方式。由于每個事件過程的程序代碼較短,使程序的編寫簡單且容易維護。

如果希望圖片顯示在圖片框里,就要單擊“顯示圖片”命令按鈕,這時產(chǎn)生一個Chick(單擊)事件,如圖1-3和圖1-4所示。針對這個按鈕編寫的程序就會獨立地響應這一事件而與其他事件無關(guān)。同樣,如果希望圖片消失,就單擊“清除圖片”按鈕,從而觸發(fā)相應的單擊事件。

主站蜘蛛池模板: 扶风县| 时尚| 连州市| 凤翔县| 昂仁县| 乐都县| 马尔康县| 教育| 元氏县| 淄博市| 遵化市| 孝感市| 德兴市| 当雄县| 社旗县| 华安县| 闸北区| 阿尔山市| 香格里拉县| 广州市| 黄山市| 丹阳市| 南开区| 盐山县| 始兴县| 西藏| 安岳县| 潮安县| 邵阳县| 陈巴尔虎旗| 临清市| 轮台县| 商水县| 新干县| 广德县| 建湖县| 望谟县| 深圳市| 保定市| 安溪县| 肃北|