Visual FoxPro數(shù)據(jù)庫程序設計課件Chap7_第1頁
Visual FoxPro數(shù)據(jù)庫程序設計課件Chap7_第2頁
Visual FoxPro數(shù)據(jù)庫程序設計課件Chap7_第3頁
Visual FoxPro數(shù)據(jù)庫程序設計課件Chap7_第4頁
Visual FoxPro數(shù)據(jù)庫程序設計課件Chap7_第5頁
已閱讀5頁,還剩45頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第7章章 程序設計程序設計本本 章章 主主 要要 內(nèi)內(nèi) 容容v程序文件的建立與運行程序文件的建立與運行 v程序的控制結構程序的控制結構 v多模塊程序多模塊程序 v數(shù)組應用數(shù)組應用 教教 學學 方方 法法v教師講解教師講解 學生自學學生自學v獨立思考獨立思考 上機多練上機多練v合作學習合作學習 提高能力提高能力第第7章章 程序設計程序設計程序設計的步驟程序設計的步驟進行程序設計一般要經(jīng)過以下步驟,如圖進行程序設計一般要經(jīng)過以下步驟,如圖7-17-1所所示。示。a a分析問題或任務,總結或抽象出問題的數(shù)學分析問題或任務,總結或抽象出問題的數(shù)學模型。模型。b b根據(jù)數(shù)學模型確定解決問題的算法思想。

2、根據(jù)數(shù)學模型確定解決問題的算法思想。c c根據(jù)算法思想確定要建立的數(shù)據(jù)表或數(shù)據(jù)庫根據(jù)算法思想確定要建立的數(shù)據(jù)表或數(shù)據(jù)庫的基本結構及其數(shù)據(jù)表之間的關系。的基本結構及其數(shù)據(jù)表之間的關系。d d畫出程序流程圖。畫出程序流程圖。e e編寫程序,實現(xiàn)功能要求,并在計算機上調(diào)編寫程序,實現(xiàn)功能要求,并在計算機上調(diào)試通過。試通過。f f用典型數(shù)據(jù)對所編寫的程序進行測試,驗證用典型數(shù)據(jù)對所編寫的程序進行測試,驗證程序的可靠性。發(fā)現(xiàn)問題進行修改,修改后程序的可靠性。發(fā)現(xiàn)問題進行修改,修改后再進行調(diào)試,直到程序正確運行為止。再進行調(diào)試,直到程序正確運行為止。g g編寫使用說明書,整理有關資料,進行總結。編寫使用說

3、明書,整理有關資料,進行總結。 圖圖7-1 7-1 程序設計步驟程序設計步驟第第7章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.1 7.1.1 程序文件的建立程序文件的建立 程序文件的建立有菜單和命令兩種方式,菜單方式請大家參程序文件的建立有菜單和命令兩種方式,菜單方式請大家參考書上操作步驟進行學習,這里我們講解命令操作方式??紩喜僮鞑襟E進行學習,這里我們講解命令操作方式。1.1.命令方式建立程序文件命令方式建立程序文件格式:格式:MODIFY COMMAND MODIFY COMMAND |?|?功能:打開程序編輯窗口,從中可以修改或創(chuàng)建程序文件。功

4、能:打開程序編輯窗口,從中可以修改或創(chuàng)建程序文件。 a. a. :指定修改或創(chuàng)建的程序文件名。若省略程序文:指定修改或創(chuàng)建的程序文件名。若省略程序文件名,件名,MODIFY COMMANDMODIFY COMMAND命令將打開圖命令將打開圖7-37-3所示的程序編輯窗口。所示的程序編輯窗口。b. b. 如果不指定程序文件名,如果不指定程序文件名,MODIFY COMMAND MODIFY COMMAND 后面跟后面跟? ?號,則顯示號,則顯示“打開打開”對話框,如圖對話框,如圖7-47-4所示,在所示,在“文件類型文件類型( (T T)”)”右邊下拉列右邊下拉列表中選定文件類型為【程序表中選定

5、文件類型為【程序 ( (* *.prg;.prg;* *.spr;.spr;* *.mpr;.mpr;* *.qpr.qpr) )】;在】;在“查找范圍查找范圍( (I I)”)”右邊下拉列表中選定相關程序文件所在的文件夾;右邊下拉列表中選定相關程序文件所在的文件夾;從選定文件夾中,選擇一個已有程序文件或在從選定文件夾中,選擇一個已有程序文件或在“文件名文件名( (N N)”)”右邊右邊文本框中鍵入要創(chuàng)建的新程序文件名,單擊【確定】按鈕,即可文本框中鍵入要創(chuàng)建的新程序文件名,單擊【確定】按鈕,即可在程序編輯窗口打開指定文件名的程序文件。在程序編輯窗口打開指定文件名的程序文件。C. C. 命令程

6、序文件的擴展名是命令程序文件的擴展名是.PRG.PRG。圖圖7-3 7-3 程序編輯窗口程序編輯窗口圖圖7-4 “7-4 “打開打開”對話框?qū)υ捒虻诘?章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.1 7.1.1 程序文件的建立程序文件的建立2. 2. 在程序編輯窗口中輸入命令在程序編輯窗口中輸入命令 例例7-1 7-1 編寫兩個變量的加法運算程序。編寫步驟如下:編寫兩個變量的加法運算程序。編寫步驟如下:步驟步驟1 1:在命令窗口里輸入:在命令窗口里輸入: MODIFY COMMAND CX1 &CX1MODIFY COMMAND CX1 &am

7、p;CX1是程序文件名,擴展名是程序文件名,擴展名.PRG.PRG在這里可以省略。在這里可以省略。步驟步驟2 2:在程序編輯窗口(圖:在程序編輯窗口(圖7-37-3)輸入如下)輸入如下6 6條命令。條命令。 CLEAR &CLEAR &將屏幕輸出窗口內(nèi)容清空將屏幕輸出窗口內(nèi)容清空 a=12 &a=12 &將數(shù)值將數(shù)值1212賦值給變量賦值給變量a a b=18 & b=18 &將數(shù)值將數(shù)值1818賦值給變量賦值給變量b b c=a+b c=a+b & &將變量將變量a a與與b b的和計算出來,賦值給變量的和計算出來,賦值給變量c

