版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程式設計基礎VisualFoxPro有兩種工作方式,人機交互方式和程式方式。1.交互方式有兩種:(1)命令方式VisualFoxpro的命令方式是利用命令窗口來實現的。用戶在命令窗口中輸入命令,可實現對數據庫的各種操作。(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.若保存了一個由專案管理器創建的程式,則該程式被加入專案中。4.若保存一個尚未命名的新程式,則會打開“另存為”對話框,然後在“另存為”對話框中指定程式檔的存放位置和文件名(*.prg),並單擊“保存”命令按鈕。程式保存後,可以運行或修改它。8.2.3程式檔的執行1.命令方式命令格式:DO
<命令檔案名>命令功能:將指定的命令檔調入記憶體並從第一條命令語句開始執行。2.菜單方式(1)單擊“程式”菜單的“運行”命令,打開“運行”對話框;(2)從檔列表框中選擇要執行的命令檔,並單擊“運行”命令按鈕。3.若程式包含在一個專案中,則在專案管理器中選定它並選擇“運行”命令。當程式檔被執行時,檔中包含的命令將被依次執行,直到所有的命令被執行完畢,或者執行到以下命令:(1)CANCAL:終止程式運行,清除所有的私有變數,返回命令窗口;(2)DO<程式>:轉去執行另一個程式;(3)RETURN:結束當前程式的執行,返回到調用它的上級程式,若無上級程式則返回到命令窗口;(4)QUIT:退出Visual
FoxPro系統,返回到操作系統。8.3程式中常用的命令8.3.1結構化程式結構化程式由順序結構、分支結構和迴圈結構三種基本結構組成。⑴順序結構:程式執行順序是根據程式中語句的書寫順序。⑵分支結構:程式執行順序是根據條件的成立與否,選擇執行不同的程式語句。⑶迴圈結構:程式執行順序是在條件成立時反復執行某段程式語句。由三種基本結構構成的程式,可以處理任何複雜的問題。VisualFoxPro程式的組成部分從功能上看,VisualFoxPro程式可以分為三個部分:(1)程式的注釋部分,一般用於說明程式的功能、檔案名等需要說明的有關資訊。(2)程式運行環境的設置及初始化部分。(3)數據處理部分。通常任何一個有意義的程式,總是要有一些原始數據,否則,這個程式就沒有處理對象。同樣,程式運行的結果也有必要顯示或列印出來,否則,用戶將不知道程式幹了一些什麼。因此,這部分程式常包括下列三個部分,依次為:提供原始數據部分、數據處理部分、輸出結果部分。這部分是程式核心部分。(4)控制返回部分。它控制程式返回到調用該程式的調用處。8.3.2順序結構例8.1試編程完成下列功能。從鍵盤上隨機輸入一個正數,以此數為半徑,求圓周長和圓面積,並輸出結果。程式如下:*求圓周長和圓面積程式VFP8-1.PRG &&注釋語句CLEAR &&清屏語句SETTALKOFF &&系統參數設置語句INPUT"半徑="TOR &&輸入圓半徑值L=2*PI()*R &&計算圓周長S=PI()*R*R &&計算圓面積"圓周長=",L &&顯示圓周長值?"圓面積=",S &&顯示圓面積值SETTALKON &&恢復參數設置語句RETURN &&返回語句8.3.3分支結構1.IF…ELSE…ENDIF語句語句格式:IF
<條件><語句序列1>[ELSE
<語句序列2>]ENDIF語句功能:判斷給定的條件是否成立。成立,則執行語句序列1;否則執行語句序列2。
功能說明:
(1)ELSE是一個可選項。當ELSE子句缺省時,如果條件不成立,將不執行任何語句。直接轉向ENDIF後的下一條語句。(2)IF和ENDIF必須成對出現,IF是本結構的入口,ENDIF是本結構的出口。(3)條件語句可以嵌套,但不能出現交叉。在嵌套時,為了使程式清晰、易於閱讀,可按縮進格式書寫。
例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語句功能:語句執行時,依次判斷CASE後面的條件是否成立。當發現某個CASE後面的條件成立時,就執行該CASE和下一個CASE之間的命令序列,然後執行ENDCASE後面的命令。如果所有的條件都不成立,則執行OTHERWISE與ENDCASE之間的命令序列,然後轉向ENDCASE後面的語句。
功能說明:(1)不管有幾個CASE條件成立,只有最先成立的那個CASE條件的對應命令序列被執行。DOCASE與第一個CASE之間不能有任何語句。(2)如果所有CASE條件都不成立,且沒有OTHERWISE子句,則直接跳出本結構。(3)DOCASE和ENDCASE必須成對出現,DOCASE是本結構的入口,ENDCASE是本結構的出口。(4)DOCASE…ENDCASE語句可以嵌套使用。8.3.4迴圈結構1.基於條件的迴圈:DOWHILE–ENDDO語句(1)語句格式:
DO
WHILE
<條件
>
<語句序列1>[LOOP]<語句序列2>[EXIT]<語句序列3>ENDDO(2)執行過程:(3)功能說明:①
如果第一次判斷條件時,條件即為假,則循環體一次都不執行。②
如果循環體包含LOOP命令,那麼當遇到LOOP時,就結束循環體的本次執行,不再執行其後面的語句,而是轉回DOWHILE處重新判斷條件。③
如果循環體包含EXIT命令,那麼當遇到EXIT時,就結束該語句的執行,轉去執行ENDDO後面的語句。
④
通常LOOP或EXIT出現在循環體內嵌套的選擇語句中,根據條件來決定是LOOP回去,還是EXIT出去。
例8.4計算連續自然數之和,並且顯示和剛大於1000的最後一個自然數。STORE0TOAA,BBDOWHILEAA<=1000 BB=BB+1 AA=AA+BBENDDO?BB2.基於“計數”的迴圈:FOR–ENDFOR語句(1)語句格式:FOR<迴圈變數
>=<初值
>TO<終值
>[STEP<步長>]
<循環體
>
ENDFOR|NEXT(2)執行過程:(3)功能說明:①<迴圈變數名>既是一個記憶體變數,也可以是某數組的一個下標變數。若不存在,則自動建立。②<數字運算式1>為迴圈變數置初值,<數字運算式2>給出迴圈變數的終值,<數字運算式3>給出迴圈變數值每次變化的值(缺省STEP子句時,默認為1)。③ENDFOR和NEXT是等價的,都是FOR迴圈結束語句,選用哪一個都可以。
(1)語句格式:Scan[<範圍>][For<條件運算式1>]
[While<條件運算式2>]
<語句序列>
EndScan(2)執行過程:執行該語句時,記錄指針自動、依次地在當前表的指定範圍內滿足條件的記錄上移動,對每一條記錄執行循環體內的命令,搜索完範圍內最後一條記錄後,SCAN語句執行完畢。
範圍的默認值是ALL
。
(3)語句功能:①SCAN為迴圈起始語句,ENDCAN為迴圈結束語句。
②本語句對範圍內滿足條件的記錄執行<循環體>。默認範圍值為ALL。
使用迴圈語句應注意的幾點:(1)DoWhile和EndDo、For和EndFor、Scan和EndScan必須配對使用。
(2)語句序列或循環體可以是任何FoxPro命令或語句,也可以是迴圈語句,即可以為多重迴圈。在嵌套使用時,注意不要互相交叉(3)迴圈變數應是數值型的記憶體變數或數組元素。(4)Exit和Loop命令嵌入在循環體內,不能單獨使用
8.4過程及其調用8.4.1定義過程或過程檔過程是以特定的命令開始又以特定的命令結束的模組,被放置在程式檔或過程檔中。
1.定義過程
命令格式:PROCDURE<過程名><命令序列>[RETURN[<運算式>]][ENDPROC]過程定義說明:(1)PROCDURE命令表示一個過程的開始,並命名過程名;(2)過程名必須以字母或下劃線開頭,字母、數字和下劃線的組合;(3)RETURN命令是過程返回命令,當過程執行到RETURN命令時,控制將轉回到調用程式(或命令窗口),並返回運算式的值,若省略運算式,則返回邏輯值.T.;
(4)缺省RETURN命令,則在過程結束處自動執行一條隱含的RETURN命令;(5)ENDPROC命令表示一個過程的結束,缺省時,過程結束於下一條PROCDURE命令處或檔結束處。(6)用戶也可以自定義函數,格式如下:FUNCTION<函數名><命令序列>[RETURN[<運算式>]][ENDFUNC]2.定義過程檔命令格式:PROCEDURE<過程名1>
<命令序列1>[RETURN[<運算式>]][ENDPROC]……PROCEDURE<過程名n>
<命令序列>[RETURN[<運算式>]][ENDPROC]3.副程式或過程的返回語句
命令格式:RETURN[<運算式>/TOMASTER/TO<過程名>]命令功能:將程式控制權返回給調用程式,並返回運算式值。命令說明:
(1)<運算式>短語:指定返回給調用程式的運算式值。如果省略RETURN命令或省略返回運算式,則自動將“.T.”返回給調用程式。(2)TOMASTER短語:將控制權返回給最外層的調用程式。(3)TO<過程名>短語:將控制權返回給指定的過程。
1.調用過程命令格式:DO<過程名>[IN<程式檔案名>][WITH<參數表>]命令功能:執行過程名所指定的副程式。WITH用於主程序和副程式間參數的傳遞。命令說明:
(1)<過程名>>短語:指定要執行的過程名稱。
(2)IN<程式檔案名>:
(3)[WITH<參數表>]:指定要傳遞給程式或過程的參數。
8.4.2調用過程或過程檔2.調用過程檔命令格式:SETPROCEDURETO[<過程檔1>[,<過程檔2>,...]][ADDITIVE]命令功能:打開指定的過程檔。命令說明:(1)ADDITIVE表示並不關閉已打開的過程檔。(2)調用其他命令檔中的過程要先打開此命令檔,才能調用。(3)調用過程檔中的過程。也要先打開過程檔,再用Do<過程名>或
<過程名>()調用。
(4)在主程序中應先打開過程檔,將過程檔中的所有過程都調入記憶體(打開一個過程檔只算打開了一個檔)。
3.關閉過程檔語句當過程檔不再用時應將其關閉,以節省記憶體空間。命令格式1:SETPROCEDURETO命令功能:關閉所有已打開的過程檔。命令格式2:RELEASEPROCEDURE<過程檔1>[,<過程檔2>,...]
命令功能:關閉所指定的過程檔。
4.參數傳遞(1)調用程式向被調用過程傳遞參數的命令:命令格式1:
DO
<過程名>
WITH
<實參1>[,<實參2>,…]命令格式2:<過程名>
WITH
<實參1>[,<實參2>,…]說明:①DO
WITH語句中的參數也叫實在參數。②實在參數可以是任何類型的常量、變數和運算式,有多個參數時,各參數之間用逗號分隔。
③若參數表中的記憶體變數與庫檔的字段名相同時,則記憶體變數前應冠以m->,以區別同名字段變數,否則字段變數優先於記憶體變數。
④參數表中的記憶體變數必須先定義或賦值才能使用。⑤採用命令格式1,如果實參是常量,稱為按值傳遞,即把實參的值傳給形參;如果實參是變數,稱為按引用傳遞,即把實參的地址傳給形參;
⑥採用命令格式2,默認情況下都以按值方式傳遞參數,如果實參是變數,可以通過命令SETUDFPARMS重新設置參數傳遞的方式。
(2)在過程中接收參數的命令:命令格式1:PARAMETERS
<形參變數1>[,<形參變數2>,…]命令格式2:LPARAMETERS
<形參變數1>[,<形參變數2>,…]說明:①PARAMETERS語句中的參數也叫形式參數,形式參數只能是變數。②PARAMETERS語句只能在過程中使用,且必須作為過程中PROCEDURE語句後的第一條可執行語句。③形參的數目不能少於實參的數目,多餘的形參變數初值為邏輯假.F.,形式參數與實在參數要類型對應一致
④PARAMETERS中形式參數默認為私有變數,LPARAMETERS中形式參數默認為局部變數,過程結束後,即被清除。若與其對應的實在參數為變數,則其值可以傳回主程序。
變數的作用域指的是變數在什麼範圍內是有效或能夠被訪問的,VFP中,以變數的作用域來分,記憶體變數分三類:公用變數、私有變數及局部變數。
1.公用變數公用變數也稱為全局變數,是在主程序和副程式中都有效的變數。建立公用變數命令如下。命令格式:PUBLIC
<記憶體變數名1>[,<記憶體變數名2>,<記憶體變數名3>...]命令功能:定義公用變數。8.4.3變數的作用域(3)在執行CLEARMEMORY、
RELEASE、QUIT等命令後,公共變數才被釋放;2.私有變數私有變數是在程式中直接使用而由系統自動隱含建立的變數。私有變數可以在使用中建立,如:STORE23TOXY1說明:私有變數只能在建立它的模組或下層模組中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年初级消防设施操作员考试题库及答案
- 2026-2027学年初中数学六年级下册(新教材)鲁教版(五四制)(新教材)3 用表格表示变量之间的关系课时刷题卷
- 安全演讲照片
- 创新驱动下高效型护理查房模式
- 安全与国防模板
- 资金来源与运用表(Sources Uses):平衡校验与常见错误
- 2026年考研政治马原理论要点解析题库
- 初中七年级数学《图形的全等》教学设计
- 高三英语一轮复习运动与健康主题整合教学设计
- 初中八年级科学教学设计:第3章 电路探秘 核心概念构建与思维进阶训练
- 施工方案审查监理实施细则
- 大型机械设备运行路线及作业位置承载能力校核方案
- 新教科版 三年级上册 《天气》单元 第 8课《天气的影响》 教学课件
- 聚丙烯(PP)原材料MSDS报告(PPH-T03牌号)
- 企业负责人带班检查记录表
- 2026全球劳动力市场洞察报告
- 大米类生产企业管理制度
- 《铁道概论》课件 8-1 认知电气化铁路
- 长征主题课件
- 三北防护林课件
- (高清版)JTGT 3331-04-2023 多年冻土地区公路设计与施工技术规范
评论
0/150
提交评论