第五章 程序設(shè)計(jì)基礎(chǔ)-1.ppt_第1頁(yè)
第五章 程序設(shè)計(jì)基礎(chǔ)-1.ppt_第2頁(yè)
第五章 程序設(shè)計(jì)基礎(chǔ)-1.ppt_第3頁(yè)
第五章 程序設(shè)計(jì)基礎(chǔ)-1.ppt_第4頁(yè)
第五章 程序設(shè)計(jì)基礎(chǔ)-1.ppt_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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)介

1、第 五 章 程序設(shè)計(jì)基礎(chǔ),5.1 面向過(guò)程和面向?qū)ο?面向過(guò)程:結(jié)構(gòu)化程序設(shè)計(jì),順序、分支、循環(huán) 面向?qū)ο螅侯惻c對(duì)象 在類(對(duì)象)的事件(方法)代碼中仍舊需要使用順序、分支、循環(huán)等結(jié)構(gòu)。,5.2 結(jié)構(gòu)化程序設(shè)計(jì)基礎(chǔ),程序的定義 關(guān)于VFP程序文件的操作,5.2.2 程序的三種基本結(jié)構(gòu),程序設(shè)計(jì)的三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。 所有的程序都可以利用這三種結(jié)構(gòu)的組合來(lái)實(shí)現(xiàn)任何復(fù)雜問(wèn)題的求解。 算法的描述:N-S圖,5.2.3順序結(jié)構(gòu),程序最基本的執(zhí)行方式,就是按程序中語(yǔ)句的先后順序依次執(zhí)行每一條語(yǔ)句,這就是程序的順序結(jié)構(gòu)。,5.2.3.1輔助命令,注釋語(yǔ)句 格式一NOTE 或 * 格

2、式二& 說(shuō)明:注釋語(yǔ)句是非執(zhí)行語(yǔ)句,對(duì)程序注釋,幫助閱讀理解源程序。格式一,放在一行的開(kāi)頭,對(duì)前后程序段進(jìn)行注釋;格式二,放在某條語(yǔ)句的后面對(duì)本語(yǔ)句注釋。 系統(tǒng)初始化命令 格式 CLEAR ALL 說(shuō)明:清除所有內(nèi)存變量和數(shù)組,關(guān)閉所有打開(kāi)的各類文件,選擇1號(hào)工作區(qū)為當(dāng)前工作區(qū),使系統(tǒng)恢復(fù)到初始狀態(tài)。,5.2.3.1輔助命令,清屏命令 格式CLEAR 說(shuō)明:清除當(dāng)前屏幕上所有信息,光標(biāo)定位在屏幕左上角。 信息顯示控制命令 格式 SET TALK ON|OFF 說(shuō)明:有些命令執(zhí)行后,會(huì)在屏幕上返回有關(guān)信息,實(shí)現(xiàn)與用戶“對(duì)話”(Talk)。程序中設(shè)置為 OFF將關(guān)閉對(duì)話,有程序控制信息的顯示,默認(rèn)

3、為ON狀態(tài)。如: USE RSGZ.DBF SUM 實(shí)發(fā)工資,基本工資*12 TO SFGZ, NJBGZ AVERAGE 基本工資 TO JBGZ ?實(shí)發(fā)工資=,SFGZ ?基本工資*12=, NJBGZ ?平均基本工資=, JBGZ USE,5.2.3.1輔助命令,警告信息顯示控制命令 格式 SET SAFETY ON | OFF 說(shuō)明:為了安全,在執(zhí)行一些不能再恢復(fù)的操作前,系統(tǒng)在屏幕上顯示“警告信息”提示謹(jǐn)慎操作。如ZAP命令刪除記錄,INDEX 命令是否覆蓋文件等。設(shè)置OFF狀態(tài)將不作提示直接操作,默認(rèn)為ON狀態(tài)。 輸出文本信息語(yǔ)句 格式 TEXT ENDTEXT 說(shuō)明:在光標(biāo)當(dāng)前位

