Visual FoxPro數(shù)據(jù)庫程序設(shè)計教程第三版課件第7章 程序設(shè)計基礎(chǔ)_第1頁
Visual FoxPro數(shù)據(jù)庫程序設(shè)計教程第三版課件第7章 程序設(shè)計基礎(chǔ)_第2頁
Visual FoxPro數(shù)據(jù)庫程序設(shè)計教程第三版課件第7章 程序設(shè)計基礎(chǔ)_第3頁
Visual FoxPro數(shù)據(jù)庫程序設(shè)計教程第三版課件第7章 程序設(shè)計基礎(chǔ)_第4頁
Visual FoxPro數(shù)據(jù)庫程序設(shè)計教程第三版課件第7章 程序設(shè)計基礎(chǔ)_第5頁
已閱讀5頁,還剩34頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

2023年12月18日第1頁第7章程序設(shè)計基礎(chǔ)7.1程序概述7.2順序結(jié)構(gòu)程序設(shè)計7.3選擇結(jié)構(gòu)程序設(shè)計7.4循環(huán)結(jié)構(gòu)程序設(shè)計7.5多重循環(huán)7.6多模塊程序設(shè)計7.7程序的調(diào)試本章小結(jié)習(xí)題72023年12月18日第2頁本章要點介紹VisualFoxPro程序設(shè)計的基礎(chǔ)知識,包括常用命令、三種基本的程序結(jié)構(gòu)、多模塊程序設(shè)計以及程序的調(diào)試等基本知識。2023年12月18日第3頁本章首先講解程序文件的建立及使用,以及用于程序中的常用命令,其次介紹程序的三種基本控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),然后介紹多模塊'程序設(shè)計相關(guān)的子程序、過程、自定義函數(shù)及變量作用域、參數(shù)傳遞等內(nèi)容,使大家初步掌握基本的程序設(shè)計方法,逐步提高利用計算機解決實際問題的能力。程序的三種基本結(jié)構(gòu)是本章的核心。2023年12月18日第4頁7.1程序概述(1)注釋在程序中應(yīng)該適當(dāng)?shù)奶砑幼⑨?,以提高程序的可讀性。行注釋:Note或*開頭,該行的后面的部分均為注釋其他注釋:以&&符號開頭。功能:注釋不是可以執(zhí)行的程序命令,不會影響程序的功能,但是可以為程序增強可讀性。(2)命令分行有些時候一條命令很長,為了閱讀的方便我們可以將一條命令分成多行來寫。程序中每條命令都以回車鍵結(jié)束;一行只能寫一條命令。若命令需要分行書寫,在行尾輸入續(xù)行符“;”,那么下一行將作為本行的延續(xù)。2023年12月18日第5頁7.1.1程序的建立、編輯在項目管理器章節(jié)中了解到程序可以分成以下幾類:(1)程序文件(.PRG)默認擴展名為PRG。該文件為項目中的代碼中所包含的程序文件,文件格式為純文本,所以可以在任何文本編輯器中進行創(chuàng)建或編輯,如果指定其他擴展名,執(zhí)行的時候要指定擴展名。(2)表單文件(.SCX):默認擴展名為.SCX。該文件為項目中的表單亦即窗體。2023年12月18日第6頁1.菜單方式操作步驟如下:(1)打開文本編輯窗口?!拔募辈藛沃羞x擇“新建”菜單,在“新建”對話框中選擇“程序”單選按鈕,并單擊“新建文件”命令。(2)在打開的文本編輯窗口中鍵入程序代碼。注意:這里的編輯操作與文本文件的編輯操作沒有不同,但是要注意輸入的應(yīng)該是程序代碼,也就是說在這里輸入的每一行應(yīng)該是一條命令語句。與命令窗口不同,輸入完成一行后,不會被立即執(zhí)行。(3)保存命令文件在“文件”菜單中選擇“保存”命令或按下Ctrl+W組合鍵,然后再“另存為”對話框中指定程序文件存放位置和文件名,單擊“保存”按鈕進行保存。要打開、修改程序文件,類似新建,只是在“文件”菜單中選打開,然后在“文件類型”中選擇“程序”選項,其他的都一樣。2023年12月18日第7頁2.使用命令方式:命令格式:MODIFYCOMMAND<文件名>文件名:要創(chuàng)建或修改的命令文件的文件名,可以包含路徑。如沒有指定擴展名,系統(tǒng)在第一次保存時會自動加上默認擴展名.PRG。2023年12月18日第8頁7.1.2程序的運行建立好程序文件后,就可以一多種方式多次執(zhí)行它。常用的執(zhí)行方式如下。菜單方式:從“程序”菜單中選擇“運行”菜單項,打開了“運行”對話框。從文件列表框中選擇要運行的程序文件,單擊“運行”按鈕。命令方式:DO<文件名>2023年12月18日第9頁程序執(zhí)行時,程序文件中的命令被依次執(zhí)行,直到所有的命令被執(zhí)行完畢,或執(zhí)行到一下程序轉(zhuǎn)向語句。(1)CANCEL:終止程序的執(zhí)行,清除所有的私有變量,返回到命令窗口。(2)DO:執(zhí)行另外的程序。(3)RETURN:結(jié)束當(dāng)前程序的執(zhí)行,返回到調(diào)用它的程序,若調(diào)用程序則返回到命令窗口。(4)QUIT:退出VisualFoxPro系統(tǒng),返回到操作系統(tǒng)。2023年12月18日第10頁7.1.3程序中常用的命令1.INPUT命令命令格式:INPUT[<字符表達式>]TO<內(nèi)存變量>功能:該命令等待用戶輸入數(shù)據(jù),用戶可以輸入任意合法的表達式。當(dāng)用戶以回車符結(jié)束輸入時,系統(tǒng)將表達式的值存入指定的內(nèi)存變量中,程序繼續(xù)向下運行。注意:(1)如果選用了<字符表達式>,系統(tǒng)會首先顯示該表達式的值,作為提示信息。(2)輸入的數(shù)據(jù)可以是常量、變量,也可以是表達式。如果不輸入任何內(nèi)容直接回車,將要求重新輸入。(3)輸入常量是要求有定界符,以便系統(tǒng)識別輸入的是什么類型的常量。2023年12月18日第11頁2.ACCEPT命令命令格式:ACCEPT[<字符表達式>]TO<內(nèi)存變量>功能:該命令等待用戶從鍵盤輸入字符串。當(dāng)用戶按“回車”鍵結(jié)束輸入時,系統(tǒng)將該字符串存入指定的內(nèi)存變量中,然后繼續(xù)執(zhí)行。注意:如果選用<字符表達式>,那么系統(tǒng)會首先顯示該字符串的值,作為提示信息。該命令只能接受字符串。用戶輸入的任何字符都將作為字符串的構(gòu)成部分。如果不輸入任何內(nèi)容而直接按“回車”鍵,內(nèi)存變量接收空串。2023年12月18日第12頁3.WAIT命令命令格式:WAIT[<字符表達式>][TO<內(nèi)存變量>][WINDOW[AT<行>,<列>]][NOWAIT][CLEAR|NOCLEAR][TIMEOUT<數(shù)值表達式>]功能:該命令顯示字符表達式的值作為提示信息,暫停程序的執(zhí)行,直到用戶按任意鍵或單擊鼠標時,程序繼續(xù)執(zhí)行。4.CANCEL命令命令格式:CANCEL[<任意字符>]功能:終止命令文件的執(zhí)行,關(guān)閉所有打開的文件,返回VisualFoxPro主窗口。2023年12月18日第13頁5.RETURN命令命令格式:RETURN[<TOMASTER>]功能:返回調(diào)用命令文件的上一級程序的調(diào)用處。若無程序調(diào)用則返回圓點提示符。若選擇<TOMASTER>項時,直接返回主程序。6.QUIT命令命令格式:QUIT功能:關(guān)閉所有打開的文件,退出VisualFoxPro系統(tǒng),將控制交還操作系統(tǒng)。2023年12月18日第14頁7.CLEAR命令命令格式:CLEAR[ALL/FIELDS/GETS/MEMORY/PROGRAM/TYPEAHEAD]功能:按給定的命令格式來清除屏幕或系統(tǒng)的狀態(tài)信息。8.CLOSE命令命令格式:CLOSE[ALL/ALTERNATE/DATABASE/INDEX/PROCEDURE]2023年12月18日第15頁7.2順序結(jié)構(gòu)程序設(shè)計程序結(jié)構(gòu)是指程序中的命令或語句的流程結(jié)構(gòu)。順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是程序的3種結(jié)構(gòu)。語句序列A語句序列B

