計(jì)算機(jī)VFP 第八章 程序設(shè)計(jì)基礎(chǔ)1_第1頁(yè)
計(jì)算機(jī)VFP 第八章 程序設(shè)計(jì)基礎(chǔ)1_第2頁(yè)
計(jì)算機(jī)VFP 第八章 程序設(shè)計(jì)基礎(chǔ)1_第3頁(yè)
計(jì)算機(jī)VFP 第八章 程序設(shè)計(jì)基礎(chǔ)1_第4頁(yè)
計(jì)算機(jī)VFP 第八章 程序設(shè)計(jì)基礎(chǔ)1_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第八章程序設(shè)計(jì)基礎(chǔ)

■——、VF的工作方式

-二、程序的建立與運(yùn)行

■三、程序中的交互語(yǔ)句及輔助語(yǔ)

■四、程序的基本結(jié)構(gòu)

■五、過(guò)程設(shè)計(jì)

VF的工作方式

VF的三種工作方式:命令方式、菜單方式、

程序文件方式。

■程序文件(命令文件)方式:

□程序:就是根據(jù)所解決問(wèn)題的需要,將能完成相應(yīng)

功能的命令或語(yǔ)句按照一定的邏輯關(guān)系組織起來(lái)的

命令集合。

□程序文件的擴(kuò)展名為.PRG。

程序的

?以命令方式建立、編輯程序文件

□格式:MODIFYCOMMANDv程序文件名〉

功能:建立或編輯修改程序文件。

說(shuō)明:

■擴(kuò)展名默認(rèn)為PRG。

■文件名為默認(rèn)路徑下已有的文件,則使用此命令表示修改指定

的程序。

文件名為默認(rèn)路徑下沒(méi)有的文件,則使用此命令表示新建指定

的程序。

■命令:MODICOMM?功能:從文件列表中選擇碧賀

--------------------------------------------------------------

□保存程序:1、用“文件”菜單中的"保存“命令。

程序的建立與運(yùn)行

□程序書(shū)寫(xiě)規(guī)則:

■程序中的每條命令都必須以回車(chē)結(jié)尾。

■一行只能寫(xiě)一條命令,若命令需分行寫(xiě),應(yīng)在一行尾

加”號(hào)續(xù)行,然后回車(chē)。

-以菜單方式建立、編輯程序文件

■用“項(xiàng)目管理器”建立、編輯程序文件

■慳序文件的調(diào)用

□以命令方式調(diào)用

格式:DOv程序文件名〉

說(shuō)明:程序運(yùn)行中,遇到以下情況之一,將終止程序運(yùn)行:

■執(zhí)行到程序尾,自然結(jié)束,返回VF系統(tǒng)主窗口。

■執(zhí)行了RETURN命令,終止程序執(zhí)行,返回原調(diào)用處的下一語(yǔ)句

繼續(xù)執(zhí)行。(主要用于過(guò)程中)

■執(zhí)行了CANCEL命令,終止程序執(zhí)行返回系統(tǒng)主窗口。

■執(zhí)行了QUIT命令,終止程序執(zhí)行,退出VF系統(tǒng)。

□以菜單方式調(diào)用程序文件

程序中的交互語(yǔ)句及輔助

澗匍的格式化輸入、輸出命令

□格式化輸入命令(P140)

格式:語(yǔ)句1:@v行,列〉[SAYv提示信息刁GETv變量)

[DEFAULTv表達(dá)式2>]

語(yǔ)句2:READ

功能:語(yǔ)句1的功能是在屏幕指定位置顯示v提示信息>和<變量〉的

值。語(yǔ)句2的功能是重新編輯修改v變量〉的值。

說(shuō)明:

■要輸入編輯數(shù)據(jù),語(yǔ)句1、2必須聯(lián)用,可編輯類(lèi)型:C、N、D、L型。

■SAY〈提示信息〉用于對(duì)GET變量作提示性說(shuō)明。

程序中的交互語(yǔ)句及輔助

語(yǔ)句

變量可為字段名變量,也可為內(nèi)存變量,內(nèi)存變

量必須有初值,或用DEFAULT短語(yǔ)的v表達(dá)式2>

指定初值.初值一旦指定,該變量的類(lèi)型在編輯期間

就不能改變,字符型變量的寬度與數(shù)值型變量的小

數(shù)位數(shù)也無(wú)法改變。

例1:編程RCDA表中追加記錄,并輸入編號(hào)、