4、置顯示文本信息,TEXT ENDTEXT成對(duì)出現(xiàn),缺一不可。相當(dāng)于多個(gè)?語(yǔ)句,但能控制輸出文本的位置。,5.2.3.1輔助命令,終止程序執(zhí)行命令 格式 CANCEL 說(shuō)明:該語(yǔ)句將中止正在運(yùn)行的程序。在程序中一般與條件語(yǔ)句配合使用,有條件的中止程序執(zhí)行。 返回語(yǔ)句 格式 RETURN TO MASTER|TO | 說(shuō)明:結(jié)束程序的執(zhí)行。TO MASTER 直接返回到主程序,如果程序是被另一程序調(diào)用,則返回到調(diào)用程序,否則返回到命令窗口。,5.2.3.2基本的輸入、輸出命令,輸入命令 輸入一個(gè)字符命令(等待命令) 格式: WAITTO WINDOW AT ,NOWAITTIMEOUT 功能暫停程

5、序執(zhí)行,等待用戶從鍵盤輸入一鍵,并繼續(xù)執(zhí)行。 說(shuō)明: 該命令只能從鍵盤接收一個(gè)字符,選TO短語(yǔ)將接收的字符賦值給內(nèi)存變量。字符表達(dá)式為提示語(yǔ),缺省為“按任意鍵繼續(xù)”,輸 入 命 令,格式: WAITTO WINDOW AT ,NOWAITTIMEOUT 選擇WINDOW短語(yǔ),則將字符表達(dá)式提示語(yǔ)顯示在屏幕右上角的窗口中;再選AT項(xiàng),提示語(yǔ)在屏幕指定坐標(biāo)位置顯示;缺省WINDOW在光標(biāo)當(dāng)前位置顯示。 選NOWAIT短語(yǔ),顯示提示語(yǔ)后,光標(biāo)仍處于當(dāng)前控制窗口中。 選TIMEOUT短語(yǔ),數(shù)值表達(dá)式以秒為單位給出最大等待時(shí)間,若不按鍵自動(dòng)終止該命令。,輸 入 命 令,輸入字符串命令 格式 ACCEPT

6、 TO 功能 從鍵盤輸入一個(gè)字符串常量賦給內(nèi)存變量。 說(shuō)明: 輸入的字符串不用定界符括起來(lái),若使用定界符則成為字符串的內(nèi)容,輸入完按回車結(jié)束。,輸 入 命 令,3輸入任意類型數(shù)據(jù)命令 格式 INPUT TO 功能 從鍵盤輸入數(shù)值型、字符型、日期型、邏輯 型、貨幣型數(shù)據(jù)給內(nèi)存變量。 說(shuō)明: 輸入的常量必須用符號(hào)表示出數(shù)據(jù)類型,輸入完按回車結(jié)束。如: 3.1416 ”男” 2000-10-01 .T. $987.65,輸出命令 ? ? SAY GET DEFAULT VALID RANGE , ,求圓的面積,半徑從鍵盤輸入。 CLEAR SET TALK OFF INPUT “ENTER R OF

7、 THE CIRLE” TO R S=PI()*R*R ?”圓面積=“,S SET TALK OFF RETURN,Set talk off CLEAR CLOSE ALL SELE 1 USE XSDA Index on 學(xué)號(hào) tag XUEHAO SELE 2 USE XSXK SELE 3 USE PKQK Index on 課程代號(hào) tag KCDHAO SELE 2 SET RELATION TO 學(xué)號(hào) INTO XSDA SET RELATION TO 課程代號(hào) INTO PKQK ADDI LIST 學(xué)號(hào),A.姓名,課程代號(hào),C.課程名,C.任課教師, C.地點(diǎn),C.時(shí)間 SET

8、 TALK ON CLOSE ALL,舉例某商店各班組每天的銷售額已統(tǒng)計(jì)在XSE.DBF數(shù)據(jù)表中,該數(shù)據(jù)表有:月份(型)、日期(型)、班組(型)和銷售額(型)等字段。統(tǒng)計(jì):每月全商店的銷售總額;每月各班組的銷售額;全年全商店的銷售總額;全年各班組的銷售額。,USE XSE.DBF INDEX ON 月份 tag YF INDEX ON 月份+班組 tag YFBz INDEX ON 班組 tag BZ set order to yf TOTAL ON 月份 TO YZXSE.DBF & 每月全商店銷售額 set order to yfbz TOTAL ON 月份+班組 TO YBZXSE.DB

