程序設(shè)計(jì)基實(shí)用教案_第1頁
程序設(shè)計(jì)基實(shí)用教案_第2頁
程序設(shè)計(jì)基實(shí)用教案_第3頁
程序設(shè)計(jì)基實(shí)用教案_第4頁
程序設(shè)計(jì)基實(shí)用教案_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、6.1.1 程序(chngx)的建立與編輯創(chuàng)建程序:(1)在“文件”菜單中選擇(xunz)“新建”命令(或工具欄中“新建”按鈕),然后在“新建”對(duì)話框中選擇(xunz)“程序”單選按鈕,再單擊“新建文件”按鈕。(2)命令窗口中,鍵入命令:MODIFY COMMAND 文件名擴(kuò)展名保存程序(1)從“文件”菜單中選取“保存”命令 (2)按“CTRL+W”組合鍵 。編輯程序(1)在“文件”菜單中選擇(xunz)“打開”命令(2)命令窗口中:MODIFY COMMAND 第1頁/共55頁第一頁,共56頁。程序的書寫(shxi)規(guī)則 注釋語句(yj) 格式: NOTE *& 對(duì)話開關(guān)語句(yj)

2、 格式:SET TALK OFF|ON 輸出語句(yj) 格式:? 格式:? 命令的分行 每個(gè)命令都以回車鍵結(jié)束,一行只能寫一條命令;若一條命令太長,并在分行處加上續(xù)行符“;” 。第2頁/共55頁第二頁,共56頁。6.1.2 程序(chngx)文件的運(yùn)行 單擊“程序”菜單中的“運(yùn)行”命令,在打開的運(yùn)行對(duì)話框中找到要執(zhí)行的程序文件,單擊“運(yùn)行”按鈕。 單擊常用工具欄上的“運(yùn)行”按鈕。 在命令窗口中鍵入命令:DO 程序文件名前可以使用路徑,否則指系統(tǒng)默認(rèn)目錄。若運(yùn)行的是.PRG程序則擴(kuò)展名可以省略(shngl)。若運(yùn)行其他的程序則擴(kuò)展名不能省; 第3頁/共55頁第三頁,共56頁。6.1.2 程序文

3、件(wnjin)的運(yùn)行 執(zhí)行程序文件時(shí),將依次執(zhí)行文件中的命令,直到所有命令執(zhí)行完畢,或者執(zhí)行到以下命令: CANCAL:終止程序運(yùn)行,清除所有的私有變量,返回命令窗口; retry:返回到調(diào)用行本身,可以實(shí)現(xiàn)程序的重復(fù)調(diào)用。 RETURN:結(jié)束程序執(zhí)行,返回調(diào)用它的上級(jí)程序,若無上級(jí)程序則返回命令窗口; QUIT:結(jié)束程序執(zhí)行并退出(tuch)Visual FoxPro系統(tǒng),返回操作系統(tǒng) 第4頁/共55頁第四頁,共56頁。6.1.3 簡單(jindn)的輸入輸出命令6.1.3 簡單的輸入輸出命令1ACCEPT命令【格式】ACCEPT TO 【功能】在程序執(zhí)行過程中,將用戶交互式輸入的內(nèi)容(n

4、irng)作為字符串賦值給指定內(nèi)存變量。 該命令只接受字符型數(shù)據(jù),輸入的字符串不需要加定界符 第5頁/共55頁第五頁,共56頁。 【例6-2】編程從鍵盤輸入某數(shù)據(jù)庫的文件名,要求打開(d ki)該數(shù)據(jù)庫并顯示其內(nèi)容。程序文件名為PROG2.PRG。MODI COMMAND PROG2SET TALK OFFCLEARACCEPT “請(qǐng)輸入數(shù)據(jù)庫名:” TO AAAOPEN DATABASE &AAAACCEPT 請(qǐng)輸入表名 TO BBBUSE &BBBLISTUSESET TALK ONRETURN第6頁/共55頁第六頁,共56頁。2INPUT命令 【格式】INPUT TO 【

