版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
程序設計基礎VisualFoxPro有兩種工作方式,人機交互方式和程序方式。1.交互方式有兩種:(1)命令方式VisualFoxpro的命令方式是利用命令窗口來實現(xiàn)的。用戶在命令窗口中輸入命令,可實現(xiàn)對數(shù)據(jù)庫的各種操作。(2)菜單方式
這種方式直觀、方便。2.程序方式程序是能夠完成指定任務的命令序列的組合,可以通過菜單方式或命令方式建立、編輯修改或運行。這組命令以擴展名為.PRG的文件形式保存就叫做程序文件或稱為命令文件。與交互式方式相比,采用程序方式有許多好處:
8.1VisualFoxPro的工作方式程序設計的基本步驟包括(1)對問題進行說明,描述程序的目標。(2)分解問題成各獨立步驟。(3)編制各模塊。(4)測試并完善各模塊。(5)組裝全部模塊。(6)整體測試。
8.2程序文件的建立與編輯8.2.1程序文件的建立與修改命令方式命令格式:MODIFY
COMMAND
[<文件名>]命令功能:建立或編輯修改指定的命令文件,并打開VisualFoxPro6.0文本編輯器,進入命令文件編輯窗口。若文件名是一個已有的文件,則此命令表示打開此文件進行修改;若沒有這個文件名,則表示新建一個程序文件,并以此作為程序文件名。
2.以菜單方式
3.在項目管理器中,選定“代碼”選項卡中的“程序”項。
4.利用建立、編輯文本文件的工具軟件。
5.利用設計工具編寫代碼:
8.2.2程序文件的保存1.從“文件”菜單中選擇“保存”命令或按Ctrl+W鍵保存文件。若要放棄本次修改,可選擇選擇“文件”菜單中的“還原”命令或按Esc鍵。2.若要關閉一個沒有保存的命令文件,則會彈出相應對話框,提示用戶是保存還是放棄已作的修改。3.若保存了一個由項目管理器創(chuàng)建的程序,則該程序被加入項目中。4.若保存一個尚未命名的新程序,則會打開“另存為”對話框,然后在“另存為”對話框中指定程序文件的存放位置和文件名(*.prg),并單擊“保存”命令按鈕。程序保存后,可以運行或修改它。8.2.3程序文件的執(zhí)行1.命令方式命令格式:DO
<命令文件名>命令功能:將指定的命令文件調(diào)入內(nèi)存并從第一條命令語句開始執(zhí)行。2.菜單方式(1)單擊“程序”菜單的“運行”命令,打開“運行”對話框;(2)從文件列表框中選擇要執(zhí)行的命令文件,并單擊“運行”命令按鈕。3.若程序包含在一個項目中,則在項目管理器中選定它并選擇“運行”命令。當程序文件被執(zhí)行時,文件中包含的命令將被依次執(zhí)行,直到所有的命令被執(zhí)行完畢,或者執(zhí)行到以下命令:(1)CANCAL:終止程序運行,清除所有的私有變量,返回命令窗口;(2)DO<程序>:轉(zhuǎn)去執(zhí)行另一個程序;(3)RETURN:結束當前程序的執(zhí)行,返回到調(diào)用它的上級程序,若無上級程序則返回到命令窗口;(4)QUIT:退出Visual
FoxPro系統(tǒng),返回到操作系統(tǒng)。8.3程序中常用的命令8.3.1結構化程序結構化程序由順序結構、分支結構和循環(huán)結構三種基本結構組成。⑴順序結構:程序執(zhí)行順序是根據(jù)程序中語句的書寫順序。⑵分支結構:程序執(zhí)行順序是根據(jù)條件的成立與否,選擇執(zhí)行不同的程序語句。⑶循環(huán)結構:程序執(zhí)行順序是在條件成立時反復執(zhí)行某段程序語句。由三種基本結構構成的程序,可以處理任何復雜的問題。VisualFoxPro程序的組成部分從功能上看,VisualFoxPro程序可以分為三個部分:(1)程序的注釋部分,一般用于說明程序的功能、文件名等需要說明的有關信息。(2)程序運行環(huán)境的設置及初始化部分。(3)數(shù)據(jù)處理部分。通常任何一個有意義的程序,總是要有一些原始數(shù)據(jù),否則,這個程序就沒有處理對象。同樣,程序運行的結果也有必要顯示或打印出來,否則,用戶將不知道程序干了一些什么。因此,這部分程序常包括下列三個部分,依次為:提供原始數(shù)據(jù)部分、數(shù)據(jù)處理部分、輸出結果部分。這部分是程序核心部分。(4)控制返回部分。它控制程序返回到調(diào)用該程序的調(diào)用處。8.3.2順序結構例8.1試編程完成下列功能。從鍵盤上隨機輸入一個正數(shù),以此數(shù)為半徑,求圓周長和圓面積,并輸出結果。程序如下:*求圓周長和圓面積程序VFP8-1.PRG &&注釋語句CLEAR &&清屏語句SETTALKOFF &&系統(tǒng)參數(shù)設置語句INPUT"半徑="TOR &&輸入圓半徑值L=2*PI()*R &&計算圓周長S=PI()*R*R &&計算圓面積"圓周長=",L &&顯示圓周長值?"圓面積=",S &&顯示圓面積值SETTALKON &&恢復參數(shù)設置語句RETURN &&返回語句8.3.3分支結構1.IF…ELSE…ENDIF語句語句格式:IF
<條件><語句序列1>[ELSE
<語句序列2>]ENDIF語句功能:判斷給定的條件是否成立。成立,則執(zhí)行語句序列1;否則執(zhí)行語句序列2。
功能說明:
(1)ELSE是一個可選項。當ELSE子句缺省時,如果條件不成立,將不執(zhí)行任何語句。直接轉(zhuǎn)向ENDIF后的下一條語句。(2)IF和ENDIF必須成對出現(xiàn),IF是本結構的入口,ENDIF是本結構的出口。(3)條件語句可以嵌套,但不能出現(xiàn)交叉。在嵌套時,為了使程序清晰、易于閱讀,可按縮進格式書寫。
例8.2改寫例8.1的程序,當輸入半徑大于零時,計算圓周長和圓面積,否則顯示“半徑值不能小于等于零”的提示信息。*求圓周長和圓面積程序VFP8-1.PRG
CLEAR SETTALKOFF INPUT"半徑="TORIFR>0 L=2*PI()*R S=PI()*R*R
?"圓周長=",L ?"圓面積=",S ELSE?”半徑值不能小于等于零”ENDIFSETTALK2.
DOCASE…ENDCASE語句
DOCASE
CASE<條件1>
<語句序列1>
CASE
<條件2>
<語句序列2>
……
CASE<條件n>
<語句序列n>
[OTHERWISE
<語句序列>]ENDCASE語句功能:語句執(zhí)行時,依次判斷CASE后面的條件是否成立。當發(fā)現(xiàn)某個CASE后面的條件成立時,就執(zhí)行該CASE和下一個CASE之間的命令序列,然后執(zhí)行ENDCASE后面的命令。如果所有的條件都不成立,則執(zhí)行OTHERWISE與ENDCASE之間的命令序列,然后轉(zhuǎn)向ENDCASE后面的語句。
功能說明:(1)不管有幾個CASE條件成立,只有最先成立的那個CASE條件的對應命令序列被執(zhí)行。DOCASE與第一個CASE之間不能有任何語句。(2)如果所有CASE條件都不成立,且沒有OTHERWISE子句,則直接跳出本結構。(3)DOCASE和ENDCASE必須成對出現(xiàn),DOCASE是本結構的入口,ENDCASE是本結構的出口。(4)DOCASE…ENDCASE語句可以嵌套使用。8.3.4循環(huán)結構1.基于條件的循環(huán):DOWHILE–ENDDO語句(1)語句格式:
DO
WHILE
<條件
>
<語句序列1>[LOOP]<語句序列2>[EXIT]<語句序列3>ENDDO(2)執(zhí)行過程:(3)功能說明:①
如果第一次判斷條件時,條件即為假,則循環(huán)體一次都不執(zhí)行。②
如果循環(huán)體包含LOOP命令,那么當遇到LOOP時,就結束循環(huán)體的本次執(zhí)行,不再執(zhí)行其后面的語句,而是轉(zhuǎn)回DOWHILE處重新判斷條件。③
如果循環(huán)體包含EXIT命令,那么當遇到EXIT時,就結束該語句的執(zhí)行,轉(zhuǎn)去執(zhí)行ENDDO后面的語句。
④
通常LOOP或EXIT出現(xiàn)在循環(huán)體內(nèi)嵌套的選擇語句中,根據(jù)條件來決定是LOOP回去,還是EXIT出去。
例8.4計算連續(xù)自然數(shù)之和,并且顯示和剛大于1000的最后一個自然數(shù)。STORE0TOAA,BBDOWHILEAA<=1000 BB=BB+1 AA=AA+BBENDDO?BB2.基于“計數(shù)”的循環(huán):FOR–ENDFOR語句(1)語句格式:FOR<循環(huán)變量
>=<初值
>TO<終值
>[STEP<步長>]
<循環(huán)體
>
ENDFOR|NEXT(2)執(zhí)行過程:(3)功能說明:①<循環(huán)變量名>既是一個內(nèi)存變量,也可以是某數(shù)組的一個下標變量。若不存在,則自動建立。②<數(shù)字表達式1>為循環(huán)變量置初值,<數(shù)字表達式2>給出循環(huán)變量的終值,<數(shù)字表達式3>給出循環(huán)變量值每次變化的值(缺省STEP子句時,默認為1)。③ENDFOR和NEXT是等價的,都是FOR循環(huán)結束語句,選用哪一個都可以。
(1)語句格式:Scan[<范圍>][For<條件表達式1>]
[While<條件表達式2>]
<語句序列>
EndScan(2)執(zhí)行過程:執(zhí)行該語句時,記錄指針自動、依次地在當前表的指定范圍內(nèi)滿足條件的記錄上移動,對每一條記錄執(zhí)行循環(huán)體內(nèi)的命令,搜索完范圍內(nèi)最后一條記錄后,SCAN語句執(zhí)行完畢。
范圍的默認值是ALL
。
(3)語句功能:①SCAN為循環(huán)起始語句,ENDCAN為循環(huán)結束語句。
②本語句對范圍內(nèi)滿足條件的記錄執(zhí)行<循環(huán)體>。默認范圍值為ALL。
使用循環(huán)語句應注意的幾點:(1)DoWhile和EndDo、For和EndFor、Scan和EndScan必須配對使用。
(2)語句序列或循環(huán)體可以是任何FoxPro命令或語句,也可以是循環(huán)語句,即可以為多重循環(huán)。在嵌套使用時,注意不要互相交叉(3)循環(huán)變量應是數(shù)值型的內(nèi)存變量或數(shù)組元素。(4)Exit和Loop命令嵌入在循環(huán)體內(nèi),不能單獨使用
8.4過程及其調(diào)用8.4.1定義過程或過程文件過程是以特定的命令開始又以特定的命令結束的模塊,被放置在程序文件或過程文件中。
1.定義過程
命令格式:PROCDURE<過程名><命令序列>[RETURN[<表達式>]][ENDPROC]過程定義說明:(1)PROCDURE命令表示一個過程的開始,并命名過程名;(2)過程名必須以字母或下劃線開頭,字母、數(shù)字和下劃線的組合;(3)RETURN命令是過程返回命令,當過程執(zhí)行到RETURN命令時,控制將轉(zhuǎn)回到調(diào)用程序(或命令窗口),并返回表達式的值,若省略表達式,則返回邏輯值.T.;
(4)缺省RETURN命令,則在過程結束處自動執(zhí)行一條隱含的RETURN命令;(5)ENDPROC命令表示一個過程的結束,缺省時,過程結束于下一條PROCDURE命令處或文件結束處。(6)用戶也可以自定義函數(shù),格式如下:FUNCTION<函數(shù)名><命令序列>[RETURN[<表達式>]][ENDFUNC]2.定義過程文件命令格式:PROCEDURE<過程名1>
<命令序列1>[RETURN[<表達式>]][ENDPROC]……PROCEDURE<過程名n>
<命令序列>[RETURN[<表達式>]][ENDPROC]3.子程序或過程的返回語句
命令格式:RETURN[<表達式>/TOMASTER/TO<過程名>]命令功能:將程序控制權返回給調(diào)用程序,并返回表達式值。命令說明:
(1)<表達式>短語:指定返回給調(diào)用程序的表達式值。如果省略RETURN命令或省略返回表達式,則自動將“.T.”返回給調(diào)用程序。(2)TOMASTER短語:將控制權返回給最外層的調(diào)用程序。(3)TO<過程名>短語:將控制權返回給指定的過程。
1.調(diào)用過程命令格式:DO<過程名>[IN<程序文件名>][WITH<參數(shù)表>]命令功能:執(zhí)行過程名所指定的子程序。WITH用于主程序和子程序間參數(shù)的傳遞。命令說明:
(1)<過程名>>短語:指定要執(zhí)行的過程名稱。
(2)IN<程序文件名>:
(3)[WITH<參數(shù)表>]:指定要傳遞給程序或過程的參數(shù)。
8.4.2調(diào)用過程或過程文件2.調(diào)用過程文件命令格式:SETPROCEDURETO[<過程文件1>[,<過程文件2>,...]][ADDITIVE]命令功能:打開指定的過程文件。命令說明:(1)ADDITIVE表示并不關閉已打開的過程文件。(2)調(diào)用其他命令文件中的過程要先打開此命令文件,才能調(diào)用。(3)調(diào)用過程文件中的過程。也要先打開過程文件,再用Do<過程名>或
<過程名>()調(diào)用。
(4)在主程序中應先打開過程文件,將過程文件中的所有過程都調(diào)入內(nèi)存(打開一個過程文件只算打開了一個文件)。
3.關閉過程文件語句當過程文件不再用時應將其關閉,以節(jié)省內(nèi)存空間。命令格式1:SETPROCEDURETO命令功能:關閉所有已打開的過程文件。命令格式2:RELEASEPROCEDURE<過程文件1>[,<過程文件2>,...]
命令功能:關閉所指定的過程文件。
4.參數(shù)傳遞(1)調(diào)用程序向被調(diào)用過程傳遞參數(shù)的命令:命令格式1:
DO
<過程名>
WITH
<實參1>[,<實參2>,…]命令格式2:<過程名>
WITH
<實參1>[,<實參2>,…]說明:①DO
WITH語句中的參數(shù)也叫實在參數(shù)。②實在參數(shù)可以是任何類型的常量、變量和表達式,有多個參數(shù)時,各參數(shù)之間用逗號分隔。
③若參數(shù)表中的內(nèi)存變量與庫文件的字段名相同時,則內(nèi)存變量前應冠以m->,以區(qū)別同名字段變量,否則字段變量優(yōu)先于內(nèi)存變量。
④參數(shù)表中的內(nèi)存變量必須先定義或賦值才能使用。⑤采用命令格式1,如果實參是常量,稱為按值傳遞,即把實參的值傳給形參;如果實參是變量,稱為按引用傳遞,即把實參的地址傳給形參;
⑥采用命令格式2,默認情況下都以按值方式傳遞參數(shù),如果實參是變量,可以通過命令SETUDFPARMS重新設置參數(shù)傳遞的方式。
(2)在過程中接收參數(shù)的命令:命令格式1:PARAMETERS
<形參變量1>[,<形參變量2>,…]命令格式2:LPARAMETERS
<形參變量1>[,<形參變量2>,…]說明:①PARAMETERS語句中的參數(shù)也叫形式參數(shù),形式參數(shù)只能是變量。②PARAMETERS語句只能在過程中使用,且必須作為過程中PROCEDURE語句后的第一條可執(zhí)行語句。③形參的數(shù)目不能少于實參的數(shù)目,多余的形參變量初值為邏輯假.F.,形式參數(shù)與實在參數(shù)要類型對應一致
④PARAMETERS中形式參數(shù)默認為私有變量,LPARAMETERS中形式參數(shù)默認為局部變量,過程結束后,即被清除。若與其對應的實在參數(shù)為變量,則其值可以傳回主程序。
變量的作用域指的是變量在什么范圍內(nèi)是有效或能夠被訪問的,VFP中,以變量的作用域來分,內(nèi)存變量分三類:公用變量、私有變量及局部變量。
1.公用變量公用變量也稱為全局變量,是在主程序和子程序中都有效的變量。建立公用變量命令如下。命令格式:PUBLIC
<內(nèi)存變量名1>[,<內(nèi)存變量名2>,<內(nèi)存變量名3>...]命令功能:定義公用變量。8.4.3變量的作用域(3)在執(zhí)行CLEARMEMORY、
RELEASE、QUIT等命令后,公共變量才被釋放;2.私有變量私有變量是在程序中直接使用而由系統(tǒng)自動隱含建立的變量。私有變量可以在使用中建立,如:STORE23TOXY1說明:私有
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 妊娠晚期GDM血糖管理的臨床策略
- 城建公司考試題及答案
- 鼻腸管護理試題及答案
- 保育員職業(yè)素養(yǎng)考試題及答案
- 2026年酒柜除濕模塊項目評估報告
- 2025年大學四年級(林業(yè)經(jīng)濟管理)林業(yè)經(jīng)濟管理試題及答案
- 2026年無液氦低溫掃描探針顯微鏡項目評估報告
- 2025年中職建筑工程(鋼筋綁扎)試題及答案
- 2025年中職(航空運輸類)航空調(diào)度技術階段測試試題及答案
- 2025年中職機電技術應用(PLC編程基礎)試題及答案
- 2026春招:中國煙草真題及答案
- 急性酒精中毒急救護理2026
- 2021-2022學年天津市濱海新區(qū)九年級上學期物理期末試題及答案
- 江蘇省蘇州市、南京市九校2025-2026學年高三上學期一輪復習學情聯(lián)合調(diào)研數(shù)學試題(解析版)
- 2026年中國醫(yī)學科學院醫(yī)學實驗動物研究所第三批公開招聘工作人員備考題庫及答案詳解一套
- 2025年幼兒園教師業(yè)務考試試題及答案
- 國家開放大學《Python語言基礎》形考任務4答案
- 2026年護理部工作計劃
- DL-T976-2017帶電作業(yè)工具、裝置和設備預防性試驗規(guī)程
- 烹飪原料知識 水產(chǎn)品蝦蟹類
- 考勤抽查記錄表
評論
0/150
提交評論