等多個文件-2程序設(shè)計_第1頁
等多個文件-2程序設(shè)計_第2頁
等多個文件-2程序設(shè)計_第3頁
等多個文件-2程序設(shè)計_第4頁
等多個文件-2程序設(shè)計_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

★程序結(jié)構(gòu)設(shè)計(.prg)順序結(jié)構(gòu)選擇結(jié)構(gòu)多分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)(多重循環(huán))特別注意:setdefato盤符:\路徑setdefatoaModicomm程序名二、FoxPro常用命令I(lǐng)nput

[提示信息]

to

<內(nèi)存變量>Accept

[提示信息]

to

<內(nèi)存變量>Wait

[提示信息][to

<內(nèi)存變量>]☆查詢基本結(jié)構(gòu)(單表)(一次查多個)use表 &&打開表locatefor條件 &&查詢第一條記錄dowhile

!eof() &&循環(huán)控制?字段1,字段2,字段3 &&顯示字段值

continue &&查詢下一條記錄enddo[e.g.2-29]在學(xué)生表中按姓名查詢學(xué)生的記錄,格式如下。use學(xué)生accept"請輸入姓名:"toxmlocatefor姓名=xm?"學(xué)號姓名出生日期評分"dowhile!eof()?學(xué)號,姓名,出生日期,評分

continueenddoCloseall格式:@<行,列>

[Say

<表達式>]Get<變量名> [Picture

<格式符>] [Function

<功能符>]

[Range<表達式1>,<表達式2>]

[Valid<條件>]功能:在指定位置顯示輸出數(shù)據(jù)。定位輸入命令格式:Read功能:激活由Get命令定義的語句,允許輸入數(shù)據(jù)。激活Get命令Get命令使用的變量必須是已定義的變量,輸入數(shù)據(jù)的類型和寬度都遵照變量原來的定義。執(zhí)行Get命令后并不能立即輸入數(shù)據(jù),必須在使用Read命令激活后才能進行數(shù)據(jù)的輸入。例:設(shè)計一個輸入,要求只能輸入大于等于10、小于等于100的數(shù)值(即:10≤x≤100)。x=0@0,0say"x="getxRange10,100Read大于等于10的范圍可表示為:Range10。小于等于100的范圍可表示為:Range

,100。Range<N1,N2>:對輸入的數(shù)據(jù)進行檢驗,只有大于等于N1、小于等于N2的數(shù)據(jù)才允許被輸入。Valid<條件>:對輸入的數(shù)據(jù)進行檢驗,只有符合<條件>的數(shù)據(jù)才允許被輸入。例:設(shè)計一個輸入,要求只能輸入大于等于10、小于等于100的數(shù)值(即:10≤x≤100)。x=0@0,0say"x="getxvalidx>=10andx<=100ReadPicture

<格式字串>:每個格式符只對數(shù)據(jù)中相對應(yīng)的一個字符起作用。Function<功能字串>:功能符對數(shù)據(jù)的所有字符都起作用。代碼功能備注A只允許字母用于輸入9只允許數(shù)字格式符,用于輸入!小寫轉(zhuǎn)換成大寫用于輸入和輸出常用的格式符與功能符(3)Wait[提示信息][to<內(nèi)存變量>]說明:Ⅰ、從鍵盤輸入一個字符(C型數(shù)據(jù))后立即執(zhí)行該命令。Ⅱ、若省略[提示信息],則系統(tǒng)將給出如下提示信息: Pressanykeytocontinue…Ⅲ、若省略[to<內(nèi)存變量>],則不保存輸入的字符。例:wait“按任意鍵繼續(xù),按其它鍵退出:”toyn &&輸入:y4.坐標(biāo)函數(shù)①返回屏幕行坐標(biāo)

ROW()功能:返回工作區(qū)窗口當(dāng)前位置的行坐標(biāo)。②返回屏幕列坐標(biāo)

