VB順序結構設計_第1頁
VB順序結構設計_第2頁
VB順序結構設計_第3頁
VB順序結構設計_第4頁
VB順序結構設計_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章依次結構程序設計VisualBasic程序設計1程序的概念程序--可以被計算機處理的指令序列。程序設計--依據(jù)所提出的任務,用某種程序設計語言編制一個能正確完成該任務的計算機程序。2一個程序應包括兩個方面的內(nèi)容:沃思(NikiklausWirth)提出一個公式:數(shù)據(jù)結構+算法=程序數(shù)據(jù)結構+算法+程序設計方法+語言工具當今對以上公式的擴充:

程序的特性對數(shù)據(jù)的描述:數(shù)據(jù)結構(datastructure)對操作的描述:算法(algorithm)3算法的表示可以用不同的方法表示算法,常用的有:自然語言N-S圖表示法傳統(tǒng)流程圖以上3種描述各有特色初學者最好在編程之前,先畫出算法流程建議用N-S盒圖(禁用goto)4

結構化程序設計方法思想:模塊化程序設計思想;原則:從上往下,逐步求精;每個模塊細化到可以干脆編程;要求:每個模塊只有且必有一個入口和一個出口;5

結構化程序設計方法三種基本結構:依次\選擇\循環(huán)任何程序都可以用三種基本結構表示優(yōu)點:結構清晰,易讀,較高的質量和效率6(1)依次結構ABAB流程圖N-S圖A執(zhí)行完再執(zhí)行B箭頭上方表示入口箭頭下方表示出口上面框表示入口下面框表示出口7事務驅動:將代碼劃分成一些過程過程結構:過程內(nèi)部代碼由三種基本結構組成即:依次結構、選擇結構、循環(huán)結構依次結構:執(zhí)行過程的次序從上到下,從左到右例:PrivateSubCommand1_Click()DimHAs

Single

,RAs

Single‘變量的聲明ConstPi=3.14H=Val(Text1.Text)R=Val(Text2.Text)Text3.Text=Pi*R^2*HEndSub8依次結構程序設計主要內(nèi)容賦值語句數(shù)據(jù)輸入數(shù)據(jù)輸出注釋、暫停、程序結束語句開始輸入計算、處理輸出結束9賦值語句是VB程序最常用、最基本的語句它能為變量供應數(shù)據(jù)。若要在程序代碼中設置對象的屬性,也要運用賦值語句。數(shù)據(jù)輸入:將要加工的數(shù)據(jù)輸入到計算機中可運用賦值語句,輸入函數(shù),文本框控件,10賦值—將給定數(shù)值賦給變量或對象(的屬性)賦值語句賦值語句格式<變量名>=<表達式>[<對象名>.]<屬性名>=<表達式>語句中的變量名應符合VB變量命名約定,表達式可以是常量、變量、表達式,對象名缺省時為當前窗體變量未賦值時,數(shù)值型變量為0,字符串變量為空串""賦值號“=”與數(shù)學中的等號意義不同,賦值號左邊必需是變量或對象屬性R=3+AText1.Font=“黑體”11說明:執(zhí)行過程:先求表達式的值,然后將值賦值給左邊的變量不要將“=”理解為數(shù)學上的等號

A=A+1表示:將A單元的值加1后以放回到A單元