順序結(jié)構(gòu)是3種結(jié)構(gòu)中最基本的程序結(jié)構(gòu),按照命令在程序中的先后次序依次執(zhí)行。其執(zhí)行過程如圖7-1所示。2023年12月18日第16頁圖7-1順序結(jié)構(gòu)語句序列A語句序列B2023年12月18日第17頁7.3選擇結(jié)構(gòu)程序設(shè)計7.3.1簡單分支結(jié)構(gòu)命令格式:IF<條件表達式><語句序列>ENDIF功能:<條件表達式>可以是各種表達式的組合。當(dāng)其值為.T.時,就順序執(zhí)行<語句序列>,然后再執(zhí)行ENDIF后面的語句;當(dāng)其值為.F.時,直接執(zhí)行ENDIF后面的語句。2023年12月18日第18頁7.3.2選擇分支結(jié)構(gòu)命令格式:IF<條件表達式><語句序列1>ELSE<語句序列2>ENDIF功能:根據(jù)<條件表達式>的邏輯值,選擇兩個語句序列中的一個執(zhí)行。當(dāng)條件表達式值為.T.時,先執(zhí)行<語句序列1>,然后轉(zhuǎn)去執(zhí)行ENDIF后面的語句;當(dāng)條件表達式值為.F.時,執(zhí)行<語句行序列2>,然后轉(zhuǎn)去執(zhí)行ENDIF后面的語句。2023年12月18日第19頁YN條件成立?語句行序列1語句行序列2列2ENDIF后面的語句圖7.5選擇分支語句的執(zhí)行過程2023年12月18日第20頁7.3.3多分支結(jié)構(gòu)在處理多分支的問題時,雖然可以用分支語句嵌套的辦法來解決,但是編寫程序時容易出錯。而結(jié)構(gòu)分支語句各種情況之間的關(guān)系是并列的,所以各種分支處于相同的級別,縮進的層次一致,使程序的結(jié)構(gòu)層次清晰、簡明,從而減少了編寫程序的錯誤,增加了程序的可讀性。2023年12月18日第21頁命令格式:

