版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VFP程序設(shè)計(jì)基礎(chǔ)要點(diǎn)
VisualFoxPro的工作方式程序文件的建立與編輯
程序的基本結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)VisualFoxPro的工作方式
VisualFoxPro系統(tǒng)提供有三種工作方式:即單命令方式、菜單方式及程序文件方式。
1.單命令方式
3.程序文件方式
程序文件(簡(jiǎn)稱程序)也叫做命令文件。運(yùn)用程序文件方式進(jìn)行數(shù)據(jù)庫管理,是通過程序文件編輯工具,將對(duì)數(shù)據(jù)庫資源進(jìn)行操作管理的命令和對(duì)系統(tǒng)環(huán)境進(jìn)行設(shè)置的命令,集中在一個(gè)以(.PRG)為擴(kuò)展名的命令文件中,然后再通過菜單方式或命令方式運(yùn)行該命令文件。所謂命令方式,即通過程序文件中的命令完成不同的操作。程序:是多條命令按一定規(guī)則組織成的一個(gè)有機(jī)的序列注釋語句NOTE<注釋內(nèi)容>*<注釋內(nèi)容>&&<注釋內(nèi)容>注釋整一行,NOTE后至少有一個(gè)空格可以注釋在某條語句之后對(duì)話開關(guān)語句【格式】SETTALKOFF|ONclear&&清屏
settalkoff&&關(guān)閉對(duì)話顯示opendatastudent&&打開數(shù)據(jù)庫
usesc&&打開SC表(學(xué)號(hào),課程號(hào),成績(jī))listsumtoarraya&&求和?"總成績(jī):",a&&輸出settalkon&&開啟對(duì)話顯示closedata說明1:此方法可以建立新程序文件,又可修改已有的程序文件。方法三:在命令窗口中執(zhí)行命令:
ModifyCommand[<程序文件名>]說明2:文件的擴(kuò)展名可缺省,系統(tǒng)默認(rèn)擴(kuò)展名為.PRG。方法四:在項(xiàng)目管理器中,進(jìn)入“代碼”選項(xiàng)卡,選擇“程序”,單擊“新建”。說明3:一個(gè)命令行中只能寫一條命令,若一行寫不下,需使用分行符“;”。
保存程序文件方法一:?jiǎn)螕簟拔募辈藛雾?xiàng)→“保存”。方法二:?jiǎn)螕簟俺S谩惫ぞ邫诶锏摹氨4妗卑粹o。方法三:按Ctrl+W。方法四:關(guān)閉程序編輯器,系統(tǒng)提示是否保存文件。在VFP中,可以執(zhí)行源程序、編譯程序、應(yīng)用程序和可執(zhí)行程序4種程序文件。(1)源程序(PRG):源程序是文本文件,可以對(duì)其內(nèi)容進(jìn)行修改。只要有源程序文件,就可以生成其他3種程序文件。執(zhí)行程序就是按照程序的內(nèi)部控制結(jié)構(gòu)執(zhí)行文件中的相關(guān)語句序列。程序文件的類型
(2)編譯程序(FXP):每個(gè)源程序文件都有對(duì)應(yīng)的編譯程序文件,執(zhí)行編譯程序比執(zhí)行源程序的速度快。(3)應(yīng)用程序(APP):由多個(gè)文件(包括程序、表單和菜單等)連接成一個(gè)應(yīng)用程序文件。注意:以上三種文件都是在VFP環(huán)境下運(yùn)行。(4)可執(zhí)行程序(EXE):將多個(gè)文件(包括程序、表單和菜單等)連接成一個(gè)可執(zhí)行程序文件,此種文件可以脫離VFP環(huán)境運(yùn)行。編譯程序當(dāng)執(zhí)行一個(gè)源程序時(shí),系統(tǒng)自動(dòng)將其編譯為編譯程序(FXP)。在VFP中允許只編譯而不執(zhí)行程序。執(zhí)行程序方法二:“程序”菜單→“運(yùn)行”→選擇“文件類型”為“程序”→選擇或輸入程序文件名→“運(yùn)行”。方法三:在程序或命令窗口中執(zhí)行:
Do<程序文件名>說明:當(dāng)源程序(PRG)和編譯程序(FXP)文件同時(shí)存在時(shí),系統(tǒng)將執(zhí)行距當(dāng)前時(shí)間最近的程序文件。
方法一:在程序編輯器中,“程序”菜單→“執(zhí)行”或“運(yùn)行”常用工具輸入字符串語句語句格式:
Accept[<字符表達(dá)式>]To<內(nèi)存變量>“字符表達(dá)式”:作為執(zhí)行到此語句時(shí)的提示信息。若無此項(xiàng),則不輸出任何信息。內(nèi)存變量:用來接收輸入的字符串。若不輸入任何字符,則將空字符賦值給內(nèi)存變量。例:Accept“請(qǐng)輸入學(xué)號(hào):”ToXH?”輸入的學(xué)號(hào)是:”+XH
等待語句語句格式:Wait[<字符表達(dá)式>][To<內(nèi)存變量>][Window[At<行>,<列>]][Nowait][Clear|Noclear][Timeout<數(shù)值表達(dá)式>]“字符表達(dá)式”:提示信息。若無此項(xiàng),則輸出任何信息。To內(nèi)存變量:用來接收輸入的字符。若不輸入任何字符,則將空字符賦值給內(nèi)存變量。ACCEPT命令只能接受字符型數(shù)據(jù),不需定界符,輸入完畢按回車鍵結(jié)束;
WAIT命令只能輸入單個(gè)字符,且不需定界符,輸入完畢不需按回車鍵;
INPUT命令可接受數(shù)值型、字符型、邏輯型、日期型和日期時(shí)間型數(shù)據(jù),數(shù)據(jù)形式可以是常量、變量、函數(shù)和表達(dá)式,如果是字符串,需用定界符,輸入完畢按回車鍵結(jié)束。
三條輸入命令的異同程序的基本結(jié)構(gòu)1.順序結(jié)構(gòu)順序結(jié)構(gòu)是在程序執(zhí)行時(shí),根據(jù)程序中語句的書寫順序依次執(zhí)行的命令序列。VisualFoxPro系統(tǒng)中的大多數(shù)命令都可以作為順序結(jié)構(gòu)中的語句。2.分支結(jié)構(gòu)分支結(jié)構(gòu)是在程序執(zhí)行時(shí),根據(jù)不同的條件,選擇執(zhí)行不同的程序語句,用來解決有選擇、有轉(zhuǎn)移的諸多問題。
3.循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)則能夠使某些語句或程序段重復(fù)執(zhí)行若干次。
4.過程結(jié)構(gòu)在許多應(yīng)用程序中,有一些程序段需要反復(fù)執(zhí)行多次,這些程序段不在一個(gè)固定的位置上,而是分散在程序的許多位置上重復(fù)執(zhí)行,可將其與嵌入它的程序分開,形成獨(dú)立的程序序列,待使用時(shí)再調(diào)入程序中,以實(shí)現(xiàn)不同位置上的重復(fù)操作?!纠繉懗绦騊3.PRG:從鍵盤輸入兩個(gè)任意整數(shù),計(jì)算這兩個(gè)數(shù)的和、差、積、商。
CLEARINPUT"請(qǐng)輸入第一個(gè)數(shù):"TOAINPUT"請(qǐng)輸入第二個(gè)數(shù):"TOB?"這兩個(gè)數(shù)的和為:",A+B?"這兩個(gè)數(shù)的差為:",A-B?"這兩個(gè)數(shù)的積為:",A*B?"這兩個(gè)數(shù)的商為:",A/B【例】從鍵盤輸入兩個(gè)任意正數(shù),編程求以兩數(shù)為邊長(zhǎng)的長(zhǎng)方形面積。程序文件名為PROG4.PRGSETTALKOFFCLEARINPUT"長(zhǎng)方形一邊的長(zhǎng)為:"TOAINPUT"長(zhǎng)方形另一邊的長(zhǎng)為:"TOBS=A*B?"長(zhǎng)方形的面積為:",SSETTALKONRETURN例: Input"請(qǐng)輸入一個(gè)N:"ToN IfN<0 N=-N Endif ?"N的絕對(duì)值是:",N雙分支If語句
語句格式:
If<條件>[Then] <語句序列1>
ELSE<語句序列2>
Endif開始語句序列1結(jié)束條件?YN語句序列2分支結(jié)構(gòu)后面語句例,求兩個(gè)數(shù)中較小值: Input"X="ToX Input"Y="ToY IfX<Y M=X Else M=Y Endif ?"X與Y中的較小者是:",M語句的嵌套在If分支結(jié)構(gòu)的語句序列中可以包含另一個(gè)If分支語句,稱為If語句的嵌套。VFP中為了解決多分支問題,允許進(jìn)行多層If嵌套。嵌套時(shí),不允許出現(xiàn)交叉嵌套,即一個(gè)If語句塊要完整地包含在另一個(gè)If語句序列之內(nèi)。
例如:1(X>0)0(X=0)-1(X<0)Y= Input"請(qǐng)輸入一個(gè)數(shù):"ToX IfX>0 Y=1 Else IfX=0 Y=0 Else Y=-1 Endif Endif ?Y控制程序是否繼續(xù)執(zhí)行例6.8: ?DATE()&&輸出系統(tǒng)日期 CANCEL&&結(jié)束本程序的執(zhí)行 ?TIME()&&此語句得不到執(zhí)行(1)Cancel:結(jié)束當(dāng)前程序的運(yùn)行。控制程序是否繼續(xù)執(zhí)行(2)Suspend:暫停程序的執(zhí)行。暫停期間可以在命令窗口中執(zhí)行交互命令。(3)Resume:繼續(xù)執(zhí)行Suspend暫停的程序,從Suspend語句的下一條繼續(xù)。
例: X=1 Suspend Y=2 ?X+Y條件函數(shù)函數(shù)格式:
Iif(<條件>,<表達(dá)式1>,<表達(dá)式2>)
說明:若條件成立,則表達(dá)式1的值作為函數(shù)值;否則,表達(dá)式2的值作為函數(shù)值。例如:Input"輸入一個(gè)數(shù)N:"ToNM
=
Iif(N<0,-N,N)?”N的絕對(duì)值是:”,M開始語句序列1結(jié)束條件1?YN語句序列2條件2?YN語句序列n條件n?YNOTHERWISE語句序列n+1……..多分支結(jié)構(gòu)語句格式:
DoCase
Case<條件1> <語句序列1>
Case<條件2> <語句序列2> ……
Case<條件n> <語句序列n>
[Otherwise <語句序列n+1>]
Endcase說明1:執(zhí)行時(shí),系統(tǒng)從上向下依次對(duì)Case后面的條件進(jìn)行判斷,當(dāng)條件不成立時(shí),就判斷下一個(gè)Case條件是否成立。一旦某個(gè)Case條件成立,就執(zhí)行該Case與下一個(gè)Case(Otherwise或Endcase)之間的語句序列,然后執(zhí)行Endcase后面的語句。說明2:若所有條件都不成立,而有Otherwise項(xiàng),則執(zhí)行語句序列n+1,然后執(zhí)行Endcase后面的語句;若所有條件都不成立,且無Otherwise項(xiàng),則直接執(zhí)行Endcase后面的語句。
Input"請(qǐng)輸入一個(gè)數(shù):"ToX DoCase CaseX>0 Y=1 CaseX=0 Y=0 Otherwise Y=-1 Endcase ?Y1(X>0)0(X=0)1(X<0)Y=案例:S=1+2+3+4+5+6i=0S=s+isiS=S+ii=i+100010112123333646410510515615621循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)指在執(zhí)行程序過程中,重復(fù)執(zhí)行某程序段。在循環(huán)體中,可以利用Exit語句提前結(jié)束循環(huán),也可利用Loop語句提前結(jié)束本次循環(huán)。重復(fù)執(zhí)行的程序段稱為循環(huán)體,重復(fù)執(zhí)行的次數(shù)稱為循環(huán)次數(shù)。DoWhile(當(dāng)型)循環(huán)語句語句格式:
DoWhile<循環(huán)條件> <語句序列>Enddo
開始語句序列結(jié)束條件?YN循環(huán)前的語句循環(huán)體后的語句語句序列Y說明:DoWhile與Enddo必須成對(duì)使用。例,求前100個(gè)自然數(shù)的和: S=0 N=1 DoWhileN<=100 S=S+N N=N+1 Enddo循環(huán)條件循環(huán)體S=1+2+3+4+……+100死循環(huán)如果循環(huán)體中沒有能執(zhí)行到的、使條件趨于不成立的語句、結(jié)束循環(huán)或結(jié)束程序的語句,將永遠(yuǎn)執(zhí)行不完循環(huán)體,即出現(xiàn)死循環(huán)。語句修改為:DoWhile<循環(huán)條件> <語句序列1> [Loop <語句序列2>] [Exit <語句序列3>]EnddoDoWhile(當(dāng)型)循環(huán)語句(2)Exit:一旦執(zhí)行到Exit語句,就結(jié)束整個(gè)循環(huán)。(1)Loop:一旦執(zhí)行到Loop語句,就提前結(jié)束本次循環(huán)。例,對(duì)鍵盤輸入的每一個(gè)正數(shù),輸出其算術(shù)平方根;當(dāng)輸入的數(shù)小于或等于0時(shí),結(jié)束程序。
開始循環(huán)體前語句循環(huán)體條件Y分支條件YLOOPN分支結(jié)構(gòu)下面的語句N循環(huán)體下面的語句結(jié)束無條件轉(zhuǎn)向循環(huán)語句格式(以當(dāng)型循環(huán)為例)
DOWHILE<條件>…IF<條件>…
LOOP
ENDIF…ENDDO例:計(jì)算1~100的奇數(shù)和。說明:int(N):取整函數(shù)此處用于判斷i的奇偶性思考:利用mod(N1,N2)如何判斷奇偶性?*Ex3.prgstore0toi,tdowhilei<100i=i+1ifint(i/2)=i/2loopendift=t+ienddo?’1~100奇數(shù)和為:’,t開始循環(huán)體前語句循環(huán)體條件Y分支條件NEXITY分支結(jié)構(gòu)下面的語句N循環(huán)體下面的語句結(jié)束無條件跳出循環(huán)語句格式(以當(dāng)型循環(huán)為例)DOWHILE<條件>…IF<條件>…
EXIT
ENDIF…ENDDOFor(步長(zhǎng)型)循環(huán)語句語句格式:For<循環(huán)控制變量>=<初值>To<終值>[Step<步長(zhǎng)>]<循環(huán)體語句序列>Endfor|Next[<循環(huán)控制變量>]
說明2:若步長(zhǎng)缺省,默認(rèn)值為1。說明1:初值、終值和步長(zhǎng)應(yīng)為數(shù)值型表達(dá)式例:求前
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 綠色農(nóng)業(yè)的科技創(chuàng)新與實(shí)踐
- 二零二五年度水資源保護(hù)堰塘承包管理合同3篇
- 二零二五年度高速鐵路軌道施工合同3篇
- 2025年度文化藝術(shù)館軟裝承接合同樣本4篇
- 二零二五年度車庫停車場(chǎng)智能停車引導(dǎo)系統(tǒng)采購合同4篇
- 二零二五年度成都高空廣告安裝公司高空作業(yè)防護(hù)用品供應(yīng)合同2篇
- 校企合作在寵物人才培養(yǎng)中的實(shí)踐與探索
- 學(xué)校活動(dòng)成功執(zhí)行的全方位策略
- 2025年統(tǒng)編版2024選修化學(xué)下冊(cè)階段測(cè)試試卷含答案
- 二零二五年度航空航天財(cái)產(chǎn)抵押擔(dān)保租賃合同3篇
- DB32T 4880-2024民用建筑碳排放計(jì)算標(biāo)準(zhǔn)
- 銀行2025年紀(jì)檢工作計(jì)劃
- 注射泵管理規(guī)范及工作原理
- 【譯林】九下英語單詞默寫表
- 國潮風(fēng)中國風(fēng)2025蛇年大吉蛇年模板
- 故障診斷技術(shù)的國內(nèi)外發(fā)展現(xiàn)狀
- 2024年發(fā)電廠交接班管理制度(二篇)
- 《數(shù)學(xué)課程標(biāo)準(zhǔn)》義務(wù)教育2022年修訂版(原版)
- 農(nóng)機(jī)維修市場(chǎng)前景分析
- 實(shí)驗(yàn)室的設(shè)計(jì)規(guī)劃
評(píng)論
0/150
提交評(píng)論