COL()功能:返回工作區(qū)窗口當(dāng)前位置的列坐標(biāo)。**VFP工作區(qū)窗口例:坐標(biāo)函數(shù)的使用

?"*","*"@row()+1,col()+1say"ABC"ABC1.條件分支命令(1)不帶ELSE的格式If<條件><語句序列>endif一、選擇結(jié)構(gòu)設(shè)計VisualFoxPro能用條件語句或多分支語句構(gòu)成分支結(jié)構(gòu),并根據(jù)條件成立與否來決定程序執(zhí)行的流向。條件語句是一個具有兩個分支的程序結(jié)構(gòu),可分為帶ELSE與不帶ELSE兩種格式。條件語句序列NYendif例:在cj1.dbf中按姓名查找學(xué)生,找到后顯示出來*e2.prgUsecj1acce“請輸入姓名:”toxmLocatefor姓名=xmIffound()DisplayEndifCloseall(2)帶ELSE的格式If<條件><語句序列1>else<語句序列2>endif條件語句序列1Y語句序列2Nendif例:在cj1.dbf中按姓名查找學(xué)生,找到后顯示出來,沒找到則顯示:“查無此人!”。*e2.prgUsecj1acce“請輸入姓名:”toxmLocatefor姓名=xmIffound()DisplayElse?“查無此人!”EndifCloseall例:在cj1.dbf中按姓名查找學(xué)生,如果數(shù)學(xué)成績>=60顯示“及格”,否則顯示“不及格”;沒找到則顯示:“查無此人!”。*e3.prgUsecj1acce“請輸入姓名:”toxmLocatefor姓名=xmIffound()if數(shù)學(xué)>=60

?“及格”

else?“不及格”

endifElse?“查無此人!”EndifCloseall例:在cj1.dbf中按姓名查找學(xué)生,找到后按下表顯示沒找到則顯示:“查無此人!”。不及格數(shù)學(xué)<60及格60≤數(shù)學(xué)<70良好70≤數(shù)學(xué)<90優(yōu)秀數(shù)學(xué)≥902、多路分支命令docasecase<條件1><語句序列1>case<條件2><語句序列2>…case<條件n><語句序列n>[otherwise<語句序列n+1>]endcase*e4.prgUsecj1Input“請輸入姓名:”toxmLocatefor姓名=xmIffound()docasecase數(shù)學(xué)>=90

?“優(yōu)秀”

case數(shù)學(xué)>=70and數(shù)學(xué)<90?“良好”

case數(shù)學(xué)>=60and數(shù)學(xué)<70?“及格”

case數(shù)學(xué)<60?“不及格”

endcaseElse?“查無此人!”EndifCloseall*e4.prgUsecj1Input“請輸入姓名:”toxmLocatefor姓名=xmIffound()docasecase數(shù)學(xué)>=90

?“優(yōu)秀”

case數(shù)學(xué)>=70?“良好”

case數(shù)學(xué)>=60?“及格”

otherwise?“不及格”

endcaseElse?“查無此人!”EndifCloseall5.閱讀下面程序

INPUT‘輸入年齡’TONLDOCASECASENL<7&&語句組1

?‘童年’CASENL<18?‘少年’CASENL>=18&&語句組2

由于設(shè)計不當(dāng),本程序運行結(jié)果不對。

?‘少年’

(1)運行時輸入11,輸出是(36)CASENL>=6036(A)童年(B)少年.(C)青年(D)老年

?‘老年’

(2)運行時輸入36,輸出是(37)CASENL>=35&&語句組337(A)少年.(B)青年(C)中年(D)老年

?‘中年’

(3)如果修改,你認為在指出的四個語句組中,OTHER&&語句組4

應(yīng)該去掉哪個語句組(CASE及其輸出語句)?

?‘青年’

38(A)語句1(B)語句2.(C)語句3(D)語句4ENDCASE§3