8、 c ?a,b,c ?a,b,c & &輸出變量輸出變量a a、b b、c c的值的值 RETURN &RETURN &表示程序結束。表示程序結束。 在輸入一個程序時,請用戶注意以下幾點:在輸入一個程序時,請用戶注意以下幾點: a. a. 一個命令語句中只能有一個命令動詞;一個命令語句中只能有一個命令動詞; b. b. 每輸入完一個語句按每輸入完一個語句按“回車回車”鍵表示該語句結束;鍵表示該語句結束; c. c. 程序中用到的所有作為程序中用到的所有作為“分隔符號分隔符號”的標點符號一律用半角符號;的標點符號一律用半角符號; d. d. 每一個程序最后一般應有

9、一個結束語句,以表示該程序的結束。每一個程序最后一般應有一個結束語句,以表示該程序的結束。 第第7章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.1 7.1.1 程序文件的建立程序文件的建立3. 3. 程序文件的保存、打開與關閉程序文件的保存、打開與關閉(1 1)程序文件的保存)程序文件的保存 按快捷鍵按快捷鍵Ctrl+WCtrl+W將文件進行保存。將文件進行保存。 本章的程序文件名按如下規(guī)則命名,本章的程序文件名按如下規(guī)則命名, 例例7-17-1用用cx1cx1、 例例7-27-2用用cx2cx2,. . ,依此類推。,依此類推。(2 2)程序文件的打開

10、)程序文件的打開 在命令窗口里,利用在命令窗口里,利用“MODIFY COMMAND MODIFY COMMAND ”命令打開指命令打開指定程序文件,進行編輯修改。定程序文件,進行編輯修改。(3 3)程序文件的關閉)程序文件的關閉 a. a. 單擊菜單【文件單擊菜單【文件( (F F) )】【關閉【關閉( (C C) )】命令;】命令; b. b. 單擊程序編輯窗口右上角的【單擊程序編輯窗口右上角的【】關閉按鈕;】關閉按鈕; c. c. 在在“命令命令”窗口里輸入命令:窗口里輸入命令:CLOSE ALL CLOSE ALL ; d. d. 按快捷鍵按快捷鍵Ctrl+WCtrl+W,保存并關閉程

11、序文件。,保存并關閉程序文件。第第7章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.2 7.1.2 程序的運行程序的運行用命令方式運行程序用命令方式運行程序 格式:格式:DO DO 功能:將指定的程序文件調(diào)入內(nèi)存并運行。功能:將指定的程序文件調(diào)入內(nèi)存并運行。 說明:說明: a. a. 默認程序擴展名為默認程序擴展名為.PRG.PRG,可不必輸入;,可不必輸入; b. b. 該命令可在命令窗口里輸入執(zhí)行,也可以出現(xiàn)在另一個程序文件中,該命令可在命令窗口里輸入執(zhí)行,也可以出現(xiàn)在另一個程序文件中,后者可實現(xiàn)在一個程序中調(diào)用另一個程序。后者可實現(xiàn)在一個程序中調(diào)用另

12、一個程序。 如在命令窗口里輸入:如在命令窗口里輸入:DO cx1DO cx1 執(zhí)行程序執(zhí)行程序cx1cx1后,將在屏幕輸出程序計算結果:后,將在屏幕輸出程序計算結果: 12 18 3012 18 30 在程序打開并且為當前程序的情況下,單擊常用工具欄上【在程序打開并且為當前程序的情況下,單擊常用工具欄上【! !】命令按】命令按鈕也可以執(zhí)行程序。鈕也可以執(zhí)行程序。第第7章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.3 7.1.3 程序中的輔助命令程序中的輔助命令 Visual FoxProVisual FoxPro還提供了一些輔助命令,如注釋命令、程序結束

13、命令、還提供了一些輔助命令,如注釋命令、程序結束命令、運行環(huán)境設置命令等,這些命令能使程序更好地閱讀和有效地運行運行環(huán)境設置命令等,這些命令能使程序更好地閱讀和有效地運行 1. 1. 程序注釋命令程序注釋命令 VFPVFP提供了提供了3 3種程序設計注釋命令:種程序設計注釋命令:格式格式1 1: NOTE NOTE 格式格式2 2: * * 功能:使功能:使 NOTENOTE或或* * 后面的內(nèi)容成為注釋內(nèi)容。后面的內(nèi)容成為注釋內(nèi)容。格式格式3 3: & & 功能:功能: 對對&左面的命令做出解釋或給出運行結果,又稱為行尾左面的命令做出解釋或給出運行結果,又稱為行尾注釋

14、命令。注釋命令。 這些命令如何在程序中的使用將在以后的程序設計中給出。這些命令如何在程序中的使用將在以后的程序設計中給出。第第7章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.3 7.1.3 程序中的輔助命令程序中的輔助命令2.2.程序結程序結束命令束命令 格式格式1 1:RETURNRETURN 功能:返回到上一級模塊。如果本程序是以菜單方式或在命令窗口中調(diào)用執(zhí)行的,功能:返回到上一級模塊。如果本程序是以菜單方式或在命令窗口中調(diào)用執(zhí)行的,則返回到命令交互狀態(tài)即命令窗口。則返回到命令交互狀態(tài)即命令窗口。 格式格式2 2:CANCELCANCEL 功能:結束