5、功能】在程序執(zhí)行過程中,將用戶交互式輸入的內(nèi)容賦值給指定(zhdng)內(nèi)存變量 可以輸入字符型、數(shù)值型、邏輯型、日期型和日期時(shí)間型等類型數(shù)據(jù),而且可以是常量、變量、函數(shù)或表達(dá)式等形式,按回車鍵結(jié)束輸入,系統(tǒng)將輸入的數(shù)據(jù)賦值給。第7頁/共55頁第七頁,共56頁?!纠?-4】從鍵盤輸入兩個(gè)任意正數(shù),編程求以兩數(shù)為邊長的長方形面積。程序(chngx)文件名為PROG4.PRGSET TALK OFFCLEARINPUT “長方形一邊的長為:” TO AINPUT “長方形另一邊的長為:” TO BS=A*B? “長方形的面積為:” , SSET TALK ON RETURN第8頁/共55頁第八頁,共

6、56頁。3WAIT命令命令【格式】【格式】WAIT TO WINDOW AT, NOWAIT CLEAR|NOCLEAR TIMEOUT【功能】顯示提示信息,暫停程序執(zhí)行,直到用戶【功能】顯示提示信息,暫停程序執(zhí)行,直到用戶按任意鍵或單擊鼠標(biāo)時(shí)繼續(xù)執(zhí)行程序。按任意鍵或單擊鼠標(biāo)時(shí)繼續(xù)執(zhí)行程序。 若選擇可選項(xiàng)若選擇可選項(xiàng)TO ,將輸入的單,將輸入的單個(gè)字符個(gè)字符(z f)作為字符作為字符(z f)型數(shù)據(jù)賦給指定的型數(shù)據(jù)賦給指定的;若用戶是按;若用戶是按Enter鍵或單擊鼠標(biāo),鍵或單擊鼠標(biāo),的值為空串。的值為空串。 若省略所有可選項(xiàng),屏幕顯示若省略所有可選項(xiàng),屏幕顯示“鍵入任意鍵繼鍵入任意鍵繼續(xù)續(xù)”

7、默認(rèn)提示信息默認(rèn)提示信息 第9頁/共55頁第九頁,共56頁?!?例 6 - 6 】 在 S T U D E N T 數(shù) 據(jù) 庫 的 S T U D 表 中 顯 示 任 意 一 個(gè) 系 學(xué) 生 的 情 況(qngkung)。程序文件名為PROG6.PRGSET TALK OFFCLEAROPEN DATABASE STUDENTUSE STUDWAIT “請(qǐng)輸入待查學(xué)生的系號(hào)(13):” TO NIF VAL(N)3WAIT “輸入無效,結(jié)束程序運(yùn)行!” WINDOW TIMEOUT 5RETURNELSESTORE “0”+N TO AAALIST FOR 系別號(hào)=AAAENDIFCLOSE

8、DATABASESET TALK ONRETURN 第10頁/共55頁第十頁,共56頁。4三條輸入命令的異同三條輸入命令的異同ACCEPT命令只能接受字符型數(shù)據(jù),不需定界符,輸入完畢命令只能接受字符型數(shù)據(jù),不需定界符,輸入完畢(wnb)按回車鍵結(jié)束;按回車鍵結(jié)束; WAIT命令只能輸入單個(gè)字符,且不需定界符,輸入完畢命令只能輸入單個(gè)字符,且不需定界符,輸入完畢(wnb)不不需按回車鍵;需按回車鍵; INPUT命令可接受數(shù)值型、字符型、邏輯型、日期型和日期時(shí)間型命令可接受數(shù)值型、字符型、邏輯型、日期型和日期時(shí)間型數(shù)據(jù),數(shù)據(jù)形式可以是常量、變量、函數(shù)和表達(dá)式,如果是字符串,數(shù)據(jù),數(shù)據(jù)形式可以是常量

9、、變量、函數(shù)和表達(dá)式,如果是字符串,需用定界符,輸入完畢需用定界符,輸入完畢(wnb)按回車鍵結(jié)束。按回車鍵結(jié)束。 第11頁/共55頁第十一頁,共56頁。程序的基本程序的基本(jbn)(jbn)結(jié)構(gòu)結(jié)構(gòu) Visual FoxPro Visual FoxPro系統(tǒng)提供的命令豐富,且功能強(qiáng)大,把這些命令和程序設(shè)計(jì)語句有效地組織在一起,就形成(xngchng)(xngchng)了實(shí)現(xiàn)某一特定功能的程序。 Visual FoxPro Visual FoxPro系統(tǒng)的程序有兩個(gè)特點(diǎn):一是程序控制流模式,由順序、分支、循環(huán)三種基本結(jié)構(gòu)構(gòu)成。二是面向?qū)ο罂梢暬慕Y(jié)構(gòu)程序模塊,在每個(gè)模塊的內(nèi)部也是由程序控制流

