版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Visual-FoxPro程序設(shè)計(jì)基礎(chǔ)Visual-FoxPro程序設(shè)計(jì)基礎(chǔ)引入nVisual FoxPro絕大多數(shù)操作都可以通過(guò)菜單和對(duì)話框來(lái)完成,或在命令窗口輸入命令來(lái)完成,這種方式屬于單命令方式。當(dāng)需要重復(fù)執(zhí)行某些操作時(shí),還需重新輸入命令,因此使用不太方便。此外,單命令方式對(duì)運(yùn)用大量命令處理復(fù)雜的數(shù)據(jù)庫(kù)管理和操作時(shí)顯得無(wú)能為力。為此,Visual FoxPro提供了批命令工作方式,即程序方式。n所謂程序方式是指將多條命令按一定邏輯結(jié)構(gòu)組織在一個(gè)程序文件中。執(zhí)行該程序文件時(shí),程序文件中的命令被有序地執(zhí)行,完成一定的任務(wù)。 8.1 程序的建立、修改和運(yùn)行nVisual FoxPro具有大多數(shù)
2、編程語(yǔ)言(如C/C+等)相似的基本特征,它提供了豐富的命令和系統(tǒng)函數(shù),同時(shí)允許自定義函數(shù)和過(guò)程。Visual FoxPro遵循結(jié)構(gòu)化編程思想,把一個(gè)完整的應(yīng)用程序劃分成若干功能相對(duì)獨(dú)立的模塊,各功能模塊上下層之間可以相互調(diào)用,即把應(yīng)用程序模塊化,采用順序、分支、循環(huán)三種基本的程序結(jié)構(gòu)來(lái)設(shè)計(jì)和編寫(xiě)程序。nVisual FoxPro本身提供了功能強(qiáng)大的程序編輯器,用來(lái)編輯源程序。 8.1.1 程序的建立u程序文件是Visual FoxPro最重要的文件類型之一。文件內(nèi)容主要由若干命令組成,故又稱為命令文件,程序文件的擴(kuò)展名為PRG。u程序的建立是指如何將已經(jīng)編寫(xiě)好的程序形成相應(yīng)的程序文件,可以使用
3、任何文本編輯器編輯程序,當(dāng)然,Visual FoxPro本身提供了功能強(qiáng)大的程序編輯器,用來(lái)編輯源程序。1菜單方式n方法1:使用項(xiàng)目管理器代碼選項(xiàng)卡中的相應(yīng)按鈕可以新建、修改、運(yùn)行程序文件。n方法2:選擇系統(tǒng)菜單“文件”中的“新建”命令,在出現(xiàn)的“新建”對(duì)話框中,選擇“程序”并單擊“新建文件”按鈕。2命令方式n格式1:MODIFY COMMAND |?n格式2:MODIFY FILE |?n功能:?jiǎn)?dòng)Visual FoxPro提供的程序編輯器來(lái)建立程序文件,若程序文件已存在,則在程序編輯器窗口中打開(kāi)該文件供編輯修改。若只有“?”號(hào)而不寫(xiě)文件名,系統(tǒng)將打開(kāi)一個(gè)對(duì)話框,用戶可從框中列出的文件名中選
4、擇需要編輯的文件。8.1.2 程序的修改n使用文件編輯命令MODIFY COMMAND或MODIFY FILE 對(duì)已經(jīng)存在的命令文件進(jìn)行編輯。n還可以使用菜單操作,先使用“文件”菜單“打開(kāi)”命令,選擇需要修改的文件。 8.1.3 程序的運(yùn)行1菜單方式1)從“程序”菜單中選擇“運(yùn)行”命令,打開(kāi)“運(yùn)行”對(duì)話框;2)從文件列表框中選擇要運(yùn)行的程序文件,并單擊“運(yùn)行”命令按鈕。2命令方式DO WITH8.2 順序結(jié)構(gòu)程序設(shè)計(jì)n順序結(jié)構(gòu)是程序設(shè)計(jì)中最簡(jiǎn)單、最基本的程序結(jié)構(gòu)。在該結(jié)構(gòu)中,命令按照在程序中出現(xiàn)的先后順序依次逐條執(zhí)行,它是構(gòu)成程序框架的基礎(chǔ)。n本節(jié)介紹: 基本語(yǔ)句(注釋語(yǔ)句、賦值語(yǔ)句、程序暫停
5、語(yǔ)句、程序結(jié)束語(yǔ)句) 非格式化輸入輸出語(yǔ)句 格式化輸入輸出語(yǔ)句8.2.1 基本語(yǔ)句1注釋語(yǔ)句(1) 行首注釋NOTE 或 * (2) 行尾注釋如果要在命令語(yǔ)句的尾部加注釋信息,應(yīng)該使用行尾注釋語(yǔ)句。命令格式: 2賦值語(yǔ)句n命令格式:STORE TO n功能:為變量或?qū)傩悦x值。也就是將表達(dá)式的值存儲(chǔ)到內(nèi)存變量或?qū)傩灾小?程序暫停語(yǔ)句n命令格式:WAIT TO WINDOW AT TIMEOUT nn功能:暫停程序的執(zhí)行,處于等待狀態(tài)??梢燥@示提示信息,按任意鍵或單擊鼠標(biāo)后或等待一定時(shí)間后等待狀態(tài)結(jié)束。同時(shí),還可以從鍵盤(pán)上輸入數(shù)據(jù),實(shí)現(xiàn)交互式輸入。說(shuō)明:(1) :指定要顯示的提示信息。省略時(shí),顯
6、示默認(rèn)信息“按任意鍵繼續(xù)”。(2) TO :將按下的鍵以字符形式保存到內(nèi)存變量中。只接受一個(gè)字符。(3) WINDOW AT:指定提示信息窗口在Visual FoxPro主窗口中的位置。若省略AT則提示信息顯示在右上角。(4) n:等待n秒,在此期間若未按任意鍵或單擊鼠標(biāo),n秒后自動(dòng)結(jié)束等待狀態(tài)。4. 程序結(jié)束語(yǔ)句n語(yǔ)句1:RETURN功能:使程序執(zhí)行結(jié)束,并返回到調(diào)用它的上級(jí)程序繼續(xù)執(zhí)行,若無(wú)上級(jí)程序則返回到Visual FoxPro主窗口。指定返回給調(diào)用程序的表達(dá)式。如果省略返回表達(dá)式,則自動(dòng)將“真”(.T.) 返回給調(diào)用程序。n語(yǔ)句2:CANCEL功能:終止程序運(yùn)行,清除程序的私有變量,
7、并返回到Visual FoxPro主窗口。8.2.2 非格式化輸入輸出語(yǔ)句1非格式化輸入語(yǔ)句(1)INPUT命令n命令格式: INPUT 提示信息 TO 內(nèi)存變量n功能:該命令在執(zhí)行時(shí)顯示指定的提示信息,等待用戶輸入,并通過(guò)按回車(chē)鍵來(lái)終止數(shù)據(jù)輸入。鍵盤(pán)輸入的數(shù)據(jù)存儲(chǔ)在內(nèi)存變量中。(2)ACCEPT命令n 命令格式:ACCEPT 提示信息 TO 內(nèi)存變量n 功能:該命令在執(zhí)行時(shí)顯示指定的提示信息,等待用戶輸入,并通過(guò)按回車(chē)鍵來(lái)終止數(shù)據(jù)輸入。鍵盤(pán)輸入的數(shù)據(jù)存儲(chǔ)在內(nèi)存變量中。n 說(shuō)明:該命令只能接收字符型數(shù)據(jù)輸入,可以直接按回車(chē)鍵,相當(dāng)于輸入空串?!纠?-3】設(shè)有學(xué)生檔案表students,編寫(xiě)一個(gè)
8、按學(xué)號(hào)查詢學(xué)生信息的程序。students的結(jié)構(gòu)見(jiàn)第3章相關(guān)內(nèi)容。SET TALK OFFUSE studentsCLEARACCEPT 請(qǐng)輸入學(xué)號(hào): TO XHLOCATE FOR 學(xué)號(hào)=XHDISPLAYUSESET TALK ONRETURN2非格式化輸出語(yǔ)句(1)表達(dá)式輸出命令?和?命令格式: ?|? 功能:計(jì)算表達(dá)式的值,并把計(jì)算結(jié)果傳送到 Visual FoxPro 主窗口。說(shuō)明: ?從光標(biāo)下一行開(kāi)始輸出結(jié)果;?從當(dāng)前光標(biāo)位置開(kāi)始輸出結(jié)果。(2)文本輸出命令n命令格式:TEXT 文本信息 ENDTEXTn功能:把TEXT與ENDTEXT之間的文本信息內(nèi)容顯示出來(lái)?!纠?-4】練習(xí)使
9、用TEXT語(yǔ)句輸出函數(shù)的值。CLEARSET TEXTMERGE ONTEXT Visual FoxPro 的系列號(hào):Visual FoxPro 啟動(dòng)目錄或文件夾: 當(dāng)前目錄或文件夾: 正在執(zhí)行的程序文件名:ENDTEXT8.2.3 格式化輸入輸出語(yǔ)句n格式化輸入輸出語(yǔ)句規(guī)定了輸入輸出數(shù)據(jù)顯示的位置和顯示的格式。n命令格式:行,列 SAY 表達(dá)式GET 變量名 DEFAULT n功能:在指定的行列位置輸出SAY子句表達(dá)式的值與GET變量的值,并可修改GET子句的變量值。CLEARX=SPACE(2) 2, 2 SAY 請(qǐng)輸入起點(diǎn): GET XREADFOR I=1 TO 100 CLEAR V
10、AL(X),VAL(X)+I SAY ENDFORRETURN【例8-5】下面的程序利用SAY語(yǔ)句的定位輸出功能,實(shí)現(xiàn)動(dòng)畫(huà)效果8.3 選擇結(jié)構(gòu)程序設(shè)計(jì)n順序結(jié)構(gòu)的程序特點(diǎn)是在執(zhí)行程序時(shí),所有的命令都會(huì)執(zhí)行到。但在實(shí)際應(yīng)用中,有些命令的執(zhí)行是取決于某些條件的成立與否。這就要借助于條件判斷語(yǔ)句或情況語(yǔ)句。由條件語(yǔ)句構(gòu)成的程序稱為選擇結(jié)構(gòu)或分支結(jié)構(gòu)。8.3.1 IF語(yǔ)句1語(yǔ)句格式格式1:IF 條件表達(dá)語(yǔ)句序列ENDIF格式2: IF 條件表達(dá)式 語(yǔ)句序列1 ELSE 語(yǔ)句序列2 ENDIF【例8-7】輸入學(xué)生學(xué)號(hào),查詢學(xué)生信息。SET TALK OFFUSE studentsCLEARACCEPT
11、請(qǐng)輸入學(xué)生學(xué)號(hào): TO XHLOCATE FOR 學(xué)號(hào)=XHIF FOUND三 &若找到,則FOUND三返回真值 DISPLAYELSE ? 學(xué)號(hào):+XH+,不存在! &提示信息沒(méi)有找到 WAIT WINDOWS &按任意鍵程序繼續(xù)ENDIFUSESET TALK ONRETURN8.3.2 DO CASE語(yǔ)句1語(yǔ)句格式 DO CASE CASE條件1 語(yǔ)句序列1 CASE條件2 語(yǔ)句序列2 CASE條件n 語(yǔ)句序列n OTHERWISE 語(yǔ)句序列n十l ENDCASE2功能n系統(tǒng)依次查看每一個(gè)CASE條件,只要某一個(gè)條件成立,就執(zhí)行該CASE條件下的語(yǔ)句序列,之后跳過(guò)
12、后面的CASE語(yǔ)句,去執(zhí)行ENDCASE后面的語(yǔ)句,退出DO CASE結(jié)構(gòu)。若所有的條件均不成立,在有選擇項(xiàng)OTHERWISE的情況下,執(zhí)行它后面的語(yǔ)句序列,執(zhí)行后再接著執(zhí)行ENDCASE后面的語(yǔ)句;在沒(méi)有選擇項(xiàng)OTHERWISE的情況下,直接執(zhí)行ENDCASE后面的語(yǔ)句?!纠?-8】輸入一個(gè)學(xué)生的成績(jī),判斷是哪一個(gè)成績(jī)段。 SET TALK OFFCLEARINPUT 請(qǐng)輸入成績(jī): TO ChengJiDO CASECASE ChengJi60? 不及格CASE ChengJi70? 及格CASE ChengJi85? 優(yōu)良CASE ChengJi100, 輸入有誤!,優(yōu)異) ENDCASE
13、SET TALK ONRETURN8.4 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)n在Visual FoxPro中,循環(huán)用于重復(fù)執(zhí)行某一段有特定功能的程序。 nVisual FoxPro提供了三種循環(huán)控制結(jié)構(gòu)語(yǔ)句: DO WHILEENDDO FORENDFOR SCANENDSCAN8.4.1 DO WHILE語(yǔ)句1語(yǔ)句格式 DO WHILE條件表達(dá)式 語(yǔ)句序列1 LOOP 語(yǔ)句序列2 EXIT 語(yǔ)句序列3 ENDDO2功能n首先檢查條件表達(dá)式的值,若為真就執(zhí)行循環(huán)體中的語(yǔ)句,執(zhí)行到ENDDO時(shí),循環(huán)返回DO WHILE,再次檢查條件表達(dá)式的值,值為“真”則繼續(xù)執(zhí)行循環(huán)體語(yǔ)句;值為“假”則跳出DO WHILE結(jié)構(gòu),
14、并執(zhí)行ENDDO下面的語(yǔ)句。如果第一次檢查條件表達(dá)式的值為“假”,則循環(huán)體一次都不執(zhí)行。【例8-9】創(chuàng)建數(shù)據(jù)表,輸入記錄,并顯示不及格學(xué)生記錄,并統(tǒng)計(jì)不及格人數(shù)。CREATE TABLE student (學(xué)號(hào) C(8),姓名 C(6),英語(yǔ) N(3),計(jì)算機(jī) N(3)i=1 &循環(huán)計(jì)次DO WHILE i= 10 & 添加 10 條記錄, APPEND BLANKSTORE SPACE(8) to xhSTORE SPACE(6) to xmSTORE 0 TO yy, jsjCLEAR 3,10 say “學(xué)號(hào):“ GET xh 4,10 say “姓名:” GET xm
15、5,10 say “英語(yǔ):” GET yy6,10 say “計(jì)算機(jī):” GET jsjREADREPLACE 學(xué)號(hào) WITH xh REPLACE 英語(yǔ) WITH yy REPLACE 計(jì)算機(jī) jsj i=i+1 &每完成一次循環(huán),循環(huán)次數(shù)加1ENDDOCLEAR fail=0 &統(tǒng)計(jì)不及格人數(shù)GO TOPDO WHILE .NOT EOF三 &查詢至表尾退出循環(huán)語(yǔ)句IF 英語(yǔ) 60 OR 計(jì)算機(jī) 60 fail=fail+1 &統(tǒng)計(jì)不及格人數(shù) DISPLAY FIELDS 學(xué)號(hào),姓名,英語(yǔ),計(jì)算機(jī) &顯示不及格記錄ENDIF SKIPENDDO &a
16、mp; 結(jié)束循環(huán)?不及格人數(shù)為:+STR(fail,2) &顯示不及格人數(shù)USE RETURN8.4.2 FOR語(yǔ)句1. 語(yǔ)句格式 FOR變量初值TO終值STEP步長(zhǎng) 語(yǔ)句序列1 LOOP 語(yǔ)句序列2 EXIT 語(yǔ)句序列3 ENDFOR2. 功能n首先將初值賦給循環(huán)變量,然后判斷循環(huán)條件是否成立,若成立則執(zhí)行循環(huán)體,然后循環(huán)變量增加一個(gè)步長(zhǎng),再次判斷循環(huán)條件是否成立,重復(fù)以上的過(guò)程。若循環(huán)條件不成立,則退出循環(huán)結(jié)構(gòu),執(zhí)行ENDFOR后面的語(yǔ)句?!纠?-10】打印九九算術(shù)表。CLEARFOR i=1 TO 9?FOR j=1 TO i ?SPACE(2)+STR(i,1)+X+STR(j
17、,1)+=+STR(i*j,2)ENDFORENDFORRETURN8.4.3 SCAN語(yǔ)句nSCANENDSCAN是一種Visual FoxPro特有的對(duì)數(shù)據(jù)表記錄進(jìn)行處理的循環(huán)。1語(yǔ)句格式 SCAN范圍FOR條件lWHILE條件2 語(yǔ)句序列 LOOP EXIT 語(yǔ)句序列 ENDSCAN2功能n對(duì)當(dāng)前數(shù)據(jù)表文件指定范圍內(nèi)的記錄進(jìn)行掃描,若符合指定條件,則執(zhí)行語(yǔ)句序列。掃描時(shí),如果使用索引,則按照索引順序進(jìn)行,沒(méi)有使用索引則按照記錄在數(shù)據(jù)表中的物理順序進(jìn)行掃描。8.5 過(guò)程與函數(shù)n程序設(shè)計(jì)時(shí),常常有些運(yùn)算和處理程序是相同的,只是每次以不同的參數(shù)參與程序的執(zhí)行,通過(guò)建立自定義過(guò)程和函數(shù),可以將經(jīng)
18、常使用或具有獨(dú)立功能的程序段從程序中獨(dú)立出來(lái),更加方便地實(shí)現(xiàn)功能調(diào)用。8.5.1 自定義過(guò)程1過(guò)程的定義PROCEDURE LPARAMETERS RETURN ENDPROC或PROCEDURE () RETURN ENDPROC2過(guò)程的調(diào)用n可以使用DO命令調(diào)用過(guò)程,其格式為:DO IN 程序文件名WITH 參數(shù)表n關(guān)閉過(guò)程文件的方法有:(1) 打開(kāi)一個(gè)新的過(guò)程文件,即關(guān)閉原打開(kāi)的過(guò)程文件。(2) 用SET PROCEDURE TO命令。(3) 用CLOSE PROCEDURE命令。8.5.2 自定義函數(shù)nVisual FoxPro提供了大量標(biāo)準(zhǔn)函數(shù),這些函數(shù)能完成若干復(fù)雜的功能。但實(shí)際應(yīng)用中經(jīng)常需要一些有特殊功能的函數(shù)。Visual FoxPro允許用戶按一定的規(guī)則自行定義一個(gè)專用的函數(shù),這就是自定義函數(shù)。1定義自定義函數(shù)FUNCTION 函數(shù)名 LPARAMETERS 參數(shù)表 命令序列 RETURN表達(dá)式ENDFUNC或FUNCTION 函數(shù)名() 命令序列 RETU
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《威海節(jié)日習(xí)俗》課件
- 《室內(nèi)設(shè)計(jì)課件》課件
- 單位管理制度集合大合集人力資源管理篇
- 單位管理制度合并選集【員工管理篇】十篇
- 單位管理制度分享匯編員工管理篇
- 單位管理制度分享大全人員管理篇十篇
- 《審計(jì)與管理》課件
- 《客房?jī)?yōu)化方案》課件
- 《診斷思路》課件
- (高頻選擇題50題)第2單元 社會(huì)主義制度的建立與社會(huì)主義建設(shè)的探索(解析版)
- 先天性甲狀腺功能減低癥專家講座
- 淮安市洪澤區(qū)2022-2023學(xué)年七年級(jí)上學(xué)期期末生物試題【帶答案】
- 2024年民航安全知識(shí)培訓(xùn)考試題庫(kù)及答案(核心題)
- MOOC 漢字文化解密-華中師范大學(xué) 中國(guó)大學(xué)慕課答案
- 黑龍江省哈爾濱市香坊區(qū)2023-2024學(xué)年八年級(jí)上學(xué)期期末語(yǔ)文試卷
- 青島版(五四制)四年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)課件
- 農(nóng)村污水處理設(shè)施運(yùn)維方案特別維護(hù)應(yīng)急處理預(yù)案
- 【施工組織方案】框架結(jié)構(gòu)施工組織設(shè)計(jì)
- 工業(yè)控制系統(tǒng)安全與實(shí)踐 課件 第7-9章 工業(yè)控制系統(tǒng)異常行為檢測(cè)、工控系統(tǒng)信息安全風(fēng)險(xiǎn)評(píng)估、入侵響應(yīng)
- 人工智能背景下高校智慧思政建設(shè)
- 高考物理復(fù)習(xí)講義第88講 電磁感應(yīng)中的雙桿模型(解析版)
評(píng)論
0/150
提交評(píng)論