15、程序運行,關閉程序中所有的文件和變量,返回到交互狀態(tài)即命令窗功能:結束程序運行,關閉程序中所有的文件和變量,返回到交互狀態(tài)即命令窗口。口。 格式格式3 3:QUITQUIT 功能:關閉功能:關閉Visual FoxProVisual FoxPro,返回到操作系統(tǒng),返回到操作系統(tǒng) 對一個獨立程序來說,一般在最后一條語句要用對一個獨立程序來說,一般在最后一條語句要用RETURNRETURN命令,以表示程序的結命令,以表示程序的結束。束。 3.3.運行環(huán)境設置命令運行環(huán)境設置命令 在程序中運用一些環(huán)境設置命令,可使程序正常而高效地運行。常用的環(huán)境設在程序中運用一些環(huán)境設置命令,可使程序正常而高效地運

16、行。常用的環(huán)境設置命令如教材表置命令如教材表7-17-1所示。所示。 第第7章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.4 交互式的輸入命令交互式的輸入命令 根據(jù)解決實際問題的需要,往往在程序運行的過程中,由用戶向程序輸入一些數(shù)據(jù)或信息,根據(jù)解決實際問題的需要,往往在程序運行的過程中,由用戶向程序輸入一些數(shù)據(jù)或信息,完成這種功能的一些命令稱為交互式輸入命令。完成這種功能的一些命令稱為交互式輸入命令。Visual FoxProVisual FoxPro提供了多種交互式輸入命令。提供了多種交互式輸入命令。 說明:說明:a. a. ,是在屏幕上出現(xiàn)的提示信,

17、是在屏幕上出現(xiàn)的提示信息。它可以是字符串,此時必須用雙引號將其括起來,息。它可以是字符串,此時必須用雙引號將其括起來,也可以是字符型內(nèi)存變量,此時該內(nèi)存變量必須預先也可以是字符型內(nèi)存變量,此時該內(nèi)存變量必須預先賦值。賦值。b. b. 用戶在鍵盤輸入的任何字符信息都被賦值給用戶在鍵盤輸入的任何字符信息都被賦值給“內(nèi)內(nèi)存變量存變量”。輸入的數(shù)據(jù)將作為字符型數(shù)據(jù)處理,不需。輸入的數(shù)據(jù)將作為字符型數(shù)據(jù)處理,不需要定界符括起來,如果輸入了定界符,則這些定界符要定界符括起來,如果輸入了定界符,則這些定界符也被作為輸入字符的一部分,一起存入到內(nèi)存變量中。也被作為輸入字符的一部分,一起存入到內(nèi)存變量中。c.

18、c. 輸入完需要的信息后,按輸入完需要的信息后,按EnterEnter鍵結束本命令的輸鍵結束本命令的輸入。如果沒有輸入其他信息,只輸入一個回車鍵,將入。如果沒有輸入其他信息,只輸入一個回車鍵,將把一個空字符賦值給內(nèi)存變量。把一個空字符賦值給內(nèi)存變量。 例例7-2 7-2 編一程序,將人事數(shù)據(jù)表打開,在編一程序,將人事數(shù)據(jù)表打開,在程序運行中輸入人員姓名,顯示指定姓名的程序運行中輸入人員姓名,顯示指定姓名的人員記錄。該程序編寫步驟為:人員記錄。該程序編寫步驟為:步驟步驟1 1:在命令窗口里輸入命令:在命令窗口里輸入命令: MODIFY COMMAND CX2MODIFY COMMAND CX2步

19、驟步驟2 2:在打開的程序窗口里輸入如下語句:在打開的程序窗口里輸入如下語句:NOTE NOTE 該程序查找指定姓名的人員信息。該程序查找指定姓名的人員信息。CLEARCLEARUSE rsbUSE rsbACCEPT ACCEPT 請輸入要查找的姓名:請輸入要查找的姓名: TO name TO nameLOCATE FOR ALLTRIM(LOCATE FOR ALLTRIM(姓名姓名)=name)=nameDISPLAYDISPLAYRETURN RETURN 步驟步驟3 3:按:按Ctrl+WCtrl+W保存該程序保存該程序步驟步驟4 4:運行程序,在命令窗口里輸入:運行程序,在命令窗口

20、里輸入: DO CX2 DO CX2 1. 1. 字符型數(shù)據(jù)輸入命令字符型數(shù)據(jù)輸入命令ACCEPTACCEPT格式:格式:ACCEPT ACCEPT TO TO 功能:暫停程序的執(zhí)行,等待用戶輸入一個字符串給變量功能:暫停程序的執(zhí)行,等待用戶輸入一個字符串給變量第第7章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.4 7.1.4 交互式的輸入命令交互式的輸入命令說明:說明:a. a. ,同,同“ACCEPT”ACCEPT”命令中的命令中的含義。含義。b. b. 用戶可輸入任何一個合法的數(shù)值型(用戶可輸入任何一個合法的數(shù)值型(N N)、字符)、字符型(型(C

21、 C)、日期型()、日期型(D D)、邏輯型()、邏輯型(L L)表達式,)表達式,系統(tǒng)先計算表達式的值并將該值賦值給內(nèi)存變系統(tǒng)先計算表達式的值并將該值賦值給內(nèi)存變量。量。c. c. 如果輸入字符串信息,則必須加上雙引號或單如果輸入字符串信息,則必須加上雙引號或單引號定界符,如引號定界符,如ABCABC。d. d. 按按EnterEnter鍵結束輸入,系統(tǒng)將表達式的值賦值給鍵結束輸入,系統(tǒng)將表達式的值賦值給內(nèi)存變量。內(nèi)存變量。e. e. 如果輸入的是非法表達式,系統(tǒng)將提示您重新如果輸入的是非法表達式,系統(tǒng)將提示您重新輸入。輸入。 例例7-3 7-3 已知圓半徑為已知圓半徑為r r,求圓面積,求

