




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、(中職)Visual FoxPro數據庫技能教程 第5章ppt課件第5章 Visual FoxPro程序設計 5.1 技能1:結構化程序設計5.2 技能2:數組5.3 技能3:過程與用戶自定義函數2技能目標 程序文件的基本操作方法順序結構程序設計選擇結構程序設計循環結構程序設計數組過程與自定義函數35.1 技能1:結構化程序設計 5.1.1 程序文件基本操作5.1.2 順序結構程序設計5.1.3 選擇結構程序設計 5.1.4 循環結構程序設計 45.1.1 程序文件基本操作1. 建立程序文件(1)用菜單方式建立程序文件實例1:創建一個程序文件P1.PRG。 選擇【文件】|【新建】命令,打開“新
2、建”對話框。 在“新建”對話框中選擇“程序”選項。 單擊“新建文件”按鈕,打開“程序1”窗口,開始新程序文件的編寫。A=9?A55.1.1 程序文件基本操作 程序輸入完成后,選擇【文件】菜單中的【保存】命令,在彈出的對話框中選擇保存位置(本章中所有程序保存路徑為“E:職工管理progs”,以下相同,不再說明)并輸入程序文件名“P1.PRG”。65.1.1 程序文件基本操作(2)用項目管理器方式建立程序文件實例2:用項目管理器方式創建上述程序文件P1.PRG。 在項目管理器中選擇“代碼”選項卡。 選擇“程序”,單擊“新建”按鈕,打開“程序1”窗口,開始新程序文件的編寫。 保存方法同上。 75.1
3、.1 程序文件基本操作(3)用命令方式建立程序文件實例3:用命令方式創建上述程序文件P1.PRG。在命令窗口中輸入: MODIFY COMMAND P1.PRG創建“程序1”程序文件窗口,等待用戶輸入新文件的內容。85.1.1 程序文件基本操作2. 修改程序文件實例4:修改已經建立的P1.PRG。方法一:用菜單方式修改(1)選擇【文件】|【新建】命令,打開“打開”對話框。(2)從“打開”對話框的“文件類型”列表框中選擇“程序(*.prg;*.spr;*.mpr;*.qpr)”類型,然后再從“文件名”列表中選擇P1.PRG。(3)單擊“確定”按鈕。95.1.1 程序文件基本操作方法二:用項目管理
4、器方式修改程序文件(1)在項目管理器中選擇“代碼”選項卡。(2)單擊“程序”前的“+”,選擇P1.PRG。(3)單擊“修改”按鈕。方法三:用命令方式修改程序文件使用MODIFY COMMAND 命令,若文件已經存在,則打開該文件修改。 105.1.1 程序文件基本操作3. 運行程序文件實例5:運行已經建立的P1.PRG。方法一:用菜單方式運行程序文件(1)選擇【程序】|【運行】命令。(2)從“運行”對話框中選擇P1.PRG。(3)單擊“運行”按鈕。115.1.1 程序文件基本操作方法二:用項目管理器方式運行程序文件(1)在項目管理器中選擇“代碼”選擇卡。(2)單擊程序前的“+”,選擇P1.PR
5、G。(3)單擊“運行”按鈕。方法三:用命令方式運行程序文件在命令窗口中輸入 DO P1.PRG。125.1.2 順序結構程序設計基本語句(1)交互式賦值命令 輸入單字符命令格式:WAIT 提示信息 TO 變量 功能:執行該命令時,程序暫停運行,等待用戶輸入單個字符。 135.1.2 順序結構程序設計實例6:編寫程序P2.PRG,顯示職工.DBF中的前6條記錄,要求每顯示3條記錄便暫停運行,以便查看。 程序如下:USE 職工LIST NEXT 3SKIPWAITLIST NEXT 3SKIPWAITUSE145.1.2 順序結構程序設計 輸入字符串命令格式:ACCEPT 提示信息 TO 變量功能
6、:執行該命令時,等待用戶通過鍵盤輸入一串字符存入變量中,用戶輸入完字符并回車后,程序繼續向下執行。 155.1.2 順序結構程序設計實例7:編寫程序P3.PRG,在職工.DBF中輸入某職工姓名,查找并顯示此人的職工號。 程序如下:CLEARUSE 職工ACCEPT 請輸入查詢職工的姓名:TO XMLOCATE FOR 姓名=XMDISPLAY FIELDS 職工號USE165.1.2 順序結構程序設計執行程序的結果如下:請輸入查詢職工的姓名:林麗記錄號 職工號 2 1002175.1.2 順序結構程序設計 輸入任意類型數據的命令格式:INPUT 提示信息 TO 變量功能:執行該命令時,程序運行
7、暫停,等待用戶從鍵盤輸入數據存入變量中,用戶輸入完數據并按回車鍵后,程序繼續向下執行。18知識鏈接命 令WAITACCEPTINPUT定義變量的類型CCN、C、L、D接收數據的長度1個0254個不限鍵盤輸入數據后是否要按回車鍵不需要需要需要適用情況暫停、選擇臨時賦值臨時賦值3種交互式命令的異同 195.1.2 順序結構程序設計(2)清屏幕命令格式:CLEAR功能:清除屏幕上的所有信息。 205.1.2 順序結構程序設計2. 順序結構程序設計實例8:編寫程序P4.PRG,從鍵盤輸入圓的半徑R,通過圓面積公式R2,計算圓的面積S。 程序如下:*求圓的面積SCLEARINPUT 圓的半徑R=TO R
8、S=3.14*R*R?圓的面積S=,SRETURN215.1.2 順序結構程序設計實例9:編寫程序P5.PRG,在“職工.dbf”中顯示所有助理工程師的相關資料。 程序如下:CLEARUSE 職工LIST FOR 職稱=助理工程師USE225.1.3 選擇結構程序設計單/雙分支條件選擇結構(1)單分支格式: IF 條件表達式 語句行序列 ENDIF功能:如果條件表達式為真(.T.),則執行語句行序列。235.1.3 選擇結構程序設計實例10:編寫程序P6.PRG,從鍵盤上輸入一個數,若該數能被3或7整除,則輸出該數的平方。 程序如下:CLEARINPUT 輸入一個數: to XIF INT(X
9、/3)=X/3 OR INT(X/7)=X/7?X*XENDIFRETURN245.1.3 選擇結構程序設計實例11:編寫程序P7.PRG,對于職工.DBF,編寫一個程序段實現將表中的數據指針上移一條記錄。 程序如下:*上移一條記錄SKIP 1IF BOF()GO TOPENDIF255.1.3 選擇結構程序設計(2)雙分支格式: IF 條件表達式 語句序列1 ELSE 語句序列2 ENDIF功能:如果條件表達式為真(.T.),則執行語句序列1,如果條件表達式為假(.F.),則執行語句序列2。265.1.3 選擇結構程序設計實例12:編寫程序P8.PRG,輸入X,依據以下分段函數求Y值。 程序
10、如下:INPUT X=TO XIF X5 Y=X*X+7ELSE Y=10*X-2ENDIF?Y=,YRETURN275.1.3 選擇結構程序設計實例13:編寫程序P9.PRG,對于工資.DBF,編程實現如下功能:若基本工資在1 000元以下,則補貼增加50元,否則補貼增加100元。 程序如下:USE 工資IF 基本工資B AND AC MAX=AELSE IF BA AND BC MAX=B ELSE MAX=C ENDIFENDIF?最大值為:,MAXRETURN305.1.3 選擇結構程序設計3. 多分支條件選擇結構(情況語句)格式: DO CASE CASE 條件表達式1 語句序列1
11、CASE 條件表達式2 語句序列2 CASE 條件表達式n 語句序列n OTHERWISE 語句序列n+1 ENDCASE315.1.3 選擇結構程序設計實例15:編寫程序P11.PRG,根據鍵盤輸入的X值,計算下面分段函數的值,并顯示計算結果。CLEARINPUT “X=” TO XDO CASECASE X0 .AND. X10 Y=X*X-1ENDCASE?分段函數的值為:+STR(Y,2)RETURN325.1.3 選擇結構程序設計實例16:編寫程序P12.PRG,在“工資.DBF”文件中查找任一職工,根據其補貼金額判斷其補貼等級。其中補貼在300元以上的為一等,補貼在200300元之
12、間的為二等,補貼在100200元之間的為三等,補貼在100元以下的為四等。 程序如下:CLEARUSE 工資ACCEPT “職工號:” TO ZHLOCATE ALL FOR 職工號=ZH335.1.3 選擇結構程序設計IF .NOT. EOF() DO CASE CASE 補貼=300 ?“一等” CASE 補貼=200 ?“二等” CASE 補貼=100 ?“三等” OTHERWISE ?“四等” ENDCASEELSE ?“職工號輸入錯”ENDIFUSERETURN345.1.3 選擇結構程序設計4. IIF函數 Visual FoxPro 6.0中還提供了一個條件函數,用它來編寫簡單的
13、分支程序相當方便。格式:IIF(條件表達式,表達式1,表達式2)功能:當條件表達式為.T.時,函數取表達式1的值;當條件表達式為.F.時,函數取表達式2的值。355.1.3 選擇結構程序設計實例17:有如下條件語句。 IF X10 Y=X+X ELSE Y=X*X ENDIF將這段程序用IIF函數來表示: Y=IIF(X10,X+X,X*X)36實驗九 順序結構與分支結構程序設計1. 實驗目的:(1)掌握結構化程序設計的基本方法。(2)掌握交互式命令的使用方法。(3)學會編寫順序、選擇結構的程序。2 實驗要求及內容。(1)分析并調試下列程序,給出運行結果。 A=20B=15A=A+BB=A-B
14、A=A-B?A,B37實驗九 順序結構與分支結構程序設計 X=21DO CASECASE X10 ?OK1CASE X20 ?OK2OTHERWISE ?OK3ENDCASE(2)編寫并上機調試如下程序,程序文件名為P9-4.PRG。38實驗九 順序結構與分支結構程序設計 從鍵盤輸入半徑R,編程序求出球的體積V= (4/3)R3,程序文件名為P9-1.PRG。 從鍵盤輸入A、B、C的值,求一元二次方程的兩個根,程序文件名為P9-2.PRG。 任意輸入某一成年人身高與體重,若身高超過150,則判斷是否為標準體重(標準體重公式:體重=身高-105),并指出“過胖”或“過瘦”,程序文件名為P9-3.
15、PRG。 對不同的購貨款給予不同的優惠價,輸入購貨款E,按以下折扣D輸出實際應交款額。39實驗九 順序結構與分支結構程序設計 0 0E100 5% 100E300 D= 10% 300E500 15% 500E750 20% 750E3. 完成實驗報告。405.1.4 循環結構程序設計 1DO WHILE ENDDO格式: DO WHILE 條件表達式 語句序列1 LOOP 語句序列2 EXIT 語句序列3 ENDDO415.1.4 循環結構程序設計實例18:編寫程序P13.PRG,求1100之間的奇數和。CLEARS=0N=1DO WHILE N=100 IF INT(N/2)N/2 S=S
16、+N ENDIF N=N+1ENDDO?1-100之間的奇數和是,SRETURN425.1.4 循環結構程序設計實例19:編寫程序P14.PRG,用循環結構統計“工資.dbf”中所有人的基本工資總額和平均值。CLEARSUM=0K=0USE 工資DO WHILE .NOT. EOF() SUM=SUM+基本工資 K=K+1 SKIPENDDO?基本工資總額為:+STR(SUM,6)?基本工資平均值為:+STR(SUM/K,6)RETURN435.1.4 循環結構程序設計2FOR ENDFOR格式: FOR 控制變量=初值 TO 終值 STEP 步長 語句序列 LOOP EXIT ENDFOR4
17、45.1.4 循環結構程序設計實例20:編寫程序P15.PRG,求10!的值。程序如下:CLEARS=1N=1FOR N=1 TO 10 S=S*NENDFOR?SRETURN455.1.4 循環結構程序設計實例21:編寫程序P16.PRG,打印數據表“職工.dbf”中的全部字段名。程序如下:CLEARUSE 職工 M=FCOUNT() FOR N=1 TO M ?FIELDS(N) ENDFOR USE RETURN46知識鏈接FCOUNT()函數:返回當前打開的數據表中的字段數。FIELDS(N)函數:顯示第N個字段的字段名。475.1.4 循環結構程序設計3. SCAN ENDSCAN格
18、式:SCAN FOR 條件表達式|WHILE 條件表達式 范圍 語句序列 LOOP EXITENDSCAN功能:對當前數據表文件中滿足條件的記錄進行加工處理。485.1.4 循環結構程序設計實例22:編寫程序P17.PRG,顯示工資表中基本工資在1 000元以上,工齡工資在400元以上的記錄。程序如下: CLEAR USE 工資 SCAN FOR 基本工資1000 AND 工齡工資400 DISPLAY ENDSCAN USE RETURN495.1.4 循環結構程序設計4多重循環實例23:編寫程序P18.PRG,輸出乘法口決表。程序如下:CLEARFOR I=1 TO 9?FOR J=1 T
19、O I?STR(J,3)+*+STR(I,1)+=+STR(I*J,2)NEXT JNEXT IRETURN50實驗十 循環結構程序設計 1.實驗目的:(1)學會編寫簡單的循環結構程序。(2)在循環結構程序中使用LOOP 和EXIT語句。(3)掌握多重循環的運行過程。2.實驗要求及內容。(1)分析并調試下列程序,寫出運行結果。51實驗十 循環結構程序設計 程序如下:STORE 0 TO A,BDO WHILE .T. A=A+1 DO CASE CASE INT(A/3)=A/3 LOOP CASE A6 EXIT OTHERWISE B=B+AENDCASEENDDO?A,BRETURN52
20、實驗十 循環結構程序設計 程序如下:N=5S=1DO WHILE N1 N=N-1 S=S*NENDDO?S=,SRETURN53實驗十 循環結構程序設計 程序如下:CLEARI=1DO WHILE I=4J=1 DO WHILE J=5 ?* J=J+1 ENDDO ? I=I+1ENDDORETURN54實驗十 循環結構程序設計(2)編寫并上機調試如下程序。 編程計算50200之間的奇數和,程序中使用LOOP語句,程序文件名為P10-1.PRG。求滿足條件的最大整數N:12+22+32+N2100,程序文件名為P10-2.PRG。 分別統計“職工.DBF”中男職工和女職工的人數,程序文件名
21、為P10-3.PRG。 對于“職工.DBF”和“工資.DBF”,能根據鍵盤輸入的姓名,顯示該職工的個人資料和工資情況,程序文件名為P10-4.PRG。555.2 技能2:數組 數組的定義格式:DIMENSION 數組名(下標1,下標2)功能:定義一維或二維數組。565.2 技能2:數組實例24:定義一個具有5個元素的一維數組。DIMENSION A(5) 實例25:定義一個2行3列的二維數組。DIMENSION B(2,3)數組中各元素的排列順序為:B(1,1),B(1,2),B(1,3),B(2,1),B(2,2),B(2,3)共6個元素。 575.2 技能2:數組2. 數組元素的賦值方法
22、數組元素的賦值方法與內存變量的賦值方法相同,即可以用“=”命令或STORE命令對數組元素賦值。585.2 技能2:數組實例26:寫出下列程序的運行結果。CLEARDIMENSION Y(3,4)FOR I=1 TO 3 FOR J=I+1 TO 4 Y(I,J)=I+J ENDFORENDFOR?Y(3,2),Y(3,3),Y(3,4)595.2 技能2:數組3. 數組元素與數據表元素的互相傳送(1)數據表數據傳送到數組格式:SCATTER TO 數組名 FIELDS 字段名表功能:將當前數據表當前記錄的指定字段值依次賦給數組變量。605.2 技能2:數組實例27:編寫程序P19.PRG,將“
23、職工.DBF”表的第一條記錄的姓名、性別、出生日期、職稱4個字段的值傳送到X數組中。CLEARDIMENSION X(3,2)USE 職工DISPSCATTER FIELDS 姓名,性別,出生日期,職稱 TO X?X(1,1),X(1,2),X(2,1),X(2,2)RETURN615.2 技能2:數組(2)數組元素的值傳送到數據庫格式: GATHER FROM 數組名 FIELDS 字段名表功能:將指定數組中各元素的值傳送到當前表當前記錄的指定字段中去。625.2 技能2:數組實例28:編寫程序P20.PRG,將“職工.DBF”數據表中的第4條記錄和第6條記錄的內容互換。DIMENSION
24、A1(10),A2(10)USE 職工GO 4SCATTER TO A1SKIP 2SCATTER TO A2GATHER FROM A1SKIP -2GATHER FROM A2USE 63實驗十一 數組1. 實驗目的:(1)掌握數組的定義方法。(2)掌握數組元素的賦值。(3)掌握數組與數據表之間傳送數據的方法。2. 實驗要求及內容。(1)定義數組及給數組元素賦值。 定義一個具有4個元素的一維數組和一個2行3列的二維數組。 用LIST MEMORY命令查看它們未賦值以前的值。 將數組中元素賦值:B(1,1)=32,B(1,2)=“中國”,B(1,3)=DATE()B(2,1)=.T.,A數組
25、中的全部元素為0。64實驗十一 數組(2)數據表與數組元素傳遞。對于數據表“工資.dbf”,輸入如下程序: USE 工資 LIST GO 3 SCATTER TO B FIELDS 職工號、姓名、年月份、基本工資、補貼 ?B(1,2),B(1,3),B(2,2)程序的運行結果是什么?分析并上機驗證。65實驗十一 數組(3)設有“課程表.DBF”的內容如下: RECORD# 編號 課程名稱 任課教師 性別 學時數 類別 1 0001 計算機基礎 王大偉 男 30 必修 2 0003 數據庫技術 鄧蓮麗 女 46 必修 3 0005 離散數學 張菁菁 女 36 必修 下面的程序是修改表中的第2條記
26、錄,將課程名稱改成“程序設計”,任課教師改成“王斌”,類別改成“選修”,其他字段內容不變,請將程序補充完整。66實驗十一 數組USE 課程表DIMENSION _K(1)=程序設計K(2)=王斌K(3)=選修_GATHER _USE3. 完成實驗報告。675.3 技能3:過程與用戶自定義函數 5.3.1 過程5.3.2 用戶自定義函數685.3.1 過程1過程文件的建立 過程文件和其他命令文件一樣,在命令窗口中,使用MODIFY COMMAND 過程文件名來建立。格式:PROCEDURE 過程名(形式參數表) 命令序列 RETURN 返回值 ENDPROC功能:定義過程。695.3.1 過程2
27、過程文件的調用格式:DO 或 = 或 () 如果執行過程且傳送參數,則使用:DO 過程文件名 WITH 實際參數表或 =(實際參數表) 或 (實際參數表) 705.3.1 過程實例29:分析下面程序的運行結果。 &主程序 CLEAR ?A DO PROC1 ?B DO PROC2 WITH 2,4 ?C =PROC2(5,4) &過程 PROCEDURE PROC1 ?D ENDPROC PROCEDURE PROC2(PARA1,PARA2) ?PARA1+PARA2 ENDPROC715.3.1 過程執行結果如下:ADB6C9725.3.2 用戶自定義函數格式: FUNCTION 函數名(形式參數表) 語句行序列 RETURN 返回值 ENDFUNC功能:用戶自定義一個函數。函數調用格式:(實際
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45475.2-2025塑料聚苯醚(PPE)模塑和擠出材料第2部分:試樣制備和性能測定
- 電視設備智能生物藥品產業可持續發展戰略技術考核試卷
- 紡織品企業環境管理體系考核試卷
- 空調器運行數據監測與分析考核試卷
- 派遣工勞動權益保障行動計劃考核試卷
- 紡織品檢測標準與方法考核試卷
- 洗浴用品選購指南考核試卷
- 煉鐵高爐廢氣熱回收技術考核試卷
- 電視發射機用廣播發射器散熱系統考核試卷
- 突發事件應對與危機管理考核試卷
- 自然保護地分類分級-知識培訓
- 管道支吊架調整施工方案
- 船舶運輸安全生產應急救援預案
- 植被恢復合同模板
- 《財務報表探析案例:格蘭仕財務報表探析(定量論文)6500字》
- 2024年6月第2套英語四級真題
- 包裝標準規范要求
- 2024年湖北省武漢市中考數學試題含答案
- 手術室急危重患者的搶救與配合
- xx鄉衛生院執行“三重一大”制度實施方案
- 新進(轉崗)職工三級安全教育培訓表
評論
0/150
提交評論