




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第七章第七章 Visual FoxPro 程序設計基礎程序設計基礎n7.1 程序建立和執行n7.2 程序的交互式命令n7.3 結構化程序設計n7.4 子程序與過程文件及用戶n7.5 屏幕顯示格式程序設計n7.6 程序調試和調試器n7.7 共享訪問編程及多用戶操作7.1 程序建立和執行n7.1.1 程序設計概念和步驟n1、程序:能夠完成特定任務的命令序列,能夠完成特定任務的命令序列,存儲在命令文件(存儲在命令文件(.PRG.PRG)中。運行該文件可)中。運行該文件可自動執行一系列操作自動執行一系列操作n2 2、程序設計步驟:n1)分析問題 2)確定算法 n3)畫流程圖 4)編寫程序n5)調試程序
2、 6)建立文檔7.1.2 程序的建立1 1項目管理器項目管理器 選擇選擇 “ “程序程序”項,單擊項,單擊“新建新建”按鈕,打開代碼編輯窗口,輸入程序按鈕,打開代碼編輯窗口,輸入程序內容。然后選擇內容。然后選擇“文件文件/ /保存保存”命令將編寫的代碼存入磁盤命令將編寫的代碼存入磁盤2. 2. 菜單菜單 選擇選擇“文件文件/ /新建新建”菜單命令,在菜單命令,在“新建新建”對話框中選擇對話框中選擇“程序程序”文件文件類型,按類型,按“新建文件新建文件”按鈕,進入代碼編輯窗口按鈕,進入代碼編輯窗口3. 3. 命令命令:MODIFY COMMAND MODIFY COMMAND 如果輸入命令語句時
3、,如果輸入命令語句時,必須一條命令占一行,一行寫必須一條命令占一行,一行寫不下時,在行尾加續行符不下時,在行尾加續行符“;”;”,換行后接著書寫該命令語句換行后接著書寫該命令語句 7.1.3 程序文件的修改對已建立的程序文件可以重新進入代碼編輯窗口修改內容對已建立的程序文件可以重新進入代碼編輯窗口修改內容 1. 1. 項目管理器項目管理器 選中要修改的程序文件,按選中要修改的程序文件,按“修改修改”按鈕,在代碼編輯窗口中按鈕,在代碼編輯窗口中進行修改。修改后,選擇進行修改。修改后,選擇“文件文件/ /保存保存”菜單命令,保存程序菜單命令,保存程序2. 2. 菜單菜單 選擇選擇“文件文件/ /打
4、開打開”菜單命令,在當對話框中選擇要修改的程序菜單命令,在當對話框中選擇要修改的程序文件,將其調入代碼編輯窗口文件,將其調入代碼編輯窗口 3. 3. 命令命令 MODIFY COMMAND MODIFY COMMAND 7.1.4 程序文件的執行1. 1. 項目管理器項目管理器 選中要執行的程序文件,按選中要執行的程序文件,按“運行運行”按鈕按鈕2. 2. 菜單菜單 選擇選擇“程序程序/ /運行運行”菜單命令菜單命令3. 3. 命令命令 DO DO 7.2 程序的交互式命令n7.2.1 人機交互式輸入語句n1、鍵盤輸入字符串命令:accept,暫停程序運行,接收鍵盤字符并存入內在變量n2、鍵盤
5、輸入單個字符命令:wait n3、鍵盤輸入任意類型數據命令:input7.2.2 基本命令1. 1. 環境設置命令環境設置命令(SETSET)設設 置置說說 明明SET TALK ON|OFFSET TALK ON|OFF人機對話設置命令人機對話設置命令SET CONSELE ON|OFFSET CONSELE ON|OFFSET PRINTER ON|OFFSET PRINTER ON|OFFSET SAFETY ON|OFFSET SAFETY ON|OFFSET HEADING ON|OFFSET HEADING ON|OFFSET STATUS ON|OFFSET STATUS ON|
6、OFFSET DEVICE TO SCREEN|PRINTERSET DEVICE TO SCREEN|PRINTERSET DEFAULT TOSET DEFAULT TOSET CONSELESET CONSELE的使用的使用? “? “請輸入密碼請輸入密碼:”:”SET CONSELE OFFSET CONSELE OFFACCEPT “ACCEPT “密碼密碼:” TO MM:” TO MM? “aaaaaaaaaa1111111111”? “aaaaaaaaaa1111111111”SET CONSELE ONSET CONSELE ON? MM? MM7.2.2 基本命令2 2注釋
7、命令注釋命令 非執行語句,用于提高程序的可讀性非執行語句,用于提高程序的可讀性 NOTENOTE、* *(行首注釋)、(行首注釋)、&(行尾注釋)(行尾注釋)3. 3. 文本顯示命令文本顯示命令 TEXTTEXT ENDTEXT ENDTEXT4. 4. 清除命令清除命令 CLEAR CLEAR (清屏)(清屏) CLEAR ALL CLEAR ALL (關閉所有文件、清除所有內存變量)(關閉所有文件、清除所有內存變量)5. 5. 關閉文件命令關閉文件命令 CLOSE ALL CLOSE ALL (關閉所有文件)(關閉所有文件) CLOSE CLOSE (關閉指定類型的文件)(關閉指定
8、類型的文件)7.2.2 基本命令6. 6. 運行中斷和結束命令運行中斷和結束命令 CANCEL CANCEL 終止程序運行,返回命令窗口終止程序運行,返回命令窗口 RETURN RETURN 結束當前程序的執行,返回到調用它的上級程序結束當前程序的執行,返回到調用它的上級程序 QUIT QUIT 關閉所有文件,退出關閉所有文件,退出VFPVFP系統,返回操作系統環境系統,返回操作系統環境7 7格式輸入輸出命令格式輸入輸出命令 格式格式1 1: SAY SAY 功能:在主窗口指定的位置處顯示表達式的值功能:在主窗口指定的位置處顯示表達式的值 格式格式2 2: SAY SAY GET GET RE
9、AD READ 功能:在窗口指定位置處分別顯示表達式和變量的值。若使用功能:在窗口指定位置處分別顯示表達式和變量的值。若使用READ READ 語句,則可以對變量進行修改語句,則可以對變量進行修改7.3 程序基本控制結構1. 1. 順序結構順序結構:按程序中語句的書寫順序逐條執行:按程序中語句的書寫順序逐條執行2. 2. 分支結構分支結構(選擇結構):根據邏輯條件的結果執行不同的命令序列(選擇結構):根據邏輯條件的結果執行不同的命令序列 單分支結構單分支結構:IFENDIFIFENDIF 例例: IF X3: IF X3 Y=5 Y=5 ENDIF ENDIF 雙分支結構雙分支結構:IFELS
10、EENDIFIFELSEENDIF 例例: IF X=0: IF X=0 Y=X Y=X* * *2+32+3 ELSE ELSE Y=X Y=X* *X X ENDIF ENDIF條件條件A AB BT TF F條件條件F FA AT T7.3 程序基本控制結構舉例:設計密碼校驗系統(假設密碼為舉例:設計密碼校驗系統(假設密碼為abcabc)CLSARCLSARSET TALK OFFSET TALK OFFACCEPT “ACCEPT “請輸入您的密碼請輸入您的密碼: TO MM: TO MMIF MM=abcIF MM=abc ? ? 歡迎使用本系統!歡迎使用本系統! ELSE ELSE
11、 ? “ ? “密碼錯誤,無權登錄密碼錯誤,無權登錄!ENDIFENDIFSET TALK ONSET TALK ON7.3 程序基本控制結構n舉例:求一元二舉例:求一元二次方程的實根次方程的實根(系數分別為(系數分別為a,b,c)SET TALK OFFSET TALK OFFCLEARCLEARINPUT INPUT 輸入系數輸入系數a a的值的值: TO A: TO AINPUT INPUT 輸入系數輸入系數b b的值的值: TO B: TO BINPUT INPUT 輸入系數輸入系數c c的值的值: TO C: TO CZ=BZ=B* *B-4B-4* *A A* *C CIF Z=0
12、IF Z=0 X1=(-B+SQRT(Z)/(2 X1=(-B+SQRT(Z)/(2* *A)A) X2=(-B-SQRT(Z)/(2 X2=(-B-SQRT(Z)/(2* *A)A) ? ? 方程的根為方程的根為:,X1,X2:,X1,X2ELSE ELSE ? ? 無實根無實根 ENDIFENDIFSET TALK ONSET TALK ON7.3 程序基本控制結構 多分支結構多分支結構:DO CASEENDCASEDO CASEENDCASE例例: : INPUT INPUT 請輸入成績請輸入成績: TO X: TO XDO CASEDO CASECASE X90CASE X90 ? ?
13、 優優 CASE X=80CASE X=80 ? ? 良良 CASE X=60CASE X=60 ? ? 及格及格 OTHERWIZEOTHERWIZE ? “ ? “差差”ENDCASEENDCASE條件條件1 1ENDCASEENDCASE后面語句后面語句N NY Y條件條件2 2條件條件n nOTHERWISEOTHERWISEN NN N語句列語句列1 1語句列語句列2 2語句列語句列n n其它語句列其它語句列Y YY YY YN N7.3 程序基本控制結構3. 3. 循環結構:循環結構: DO WHILEENDDO DO WHILEENDDO例例: S=0: S=0 I=1 I=1
14、DO WHILE I=10 DO WHILE I=10 S=S+I S=S+I I=I+1 I=I+1 ENDDO ENDDO ? S ? SENDDOENDDO后面語句后面語句條件條件循環體循環體F FT T7.3 程序基本控制結構例例: :顯示所有同學顯示所有同學, ,當遇到姓當遇到姓“李李”的同學退出的同學退出USE USE 學生學生DO WHILE .NOT.EOF()DO WHILE .NOT.EOF() IF IF 姓名姓名=李李 EXIT EXIT ELSE ELSE DISPLAY DISPLAY ENDIF ENDIF SKIP SKIPENDDOENDDO條件條件ENDDO
15、ENDDO后的語句后的語句Y YN NLOOPLOOPEXITEXIT循環體循環體7.3 程序基本控制結構舉例:舉例: DO WHILE I=10DO WHILE I=10 DO WHILE NOT EOF() DO WHILE NOT EOF() DO WHILE .T. DO WHILE .T.練習練習1. 1. 計算計算N! N! 2. 2. 編寫查詢程序編寫查詢程序3. 3. 編寫刪除程序編寫刪除程序4. 4. 編寫添加程序編寫添加程序5. 5. 計算計算1-2+3-4+5-6+9-101-2+3-4+5-6+9-106. 6. 統計男女生同學的人數統計男女生同學的人數7. 7. 給每
16、一個同學評定給每一個同學評定“優良中差優良中差”8. 8. 判斷一個數是否是素數判斷一個數是否是素數7.3 程序基本控制結構 FOR ENDFOR FOR ENDFOR【例】編程輸出矩形乘法口訣表【例】編程輸出矩形乘法口訣表SET TALK OFFSET TALK OFFCLEARCLEARFOR I=1 TO 9 FOR I=1 TO 9 FOR J=1 TO 9 FOR J=1 TO 9 ? STR(I,1)+? STR(I,1)+* *+STR(J,1)+=+STR(I+STR(J,1)+=+STR(I* *J,2)+ J,2)+ ENDFOR ENDFOR ? ?ENDFORENDFO
17、RSET TALK ONSET TALK ONRETURNRETURN7.3 程序基本控制結構【例】編程輸出下三角形乘法口訣表【例】編程輸出下三角形乘法口訣表SET TALK OFFSET TALK OFFCLEARCLEARFOR I= 1 TO 9FOR I= 1 TO 9 FOR J=1 TO I FOR J=1 TO I? STR(J,1)+? STR(J,1)+* *+STR(I,1)+=+STR(I+STR(I,1)+=+STR(I* *J,2)+ J,2)+ ENDFOR ENDFOR ? ? ENDFORENDFOR7.3 程序基本控制結構【例】輸入【例】輸入1010個數,并將
18、它們用比較法按由大到小的順序排序輸出個數,并將它們用比較法按由大到小的順序排序輸出SET TALK OFFSET TALK OFFCLEARCLEARDIMENSION A10DIMENSION A10FOR I=1 TO 10FOR I=1 TO 10 INPUT INPUT 請輸入一個數請輸入一個數: TO AI: TO AIENDFORENDFORFOR I=1 TO 9FOR I=1 TO 9 FOR J=I TO 10 FOR J=I TO 10 IF AIAJ IF AIA(J+1) IF A(J)A(J+1) T=A(J) T=A(J) A(J)=A(J+1) A(J)=A(J+
19、1) A(J+1)=T A(J+1)=T ENDIF ENDIF NEXT J NEXT JNEXT I NEXT I FOR I=1 TO 10FOR I=1 TO 10 ? A(I) ? A(I)NEXT INEXT I7.3 程序基本控制結構【例】輸入【例】輸入1010個數,用選擇法將它們排序個數,用選擇法將它們排序CLEARCLEARSET TALK OFFSET TALK OFFDIMENSION A(10)DIMENSION A(10)FOR I=1 TO 10FOR I=1 TO 10 INPUT TO A(i) INPUT TO A(i)NEXT INEXT IFOR I=1
20、TO 9FOR I=1 TO 9 P=1 P=1 FOR J=1 TO 10-I FOR J=1 TO 10-I IF A(P)A(J) IF A(P)A(J) P=J P=J ENDIF ENDIF NEXT J NEXT J T=A(P) T=A(P) A(P)=A(10-I+1) A(P)=A(10-I+1) A(10-I+1)=T A(10-I+1)=TNEXT I NEXT I FOR I=1 TO 10FOR I=1 TO 10 ? A(I) ? A(I)NEXT INEXT I7.3 程序基本控制結構圖案打印程序一圖案打印程序一CLEARCLEARFOR i=1 TO 4 FOR
21、 i=1 TO 4 FOR K=1 TO 2 FOR K=1 TO 2* *i-1i-1 I,40-I+K SAY I,40-I+K SAY * * NEXT NEXTNEXTNEXT * * * * * * * * * * * * * * * * * * *7.3 程序基本控制結構圖案打印程序二圖案打印程序二CLEARCLEARFOR i=1 TO 4 FOR i=1 TO 4 ? SPACE(5-I) ? SPACE(5-I) FOR K=1 TO 5 FOR K=1 TO 5? ? * * NEXT NEXT? ?NEXTNEXT * * * * * * * * * * * * * *
22、* * * * * * * * *CLEARCLEARFOR i=1 TO 4 FOR i=1 TO 4 FOR K=1 TO 5 FOR K=1 TO 5 I,40-I+K SAY I,40-I+K SAY * * NEXT NEXTNEXTNEXT7.3 程序基本控制結構圖案打印程序三圖案打印程序三CLEARCLEARFOR I=4 TO 1 STEP -1FOR I=4 TO 1 STEP -1 FOR K=1 TO 2 FOR K=1 TO 2* *I-1I-1 10-I,40-I+K SAY 10-I,40-I+K SAY * * NEXT NEXTNEXTNEXTCLEARCLEA
23、RFOR I=4 TO 1 STEP -1 FOR I=4 TO 1 STEP -1 ? SPACE(5-I) ? SPACE(5-I) FOR K=1 TO 2 FOR K=1 TO 2* *I-1I-1 ? ? * * NEXT NEXT ? ?NEXTNEXT* * * * * * * * * * * * * * * * * * * *7.3 程序基本控制結構CLEARCLEARINPUT INPUT 請輸入請輸入N N的值的值: TO N: TO NFOR I=1 TO N FOR I=1 TO N FOR K=1 TO 2 FOR K=1 TO 2* *I-1I-1 i,40-I+K
24、 SAY i,40-I+K SAY * * NEXT NEXTNEXTNEXTFOR I=N-1 TO 1 STEP -1FOR I=N-1 TO 1 STEP -1 FOR K=1 TO 2 FOR K=1 TO 2* *i-1 i-1 2 2* *N-I,40-I+K SAY N-I,40-I+K SAY * * NEXT NEXTNEXTNEXT * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *7.4 子程序與過程文件 1.1.過程的建立與調用過程的建立與調用 過程也叫子程序,是一個相對獨立的程序段過程也叫子程序,
25、是一個相對獨立的程序段, , 可以被其他程序調可以被其他程序調用。調用子程序的程序稱為主程序用。調用子程序的程序稱為主程序 1. 1. 過程的建立與調用過程的建立與調用 過程的建立過程的建立 一個過程就是一個具有特定功能的命令文件(一個過程就是一個具有特定功能的命令文件(.PRG.PRG),它的建),它的建立、運行與一般程序相同。但是,一個過程中至少要有一條立、運行與一般程序相同。但是,一個過程中至少要有一條RETURNRETURN返回語句返回語句 過程的調用過程的調用 在上級程序中設置一條在上級程序中設置一條 DO DO 命令即可調用一個過程命令即可調用一個過程 命令:命令:DO DO IN
26、 IN WITH WITH 7.4 子程序與過程文件 1.1.過程的建立與調用過程的建立與調用. . .DO SUB1DO SUB1. . . . . . . . .CANCELCANCEL 主程序主程序MAIN.PRGMAIN.PRG. . . .DO SUB2DO SUB2. . . . . . . . .RETURNRETURN 子程序子程序SUB1.PRGSUB1.PRG . . . . . . . . . . . . . . . . . . . RETURN RETURN . . . . . . . . . . . . RETURN TO MASTERRETURN TO MASTER
27、子程序子程序SUB2.PRGSUB2.PRG7.4 子程序與過程文件 2.2.過程文件過程文件 將多個過程存放在一個文件中形成過程文件。過程文件中的過程不能作將多個過程存放在一個文件中形成過程文件。過程文件中的過程不能作為一個命令文件單獨存盤或獨立運行為一個命令文件單獨存盤或獨立運行 過程文件的建立過程文件的建立 命令:命令:MODIFY COMMAND MODIFY COMMAND 過程文件的基本結構:過程文件的基本結構: PROCEDURE PROCEDURE RETURN TO MASTER RETURN TO MASTER ENDPROC ENDPROC 過程文件的打開與關閉過程文件的
28、打開與關閉 命令:命令:SET PROCEDURE TO SET PROCEDURE TO 7.4 子程序與過程文件 3.3.帶參數的過程調用帶參數的過程調用 將不同的參數分別傳遞給同一過程,執行同一功能的操作后返回將不同的參數分別傳遞給同一過程,執行同一功能的操作后返回不同的結果,可以大大提高程序模塊的靈活性不同的結果,可以大大提高程序模塊的靈活性 定義帶參數的過程定義帶參數的過程: PROCEDURE PROCEDURE PARAMETERS PARAMETERS RETURN RETURN ENDPROC ENDPROC 調用帶參數的過程調用帶參數的過程: 命令:命令:DO DO WIT
29、H WITH 7.5 自定義函數 自定義函數的建立和使用方法與過程相同。函數除了完成某種特自定義函數的建立和使用方法與過程相同。函數除了完成某種特定操作外,還返回一個值定操作外,還返回一個值 1. 1. 定義函數定義函數 FUNCTION FUNCTION ( () RETURN RETURN ENDFUNC ENDFUNC 2. 2. 調用函數調用函數 格式:格式: ()n 7.6 變量作用域 1 1全局變量全局變量 使用使用 PUBLIC PUBLIC 關鍵字定義的變量(也稱公共變量),可以是全局關鍵字定義的變量(也稱公共變量),可以是全局內存變量或數組內存變量或數組 格式:格式:PUBL
30、IC PUBLIC |數組數組 2 2局部變量局部變量 使用使用 LOCAL LOCAL 關鍵字定義的變量關鍵字定義的變量 格式:格式:LOCAL LOCAL |數組數組 3 3私有變量私有變量 有通過有通過 PUBLIC PUBLIC 或或 LOCAL LOCAL 關鍵字定義而在程序中直接使用(即由關鍵字定義而在程序中直接使用(即由系統自動隱含建立)的變量系統自動隱含建立)的變量 私有變量在建立它的程序及其下屬的子程序中有效,一旦建立它的程序運行結束,私有變量在建立它的程序及其下屬的子程序中有效,一旦建立它的程序運行結束,這些私有變量就自動清除這些私有變量就自動清除 當子程序中的變量與上級程序中的變量同名時,可以在當前子程序中使用當子程序中的變量與上級程序中的變量同名時,可以在當前子程序中使用 PRIVATE PRIVATE 關鍵字對該同名變量進行隱藏說明,使其在當前子程序中暫時無效關鍵字對該同名變量進行隱藏說明,使其在當前子程序中暫時無效 格式:格式:PRIVATE PRIVATE 7.6 變量作用域CLEAR MEMORYCLEAR MEMORYCLEARCLEARPUBLIC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 豬場生物安全教育
- 民事賠償合同范本
- 相鄰土地共建合同
- 藥品銷售企業用工合同范本
- 股權轉讓居間合同協議
- 汽車零部件倉庫租賃合同范本
- 中小企業融資擔保合同
- 網絡文明與安全教育主題班會
- 股權轉讓合同協議范例
- 建筑工程施工內部承包合同范本
- 某連鎖藥店公司發展戰略
- 2025年河南工業和信息化職業學院單招職業技能測試題庫及答案1套
- 跌倒護理RCA案例匯報
- 利用DeepSeek優化水資源管理
- DeepSeek人工智能語言模型探索AI世界科普課件
- 2025年晉城職業技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 牛橋水庫現代化水庫運行管理矩陣建設探討
- 2024年晉中職業技術學院單招職業技能測試題庫附解析答案
- DB32∕T 2677-2014 公路涉路工程安全影響評價報告編制標準
- 2025年北京鐵路局集團招聘筆試參考題庫含答案解析
- 2024年安陽職業技術學院單招職業技能測試題庫
評論
0/150
提交評論