10、組成。常見的控制結(jié)構(gòu)如下: 1 1順序結(jié)構(gòu) 順序結(jié)構(gòu)是在程序執(zhí)行時(shí),根據(jù)程序中語句的書寫順序依次執(zhí)行的命令序列。Visual FoxProVisual FoxPro系統(tǒng)中的大多數(shù)命令都可以作為順序結(jié)構(gòu)中的語句。 2 2分支結(jié)構(gòu) 分支結(jié)構(gòu)是在程序執(zhí)行時(shí),根據(jù)不同的條件,選擇執(zhí)行不同的程序語句,用來解決有選擇、有轉(zhuǎn)移的諸多問題。第12頁/共55頁第十二頁,共56頁。 3循環(huán)結(jié)構(gòu) 循環(huán)結(jié)構(gòu)則能夠使某些語句或程序段重復(fù)執(zhí)行若干次。如果某些語句或程序段需要在一個(gè)固定的位置上重復(fù)操作,使用循環(huán)是最好的選擇。 4過程結(jié)構(gòu) 在許多應(yīng)用程序中,有一些程序段需要反復(fù)執(zhí)行多次,這些程序段不在一個(gè)固定的位置上,而是分

11、散在程序的許多位置上重復(fù)執(zhí)行,可將其與嵌入它的程序分開,形成獨(dú)立的程序序列,待使用時(shí)再調(diào)入程序中,以實(shí)現(xiàn)不同位置上的重復(fù)操作。這樣做增強(qiáng)了程序的可讀性和模塊化。我們稱這種具有獨(dú)立功能而且可以被其它(qt)程序調(diào)用的程序序列為過程。第13頁/共55頁第十三頁,共56頁。6.2 程序(chngx)的基本結(jié)構(gòu)求解的基本邏輯:VFP程序多數(shù)用于數(shù)據(jù)處理,解決問題的基本邏輯是:輸入數(shù)據(jù)處理數(shù)據(jù)輸出數(shù)據(jù)。 程序的通用性:程序的通用性指程序?qū)Χ喾N場合(chng h)的適應(yīng)性,通用性好的程序的應(yīng)用范圍較廣。 第14頁/共55頁第十四頁,共56頁。6.2.1 順序(shnx)結(jié)構(gòu) 順序結(jié)構(gòu)是在程序執(zhí)行時(shí),根據(jù)(

12、gnj)程序中語句的書寫順序依次執(zhí)行的命令序列。 例題:將學(xué)生表中學(xué)號(hào)為20050008,其姓名一欄由萬華改為萬強(qiáng)。 CLEAR SET TALK OFF OPEN DATABASE 學(xué)生 USE 學(xué)生 ACCEPT “請(qǐng)輸入要修改記錄的學(xué)號(hào):” to xh LOCATE FOR 學(xué)號(hào)=xh REPLACE 姓名 WITH “萬強(qiáng)” USE CLOSE DATABASE SET TALK ON RETURN第15頁/共55頁第十五頁,共56頁。6.2.2 選擇(xunz)結(jié)構(gòu) 單分支選擇單向選擇語句(yj),即根據(jù)用戶設(shè)置的條件表達(dá)式的值,決定某一操作是否執(zhí)行。(1)語句(yj)格式:IF條件

13、表達(dá)式語句(yj)序列ENDIF(2)單向條件轉(zhuǎn)向語句(yj)的流程圖 第16頁/共55頁第十六頁,共56頁。雙分支選擇雙向選擇語句,即根據(jù)用戶設(shè)置(shzh)的條件表達(dá)式的值,選擇兩個(gè)操作中的一個(gè)來執(zhí)行。(1)語句格式:IF條件表達(dá)式語句序列1ELSE語句序列2ENDIF第17頁/共55頁第十七頁,共56頁。 真 條 件 式 假 語 句 序 列2 語 句 序 列1 ENDIF后 面 語 句 第18頁/共55頁第十八頁,共56頁。例:輸入兩個(gè)(lin )實(shí)數(shù),求它們的最大值。set talk offclearinput “實(shí)數(shù)a=” to ainput “實(shí)數(shù)b=” to bif a=b ma