9、F & 每月各班組銷售額 set order to bz TOTAL ON 班組 TO NBZXSE.DBF & 全年各班組銷售額 TOTAL ON .NOT.EOF( ) TO ZXSE.DBF &年商店銷售額 USE,5.2.4 分支結(jié)構(gòu)程序設(shè)計(jì),程序運(yùn)行一般情況是順序執(zhí)行。但有時(shí)根據(jù)處理問(wèn)題的實(shí)際情況,可能有兩種或多種情況,要根據(jù)具體的條件選擇其中的一種。對(duì)應(yīng)于程序設(shè)計(jì)就產(chǎn)生程序的分支結(jié)構(gòu)。,簡(jiǎn)單分支圖示,IF條件分支語(yǔ)句 格式 IF ELSE ENDIF ,分支結(jié)構(gòu)舉例,舉例1: 輸入三角形的三個(gè)邊長(zhǎng)、,若、能構(gòu)成三角形,則計(jì)算出三角形面積;否則提示“不能構(gòu)成三角形!”。若構(gòu)成的三角形

10、為直角三角形,也給出“構(gòu)成直角三角形”的提示。 面積 S= 式中 W=(A+B+C)2,CLEAR ? 計(jì)算三角形面積,請(qǐng)輸入三角形的三個(gè)邊長(zhǎng) : INPUT A = TO A INPUT B = TO B INPUT C = TO C IF A+BC .AND. B+CA .AND. C+AB W=(A+B+C)/2 S=SQRT(W*(W-A)*(W-B)*(W-C) IF A*2+B*2=C*2 .OR. B*2+C*2=A*2 .OR. C*2+A*2=B*2 ? 構(gòu)成直角三角形 . ENDIF ? 三角形面積 = ,S ELSE ? 輸入的三個(gè)邊長(zhǎng)不能構(gòu)成三角形 ! ENDIF,分支

11、結(jié)構(gòu)舉例,舉例2:編寫程序由鍵盤輸入A,B,C三個(gè)數(shù),按值的大小順序顯示出來(lái)。 (三個(gè)數(shù)比較大小有六種情況,需要六個(gè)IF 語(yǔ)句;我們采用另一種算法。 先比較任意兩個(gè)數(shù),并將其中的大數(shù)存入內(nèi)存變量M,小數(shù)存入N。再將第三個(gè)數(shù)與M及N比較得到三個(gè)數(shù)的大小順序。畫流程圖表示此算法。),SET TALK OFF CLEAR ? 對(duì)三個(gè)數(shù)排序,請(qǐng)輸入三個(gè)數(shù): INPUT A = TO A INPUT B = TO B INPUT C = TO C IF AB M=A N=B ELSE M=B N=A ENDIF IF CM ? C,M,N ELSE IF CN ? M,N,C ELSE ? M,C,N

12、ENDIF ENDIF SET TALK ON,分支結(jié)構(gòu)程序設(shè)計(jì),2IIF( )判斷選擇函數(shù) IIF( )函數(shù)具有簡(jiǎn)單條件分支IF語(yǔ)句的作用,在有些情況下使用更方便快捷。 格式 IIF(,) 說(shuō)明:作用同IF語(yǔ)句,當(dāng)?shù)闹禐?T時(shí),函數(shù)返回的值;否則函數(shù)返回的值。 、的數(shù)據(jù)類型可以是字符型、數(shù)值型、日期型、日期時(shí)間型、貨幣型、邏輯型,并允許兩個(gè)表達(dá)式的數(shù)據(jù)類型不同。 、也可以是IIF( )函數(shù),形成IIF( )函數(shù)的嵌套。,IIF( )判斷選擇函數(shù)舉例,編程序由鍵盤輸入一個(gè)數(shù),利用IIF( )函數(shù)求出該數(shù)所對(duì)應(yīng)的 F(X)函數(shù)的值。 SET TALK OFF CLEAR INPUT X= TO