執(zhí)行過程如右圖123.賦值符號“=”左邊只能是變量名或對象的屬性引用,不能是常量、符號常量、表達式。下面的賦值語句都是錯的:5=X'左邊是常量Abs(X)=20'左邊是函數(shù)調(diào)用,即是表達式4.賦值符號“=”兩邊的數(shù)據(jù)類型相容,一般要求應一樣類型相容:指變量名或對象屬性名能夠正確存取賦值號右邊的表達式的值。5.給可變類型的變量賦值后,變量的類型為賦值號右邊表達式的類型13課堂練習1(數(shù)據(jù)類型相容):推斷A、B、C、S的值DimAAsInteger,BAsSingle,CAsDouble,SAsString(或DimA%,B!,C#,S$)

A=100'將整型數(shù)100賦給整型變量AS="123.45"'將字符串"123.45"賦給變量SA=S'將數(shù)字字符串變量賦值給整型變量,

'變量A中存放123,類型相容S=A'S中存放字符串"123"B=12345.67A=B'單精度變量賦值給整型變量,

'先四舍五入后取整,A中存放12346C=123456.789B=C'雙精度變量賦值給單精度變量。有效數(shù)字7位'先四舍五入,后取整。變量B中存放123456.8S="abc"A=S‘運行錯誤,類型不匹配14課堂練習2:執(zhí)行下列各賦值語句后,A的數(shù)據(jù)類型是什么?(設A沒有定義數(shù)據(jù)類型)A=6=5A=5+3A="5+3"A=#03/20/2003#A="#3-20-03#"A=Not5>8可以用TypeName函數(shù)推斷變量的數(shù)據(jù)類型。如:PrintTypeName(A)注:將課堂練習2內(nèi)容,上機實現(xiàn)。運用立刻窗口視察A的數(shù)據(jù)類型。變量A在代碼中可能造成邏輯錯誤或運行錯誤??蛇\用本地或監(jiān)視窗口視察A的數(shù)據(jù)類型。15數(shù)據(jù)輸入:將要加工的數(shù)據(jù)輸入到計算機中可運用賦值語句,輸入函數(shù),文本框控件,數(shù)據(jù)輸入輸入函數(shù)(InputBox)InputBox(<提示信息>[,<標題>][,<默認值>])功能—顯示一個(輸入)對話框,等待用戶輸入信息或按下<Enter>按鈕,返回包含文本框內(nèi)容的字符串提示信息

—出現(xiàn)在對話框上的信息(字符串表達式)。用Chr(13)、Chr(10)、Chr(13)&Chr(10)、vbCrLf可換行標題

—出現(xiàn)在對話框標題欄上的信息(字符串表達式),缺省則顯示當前應用程序的名字默認值

—出現(xiàn)在對話框上文本框中的信息(字符串表達式),缺省為空函數(shù)返回值:

字符串(在對話框中單擊取消則返回"")16InputBox(<提示信息>[,<標題>][,<默認值>]) VB供應的InputBox函數(shù)可生成(輸入)對話框。(輸入)對話框可以接受用戶的輸入,但是其風格和用法有別于文本框。

例:有語句如下:Dimx%

'

AsInteger

x=Val(InputBox(“請輸入一個數(shù)”,“輸入框”,100))語句執(zhí)行后打開如下對話框:默認值標題提示17留意:每執(zhí)行一次InputBox函數(shù),用戶只能輸入一個數(shù)據(jù);輸入框的樣式是固定的,用戶不能變更;用戶只能變更“提示”和“標題”的內(nèi)容,而“提示”和“標題”都是字符串表達式。

默認值標題提示18例:設計一個從鍵盤輸入數(shù)據(jù)的對話框

PrivateSubForm_Activate()DimRAsString,AreaAsSingle

R

=InputBox("請輸入半徑","計算面積","1")

Area=3.14*Val(R)^2PrintVal(R),Area

EndSub返回文本框中的文本并賦給變量R返回一個零長度的字符串賦給變量R19文本框(TextBox)

:可用于數(shù)據(jù)輸入,接收用戶輸入的信息用文本框輸入數(shù)據(jù)時,也就是將文本框的Text屬性的內(nèi)容賦值給某個變量。例:將文本框Text1中輸入的字符串賦給字符串變量MystrDimMyStrAsString

MyStr=Text1.Text

例:將文本框Text1中輸入的字符串作為數(shù)據(jù)賦給整型變量DimAAsIntegerA=Val(Text1.Text)20焦點和Tab鍵序焦點:當前可以接收用戶輸入的對象稱為具有焦點對象的Enable和Visible屬性為True時,才能接收焦點有些控件不能獲得焦點,例如標簽、定時器、菜單(對象)如何獲得焦點?運行時用戶選擇對象(鼠標、Tab鍵、訪問鍵)在代碼中運用SetFocus方法(對象)失去焦點運行時用戶選擇其它對象(鼠標、Tab鍵、訪問鍵)在代碼中對另一個對象運用SetFocus方法21Tab鍵序所謂Tab鍵序,即光標在各個控件之間移動的依次每個窗體都有自己的Tab鍵序默認的Tab鍵序與控件的建立依次一樣變更控件的TabIndex屬性可以變更鍵序控件的TabStop屬性(=True)確定它是否能夠運用Tab鍵將焦點移動到當前對象事務GotFocus發(fā)生在對象得到焦點時LostFocus發(fā)生在對象失去焦點時22【例4-2】設計如下圖所示的界面,運行時,輸入某學生三門課的成果,計算平均成果。按要求編程。單擊“計算”按鈕求平均成果;當輸入成果的文本框獲得焦點時,選中其中的文本√;當輸入成果的文本框內(nèi)容發(fā)生變更時,清除平均值;單擊“清除”按鈕清除全部內(nèi)容,將焦點定位在Text1中;單擊“退出”按鈕結束程序的運行。Text4Text1Text2Text3Command1Command2Command3設Text4的Locked屬性為True要求23PrivateSubCommand1_Click()A=Val(Text1.Text)B=Val(Text2.Text)C=Val(Text3.Text)Text4.Text=(A+B+C)/3EndSub①單擊“計算”按鈕求平均成果24PrivateSubText1_GotFocus()Text1.SelStart=0Text1.SelLength

=Len(Text1.Text)EndSub

②當輸入成果的文本框獲得焦點時,選中其中的文本√PrivateSubText2_GotFocus()Text2.SelStart=0Text2.SelLength=Len(Text2.Text)EndSubPrivateSubText3_GotFocus()Text3.SelStart=0Text3.SelLength=Len(Text3.Text)EndSub選中文本思索:文本框獲得焦點……是否確定要運用GotFocus事務?25PrivateSubText1_Change()Text4.Text=""EndSub③當輸入成果的文本框內(nèi)容發(fā)生變更時,清除平均值PrivateSubText2_Change()Text4.Text=""EndSubPrivateSubText3_Change()Text4.Text=""EndSub思索:文本框獲得焦點……是否確定要運用GotFocus事務?26④單擊“清除”按鈕清除全部文本框的內(nèi)容,并將焦點定位在文本框Text1中。PrivateSubCommand2_Click()Text1.Text=""Text2.Text=""Text3.Text=""Text4.Text=""Text1.SetFocusEndSub⑤單擊“退出”按鈕結束程序的運行。PrivateSubCommand3_Click()

End

EndSub27PrivateSubText1_Change()Text4.Text=""Text1.SelStart=0'選擇Text1文本的起始位置為0Text1.SelLength=Len(Text1.Text)'選擇文本的長度為Text1'中文本的總長度EndSub思索:文本框獲得焦點……是否確定要運用GotFocus事務?答:不確定??蓪ⅱ?、③和為一,即:當輸入成果的文本框內(nèi)容發(fā)生變更時(即獲得焦點),選中其中的文本并清除平均值。28數(shù)據(jù)輸出文本框

標簽

消息框(MsgBox)

Print方法

……在程序設計中對輸入的數(shù)據(jù)進行加工后,往往須要將處理結果、提示信息等呈現(xiàn)給用戶,即輸出29文本框(TextBox)控件:文本框既可以輸入數(shù)據(jù),也可以輸出數(shù)據(jù)用文本框輸出數(shù)據(jù)時,也就是將數(shù)據(jù)賦給文本框的Text屬性例:用文本框Text1輸出一個字符串

Text1.Text="hello"例:用文本框Text1輸出一個數(shù)值型數(shù)據(jù)

Text1.Text=Str(3^2)'Str可以省略或用Format例:用文本框Text1輸出多個數(shù),分多行輸出。首先將文本框的MultiLine設置為True,必要時可以進一步設滾動條屬性ScrollBars。X=3^2:Y=4^3Text1.Text=Str(X)&vbCrLf&Str(Y)Chr(13)+Chr(10):回車符與換行符結合30【例4-3】在文本框Text1中輸入任一英文字母,文本框1獲得焦點時,選中其中的文本。在Text2中顯示該英文字母及其ASCII碼值。并要求在文本框Text2中顯示出全部已輸入的英文字母及其ASCII碼值。Text1Text2Command1例4-631Text2的屬性設置Text—空MultiLine—

TureScrollBars—

2-Vertical

Command1的代碼設計PrivateSubCommand1_Click()DimCharAsString*1

Char=Trim(Text1.Text)Text2.Text=Space(5)&

Char&_Space(10)&

Str(Asc(Char))&

vbCrLfText1.SetFocusText1.SelStart=0Text1.SelLength=Len(Text1.Text)EndSubChr(13)&Chr(10)Text1Text2Command1文本框1獲得焦點時,選中其中的文本例4-6Text2.Text&顯示出全部已輸入的字母及ASCII碼值32標簽(Label)控件:用標簽輸出數(shù)據(jù)時,也就是將數(shù)據(jù)賦給標簽的Caption屬性。也可以輸出多個數(shù)據(jù)。標簽可以顯示文本(但不能對文本進行編輯)標簽的屬性Caption:標簽的標題Alignment:確定標簽標題的對齊方式AutoSize:確定標簽是否隨標題自動調(diào)整大小BorderStyle:確定標簽的邊框BackStyle:指定背景是透亮或不透亮WordWrap:指示是否隨標題沿垂直方向自動擴展33例:用標簽Label1輸出一個字符串Label1.Caption="hello"例:用標簽Label1輸出一個數(shù)值型數(shù)據(jù)X=3^5Label1.Caption=Str(X)例:用標簽Label1輸出多個數(shù),分多行輸出。先設置標簽的AutoSize屬性和WordWrap屬性為True。

X=3^5:y=7^4Label1.Caption="x="&Str(X)&vbCrLf_

&"y="&Str(y)34【例4-4】已知三角形的三條邊a、b、c的長度,用海倫公式求三角形的面積S。海倫公式:將文本框Text1、Text2、Text3的內(nèi)容清空;設置三個文本框的Alignment屬性為1-RightJustify;設置標簽Label2的Caption屬性為空;設置標簽Label2的BorderStyle屬性為1–FixedSingle。例4-11Text1Text2Text3Label2Command1Label135代碼如下:PrivateSubCommand1_Click()DimAAsSingle,BAsSingle,CAsSingleDimPAsSingle,SAsSingleA=Val(Text1.Text)B=Val(Text2.Text)C=Val(Text3.Text)P=(A+B+C)/2S=Sqr(P*(P-A)*(P-B)*(P-C))

'用Format顯示時保留兩位小數(shù)Label2.Caption=Format(S,"0.00")EndSub36消息框(MsgBox)函數(shù)

消息框常用于在屏幕上顯示一個對話框,給出一些提示或警告信息,并允許用戶進行選擇。程序依據(jù)該選擇確定進一步的操作。37消息框(MsgBox)函數(shù)

(pp.58)格式<變量>=MsgBox(<提示信息>[,<按鈕類型>][,<標題>])或:

MsgBox

<提示信息>[,<按鈕類型>][,<標題>]功能在對話框中顯示消息,等待用戶單擊按鈕,并返回一個整數(shù)告知用戶單擊了哪個按鈕38提示信息

字符串表達式,

用Chr(13)、Chr(10)、Chr(13)&Chr(10)、vbCrLf可換行。對話框標題

—字符串表達式,可選項。同InputBox按鈕類型

—數(shù)值型數(shù)據(jù),可選項。

它包含按鈕類型+圖標類型+默認按鈕(P65)按鈕類型:0、1、2、3、4、5圖標類型:16、32、48、64默認按鈕:0、256、512返回值

(MsgBox)—用戶在對話框中按下了哪個按鈕返回值可以是:1、2、3、4、5、6、7(P65)39按鈕及圖標值如下:依據(jù)用戶所選按鈕,函數(shù)返回1—7的整數(shù)值,其含義如下表:默認按鈕—0,256,51240例:<對話框標題>PrivateSubCommand1_Click()A=MsgBox("提示信息",,"標題內(nèi)容")EndSub例:

按鈕類型—0到5或符號常量見P65PrivateSubCommand1_Click()A=MsgBox("提示信息",1,"標題內(nèi)容")EndSub無按鈕類型按鈕類型=1默認按鈕041例:

圖標類型—16、32、48、64或符號常量見P65PrivateSubCommand1_Click()A=MsgBox("提示信息",16,"標題內(nèi)容")EndSub例:

默認按鈕—0,256,512見P58PrivateSubCommand1_Click()a=MsgBox("提示信息",2+256,"標題內(nèi)容")PrintaEndSub按回車(默認)打印4按鈕類型=242按鈕及圖標值如下:依據(jù)用戶所選按鈕,函數(shù)返回1—7的整數(shù)值,其含義如下表:默認按鈕—0,256,51243按鈕類型

—數(shù)值型數(shù)據(jù),可選項。

它包含按鈕類型+圖標類型+默認按鈕(P65)按鈕類型:0、1、2、3、4、5圖標類型:16、32、48、64默認按鈕:0、256、512返回值

(MsgBox)—用戶在對話框中按下了哪個按鈕返回值可以是:1、2、3、4、5、6、7(P65)44a=msgbox(“文件已存在,是否替換原有文件?”,1+48+256)Printa課堂練習3:用msgbox

函數(shù)生成以下窗口,并將用戶的選擇賦給變量a例:<提示信息>換行PrivateSubCommand1_Click()A=MsgBox("第一行"&Chr(13)&"其次行")EndSub按回車打印數(shù)值2按鈕類型+圖標類型+默認按鈕45Print方法格式:

[<對象名>.]Print[<表達式表>][{;|,}]數(shù)據(jù)輸出:用Print方法輸出數(shù)據(jù)對象名—窗體(Form)、圖片框(Picture)、立刻窗口(Debug)、打印機(Printer).缺省:當前窗體顯示格式—多個表達式運用逗號“,”或分號“;”隔開,表示分區(qū)格式(以14個字符位置為單位),每區(qū)顯示一個表達式的值;表示緊湊格式,即后一項緊跟前一項顯示省略此項,則輸出空行功能:在窗體、圖片框、立刻窗口、或打印機上輸出數(shù)據(jù)46例:Print"23*2=";23*2'在當前窗體上輸出23*2=46Picture1.Print"Good"'在圖片框Picture1上輸出GoodPrinter.Print"Morning"'在打印機上輸出MorningDebug.Print"23*2=";23*2'在立刻窗口輸出23*2=46

–輸出時,數(shù)值型數(shù)據(jù)前有一個符號位(正號不顯),后面留一個空格位;字符串原樣輸出,前后無空格。47例:

Print“12345678901234567890123456789”Print1;2;3Print4,5,Print6Print7,8PrintPrint9,10輸出結果為:123456789012345678901234567891234567891048PrivateSubForm_Load()

Form1.ShowPrint"12345678901234567890"

?"2+4=";2+4

?"2-4=",2-4EndSubPrivateSubForm_Activate()Print"12345678901234567890"

?"2+4=";2+4;2+5

?"2-4=",2-4EndSub課堂練習4:指出下列程序的執(zhí)行結果Print方法在Form_Load事件中不起作用,必須使用Show方法,或將AutoRedraw屬性設置為Ture輸入Print時可用?代替,VB將其自動轉換成Print49與Print協(xié)作運用的函數(shù):Tab函數(shù)格式:Tab[(n)]功能:與Print方法一起對輸出數(shù)據(jù)進行定位參數(shù)n指明輸出數(shù)據(jù)的顯示位置(列數(shù))n省略,打印位置為下一個打印區(qū)的起點n<當前位置,打印位置為下一行的第n列n<1,打印位置為第1列n>輸出行寬度,打印位置為nMod行寬Spc函數(shù)格式:Spc(n)功能:跳過n個空格50PrivateSubForm_Activate()Print"12345678901234567890"Print"Hello";Tab(10);"World"Print"Hello";Tab;"World"Print"Hello";Tab(4);"World"PrintTab(-5);"Hello"EndSub課堂練習5:指出下列程序的執(zhí)行結果51與Print協(xié)作運用的函數(shù):Spc函數(shù)格式:Spc(n)功能:跳過n個空格例:Print"HOW";Spc(3);"ABOUT"結果:HOW∪∪∪ABOUT留意:Spc函數(shù)與Space函數(shù)、Tab函數(shù)的區(qū)分Space函數(shù):可

溫馨提示

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

評論

0/150

提交評論