姓名、性別、出生日期、工資現(xiàn)狀的值。

(ZJ.PRG)

例2:編程輸入BH、XM、XB、RQ、Gfe*?情,

程序中的交互語(yǔ)句及輔助

語(yǔ)句

■格式化輸出命令

格式:@v行,歹U>SAYV表達(dá)式〉[FUNCTIONV

功能符>][PICTURE〈格式符刁

例:查找王國(guó)民并輸出。(CHAZ.PRG)

■內(nèi)機(jī)對(duì)話命令

□輸入單字符命令一WAIT

格式:WAIT卜提示信息刁[TO〈內(nèi)存變量刁

功能:暫停程序執(zhí)行,等待用戶鍵入一字符后繼續(xù)。

說(shuō)明:

■輸入的任何數(shù)據(jù),均作為字符型數(shù)據(jù)處理。

-只能輸入一個(gè)字符或直接回車(chē)(回車(chē)相當(dāng)于輸入空串)。

■v提示信息〉一般用字符串說(shuō)明,不選用則自動(dòng)提示“按任一鍵繼續(xù)…”。

-選用TO〈內(nèi)存變量〉時(shí),可將輸入的字符保存在內(nèi)存變量中,以便以后

使用。

例:若有表文件WJ1.DBF、WJ2.DBF、WJ3.DBF,如何實(shí)現(xiàn)只輸入一

個(gè)字符而能打開(kāi)這些表。

杰入奉礁喘其—ACCEPT(可輸入多個(gè)字符)

格式:ACCEPT卜提示信息刁TOv內(nèi)存變量,

功能:暫停程序執(zhí)行,等待用戶輸入一串字符后,按回車(chē)

鍵程序繼續(xù)運(yùn)行。

說(shuō)明:

■輸入的任何數(shù)據(jù),均作為字符型數(shù)據(jù)處理。

提示信息的用法與WAIT語(yǔ)句相同,不選用則不提示(與WAIT不

同)。

例1:根據(jù)輸入的文件名,打開(kāi)指定的表文件。

例2:在RCDA表中按指定姓名(出生日期、工資)查詢

(LOCATE,SEEK)記錄。(XMCZ)

L

□輸入多種類(lèi)型數(shù)據(jù)命令一INPUT

格式:INPUT卜提示信息刁TOv內(nèi)存變量〉

功能:暫停程序執(zhí)行,等待用戶輸入數(shù)據(jù),回車(chē)后繼續(xù)。

說(shuō)明:

■輸入的數(shù)據(jù)類(lèi)型可為C、N、D、Lo

■輸入字符型數(shù)據(jù),必須加定界符;輸入日期型,用{為丫丫丫-[71111-

dd}或用CTOD()函數(shù)轉(zhuǎn)換。

例1:在RCDA表中按指定姓名查詢。(XMCZ.PRG)

例2:在RCDA表中按指定工資(生日)查找。

口小結(jié):區(qū)別WAIT、ACCEPT、INPUT三條命令的梅資心

■輔助命令

□CLEAR清屏命令

□NOTE|*卜字符串刁注釋必須自成一行,對(duì)程序段

作說(shuō)明。

&&卜字符串習(xí)注釋接在命令語(yǔ)句后對(duì)該語(yǔ)句作說(shuō)

明。

□TEXT

v文本內(nèi)容〉

ENDTEXT

功能:原樣輸出TEXT與ENDTEXT之間的內(nèi)容。

(CD.PRG)

I程序的基本結(jié)構(gòu)-----------------

■VF系統(tǒng)的應(yīng)用程序中,常見(jiàn)的控制結(jié)構(gòu)有:

□順序結(jié)構(gòu)

特點(diǎn):按照語(yǔ)句書(shū)寫(xiě)的先后順序依次執(zhí)行,執(zhí)行到程序尾退出。

缺陷:1、一次只能操作一組數(shù)據(jù);2、不能對(duì)數(shù)據(jù)進(jìn)行判斷。

□分支結(jié)構(gòu)

一、簡(jiǎn)單分支語(yǔ)句

格式:IFv條件〉

v語(yǔ)句序列》

ENDIF

意義:略。

?、簡(jiǎn)單分支語(yǔ)句

□說(shuō)明:IF、ENDIF必須成對(duì)使用。

■V條件,可以是表達(dá)式,也可是函數(shù),但結(jié)果必須為邏

輯值。

例1:在RCDA表中按姓名查詢記錄,找到則顯示該

記錄,沒(méi)找到則提示“無(wú)此姓名的記錄!”。

例2:從鍵盤(pán)輸入兩個(gè)不同的自然數(shù),輸出其中最

大的。

例3:按姓名查詢,并提示是否進(jìn)行修改,回答“Y”

退出。(CDXG.PRG)

二、選擇分支語(yǔ)句——

格式:IFv條件〉

v語(yǔ)句序列1>

ELSE

v語(yǔ)句序列2>

ENDIF

意義:略。

例1:P150o

例2:修改前面的例2。

三溫鉞攀句

CASEv條件1>

v命令序列1>

CASE〈條件n>

v命令序列n>

[OTHERWISE

〈命令序列n+1>]

ENDCASE

功能說(shuō)明:略。

三、多分支語(yǔ)句

注意:

■DOCASE與ENDCASE必須成對(duì)出現(xiàn)。

■DOCASE與CASE之間不能放其它語(yǔ)句。

■各條件不能互相包含,即不能讓兩個(gè)或兩個(gè)以上的〈條件>值

為.「,因?yàn)槌绦蛑荒軋?zhí)行第一個(gè)值為工的v條件,所對(duì)應(yīng)的

語(yǔ)句序列。

例1:P151o

例2:從鍵盤(pán)上輸入三個(gè)不同的自然數(shù),輸出其中最大的。

四一「一分支語(yǔ)句的嵌套

結(jié)構(gòu):略。

例1:對(duì)DJPD表,根據(jù)學(xué)號(hào)查詢,對(duì)查到的記錄再根據(jù)平均分

定等級(jí),并填寫(xiě)等級(jí)字段,(85分以上為優(yōu),76?85為良,

60?75為中,60分以下為差)若沒(méi)找到則顯示:“查無(wú)此人!”。

例2:對(duì)成績(jī)表,根據(jù)學(xué)號(hào)查詢,對(duì)查到的記錄再判斷其民族,

若為少數(shù)民族則總分+5,否則不加分,若沒(méi)找到指定記錄,則

提示:“查無(wú)此人!”。

注意:

■ELSE與ENDIF都與最近的IF語(yǔ)句匹配。

-各分支結(jié)構(gòu)不能相互交叉。

Ef環(huán)結(jié)構(gòu)程序設(shè)計(jì)

一、當(dāng)型循環(huán)

格式:DOWHILEv條件,

v語(yǔ)句序列》

[LOOP]

v語(yǔ)句序列》

[EXIT]

v語(yǔ)句序列》

ENDDO

意義:當(dāng)v條件,為萬(wàn).時(shí),重復(fù)執(zhí)行DOWHILE與ENDDO

之間的語(yǔ)句序列,直到v條件>為F.時(shí),退出循環(huán)繼續(xù)執(zhí)

行1ENDDO之后的語(yǔ)句。一

、當(dāng)型循環(huán)

注意:

■LOOP、EXIT只能在循環(huán)中使用,而不能在循環(huán)外使

用。

■DOWHILE…ENDDO語(yǔ)句本身不具有給循環(huán)變量賦初

值的功能,因此應(yīng)當(dāng)在該語(yǔ)句之前給循環(huán)變量賦初值,

并在循環(huán)體中修改循環(huán)變量的值。

■LOOP作用:不再執(zhí)行其后的語(yǔ)句序列,而進(jìn)入下一次

循環(huán),即重新返回DOWHILE處判斷條件的值。

■EXIT作用:強(qiáng)制退出循環(huán),繼續(xù)執(zhí)行ENDD^^^

句O

幾種常見(jiàn)的循環(huán)結(jié)構(gòu):

1、對(duì)數(shù)據(jù)表記錄進(jìn)行操作的循環(huán)

特點(diǎn):

■循環(huán)條件一般用.NOT.EOF()o

■用SKIP命令修改循環(huán)條件。

■循環(huán)體中操作對(duì)象是數(shù)據(jù)表中的記錄。

例1:逐條顯示RCDA表中性別為女的記錄。(條件分別

為.NOT.EOF()與.NOT.B0F()o)

例2:在RCDA表中,按性別查找,依次對(duì)性別為女的工資

加100元。

1、對(duì)數(shù)據(jù)表記錄進(jìn)行操作的循環(huán)

例3:在成績(jī)表中,統(tǒng)計(jì)解幾成績(jī)分別在85分以上,

76至85分,小于76分的學(xué)生的人數(shù)。

練習(xí):在DJPD表中,按平均分對(duì)每人評(píng)定等級(jí),并

將評(píng)定結(jié)果填到等級(jí)字段中。(85分以上為優(yōu),

76?85為良,60?75為中,60分以下為差)

舟點(diǎn)循環(huán)次數(shù)一定的循環(huán)

■循環(huán)次數(shù)一定。

■循環(huán)條件多為關(guān)系表達(dá)式,其中含控制循環(huán)次數(shù)的循環(huán)變量。

■循環(huán)變量有初值和終值。

■循環(huán)體中有修改循環(huán)變量的語(yǔ)句,使循環(huán)變量增或減值,否則成

為死循環(huán)。

例1:求1到100之間所有整數(shù)之和。(兩種方法)

例2:求1至”00之間的奇數(shù)和。(三種方法)

練習(xí):求10!o

3、隨機(jī)循環(huán)

特點(diǎn):

■隨機(jī)條件總是為T(mén)。(這樣就不能自動(dòng)退出循環(huán)一死循環(huán))

■必要時(shí),可使用EXIT、RETURN>CANCEL、QUIT強(qiáng)制

退出循環(huán))