22、圓面積s s(要求四(要求四舍五入保留三位小數(shù))。舍五入保留三位小數(shù))。假設圓的半徑為假設圓的半徑為r r,則計算圓面積,則計算圓面積s s的公式為:的公式為: s=rs=r2 2,計算圓面積公式的,計算圓面積公式的Visual FoxProVisual FoxPro表達表達式為:式為:PI()PI()* *r2 r2 。程序編寫步驟如下:。程序編寫步驟如下:步驟步驟1 1:在命令窗口里輸入:在命令窗口里輸入: MODIFY COMMAND CX3MODIFY COMMAND CX3步驟步驟2 2:在打開的程序窗口里輸入如下語句:在打開的程序窗口里輸入如下語句:* * 該程序用于計算指定半徑的

23、圓的面積。該程序用于計算指定半徑的圓的面積。CLEARCLEARINPUT INPUT 請輸入圓半徑請輸入圓半徑r= TO rr= TO rs=ROUND(PI()s=ROUND(PI()* *r2,3) r2,3) &ROUND&ROUND函數(shù)為四舍五入函數(shù)函數(shù)為四舍五入函數(shù)?該圓半徑為:該圓半徑為:,r,r?該圓面積為:該圓面積為:,s,sRETURNRETURN 步驟步驟3 3:按:按Ctrl+WCtrl+W保存該程序文件。保存該程序文件。步驟步驟4 4:在命令窗口里輸入運行命令:在命令窗口里輸入運行命令: DO CX3 DO CX3 2. 2. 表達式輸入命令表達式輸入

24、命令INPUTINPUT格式:格式:INPUTINPUTTO TO 功能:暫停程序的執(zhí)行,接受用戶輸入合法表功能:暫停程序的執(zhí)行,接受用戶輸入合法表達式并將表達式的值賦值給內(nèi)存變量。達式并將表達式的值賦值給內(nèi)存變量。注意:請認真掌握程序編寫與運行的注意:請認真掌握程序編寫與運行的4 4個步驟,以后例題中只說明個步驟,以后例題中只說明“步驟步驟3”3”。第第7章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.4 交互式的輸入命令交互式的輸入命令說明:說明:a. a. ,指定要顯示的自定義信,指定要顯示的自定義信息。若省略該參數(shù),則息。若省略該參數(shù),則 Visu

25、al FoxPro Visual FoxPro 顯示默顯示默認的信息認的信息“按任意鍵繼續(xù)按任意鍵繼續(xù)”。如果該參數(shù)。如果該參數(shù)為空字符,則不顯示信息。為空字符,則不顯示信息。b. WINDOWSb. WINDOWS:在:在 Visual FoxPro Visual FoxPro 主窗口右上角主窗口右上角的系統(tǒng)信息窗口中,顯示提示信息。如果指定的系統(tǒng)信息窗口中,顯示提示信息。如果指定AT AT ,,則該窗口在指定屏,則該窗口在指定屏幕坐標位置顯示。幕坐標位置顯示。c. TIMEOUT c. TIMEOUT :指定在執(zhí)行:指定在執(zhí)行 WAIT WAIT 命令命令之后,程序暫停的時間,之后,程序暫

26、停的時間, 參數(shù)指定參數(shù)指定等待的時間秒數(shù)。等待的時間秒數(shù)。d. NOWAITd. NOWAIT子句指在前述指定的子句指在前述指定的WindwosWindwos窗口中顯示窗口中顯示W(wǎng)AITWAIT信息的同時,程序繼續(xù)執(zhí)行而不暫停。信息的同時,程序繼續(xù)執(zhí)行而不暫停。 例如下列命令將在屏幕例如下列命令將在屏幕1818行、行、1818列位置處顯示列位置處顯示一含有提示信息的小窗口,如圖一含有提示信息的小窗口,如圖7-87-8所示。所示。WAIT “WAIT “請稍后,程序?qū)⒗^續(xù)執(zhí)請稍后,程序?qū)⒗^續(xù)執(zhí).。”; ; WINDOWS AT 18,18 TIMEOUT 8 WINDOWS AT 18,18

27、TIMEOUT 8 3. 3. 程序暫停、等待接收單字符命令程序暫停、等待接收單字符命令WAITWAIT格式:格式:WAIT WAIT TO TO WINDOWSAT WINDOWSAT , TIMEOUT TIMEOUTNOWAITNOWAIT功能:暫停程序,用戶按任意鍵或者時間超過等待的秒數(shù)后,程序繼續(xù)執(zhí)行。如果包含功能:暫停程序,用戶按任意鍵或者時間超過等待的秒數(shù)后,程序繼續(xù)執(zhí)行。如果包含TO TO 短語,將用戶所按鍵盤字符賦值給指定的內(nèi)存變量。短語,將用戶所按鍵盤字符賦值給指定的內(nèi)存變量。圖圖7-8 WAIT7-8 WAIT命令顯示的信息窗口命令顯示的信息窗口此時單擊鼠標按鍵、按下鍵盤

28、上任意一個按此時單擊鼠標按鍵、按下鍵盤上任意一個按鍵或小窗口在屏幕上停留鍵或小窗口在屏幕上停留8 8秒后,從屏幕上秒后,從屏幕上消失。消失。第第7 7章章 程序設計程序設計7.1 7.1 程序文件的建立與運行程序文件的建立與運行7.1.4 交互式的輸入命令交互式的輸入命令說明:說明:a. a. 用于指定在屏幕上輸出的行、列位置坐標。用于指定在屏幕上輸出的行、列位置坐標。行和列均應是數(shù)值表達式,并且系統(tǒng)將自動對其進行取整行和列均應是數(shù)值表達式,并且系統(tǒng)將自動對其進行取整數(shù)。數(shù)。b. SAY b. SAY 子句用來在屏幕上指定的行、列位置輸出指子句用來在屏幕上指定的行、列位置輸出指定表達式的值。定