循環(huán)結(jié)構(gòu)設(shè)計循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)能夠使某些命令或程序段重復(fù)執(zhí)行若干次,當(dāng)循環(huán)條件為真時,反復(fù)執(zhí)行一組命令,否則,終止循環(huán)。DOWHILE<條件>

<命令序列>ENDDO條件命令序列NYENDDO1.條件循環(huán)【例】求:1+2+3+…+100。s=0i=1DOWHILEi<=100s=s+ii=i+1ENDDO?"1+2+3+……+100=",s*e5.prgUsecj1Dowhile!eof()

docasecase數(shù)學(xué)>=90?“優(yōu)秀”

case數(shù)學(xué)>=70?“良好”

case數(shù)學(xué)>=60?“及格”

otherwise?“不及格”

endcase

skipEnddoCloseall例:用程序?qū)崿F(xiàn)Listfor姓名=“張”的功能。(一次查詢多個)UsecjLocafor姓名=“張”?“姓名”,“數(shù)學(xué)”,“計算機”Dowhile!Eof()?姓名,數(shù)學(xué),計算機contEnddoCloseall姓名數(shù)學(xué)計算機王小平7290張海7289張強8681EOFCJ.DBF記錄號姓名數(shù)學(xué)計算機

1王小平8390顯示結(jié)果:

2張強6581

3劉雨72892.計數(shù)循環(huán)FOR<控制變量>=<初值>TO<終值>[STEP<步長>]

<命令序列>ENDFOR/NEXT【例】求:1+2+3+…+100。s=0FORi=1TO100s=s+iENDDO?"1+2+3+……+100=",sSCAN[范圍][FOR/WHILE

<條件>]

<命令序列>ENDSCAN[范圍]指定記錄范圍,缺省值為ALL。[for/while

<條件>]對記錄進行選擇。Scan循環(huán)在執(zhí)行到Endscan后都會自動向后移動記錄指針(隱含執(zhí)行skip)。3.掃描循環(huán)Use學(xué)生?"學(xué)號姓名性別出生日期入校總分"?"------------------------------------------------"Scanfor性別=“女”?學(xué)號,姓名,性別,出生日期,入??偡諩ndscan【例】顯示女學(xué)生.DBF?!?

EXIT與LOOPEXIT命令退出當(dāng)前循環(huán),執(zhí)行循環(huán)后面的命令。DOWHILE<條件>

<命令序列1>EXIT

<命令序列2>ENDDO條件語句序列1NYENDDOEXIT語句序列2LOOP命令中斷本次循環(huán),重新執(zhí)行下一次循環(huán)。條件語句序列1NYENDDOLOOP語句序列2DOWHILE<條件>

<命令序列1>LOOP

<命令序列2>ENDDODOWHILE<條件1>

<命令序列1>

DOWHILE

<條件2>

<命令序列2>

ENDDOENDDO1212

5.多重循環(huán)多重循環(huán)是指在一個循環(huán)結(jié)構(gòu)中包含另外一個或多個完整的循環(huán)結(jié)構(gòu),也稱為循環(huán)嵌套。CLEARI=1J=1DOWHILEI<10

J=1

DOWHILEJ<10

@I,JSAY"*"

J=J+1

ENDDO

I=I+1ENDDO四、練習(xí)1.閱讀下面程序

CLEARI=1J=1DOWHILEI<5J=5-I

DOWHILEJ>1@I,JSAY"*"J=J-1

ENDDOI=I+1ENDDO(1)程序輸出的圖形為(C)[A]**** [B]**** .[C]*** [D]****** *** ** **** ** * ** *(2)如果把程序中的@I,JSAY“*”改為@J,ISAY“*”則輸出的圖形為(C)[A]**** [B]**** .[C] [D]*** *** *** ***** ** ** *** * * *永真循環(huán)Dowhile.t.

(完整功能的程序)Wait“繼續(xù)嗎?”toynifupper(yn)=“Y”loopElseexitEndifenddo多次查詢多個(永真循環(huán))UsecjDowhil.t.

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論