13、X ? F(X)=, IIF(X0, X , IIF(X1 ,2*X ,IIF(X2 , X2 , SQRT(X) SET TALK ON IIF可放在函數(shù)中,如Y=IIF(表達(dá)式)2,IIF(X0, X , IIF(X1 ,2*X ,IIF(X2 , X2 , SQRT(X),X=0,X=1,X0,0=x1,1=x2,X=2,X=2,多重分支條件語(yǔ)句,多分支結(jié)構(gòu)可以利用 IF 語(yǔ)句的多重嵌套來(lái)實(shí)現(xiàn),但程序結(jié)構(gòu)復(fù)雜不易閱讀。VFP提供了DO CASE語(yǔ)句,可很方便的實(shí)現(xiàn)多分支程序結(jié)構(gòu)。 格式 DO CASE CASE CASE CASE OTHERWISE ENDCASE ,DO CASE 語(yǔ)

14、句說(shuō)明,依次判斷每一個(gè) CASE 后面的條件,當(dāng)判斷到一個(gè)條件滿足,執(zhí)行該條件下的語(yǔ)句序列,然后轉(zhuǎn)到 ENDCASE 后面的語(yǔ)句執(zhí)行。 如果所有條件都不滿足,并選擇了OTHERWISE 語(yǔ)句,則執(zhí)行其后的語(yǔ)句序列,否則不執(zhí)行任何語(yǔ)句。 若有多個(gè)條件成立,只能執(zhí)行到第一個(gè)滿足條件的語(yǔ)句序列,就轉(zhuǎn)至ENDCASE后面執(zhí)行。 DO CASE語(yǔ)句本身可以嵌套,也可以與IF語(yǔ)句互相嵌套。 條件表達(dá)式2包含著條件表達(dá)式1不成立。,DO CASE 語(yǔ)句舉例,舉例1:編程序用DO CASE語(yǔ)句實(shí)現(xiàn)前例中求F(X)函數(shù)的值(見(jiàn)case.prg)。 SET TALK OFF CLEAR INPUT “X=“ TO

15、 X DO CASE CASE x0 Y=X CASE x1 Y=2*X CASE x2 Y=X2,OTHERWISE Y=SQRT(X) ENDCASE ? “F(X)=“, Y SET TALK ON,DO CASE 語(yǔ)句舉例,舉例:某班學(xué)生計(jì)算機(jī)考試成績(jī)已登記到COMPUTER.DBF自由表的成績(jī)(N)型字段中,另有評(píng)估(C型)字段。編程序?qū)⒚總€(gè)學(xué)生計(jì)算機(jī)的學(xué)習(xí)評(píng)估:“優(yōu)秀”(90100)“良好”(8089)“中等”(7079)“及格”(6069)“不及格”(059),寫到評(píng)估字段中。,DO CASE 語(yǔ)句舉例,SET TALK OFF CLEAR USE COMPUTERDBF DO

16、WHILE NOTEOF( ) DO CASE CASE 成績(jī) = 90 REPLACE 評(píng)估 WITH優(yōu)秀 CASE 成績(jī) = 80 REPLACE 評(píng)估 WITH良好 CASE 成績(jī) = 70 REPLACE 評(píng)估 WITH中等 CASE 成績(jī) = 60 REPLACE 評(píng)估 WITH及格,OTHERWISE REPLACE 評(píng)估 WITH不及ENDCASE SKIP ENDDO LIST USE SET TALK ON,DO CASE 語(yǔ)句舉例,例3.設(shè)計(jì)一程序,有選擇的顯示數(shù)據(jù)表中的內(nèi)容。其 中,按鍵顯示所有記錄,按鍵顯示男職工 記錄,按鍵顯示女職工記錄。 說(shuō)明:按下鍵盤上任意一個(gè)鍵都由函數(shù)INKEY()返回一個(gè)值,稱為鍵值。其中F1的鍵值是28, F2的鍵值是-1, F3的鍵值是-2。編程時(shí),根據(jù)用戶按不同的鍵所返回的值決定執(zhí)行何種操作。程序中用宏代換的目的是熟悉該函數(shù)的功能。

溫馨提示

  • 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)論