29、表達式的值。c. GET c. GET 子句用來在屏幕上輸入指定變量的值,且必須子句用來在屏幕上輸入指定變量的值,且必須與與READREAD命令配套使用,帶有命令配套使用,帶有GET GET 子句如果不與子句如果不與READREAD命令配套使用,則指定的變量不能被輸入數(shù)據(jù)。這里的變命令配套使用,則指定的變量不能被輸入數(shù)據(jù)。這里的變量應該預先賦初值或用量應該預先賦初值或用 DEFAULT DEFAULT 為其賦初值。為其賦初值。d. DEFAULT d. DEFAULT 子句用來給子句用來給GET GET 子句中的變量子句中的變量賦初值。如果程序在該語句之前有對變量賦初值,就不要賦初值。如果程序

30、在該語句之前有對變量賦初值,就不要使用使用DEFAULT DEFAULT 子句。子句。e. RANGE e. RANGE , 2 子句用來規(guī)定由子句用來規(guī)定由GETGET子句輸入子句輸入的數(shù)值型或日期型數(shù)據(jù)的上下界,的數(shù)值型或日期型數(shù)據(jù)的上下界, 1為下界,為下界, 2為上界,這兩個表達式的類型都必須與為上界,這兩個表達式的類型都必須與GETGET子句中子句中變量的類型一致。變量的類型一致。f. VALID f. VALID 子句用來規(guī)定子句用來規(guī)定GETGET子句輸入的變量值所需符子句輸入的變量值所需符合的條件,以檢測在合的條件,以檢測在READREAD操作時由鍵盤輸入數(shù)據(jù)的合法性。操作時由

31、鍵盤輸入數(shù)據(jù)的合法性。 例例7-4 7-4 定位輸出命令編程舉例。將人事數(shù)據(jù)表打開,新定位輸出命令編程舉例。將人事數(shù)據(jù)表打開,新增加一條記錄部分字段內(nèi)容,增加完成后在瀏覽窗口顯示增加一條記錄部分字段內(nèi)容,增加完成后在瀏覽窗口顯示數(shù)據(jù)表記錄內(nèi)容,關閉瀏覽窗口,屏幕出現(xiàn)等待信息窗口,數(shù)據(jù)表記錄內(nèi)容,關閉瀏覽窗口,屏幕出現(xiàn)等待信息窗口,8 8秒后,等待信息窗口關閉,清屏并關閉數(shù)據(jù)表,程序結秒后,等待信息窗口關閉,清屏并關閉數(shù)據(jù)表,程序結束。該程序如下:束。該程序如下:CLEARCLEARUSE rsbUSE rsbAPPEND BLANKAPPEND BLANK 3,8 SAY 3,8 SAY 請輸

32、入新職工信息:請輸入新職工信息: 4,8 SAY 4,8 SAY 姓名:姓名: GET GET 姓名姓名 5,8 SAY 5,8 SAY 性別:性別: GET GET 性別性別 VALID VALID 性別性別$男女男女 6,8 SAY 6,8 SAY 基本工資:基本工資: GET GET 基本工資基本工資 RANGE RANGE 500,2500500,2500READREADBROWSEBROWSEWAIT WAIT 程序?qū)⒃诔绦驅(qū)⒃? 8秒后關閉秒后關閉.。 WINDOWS AT 18,8 WINDOWS AT 18,8 TIMEOUT 8TIMEOUT 8USEUSECLEARCLEA

33、RRETURNRETURN4. 4. 定位輸出與輸入命令定位輸出與輸入命令格式:格式: SAY SAY GET GET DEFAULT DEFAULT RANGE RANGE , VALID VALID 功能:在屏幕上指定行、列位置輸出指定表達式的值,并且(或者)獲得所指定變量的值。功能:在屏幕上指定行、列位置輸出指定表達式的值,并且(或者)獲得所指定變量的值。第第7 7章章 程序設計程序設計7.2 7.2 程序的控制結構程序的控制結構程序設計包括三種基本結構,即順序結構、選擇結構、循環(huán)結構。程序設計包括三種基本結構,即順序結構、選擇結構、循環(huán)結構。7.2.1 7.2.1 順序結構順序結構 順

34、序結構是程序設計中最基本的結構,該結構按照程序命令出現(xiàn)的先后順序,依次執(zhí)行。順序結構是程序設計中最基本的結構,該結構按照程序命令出現(xiàn)的先后順序,依次執(zhí)行。其它結構作為它的組成部分而存在于程序之中。事實上,程序中的命令如果不進行特殊說明,其它結構作為它的組成部分而存在于程序之中。事實上,程序中的命令如果不進行特殊說明,就自動按其前后排列順序執(zhí)行。我們以前介紹的幾個例題都是順序結構程序設計題目。再看例就自動按其前后排列順序執(zhí)行。我們以前介紹的幾個例題都是順序結構程序設計題目。再看例題題7-57-5。 例例7-5 7-5 假設我國假設我國20042004年國民生產(chǎn)總值為年國民生產(chǎn)總值為130,000

35、130,000億元,按每年平均億元,按每年平均8%8%的速的速度遞增,編程計算到度遞增,編程計算到20102010年我國國民生產(chǎn)總值將會達到多少?年我國國民生產(chǎn)總值將會達到多少?計算國民生產(chǎn)總值的公式為:未來值計算國民生產(chǎn)總值的公式為:未來值p1=p1=初值初值p0p0(1+1+速度速度a a)時間間隔時間間隔這里,初值這里,初值 p0=130000 p0=130000 億元,速度為億元,速度為 a=0.08a=0.08,時間間隔,時間間隔 n=2010-2004=6n=2010-2004=6,P1P1為未來待計算的值。為未來待計算的值。Visual FoxProVisual FoxPro計算