例:在RCDA表中,實(shí)現(xiàn)可連續(xù)按姓名查詢。

作業(yè):用循環(huán)語(yǔ)句編程判斷任意一個(gè)由鍵盤(pán)輸入的數(shù)

是否為素?cái)?shù)。

、“計(jì)數(shù)”型循環(huán)控制語(yǔ)句

格式:FORv循環(huán)變量>=v變量初值〉TOv終值>[STEPv變量

步長(zhǎng)刁

v命令序列〉

[LOOP]

[EXIT]

ENDFOR|NEXT

功能:循環(huán)變量首先被賦為變量初值,然后比較循環(huán)變量與終值來(lái)

決定是否執(zhí)行循環(huán)體內(nèi)的命令語(yǔ)句。步長(zhǎng)值為正數(shù)時(shí),若循環(huán)變

量值不大于終值,就執(zhí)行循環(huán)體;步長(zhǎng)為負(fù)數(shù)時(shí),若循環(huán)變量不

小于終值,就執(zhí)行循環(huán)體。執(zhí)行一遇到ENDFOR或NEXT,循環(huán)

變量立即被加上步長(zhǎng)值,然后重新與結(jié)束值比較。

說(shuō)明:如果無(wú)STEP短語(yǔ),默認(rèn)步長(zhǎng)值為1。

例:改寫(xiě)前面當(dāng)型循環(huán)的例子。

三、“指針”型循環(huán)控制語(yǔ)句

格式:SCAN卜范圍習(xí)[FOR〈條件表達(dá)式1>][WHILEv條件

表達(dá)式2>]

v命令序列〉

[LOOP]

[EXIT]

ENDSCAN

功能:程序執(zhí)行到該語(yǔ)句,首先判斷EOF()函數(shù)的值,若為

真,則執(zhí)行ENDSCAN之后的語(yǔ)句;否則結(jié)合條件1與條件2執(zhí)

行循環(huán)中的v命令序列〉,然后指針移到下一條范圍內(nèi)滿足條

件的記錄,再判斷EOF()的值,直到EOF()為真結(jié)束循環(huán)。

四、多重循環(huán):即循環(huán)體中又包含另外一些

循環(huán)。

格式:略。

例1:在RCDA表中,按性別查詢,要求能逐條查到所有性

別相同的記錄并顯示。

例2:打印九九表。

練習(xí):輸出3到100之間的所有素?cái)?shù)。(輸出格式:一行輸

出5個(gè)數(shù),每個(gè)數(shù)間用5空格隔開(kāi)。)