14、x=aelse max=bendif? a,”與”,b,”中的最大值為:”,maxreturn第19頁/共55頁第十九頁,共56頁。也可以(ky)用單分支的選擇語句來實(shí)現(xiàn)set talk offclearinput “實(shí)數(shù)a=” to ainput “實(shí)數(shù)b=” to bmax=aif ba max=bendif? a,”與”,b,”中的最大值為:”,maxreturn第20頁/共55頁第二十頁,共56頁。例:輸入一個(gè)大于0的年份值,判斷該一年份是否是閏年(rnnin),如果是閏年(rnnin),就輸出“xxxx年是閏年(rnnin)”,否則輸出“xxxx年不是閏年(rnnin)”。.閏年(r

15、nnin)的條件是:能被4整除但不能被100整除,或能被100整除且能被400整除。 第21頁/共55頁第二十一頁,共56頁。多向選擇語句,即根據(jù)(gnj)多個(gè)條件表達(dá)式的值,選擇執(zhí)行多個(gè)操作中的一個(gè)對(duì)應(yīng)執(zhí)行。(1)語句格式:DO CASECASE條件表達(dá)式1CASE條件表達(dá)式2 CASE條件表達(dá)式NOTHERWISE ENDCASE 真 條件式 2 語句序列 1 ENDCASE 后面語句 條件式 n-1 Otherwise 條件式 1 真 語句序列 2 真 語句序列 n-1 有 語句序列 n 無 第22頁/共55頁第二十二頁,共56頁?!纠考僭O(shè)收入(P)與稅率(R)的關(guān)系如下表,編程求稅金

16、。程序文件名為TAX.PRG。 0 , P800R= 0.05 , 800 P2000 0.08 , 2000P5000 0.1 , P5000第23頁/共55頁第二十三頁,共56頁。SET TALK OFFCLEARINPUT “請(qǐng)輸入(shr)收入:” TO PDO CASE CASE P800 R=0 CASE P2000 R=0.05 CASE P=b,a,b)? a,”與”,b,”中的最大值為:”,maxreturn第27頁/共55頁第二十七頁,共56頁。例:用IIF( )來實(shí)現(xiàn)P.163 例6-7。文件名exam_if_1.prgset talk offclearinput “實(shí)數(shù)

17、(shsh)x=” to xy=iif(x0,iif(x10,x*x+1,3*x*x-2*x+1),x*x+4*x-1)? “分段函數(shù)值為:”+str(y,10,2)set talk onreturn第28頁/共55頁第二十八頁,共56頁。第29頁/共55頁第二十九頁,共56頁。6.2.3 循環(huán)(xnhun)結(jié)構(gòu) 1. DO WHILE循環(huán)(xnhun)語句 格式:DO WHILE ENDDO E N D D O 后 面 的 語 句 條 件 表 達(dá) 式 式 真 循 環(huán) 體 假 第30頁/共55頁第三十頁,共56頁。【例6-9】編程求246100之和。SET TALK OFFCLEARS=0I=

18、2DO WHILE I=CTOD(“1985-01-01”)DISPLAYENDIFSKIPENDDOUSECLOSE DATABASERETURN第32頁/共55頁第三十二頁,共56頁。第33頁/共55頁第三十三頁,共56頁。SET TALK OFFCLEARSTORE 0 TO I,MDO WHILE .T. IF M100 EXIT ELSE M=M+I2 ENDIF ?”完全(wnqun)平方數(shù)累加和:”+STR(M,6) I=I+1ENDDOSET TALK ONreturn第34頁/共55頁第三十四頁,共56頁。語句格式(g shi):FOR = TO STEP ENDFOR|NE

19、XT第35頁/共55頁第三十五頁,共56頁。第36頁/共55頁第三十六頁,共56頁。【例6-13】求1000之內(nèi)所有(suyu)偶數(shù)之和。 SET TALK OFFCLEARS=0FOR I=0 TO 1000 STEP 2S=S+INEXT?“1000之內(nèi)所有(suyu)偶數(shù)之和為”,SSET TALK ONRETURN第37頁/共55頁第三十七頁,共56頁?!纠?-14】從鍵盤輸入10個(gè)數(shù),編程找出其中(qzhng)的最大值和最小值。SET TALK OFFCLEARINPUT “請(qǐng)從鍵盤輸入一個(gè)數(shù):” TO ASTORE A TO MAX_VAL,MIN_VALFOR I=2 TO 10