DOCASECASE<條件表達式1><語句行序列1>CASE<條件表達式2><語句行序列2>……CASE<條件表達式N><語句行序列N>[OTHERWISE<語句行序列N+1>]ENDCASE2023年12月18日第22頁功能:根據(jù)N個條件表達式的邏輯值,選擇執(zhí)行N+1個語句行序列中的一個。系統(tǒng)執(zhí)行DOCASE…ENDCASE語句時,首先逐個檢查每個CASE項中的條件表達式,只要遇到某個條件表達式的值為.T.時,就去執(zhí)行這一CASE項下的語句行序列,然后結(jié)束整個DOCASE…ENDCASE語句,接著執(zhí)行ENDCASE后面的語句。若所有的CASE項下的條件表達式都為.F.時,則執(zhí)行OTHERWISE項下的語句行序列,然后去執(zhí)行ENDCASE后面的語句。2023年12月18日第23頁7.4循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)用于執(zhí)行一些重復(fù)性的操作。VisualFoxPro6.0提供了3種基本類型的循環(huán):SCAN…ENDSCAN,F(xiàn)OR…ENDFOR和DOWHILE…ENDDO,有兩個命令可以改變循環(huán)體內(nèi)語句的執(zhí)行順序,即EXIT(退出循環(huán)體命令)和LOOP(重新開始循環(huán)體命令)。2023年12月18日第24頁7.4.1條件循環(huán)語句DOWHILE…..ENDDO命令格式:DOWHILE<條件表達式>循環(huán)體