■HA

■定義:我們將以過(guò)程說(shuō)明語(yǔ)句開(kāi)頭,以返回命令結(jié)

束,能完成一定功能,可以被其它程序反復(fù)調(diào)用的程

序段叫做過(guò)程。

■過(guò)程的分類(lèi):

1、以獨(dú)立文件存在的過(guò)程,稱(chēng)為外部過(guò)程。

2、若干個(gè)過(guò)程共存于一個(gè)過(guò)程文件的過(guò)程,稱(chēng)為內(nèi)

部過(guò)程。

■過(guò)程返回語(yǔ)句

1、RETURN[TOMASTER]

功能:返回調(diào)用程序原調(diào)用處的下一語(yǔ)句繼續(xù)執(zhí)行。

TOMASTER的作用:用在過(guò)程嵌套中,直

接返回最高層調(diào)用處,如不選,則逐級(jí)返回。

2、RETRY

功能:返回調(diào)用程序原調(diào)用語(yǔ)句,繼續(xù)執(zhí)行。

■外部過(guò)程的建立及調(diào)用:

1、建立與建立一般程序相同。至訃女

SETTALKOFF

S=0

N=1

T=1

DOWHILEN<=5

T=T*N

N=N+1

ENDDO

S=S+T

N=1

T=1

DOWHILEN<=10