36、表達式為:計算表達式為:p1=p0p1=p0* *(1+a)n (1+a)n 。該。該程序流程圖如圖程序流程圖如圖7-97-9所示。程序代碼如下:所示。程序代碼如下:CLEARCLEARp0=130000p0=130000a=0.08a=0.08n=6n=6p1=p0p1=p0* *(1+a)n(1+a)n?我國我國20042004年的國民生產(chǎn)總值為:年的國民生產(chǎn)總值為:,p0,p0?我國我國20102010年的國民生產(chǎn)總值為:年的國民生產(chǎn)總值為:,p1,p1RETURNRETURN圖圖7-9 例例7-5程序框圖程序框圖例題例題7-67-6同學們自學,并總結一下,程序設計的方法。同學們自學,并

37、總結一下,程序設計的方法。第第7 7章章 程序設計程序設計7.2 7.2 程序的控制結構程序的控制結構7.2.2 7.2.2 選擇結構選擇結構 選擇結構,是一種常用的基本結構,在一般程序中都要使用到它。按照選擇結構選擇結構,是一種常用的基本結構,在一般程序中都要使用到它。按照選擇結構執(zhí)行路徑的多少,可分為簡單分支結構、雙分支選擇結構和多分支選擇結構。無論是執(zhí)行路徑的多少,可分為簡單分支結構、雙分支選擇結構和多分支選擇結構。無論是那種類型的選擇結構,都是根據(jù)所給條件是否為真,選擇執(zhí)行某一分支的相應操作。那種類型的選擇結構,都是根據(jù)所給條件是否為真,選擇執(zhí)行某一分支的相應操作。 1. 簡單分支結構

38、簡單分支結構 簡單分支結構是由簡單分支結構是由IF語句開頭,以語句開頭,以ENDIF語句結束的若干條命令組成的。語句結束的若干條命令組成的。 格式:格式: IF 命令序列命令序列 ENDIF說明:說明: a. 根據(jù)根據(jù)的邏輯值進行判斷。如果的邏輯值進行判斷。如果的邏輯值為的邏輯值為.T.,就依次執(zhí)行,就依次執(zhí)行命令命令序列序列,執(zhí)行完后就轉去執(zhí)行,執(zhí)行完后就轉去執(zhí)行ENDIF之后的命令。如果之后的命令。如果的邏輯值為的邏輯值為.F.,則,則IF和和ENDIF之間的所有命令都不執(zhí)行,而直接轉到之間的所有命令都不執(zhí)行,而直接轉到ENDIF之后的命令。之后的命令。 b. IF語句和語句和ENDIF語

39、句必須成對出現(xiàn),且各占一行。語句必須成對出現(xiàn),且各占一行。 c. 為了程序閱讀方便,便于以后維護修改,建議對于為了程序閱讀方便,便于以后維護修改,建議對于命令序列命令序列部分采取向右縮部分采取向右縮進書寫的方式。進書寫的方式。第第7 7章章 程序設計程序設計7.2 7.2 程序的控制結構程序的控制結構7.2.2 選擇結構選擇結構1. 簡單結構簡單結構 例例7-7 7-7 鐵路托運行李,按規(guī)定每張客票托運行李不超過鐵路托運行李,按規(guī)定每張客票托運行李不超過5050公斤時,每公斤時,每公斤公斤0.250.25元,如超過元,如超過5050公斤,超過部分按每公斤公斤,超過部分按每公斤0.450.45元

40、計算。編寫一個元計算。編寫一個程序,把行李重量輸入計算機,計算出運費,并打印出付款清單。程序,把行李重量輸入計算機,計算出運費,并打印出付款清單。問題分析:設行李重量為問題分析:設行李重量為W W公斤,應付運費為公斤,應付運費為P P元,則運費公式為:元,則運費公式為:p=0.25p=0.25w w 當當W50W50p=50p=500.25+(w-50)0.25+(w-50)0.45 0.45 當當W W5050根據(jù)以上分析,該問題計算機程序框圖如圖根據(jù)以上分析,該問題計算機程序框圖如圖7-137-13所示。程序如下:所示。程序如下: NOTE NOTE 計算鐵路托運行李費,計算鐵路托運行李費

41、,W W為行李重量,為行李重量,P P為運費。為運費。 CLEARCLEAR INPUT INPUT 請輸入行李重量:請輸入行李重量: TO w TO w P=0.25 P=0.25* *w w IF w50 IF w50 P=50 P=50* *0.25+(w-50)0.25+(w-50)* *0.450.45 ENDIF ENDIF ? ?行李重量為:行李重量為:,w,w ? ?應付運費為:應付運費為:,p,p RETURN RETURN 圖圖7-13 例例7-7程序框圖程序框圖例題例題7-87-8同學們自學。同學們自學。第第7 7章章 程序設計程序設計7.2 7.2 程序的控制結構程序的

42、控制結構7.2.2 選擇結構選擇結構2.雙分支簡單結構雙分支簡單結構 雙分支選擇結構也是由雙分支選擇結構也是由IFIF語句開頭,以語句開頭,以ENDIFENDIF語句結束的若干條命令組成的,但其中包語句結束的若干條命令組成的,但其中包含一條含一條ELSEELSE語句。語句。格式:格式: IF IF 命令序列命令序列11 ELSE ELSE 命令序列命令序列22 ENDIF ENDIF說明:說明:a. a. 如果如果 的邏輯值為的邏輯值為.T.T.,就執(zhí)行,就執(zhí)行 命令序命令序列列11,執(zhí)行完后就轉到執(zhí)行,執(zhí)行完后就轉到執(zhí)行ENDIFENDIF之后的命令。之后的命令。如果如果 的邏輯值為的邏輯值

43、為.F.F.,就執(zhí)行,就執(zhí)行 命令序列命令序列22,完成后,轉去執(zhí)行,完成后,轉去執(zhí)行ENDIFENDIF之后的命令。之后的命令。b. ELSEb. ELSE語句單獨占一行,語句單獨占一行,IFIF語句和語句和ENDIFENDIF語句語句必須成對出現(xiàn),且各占一行。必須成對出現(xiàn),且各占一行。 例例7-9 7-9 設出租車不超過設出租車不超過3 3公里時一律收公里時一律收費費7 7元錢,超過時則超過部分每公里加收元錢,超過時則超過部分每公里加收2.62.6元。試根據(jù)里程數(shù)編程計算并顯示出元。試根據(jù)里程數(shù)編程計算并顯示出應付車費。程序如下:應付車費。程序如下:CLEARCLEARINPUT INPU