20、 INPUT “請(qǐng)從鍵盤輸入一個(gè)數(shù):” TO A IF MAX_VALA MIN_VAL=A ENDIFENDFOR?“最大值為:” , MAX_VAL?“最小值為:” , MIN_VALSET TALK ONRETURN第38頁/共55頁第三十八頁,共56頁。3. “指針”型循環(huán)(xnhun)控制語句 (1)語句格式:SCANFOR WHILE ENDSCAN(2)語句功能: 該語句在指定的范圍內(nèi),用數(shù)據(jù)(shj)記錄指針來控制循環(huán)次數(shù)。執(zhí)行語句時(shí),首先判斷函數(shù)EOF( )的值,若其值為“真”,則結(jié)束循環(huán),否則,結(jié)合條件表達(dá)式1或條件表達(dá)式2,執(zhí)行命令行序列,記錄指針移到指定的范圍和條件內(nèi)的

21、下一條記錄,重新判斷函數(shù)EOF( )的值,直到函數(shù)EOF( )的值為真時(shí)結(jié)束循環(huán)。第39頁/共55頁第三十九頁,共56頁?!纠?-16】分別統(tǒng)計(jì)“學(xué)生”表中男生(nnshng)和女生的人數(shù)。SET TALK OFFCLEAROPEN DATABASE 學(xué)生(xu sheng)USE 學(xué)生(xu sheng)sotre 0 to x,ySCANIF 性別=“男” x=x+1ELSE y=y+1ENDIFENDSCAN? “男生(nnshng)人數(shù):”,x,”女生人數(shù):”,yUSECLOSE DATABASESET TALK ONRETURN第40頁/共55頁第四十頁,共56頁。【例6-17】顯示

22、(xinsh)“學(xué)生”表中入學(xué)成績?cè)?00分以上的學(xué)生名單。SET TALK OFFCLEAROPEN DATABASE 學(xué)生USE 學(xué)生SCAN FOR 入學(xué)成績600DISPLAY 學(xué)號(hào),姓名,入學(xué)成績ENDSCANUSECLOSE DATABASESET TALK ONRETURN第41頁/共55頁第四十一頁,共56頁。 多重循環(huán)即循環(huán)的嵌套,是指在一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)體中又包含另一個(gè)循環(huán)。 外循環(huán)我們稱外層循環(huán)為外循環(huán) 內(nèi)循環(huán)被包含的循環(huán)為內(nèi)循環(huán)。 嵌套層數(shù)一般沒有限制,但內(nèi)循環(huán)的循環(huán)體必須完全(wnqun)包含在外循環(huán)的循環(huán)體中,不能相互交叉。第42頁/共55頁第四十二頁,共56頁。下

23、面是一個(gè)DO WHILEENDDO循環(huán)(xnhun)嵌套的一般形式:DO WHILE DO WHILE ENDDO ENDDO 第43頁/共55頁第四十三頁,共56頁。下面(xi mian)是一個(gè)DO WHILEENDDO循環(huán)嵌套一個(gè)FOR 循環(huán)的一般形式:DO WHILE FOR = TO STEP ENDFOR|NEXT ENDDO 第44頁/共55頁第四十四頁,共56頁。下面是一個(gè)FOR循環(huán)嵌套另一個(gè)FOR循環(huán)的一般形式:FOR = TO STEP FOR = TO STEP ENDFOR|NEXT ENDFOR|NEXT第45頁/共55頁第四十五頁,共56頁。下面是一個(gè)FOR循環(huán)嵌套一

24、個(gè)DO WHILEENDDO循環(huán)的一般形式(xngsh):FOR = TO STEP DO WHILE ENDDO ENDFOR|NEXT第46頁/共55頁第四十六頁,共56頁?!纠繌逆I盤輸入n個(gè)實(shí)數(shù),對(duì)它們按從小到大的順序(shnx)排序,并將排序后的這n個(gè)數(shù)依次輸出。冒泡排序演示文件第47頁/共55頁第四十七頁,共56頁。【例】從鍵盤輸入n個(gè)實(shí)數(shù),對(duì)它們(t men)按從小到大的順序排序,并將排序后的這n個(gè)數(shù)依次輸出。* 本程序使用冒泡排序法對(duì)給定的n個(gè)實(shí)數(shù)(shsh)進(jìn)行排序 *SET TALK OFFCLEARdimension a(100)input “自然數(shù) n=” to nfor i=1 to n ? “實(shí)數(shù)(shsh) a(“+str(i,3)+”)=“ input “” to a(i)endfor第48頁/共55頁第四十八頁,共56頁。第49頁/共55頁第四十九頁,共56頁。* 本程序使用do whil

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論