T=T*N

N=N+1

ENDDO

S=S+T

N=1

T=1

DOWHILEN<=20

T=T*N

N=N+1

ENDDO

S=S+T

?’5!+10!+20!=',S

SETTALKON

2、過(guò)程調(diào)用

格式:DOv過(guò)程名〉

說(shuō)明:可以將過(guò)程保存在單獨(dú)的程序文件中,也可放

在程序的結(jié)尾,但不能把可執(zhí)行的主程序放在過(guò)程之

后。

例:改寫(xiě)引入程序。

思考:求C=M!/(N!*(M-N)!)

過(guò)程文件及使用

1、過(guò)程文件的建立

格式:MODICOMMv文件名〉

2、過(guò)程文件的組織形式

PROCEDUREv過(guò)程名1>

v語(yǔ)句序列》

ENDPROC

PROCEDUREv過(guò)程名N>

v語(yǔ)句序列,

ENDPROC--------------------

3、一過(guò)程文件的調(diào)用

步驟:①打開(kāi)過(guò)程文件

格式:SETPROCEDURETOv文件名〉

注意:同一時(shí)刻只允許打開(kāi)一個(gè)過(guò)程文件。

②調(diào)用過(guò)程文件中的過(guò)程

格式:DOv過(guò)程名>

功能:調(diào)用已打開(kāi)的過(guò)程文件中的指定過(guò)程。

③關(guān)閉過(guò)程文件

格式1:SETPROCEDURETO

格式2:CLOSEPROCEDURE

功能:關(guān)閉打開(kāi)的過(guò)程文件。

■過(guò)程的嵌套

■過(guò)程調(diào)用中的數(shù)據(jù)傳遞

□利用內(nèi)存變量的屬性傳遞數(shù)據(jù)

■全局變量(公共變量)

公共變量是在VF系統(tǒng)的全部范圍內(nèi)均有效的內(nèi)存變量。(包括命

令窗口及程序的任何部分[主程序及其子程序中])

定義格式:PUBLICv內(nèi)存變量表〉

功能:把v內(nèi)存變量表〉中指定的內(nèi)存變量定義為全局變量。

說(shuō)明:1、全局變量在程序結(jié)束時(shí)不釋放,只能使用清除

內(nèi)存變量的命令清除。(CLEARMEMORY,CLEARALL)

2、定義的全局變量在賦值前,自動(dòng)賦值為.F.。

■局部變量

局部變量只在定義它的程序段有效,而在此程序段的上級(jí)程

序段或下級(jí)程序段無(wú)效。

定義格式:LOCALv內(nèi)存變量表〉

功能:把v內(nèi)存變量表〉中指定的內(nèi)存變量定義為局部變量。

說(shuō)明:1、局部變量在其所在程序段結(jié)束時(shí)自動(dòng)清除。

2、定義的局部變量在賦值前,自動(dòng)賦值為.F.。

■私有變量

私有變量是在定義它的程序段以及其下級(jí)程序段(被調(diào)用過(guò)

程)的局部范圍內(nèi)都有效的內(nèi)存變量。

定義格式1:PRIVATEv內(nèi)存變量表〉

格式2:PRIVATEALL[LIKE|EXCEPTv通配變量名習(xí)

功能:把指定的變量定義為私有變量。

說(shuō)明:1、程序中凡沒(méi)有使用PUBLIC、LOCAL和PRIVATE

語(yǔ)句定義的變量都是私有變量。

2、格式2用法:

PRIVATEALL:定義所有內(nèi)存變量為私有變量。

PRIVATEALLLIKEv通配變量名〉:定義與v通配變量名〉

相符的變量為私有變量。

PRIVATEALLEXCEPT〈通配變量名〉:定義與v通配變

量名〉不相符的變量為私有變量。

3、局部、私有變量在其有效程序段結(jié)束時(shí)自動(dòng)清唆

□例子

settalkoff

ocaly

Drivx

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論