44、T 請輸入里程數(shù):請輸入里程數(shù): TO lc TO lcIF lcIF lc=3=3 cf cf=7=7ELSEELSE cf cf=7+(lc-3)=7+(lc-3)* *2.62.6ENDIFENDIF?車費為:車費為:,cf,cfRETURNRETURN例題例題7-107-10和和MESSAGEBOXMESSAGEBOX函數(shù)同學們自學。函數(shù)同學們自學。第第7 7章章 程序設計程序設計7.2 7.2 程序的控制結構程序的控制結構7.2.2 7.2.2 選擇結構選擇結構3.3.分支嵌套結構分支嵌套結構 對于在上述分支結構中的對于在上述分支結構中的 ,可以包含任何,可以包含任何Visual F

45、oxProVisual FoxPro命令語句,也可以包括另命令語句,也可以包括另外一個或幾個合法的分支結構語句,也就是說分支結構可以嵌套。對于嵌套的分支結構語句,一外一個或幾個合法的分支結構語句,也就是說分支結構可以嵌套。對于嵌套的分支結構語句,一定注意內(nèi)外層分支結構層次分明,即注意各個層次的定注意內(nèi)外層分支結構層次分明,即注意各個層次的IF. ELSE.ENDIFIF. ELSE.ENDIF語句配對情況。語句配對情況。 例例7-11 7-11 永立公司對銷售人員的報酬計算方法如永立公司對銷售人員的報酬計算方法如下:每月銷售下:每月銷售1010萬元(含萬元(含1010萬元)以下者,只得基萬元)

46、以下者,只得基本工資本工資10001000元;每月銷售元;每月銷售1010萬元以上至萬元以上至3030萬元(含萬元(含3030萬元)者,則超過萬元)者,則超過1010萬元以上部分按萬元以上部分按2%2%提成;每提成;每月銷售月銷售3030萬至萬至5050萬(含萬(含5050萬元)者,超過萬元)者,超過3030萬元部萬元部分按分按5%5%提成;超過提成;超過5050萬元部分按萬元部分按10%10%提成。以上各個提成。以上各個級別的計算實行累加計算。編程按輸入每個銷售人級別的計算實行累加計算。編程按輸入每個銷售人員編號和銷售額,計算每個銷售人員的報酬(報酬員編號和銷售額,計算每個銷售人員的報酬(報

47、酬結果按四舍五入規(guī)則取整)。結果按四舍五入規(guī)則取整)。編程思路:為了編程方便,先將每個級別的基準報編程思路:為了編程方便,先將每個級別的基準報酬計算出來,再根據(jù)銷售額的多少用嵌套分支結構酬計算出來,再根據(jù)銷售額的多少用嵌套分支結構判斷計算。該程序編寫如下:判斷計算。該程序編寫如下: CLEARCLEARACCEPT ACCEPT 銷售員編號:銷售員編號: TO salenumber TO salenumberINPUT INPUT 銷售額:銷售額: TO salevolume TO salevolume pay1=1000pay1=1000pay2=pay1+ROUND(300000-1000

48、00)pay2=pay1+ROUND(300000-100000)* *0.02,0)0.02,0)pay3=pay2+ROUND(500000-300000)pay3=pay2+ROUND(500000-300000)* *0.05,0)0.05,0)IF salevolumeIF salevolume=100000=100000 pays=pay1 pays=pay1ELSEELSE IF salevolume IF salevolume=300000=300000 pays=pay1+ROUND(salevolume-100000) pays=pay1+ROUND(salevolume-

49、100000)* *0.02,0)0.02,0) ELSE ELSE IF salevolume IF salevolume=500000=500000 pays=pay2+ROUND(salevolume- pays=pay2+ROUND(salevolume-300000)300000)* *0.05,0)0.05,0) ELSE ELSE pays=pay3+ROUND(salevolume-500000) pays=pay3+ROUND(salevolume-500000)* *0.1,0)0.1,0) ENDIF ENDIF ENDIF ENDIFENDIFENDIF?salenum

50、ber?salenumber+號銷售員工作報酬:號銷售員工作報酬:+STR(pays,6,0)+STR(pays,6,0)RETURN RETURN 第第7 7章章 程序設計程序設計7.2 7.2 程序的控制結構程序的控制結構7.2.2 7.2.2 選擇結構選擇結構4.4.多分支選擇結構多分支選擇結構雖然上述的分支嵌套結構可以解決程序雖然上述的分支嵌套結構可以解決程序設計中的多重選擇問題,但當嵌套的層設計中的多重選擇問題,但當嵌套的層數(shù)較深時,則往往會引起結構的混亂,數(shù)較深時,則往往會引起結構的混亂,也使程序的可讀性不好。也使程序的可讀性不好。Visual Visual FoxProFoxPr

51、o提供了多分支結構來解決多種不提供了多分支結構來解決多種不同情況下的程序選擇問題。同情況下的程序選擇問題。格式:格式:DO CASEDO CASE CASE CASE 1 1 CASE CASE 2 2 . . CASE CASE n n OTHERWISE OTHERWISE n+1ENDCASEENDCASE說明:說明:a. a. 多分支選擇結構執(zhí)行的過程是:系統(tǒng)依次多分支選擇結構執(zhí)行的過程是:系統(tǒng)依次判斷各判斷各 是否滿足,若某一是否滿足,若某一 為為.T.T.,就執(zhí)行該就執(zhí)行該 下的下的 ,執(zhí)行后不,執(zhí)行后不再判斷其它再判斷其它 ,而轉去執(zhí)行,而轉去執(zhí)行ENDCASEENDCASE后面

