版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2023年12月18日第1頁(yè)第7章程序設(shè)計(jì)基礎(chǔ)7.1程序概述7.2順序結(jié)構(gòu)程序設(shè)計(jì)7.3選擇結(jié)構(gòu)程序設(shè)計(jì)7.4循環(huán)結(jié)構(gòu)程序設(shè)計(jì)7.5多重循環(huán)7.6多模塊程序設(shè)計(jì)7.7程序的調(diào)試本章小結(jié)習(xí)題72023年12月18日第2頁(yè)本章要點(diǎn)介紹VisualFoxPro程序設(shè)計(jì)的基礎(chǔ)知識(shí),包括常用命令、三種基本的程序結(jié)構(gòu)、多模塊程序設(shè)計(jì)以及程序的調(diào)試等基本知識(shí)。2023年12月18日第3頁(yè)本章首先講解程序文件的建立及使用,以及用于程序中的常用命令,其次介紹程序的三種基本控制結(jié)構(gòu):順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu),然后介紹多模塊'程序設(shè)計(jì)相關(guān)的子程序、過(guò)程、自定義函數(shù)及變量作用域、參數(shù)傳遞等內(nèi)容,使大家初步掌握基本的程序設(shè)計(jì)方法,逐步提高利用計(jì)算機(jī)解決實(shí)際問(wèn)題的能力。程序的三種基本結(jié)構(gòu)是本章的核心。2023年12月18日第4頁(yè)7.1程序概述(1)注釋在程序中應(yīng)該適當(dāng)?shù)奶砑幼⑨?,以提高程序的可讀性。行注釋:Note或*開(kāi)頭,該行的后面的部分均為注釋其他注釋:以&&符號(hào)開(kāi)頭。功能:注釋不是可以執(zhí)行的程序命令,不會(huì)影響程序的功能,但是可以為程序增強(qiáng)可讀性。(2)命令分行有些時(shí)候一條命令很長(zhǎng),為了閱讀的方便我們可以將一條命令分成多行來(lái)寫。程序中每條命令都以回車鍵結(jié)束;一行只能寫一條命令。若命令需要分行書(shū)寫,在行尾輸入續(xù)行符“;”,那么下一行將作為本行的延續(xù)。2023年12月18日第5頁(yè)7.1.1程序的建立、編輯在項(xiàng)目管理器章節(jié)中了解到程序可以分成以下幾類:(1)程序文件(.PRG)默認(rèn)擴(kuò)展名為PRG。該文件為項(xiàng)目中的代碼中所包含的程序文件,文件格式為純文本,所以可以在任何文本編輯器中進(jìn)行創(chuàng)建或編輯,如果指定其他擴(kuò)展名,執(zhí)行的時(shí)候要指定擴(kuò)展名。(2)表單文件(.SCX):默認(rèn)擴(kuò)展名為.SCX。該文件為項(xiàng)目中的表單亦即窗體。2023年12月18日第6頁(yè)1.菜單方式操作步驟如下:(1)打開(kāi)文本編輯窗口。“文件”菜單中選擇“新建”菜單,在“新建”對(duì)話框中選擇“程序”單選按鈕,并單擊“新建文件”命令。(2)在打開(kāi)的文本編輯窗口中鍵入程序代碼。注意:這里的編輯操作與文本文件的編輯操作沒(méi)有不同,但是要注意輸入的應(yīng)該是程序代碼,也就是說(shuō)在這里輸入的每一行應(yīng)該是一條命令語(yǔ)句。與命令窗口不同,輸入完成一行后,不會(huì)被立即執(zhí)行。(3)保存命令文件在“文件”菜單中選擇“保存”命令或按下Ctrl+W組合鍵,然后再“另存為”對(duì)話框中指定程序文件存放位置和文件名,單擊“保存”按鈕進(jìn)行保存。要打開(kāi)、修改程序文件,類似新建,只是在“文件”菜單中選打開(kāi),然后在“文件類型”中選擇“程序”選項(xiàng),其他的都一樣。2023年12月18日第7頁(yè)2.使用命令方式:命令格式:MODIFYCOMMAND<文件名>文件名:要?jiǎng)?chuàng)建或修改的命令文件的文件名,可以包含路徑。如沒(méi)有指定擴(kuò)展名,系統(tǒng)在第一次保存時(shí)會(huì)自動(dòng)加上默認(rèn)擴(kuò)展名.PRG。2023年12月18日第8頁(yè)7.1.2程序的運(yùn)行建立好程序文件后,就可以一多種方式多次執(zhí)行它。常用的執(zhí)行方式如下。菜單方式:從“程序”菜單中選擇“運(yùn)行”菜單項(xiàng),打開(kāi)了“運(yùn)行”對(duì)話框。從文件列表框中選擇要運(yùn)行的程序文件,單擊“運(yùn)行”按鈕。命令方式:DO<文件名>2023年12月18日第9頁(yè)程序執(zhí)行時(shí),程序文件中的命令被依次執(zhí)行,直到所有的命令被執(zhí)行完畢,或執(zhí)行到一下程序轉(zhuǎn)向語(yǔ)句。(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頁(yè)7.1.3程序中常用的命令1.INPUT命令命令格式:INPUT[<字符表達(dá)式>]TO<內(nèi)存變量>功能:該命令等待用戶輸入數(shù)據(jù),用戶可以輸入任意合法的表達(dá)式。當(dāng)用戶以回車符結(jié)束輸入時(shí),系統(tǒng)將表達(dá)式的值存入指定的內(nèi)存變量中,程序繼續(xù)向下運(yùn)行。注意:(1)如果選用了<字符表達(dá)式>,系統(tǒng)會(huì)首先顯示該表達(dá)式的值,作為提示信息。(2)輸入的數(shù)據(jù)可以是常量、變量,也可以是表達(dá)式。如果不輸入任何內(nèi)容直接回車,將要求重新輸入。(3)輸入常量是要求有定界符,以便系統(tǒng)識(shí)別輸入的是什么類型的常量。2023年12月18日第11頁(yè)2.ACCEPT命令命令格式:ACCEPT[<字符表達(dá)式>]TO<內(nèi)存變量>功能:該命令等待用戶從鍵盤輸入字符串。當(dāng)用戶按“回車”鍵結(jié)束輸入時(shí),系統(tǒng)將該字符串存入指定的內(nèi)存變量中,然后繼續(xù)執(zhí)行。注意:如果選用<字符表達(dá)式>,那么系統(tǒng)會(huì)首先顯示該字符串的值,作為提示信息。該命令只能接受字符串。用戶輸入的任何字符都將作為字符串的構(gòu)成部分。如果不輸入任何內(nèi)容而直接按“回車”鍵,內(nèi)存變量接收空串。2023年12月18日第12頁(yè)3.WAIT命令命令格式:WAIT[<字符表達(dá)式>][TO<內(nèi)存變量>][WINDOW[AT<行>,<列>]][NOWAIT][CLEAR|NOCLEAR][TIMEOUT<數(shù)值表達(dá)式>]功能:該命令顯示字符表達(dá)式的值作為提示信息,暫停程序的執(zhí)行,直到用戶按任意鍵或單擊鼠標(biāo)時(shí),程序繼續(xù)執(zhí)行。4.CANCEL命令命令格式:CANCEL[<任意字符>]功能:終止命令文件的執(zhí)行,關(guān)閉所有打開(kāi)的文件,返回VisualFoxPro主窗口。2023年12月18日第13頁(yè)5.RETURN命令命令格式:RETURN[<TOMASTER>]功能:返回調(diào)用命令文件的上一級(jí)程序的調(diào)用處。若無(wú)程序調(diào)用則返回圓點(diǎn)提示符。若選擇<TOMASTER>項(xiàng)時(shí),直接返回主程序。6.QUIT命令命令格式:QUIT功能:關(guān)閉所有打開(kāi)的文件,退出VisualFoxPro系統(tǒng),將控制交還操作系統(tǒng)。2023年12月18日第14頁(yè)7.CLEAR命令命令格式:CLEAR[ALL/FIELDS/GETS/MEMORY/PROGRAM/TYPEAHEAD]功能:按給定的命令格式來(lái)清除屏幕或系統(tǒng)的狀態(tài)信息。8.CLOSE命令命令格式:CLOSE[ALL/ALTERNATE/DATABASE/INDEX/PROCEDURE]2023年12月18日第15頁(yè)7.2順序結(jié)構(gòu)程序設(shè)計(jì)程序結(jié)構(gòu)是指程序中的命令或語(yǔ)句的流程結(jié)構(gòu)。順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)是程序的3種結(jié)構(gòu)。語(yǔ)句序列A語(yǔ)句序列B
順序結(jié)構(gòu)是3種結(jié)構(gòu)中最基本的程序結(jié)構(gòu),按照命令在程序中的先后次序依次執(zhí)行。其執(zhí)行過(guò)程如圖7-1所示。2023年12月18日第16頁(yè)圖7-1順序結(jié)構(gòu)語(yǔ)句序列A語(yǔ)句序列B2023年12月18日第17頁(yè)7.3選擇結(jié)構(gòu)程序設(shè)計(jì)7.3.1簡(jiǎn)單分支結(jié)構(gòu)命令格式:IF<條件表達(dá)式><語(yǔ)句序列>ENDIF功能:<條件表達(dá)式>可以是各種表達(dá)式的組合。當(dāng)其值為.T.時(shí),就順序執(zhí)行<語(yǔ)句序列>,然后再執(zhí)行ENDIF后面的語(yǔ)句;當(dāng)其值為.F.時(shí),直接執(zhí)行ENDIF后面的語(yǔ)句。2023年12月18日第18頁(yè)7.3.2選擇分支結(jié)構(gòu)命令格式:IF<條件表達(dá)式><語(yǔ)句序列1>ELSE<語(yǔ)句序列2>ENDIF功能:根據(jù)<條件表達(dá)式>的邏輯值,選擇兩個(gè)語(yǔ)句序列中的一個(gè)執(zhí)行。當(dāng)條件表達(dá)式值為.T.時(shí),先執(zhí)行<語(yǔ)句序列1>,然后轉(zhuǎn)去執(zhí)行ENDIF后面的語(yǔ)句;當(dāng)條件表達(dá)式值為.F.時(shí),執(zhí)行<語(yǔ)句行序列2>,然后轉(zhuǎn)去執(zhí)行ENDIF后面的語(yǔ)句。2023年12月18日第19頁(yè)YN條件成立?語(yǔ)句行序列1語(yǔ)句行序列2列2ENDIF后面的語(yǔ)句圖7.5選擇分支語(yǔ)句的執(zhí)行過(guò)程2023年12月18日第20頁(yè)7.3.3多分支結(jié)構(gòu)在處理多分支的問(wèn)題時(shí),雖然可以用分支語(yǔ)句嵌套的辦法來(lái)解決,但是編寫程序時(shí)容易出錯(cuò)。而結(jié)構(gòu)分支語(yǔ)句各種情況之間的關(guān)系是并列的,所以各種分支處于相同的級(jí)別,縮進(jìn)的層次一致,使程序的結(jié)構(gòu)層次清晰、簡(jiǎn)明,從而減少了編寫程序的錯(cuò)誤,增加了程序的可讀性。2023年12月18日第21頁(yè)命令格式:
DOCASECASE<條件表達(dá)式1><語(yǔ)句行序列1>CASE<條件表達(dá)式2><語(yǔ)句行序列2>……CASE<條件表達(dá)式N><語(yǔ)句行序列N>[OTHERWISE<語(yǔ)句行序列N+1>]ENDCASE2023年12月18日第22頁(yè)功能:根據(jù)N個(gè)條件表達(dá)式的邏輯值,選擇執(zhí)行N+1個(gè)語(yǔ)句行序列中的一個(gè)。系統(tǒng)執(zhí)行DOCASE…ENDCASE語(yǔ)句時(shí),首先逐個(gè)檢查每個(gè)CASE項(xiàng)中的條件表達(dá)式,只要遇到某個(gè)條件表達(dá)式的值為.T.時(shí),就去執(zhí)行這一CASE項(xiàng)下的語(yǔ)句行序列,然后結(jié)束整個(gè)DOCASE…ENDCASE語(yǔ)句,接著執(zhí)行ENDCASE后面的語(yǔ)句。若所有的CASE項(xiàng)下的條件表達(dá)式都為.F.時(shí),則執(zhí)行OTHERWISE項(xiàng)下的語(yǔ)句行序列,然后去執(zhí)行ENDCASE后面的語(yǔ)句。2023年12月18日第23頁(yè)7.4循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)用于執(zhí)行一些重復(fù)性的操作。VisualFoxPro6.0提供了3種基本類型的循環(huán):SCAN…ENDSCAN,F(xiàn)OR…ENDFOR和DOWHILE…ENDDO,有兩個(gè)命令可以改變循環(huán)體內(nèi)語(yǔ)句的執(zhí)行順序,即EXIT(退出循環(huán)體命令)和LOOP(重新開(kāi)始循環(huán)體命令)。2023年12月18日第24頁(yè)7.4.1條件循環(huán)語(yǔ)句DOWHILE…..ENDDO命令格式:DOWHILE<條件表達(dá)式>循環(huán)體
<語(yǔ)句行序列>[LOOP]<語(yǔ)句行序列>[EXIT] <語(yǔ)句行序列>ENDDO功能:重復(fù)判斷<條件表達(dá)式>的邏輯值,當(dāng)其值為.T.時(shí),反復(fù)執(zhí)行DOWHILE與ENDDO之間的語(yǔ)句;當(dāng)其值為.F.時(shí),退出循環(huán),并執(zhí)行ENDDO后面的語(yǔ)句。2023年12月18日第25頁(yè)循環(huán)語(yǔ)句的執(zhí)行過(guò)程:(1)當(dāng)程序執(zhí)行到DOWHILE時(shí),計(jì)算條件表達(dá)式的值。(2)若條件表達(dá)式的值為“假”時(shí),則結(jié)束循環(huán),執(zhí)行ENDDO后面的語(yǔ)句。(3)若條件表達(dá)式的值為“真”時(shí),則執(zhí)行DOWHILE后面的語(yǔ)句。(4)當(dāng)遇到LOOP或ENDDO時(shí),返回到DOWHILE,重復(fù)執(zhí)行步驟(1)~(3)。(5)當(dāng)遇到EXIT時(shí),則結(jié)束循環(huán),轉(zhuǎn)移到ENDDO后面的語(yǔ)句去執(zhí)行。2023年12月18日第26頁(yè)7.4.2計(jì)數(shù)循環(huán)語(yǔ)句FORENDFOR命令格式:FOR<控制變量>=<循環(huán)起始值>TO<循環(huán)終止值>[STEP<step>] <命令序列>NEXT功能:重復(fù)執(zhí)行FOR…NEXT之間的<命令序列>N次。其中N=循環(huán)終止值-循環(huán)起始值+12023年12月18日第27頁(yè)7.4.3數(shù)據(jù)表掃描循環(huán)語(yǔ)句SCANENDSCANSCAN循環(huán)語(yǔ)句用于處理數(shù)據(jù)表中的記錄。針對(duì)表中滿足條件的記錄執(zhí)行循環(huán)體中的命令序列。命令格式:SCAN[范圍][FOR<條件1>][WHILE<條件2>]<命令序列>[LOOP]<命令序列>[EXIT]<命令序列> ENDSCAN2023年12月18日第28頁(yè)功能:在當(dāng)前數(shù)據(jù)表中,針對(duì)每個(gè)符合指定條件的記錄,執(zhí)行循環(huán)體中的程序代碼。在當(dāng)前表中移動(dòng)當(dāng)前記錄的指針,直到條件為.F.或到文件尾。該命令用于對(duì)當(dāng)前表的滿足條件的每個(gè)記錄執(zhí)行一組指定的操作,當(dāng)記錄指針從頭到尾移動(dòng)通過(guò)整個(gè)表時(shí),SCAN循環(huán)將記錄指針指向每個(gè)滿足的記錄執(zhí)行一遍SCAN與ENDSCAN之間的命令。2023年12月18日第29頁(yè)(1)[范圍]的默認(rèn)值是ALL。取值:ALL,NEXTnRecords,RECORDnRecordNumber,REST。(2)FOR<條件>用來(lái)指定只有符合條件的記錄才進(jìn)入循環(huán)體。(3)WHILE<條件>用來(lái)指定終止循環(huán)的條件。(4)當(dāng)遇到LOOP時(shí),返回到SCAN進(jìn)行條件的判斷。(5)當(dāng)遇到EXIT時(shí),則結(jié)束循環(huán),執(zhí)行ENDSCAN后面的語(yǔ)句。2023年12月18日第30頁(yè)7.5多重循環(huán)如果在一個(gè)循環(huán)程序的循環(huán)體內(nèi)又包含著另一些循環(huán),就構(gòu)成多重循環(huán),或稱循環(huán)嵌套。循環(huán)嵌套的層次不限。下面是循環(huán)嵌套的一般結(jié)構(gòu)示意圖:循環(huán)頭1<語(yǔ)句行序列1>
循環(huán)頭2<語(yǔ)句行序列2> …
循環(huán)頭N<語(yǔ)句行序列N>
循環(huán)結(jié)束N…
循環(huán)結(jié)束2循環(huán)結(jié)束12023年12月18日第31頁(yè)7.6多模塊程序設(shè)計(jì)1.子程序2.過(guò)程、函數(shù)與方法7.6.1過(guò)程及其過(guò)程調(diào)用1.過(guò)程及過(guò)程調(diào)用VisualFoxPro6.0中,一個(gè)過(guò)程就是一個(gè)程序,它的建立、運(yùn)行與主程序相同,并以同樣的文件格式(.PRG文件)存放在磁盤上。但是,一個(gè)過(guò)程中至少要有一條返回語(yǔ)句。命令格式:RETURN[TOMASTER]功能:結(jié)束過(guò)程運(yùn)行,返回調(diào)用它的程序或最高一級(jí)主程序中。2023年12月18日第32頁(yè)子程序或過(guò)程調(diào)用及返回示意圖2023年12月18日第33頁(yè)2.過(guò)程文件中的過(guò)程調(diào)用過(guò)程定義的語(yǔ)法格式如下:PROCEDURE|FUNCTION<過(guò)程名><命令序列>[RETURN[<表達(dá)式>]][ENDPROC|ENDFUNC]2023年12月18日第34頁(yè)3.帶參數(shù)的過(guò)程調(diào)用PARAMETERS<
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024戶外廣告牌制作安裝合同
- 2024年合作投資協(xié)議書(shū)模板
- 2024苗木購(gòu)銷合同范本簡(jiǎn)單版
- 2024股東合作經(jīng)營(yíng)合同協(xié)議書(shū)
- 城市街道廣告位租賃合同
- 插畫(huà)約稿合同樣本
- 二房東租房合同租房合同協(xié)議范本
- 2024股份制工程合作協(xié)議書(shū)
- 貨物運(yùn)輸合同簽訂技巧
- 4.1 夯實(shí)法治基礎(chǔ)(導(dǎo)學(xué)案) 2024-2025學(xué)年統(tǒng)編版道德與法治九年級(jí)上冊(cè)
- (培訓(xùn)體系)2020年普通話測(cè)試培訓(xùn)材料
- 3-4單元測(cè)試-2024-2025學(xué)年統(tǒng)編版語(yǔ)文六年級(jí)上冊(cè)
- 北師版數(shù)學(xué)八年級(jí)上冊(cè) 5.8三元一次方程組課件
- 2024混合動(dòng)力汽車賽道專題報(bào)告-2024-10-市場(chǎng)解讀
- DB34T 4338-2022 行政規(guī)范性文件合法性審核規(guī)范
- 企業(yè)單位消防安全規(guī)范化管理指導(dǎo)手冊(cè)
- 廢舊物資回收投標(biāo)方案(技術(shù)方案)
- 宣傳視頻拍攝服務(wù)投標(biāo)方案(技術(shù)方案)
- 森林防火課件下載
- 3《歡歡喜喜慶國(guó)慶》(教學(xué)設(shè)計(jì))2024-2025學(xué)年統(tǒng)編版道德與法治二年級(jí)上冊(cè)
- 2024糧改飼工作總結(jié)五篇
評(píng)論
0/150
提交評(píng)論