<語句行序列>[LOOP]<語句行序列>[EXIT] <語句行序列>ENDDO功能:重復(fù)判斷<條件表達式>的邏輯值,當(dāng)其值為.T.時,反復(fù)執(zhí)行DOWHILE與ENDDO之間的語句;當(dāng)其值為.F.時,退出循環(huán),并執(zhí)行ENDDO后面的語句。2023年12月18日第25頁循環(huán)語句的執(zhí)行過程:(1)當(dāng)程序執(zhí)行到DOWHILE時,計算條件表達式的值。(2)若條件表達式的值為“假”時,則結(jié)束循環(huán),執(zhí)行ENDDO后面的語句。(3)若條件表達式的值為“真”時,則執(zhí)行DOWHILE后面的語句。(4)當(dāng)遇到LOOP或ENDDO時,返回到DOWHILE,重復(fù)執(zhí)行步驟(1)~(3)。(5)當(dāng)遇到EXIT時,則結(jié)束循環(huán),轉(zhuǎn)移到ENDDO后面的語句去執(zhí)行。2023年12月18日第26頁7.4.2計數(shù)循環(huán)語句FORENDFOR命令格式:FOR<控制變量>=<循環(huán)起始值>TO<循環(huán)終止值>[STEP<step>] <命令序列>NEXT功能:重復(fù)執(zhí)行FOR…NEXT之間的<命令序列>N次。其中N=循環(huán)終止值-循環(huán)起始值+12023年12月18日第27頁7.4.3數(shù)據(jù)表掃描循環(huán)語句SCANENDSCANSCAN循環(huán)語句用于處理數(shù)據(jù)表中的記錄。針對表中滿足條件的記錄執(zhí)行循環(huán)體中的命令序列。命令格式:SCAN[范圍][FOR<條件1>][WHILE<條件2>]<命令序列>[LOOP]<命令序列>[EXIT]<命令序列> ENDSCAN2023年12月18日第28頁功能:在當(dāng)前數(shù)據(jù)表中,針對每個符合指定條件的記錄,執(zhí)行循環(huán)體中的程序代碼。在當(dāng)前表中移動當(dāng)前記錄的指針,直到條件為.F.或到文件尾。該命令用于對當(dāng)前表的滿足條件的每個記錄執(zhí)行一組指定的操作,當(dāng)記錄指針從頭到尾移動通過整個表時,SCAN循環(huán)將記錄指針指向每個滿足的記錄執(zhí)行一遍SCAN與ENDSCAN之間的命令。2023年12月18日第29頁(1)[范圍]的默認值是ALL。取值:ALL,NEXTnRecords,RECORDnRecordNumber,REST。(2)FOR<條件>用來指定只有符合條件的記錄才進入循環(huán)體。(3)WHILE<條件>用來指定終止循環(huán)的條件。(4)當(dāng)遇到LOOP時,返回到SCAN進行條件的判斷。(5)當(dāng)遇到EXIT時,則結(jié)束循環(huán),執(zhí)行ENDSCAN后面的語句。2023年12月18日第30頁7.5多重循環(huán)如果在一個循環(huán)程序的循環(huán)體內(nèi)又包含著另一些循環(huán),就構(gòu)成多重循環(huán),或稱循環(huán)嵌套。循環(huán)嵌套的層次不限。下面是循環(huán)嵌套的一般結(jié)構(gòu)示意圖:循環(huán)頭1<語句行序列1>

循環(huán)頭2<語句行序列2> …

循環(huán)頭N<語句行序列N>

循環(huán)結(jié)束N…

循環(huán)結(jié)束2循環(huán)結(jié)束12023年12月18日第31頁7.6多模塊程序設(shè)計1.子程序2.過程、函數(shù)與方法7.6.1過程及其過程調(diào)用1.過程及過程調(diào)用VisualFoxPro6.0中,一個過程就是一個程序,它的建立、運行與主程序相同,并以同樣的文件格式(.PRG文件)存放在磁盤上。但是,一個過程中至少要有一條返回語句。命令格式:RETURN[TOMASTER]功能:結(jié)束過程運行,返回調(diào)用它的程序或最高一級主程序中。2023年12月18日第32頁子程序或過程調(diào)用及返回示意圖2023年12月18日第33頁2.過程文件中的過程調(diào)用過程定義的語法格式如下:PROCEDURE|FUNCTION<過程名><命令序列>[RETURN[<表達式>]][ENDPROC|ENDFUNC]2023年12月18日第34頁3.帶參數(shù)的過程調(diào)用PARAMETERS<

溫馨提示

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

最新文檔

評論

0/150

提交評論