52、后面的第一條命令。如果沒有一個的第一條命令。如果沒有一個 為為.T.T.,就執(zhí)行就執(zhí)行OTHERWISEOTHERWISE后面的后面的 命令序列命令序列 ,直到,直到ENDCASEENDCASE;如果沒有;如果沒有OTHERWISEOTHERWISE,則不作任何,則不作任何操作就轉向操作就轉向ENDCASEENDCASE之后的第一條命令。之后的第一條命令。b. DO CASEb. DO CASE語句和語句和ENDCASEENDCASE語句必須成對出現(xiàn),語句必須成對出現(xiàn),各占一行。各占一行。c. c. 多分支選擇結構中各多分支選擇結構中各CASECASE語句后的語句后的 是按其先后順序判斷執(zhí)行的

53、,因此對實際問是按其先后順序判斷執(zhí)行的,因此對實際問題進行編程時,應認真考慮各個條件排列的題進行編程時,應認真考慮各個條件排列的先后順序。先后順序。 第第7 7章章 程序設計程序設計7.2 7.2 程序的控制結構程序的控制結構4.4.多多分支選擇結構舉例:將例分支選擇結構舉例:將例7-117-11用多分支選擇結構求解出來。左面藍色程序代碼為分支嵌套程用多分支選擇結構求解出來。左面藍色程序代碼為分支嵌套程序,右面紅色程序代碼為多分支選擇結構程序代碼。序,右面紅色程序代碼為多分支選擇結構程序代碼。CLEARCLEARACCEPT ACCEPT 銷售員編號:銷售員編號: TO salenumber

54、TO salenumberINPUT INPUT 銷售額:銷售額: TO salevolume TO salevolumepay1=1000pay1=1000pay2=pay1+ROUND(300000-100000)pay2=pay1+ROUND(300000-100000)* *0.02,0)0.02,0)pay3=pay2+ROUND(500000-300000)pay3=pay2+ROUND(500000-300000)* *0.05,0)0.05,0)IF salevolumeIF salevolume=100000=100000 pays=pay1 pays=pay1ELSEELS

55、E IF salevolume IF salevolume=300000=300000 pays=pay1+ROUND(salevolume-100000) pays=pay1+ROUND(salevolume-100000)* *0.02,0)0.02,0) ELSE ELSE IF salevolume IF salevolume=500000=500000 pays=pay2+ROUND(salevolume-300000) pays=pay2+ROUND(salevolume-300000)* *0.05,0)0.05,0) ELSE ELSE pays=pay3+ROUND(sale

56、volume-500000) pays=pay3+ROUND(salevolume-500000)* *0.1,0)0.1,0) ENDIF ENDIF ENDIF ENDIFENDIFENDIF?salenumber?salenumber+號銷售員工作報酬:號銷售員工作報酬:+STR(pays,6,0)+STR(pays,6,0)RETURN RETURN CLEARCLEARACCEPT ACCEPT 銷售員編號:銷售員編號: TO salenumber TO salenumberINPUT INPUT 銷售額:銷售額: TO salevolume TO salevolumepay1=10

57、00pay1=1000pay2=pay1+ROUND(300000-100000)pay2=pay1+ROUND(300000-100000)* *0.02,0)0.02,0)pay3=pay2+ROUND(500000-300000)pay3=pay2+ROUND(500000-300000)* *0.05,0)0.05,0)DO CASEDO CASE CASE salevolume CASE salevolume=100000=100000 pays=pay1 pays=pay1 CASE salevolume CASE salevolume=300000=300000 pays=pay

58、1+ROUND(salevolume-100000) pays=pay1+ROUND(salevolume-100000)* *0.02,0)0.02,0) CASE salevolume CASE salevolume=500000=500000 pays=pay2+ROUND(salevolume-300000) pays=pay2+ROUND(salevolume-300000)* *0.05,0)0.05,0) OTHERWISE OTHERWISE pays=pay3+ROUND(salevolume-500000) pays=pay3+ROUND(salevolume-500000

59、)* *0.1,0)0.1,0)ENDCASEENDCASE?salenumber?salenumber+號銷售員工作報酬:號銷售員工作報酬:+STR(pays,6,0)+STR(pays,6,0)RETURN RETURN 由此可見,利用多分枝選擇結構編程比分支嵌套結構編程清晰、簡單。由此可見,利用多分枝選擇結構編程比分支嵌套結構編程清晰、簡單。第第7 7章章 程序設計程序設計7.2 7.2 程序的控制結構程序的控制結構7.2.3 7.2.3 循環(huán)結構循環(huán)結構 在程序設計中,有時需要從某處開始有規(guī)律地反復執(zhí)行某些類似的操作,這些類似的操作一在程序設計中,有時需要從某處開始有規(guī)律地反復執(zhí)行某些

60、類似的操作,這些類似的操作一般用循環(huán)結構程序設計來解決。在般用循環(huán)結構程序設計來解決。在Visual FoxProVisual FoxPro中,提供了中,提供了“當型當型”、“步長型步長型”和和“表掃描型表掃描型”循環(huán)結構。循環(huán)結構。 1. 1. 當型循環(huán)結構當型循環(huán)結構格式:格式: DO WHILE DO WHILE 命令序列命令序列 ENDDO ENDDO說明:說明:a. a. 當型循環(huán)執(zhí)行的過程是:根據(jù)當型循環(huán)執(zhí)行的過程是:根據(jù) 的邏輯值,進行判斷。如果的邏輯值,進行判斷。如果 的邏輯值為的邏輯值為.T.T.,則執(zhí)行,則執(zhí)行DO WHILEDO WHILE和和ENDDOENDDO之間的之間的 命令序列命令序列 ,當,當 命令序列命令序列 包含的所有命令執(zhí)行完畢后,程序自動返回到包含的所有命令執(zhí)行完畢后,程序自動返回到DO

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論