第8章程序設(shè)計基礎(chǔ)2_第1頁
第8章程序設(shè)計基礎(chǔ)2_第2頁
第8章程序設(shè)計基礎(chǔ)2_第3頁
第8章程序設(shè)計基礎(chǔ)2_第4頁
第8章程序設(shè)計基礎(chǔ)2_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Visual Foxpro程序設(shè)計程序設(shè)計第第8章程序設(shè)計基礎(chǔ)章程序設(shè)計基礎(chǔ)本章主要內(nèi)容本章主要內(nèi)容8.1 程序設(shè)計的基本概念與步驟程序設(shè)計的基本概念與步驟8.2 程序中的常用命令程序中的常用命令 8.3 程序控制結(jié)構(gòu)程序控制結(jié)構(gòu)8.4 多模塊程序設(shè)計多模塊程序設(shè)計總頁第2頁8.3.3 循環(huán)結(jié)構(gòu)程序設(shè)計循環(huán)結(jié)構(gòu)程序設(shè)計在程序設(shè)計中,經(jīng)常需要對某一個程序段(即在程序設(shè)計中,經(jīng)常需要對某一個程序段(即一條或多條命令)反復(fù)執(zhí)行,這種程序結(jié)構(gòu)稱為循一條或多條命令)反復(fù)執(zhí)行,這種程序結(jié)構(gòu)稱為循環(huán)結(jié)構(gòu)。環(huán)結(jié)構(gòu)。 循環(huán)結(jié)構(gòu)的特點是:當(dāng)給出的循環(huán)條件為真時,循環(huán)結(jié)構(gòu)的特點是:當(dāng)給出的循環(huán)條件為真時,反復(fù)執(zhí)行一

2、組命令,這組被重復(fù)執(zhí)行的命令序列稱反復(fù)執(zhí)行一組命令,這組被重復(fù)執(zhí)行的命令序列稱為循環(huán)體。當(dāng)循環(huán)條件為假時,則終止循環(huán)體的執(zhí)為循環(huán)體。當(dāng)循環(huán)條件為假時,則終止循環(huán)體的執(zhí)行。循環(huán)結(jié)構(gòu)也就是由循環(huán)條件控制循環(huán)體是否重行。循環(huán)結(jié)構(gòu)也就是由循環(huán)條件控制循環(huán)體是否重復(fù)執(zhí)行的一種語句結(jié)構(gòu),它可以簡化程序,提高程復(fù)執(zhí)行的一種語句結(jié)構(gòu),它可以簡化程序,提高程序效率。常用的循環(huán)語句有以下幾種形式:序效率。常用的循環(huán)語句有以下幾種形式:條件型循環(huán):條件型循環(huán):DO WHILEDO WHILEENDDOENDDO計數(shù)型循環(huán)計數(shù)型循環(huán):FORFORTOTOENDFORENDFOR掃描型循環(huán):掃描型循環(huán):SCANSCAN

3、ENDSCANENDSCAN總頁第3頁一、條件循環(huán)一、條件循環(huán)條件循環(huán)是根據(jù)條件表達式的值,決定循環(huán)體內(nèi)語句的執(zhí)條件循環(huán)是根據(jù)條件表達式的值,決定循環(huán)體內(nèi)語句的執(zhí)行次數(shù),也稱為當(dāng)型循環(huán)。一般用于未知循環(huán)次數(shù)的循行次數(shù),也稱為當(dāng)型循環(huán)。一般用于未知循環(huán)次數(shù)的循環(huán)。環(huán)?!靖袷健靖袷健緿O WHILE LOOP EXIT ENDDO【功能【功能】 語句執(zhí)行時,先判斷語句執(zhí)行時,先判斷 的值,若為真,的值,若為真,則執(zhí)行循環(huán)體內(nèi)的命令,即則執(zhí)行循環(huán)體內(nèi)的命令,即DO DO 與與ENDDOENDDO之間的命令;若之間的命令;若為假,則執(zhí)行為假,則執(zhí)行ENDDOENDDO后面的命令。后面的命令??傢摰?頁

4、【說明【說明】1.DO WHILE 1.DO WHILE 和和ENDDOENDDO要配對使用;要配對使用;2.DO WHILE 2.DO WHILE 是循環(huán)語句的入口,是循環(huán)語句的入口, 一般為邏輯型,一般為邏輯型, ENDDOENDDO是循環(huán)語句的出口,中間是循環(huán)語句的出口,中間 是重復(fù)執(zhí)行的循環(huán)體;是重復(fù)執(zhí)行的循環(huán)體;3.LOOP3.LOOP和和EXITEXIT只能在循環(huán)體中使用,是循環(huán)跳轉(zhuǎn)和控制語句。其中只能在循環(huán)體中使用,是循環(huán)跳轉(zhuǎn)和控制語句。其中LOOPLOOP是轉(zhuǎn)到循環(huán)的入口語句,是轉(zhuǎn)到循環(huán)的入口語句,EXITEXIT是強行退出循環(huán)的語句,它們一是強行退出循環(huán)的語句,它們一般都放在

5、分支結(jié)構(gòu)中;般都放在分支結(jié)構(gòu)中;4.4.循環(huán)結(jié)構(gòu)允許嵌套。這種嵌套不僅限于循環(huán)結(jié)構(gòu)自身的嵌套,而且循環(huán)結(jié)構(gòu)允許嵌套。這種嵌套不僅限于循環(huán)結(jié)構(gòu)自身的嵌套,而且還可以是和選擇結(jié)構(gòu)的相互嵌套;還可以是和選擇結(jié)構(gòu)的相互嵌套;5.5.循環(huán)一般要有退出機制,否則,會形成死循環(huán)。循環(huán)一般要有退出機制,否則,會形成死循環(huán)??傢摰?頁條件循環(huán)流程圖條件循環(huán)流程圖無跳轉(zhuǎn)流程圖無跳轉(zhuǎn)流程圖跳轉(zhuǎn)及控制流程圖跳轉(zhuǎn)及控制流程圖總頁第6頁例:例:編寫程序,其功能是循環(huán)查找學(xué)編寫程序,其功能是循環(huán)查找學(xué)生姓名,并根據(jù)用戶選擇確定是否繼生姓名,并根據(jù)用戶選擇確定是否繼續(xù)查找。續(xù)查找。CleaCleause use 學(xué)生學(xué)生Do

6、 while .t.Do while .t.cleacleatexttext根據(jù)姓名查找記錄根據(jù)姓名查找記錄endtextendtext? ?accepaccep 請輸入查詢學(xué)生姓名請輸入查詢學(xué)生姓名: to xm: to xmLocaLoca for for 姓名姓名=xm=xmif found()if found()row()+1,15 say row()+1,15 say 學(xué)號學(xué)號get get 學(xué)號學(xué)號row(),30 sayrow(),30 say姓名姓名get get 姓名姓名row()+1,15sayrow()+1,15say性別性別 get get 性別性別row(),30sa

7、yrow(),30say出生日期出生日期get get 出生日期出生日期elseelse?查無查無+xm+xm+姓名姓名!EndifEndifwait wait 是否繼續(xù)查詢是否繼續(xù)查詢?(Y/N) ?(Y/N) to cxto cx window at 20,10 window at 20,10 if uppe(cxif uppe(cx)=Y)=YlooploopelseelseexitexitendifendifenddoenddouseuseSet talk onSet talk onreturnreturn總頁第7頁二、計數(shù)型循環(huán)語句二、計數(shù)型循環(huán)語句計數(shù)型循環(huán)語句適用于循環(huán)次數(shù)已知的

8、情況下,它是根據(jù)用計數(shù)型循環(huán)語句適用于循環(huán)次數(shù)已知的情況下,它是根據(jù)用戶設(shè)置的循環(huán)變量的初值、終值和步長來決定循環(huán)體的執(zhí)戶設(shè)置的循環(huán)變量的初值、終值和步長來決定循環(huán)體的執(zhí)行次數(shù)。計數(shù)型循環(huán)語句又稱行次數(shù)。計數(shù)型循環(huán)語句又稱FORFOR循環(huán)語句。循環(huán)語句?!靖袷健靖袷健?FOR FOR = TO TO STEP STEP LOOP LOOP EXIT EXIT ENDFOR | NEXT ENDFOR | NEXT【功能【功能】通過比較通過比較 與與 來決定是否執(zhí)行來決定是否執(zhí)行 。執(zhí)行。執(zhí)行FORFOR語句時,首先將循環(huán)初值賦給循環(huán)變量,語句時,首先將循環(huán)初值賦給循環(huán)變量,然后將循環(huán)變量與循環(huán)

9、終值比較,當(dāng)然后將循環(huán)變量與循環(huán)終值比較,當(dāng) 為正數(shù)時,若為正數(shù)時,若 的值不大于的值不大于 ,執(zhí)行循環(huán)體;當(dāng),執(zhí)行循環(huán)體;當(dāng) 為為負數(shù)時,若負數(shù)時,若 的值不小于的值不小于 ,執(zhí)行循環(huán)體。,執(zhí)行循環(huán)體。一旦遇到一旦遇到ENDFORENDFOR或或NEXTNEXT語句,語句, 值自動加上值自動加上 ,然后返回到,然后返回到FORFOR語句,重新與語句,重新與 進行比較。直到進行比較。直到循環(huán)變量大于或小于循環(huán)終值時,結(jié)束循環(huán)。步長的默認循環(huán)變量大于或小于循環(huán)終值時,結(jié)束循環(huán)。步長的默認值為值為1 1??傢摰?頁【說明【說明】1.1.步長值省略時,系統(tǒng)默認步長值為步長值省略時,系統(tǒng)默認步長值為1

10、 1。當(dāng)初值小于終值時,。當(dāng)初值小于終值時,步長值為正值;當(dāng)初值大于終值時,步長值為負值。步步長值為正值;當(dāng)初值大于終值時,步長值為負值。步長值不能為長值不能為0 0,否則造成死循環(huán);,否則造成死循環(huán);2.2.在循環(huán)體內(nèi)不要隨便改變循環(huán)變量的值,否則會引起循在循環(huán)體內(nèi)不要隨便改變循環(huán)變量的值,否則會引起循環(huán)次數(shù)發(fā)生改變;環(huán)次數(shù)發(fā)生改變;3.LOOP3.LOOP和和EXITEXIT命令的功能和用法與條件循環(huán)中該命令命令的功能和用法與條件循環(huán)中該命令的用法相同。的用法相同。 總頁第9頁計數(shù)循環(huán)流程圖計數(shù)循環(huán)流程圖總頁第10頁例:例:編寫程序,其功能是用計編寫程序,其功能是用計數(shù)循環(huán)統(tǒng)計學(xué)生表中入校

11、總分數(shù)循環(huán)統(tǒng)計學(xué)生表中入??偡衷谠?70570分以上的學(xué)生人數(shù)。分以上的學(xué)生人數(shù)。CleaCleaSet talk offSet talk offuse use 學(xué)生學(xué)生coun to zrscoun to zrsrsrs=0=0list for list for 入??偡秩胄?偡?570=570go topgo topfor i=1 to zrsfor i=1 to zrsif if 入校總分入??偡?570=570rsrs=rs+1=rs+1endifendifskipskipendforendfor?入??偡植坏陀谌胄?偡植坏陀?70570的學(xué)的學(xué)生人數(shù)是:生人數(shù)是:,rs,rsuseu

12、seset talk onset talk onreturetu總頁第11頁三、指針型循環(huán)語句三、指針型循環(huán)語句指針型循環(huán)語句是在數(shù)據(jù)表中建立的循環(huán),它是根據(jù)用戶在指針型循環(huán)語句是在數(shù)據(jù)表中建立的循環(huán),它是根據(jù)用戶在表中設(shè)置的當(dāng)前記錄指針來對一組記錄進行的循環(huán)操作,表中設(shè)置的當(dāng)前記錄指針來對一組記錄進行的循環(huán)操作,是是Visual FoxProVisual FoxPro中特有的一種循環(huán)語句。中特有的一種循環(huán)語句。【格式【格式】SCAN SCAN FOR FOR WHILE WHILE 2 LOOP LOOP EXIT EXIT ENDSCAN ENDSCAN【功能【功能】針對當(dāng)前表進行循環(huán)操作

13、,用記錄指針控制循環(huán)次針對當(dāng)前表進行循環(huán)操作,用記錄指針控制循環(huán)次數(shù)。在指定的數(shù)。在指定的 中依次尋找滿足中依次尋找滿足 FORFOR條件或條件或 WHILE WHILE 條件的記錄,并對找到的記錄執(zhí)行條件的記錄,并對找到的記錄執(zhí)行 中的命令。中的命令??傢摰?2頁【說明【說明】1.SCANENDSCAN1.SCANENDSCAN循環(huán)語句中隱含函數(shù)循環(huán)語句中隱含函數(shù)EOF()EOF()和命令和命令SKIPSKIP的的處理;處理;2.2.執(zhí)行執(zhí)行SCAN語句時,首先判斷函數(shù)語句時,首先判斷函數(shù)EOF() 的值,若為的值,若為“真真”,則結(jié)束循環(huán),執(zhí)行,則結(jié)束循環(huán),執(zhí)行ENDSCAN后面的語句;否

14、則,后面的語句;否則,結(jié)合結(jié)合或或,記錄指針移到指,記錄指針移到指定的范圍和條件內(nèi)的第一條記錄,定的范圍和條件內(nèi)的第一條記錄,執(zhí)行執(zhí)行 中的中的命令;命令;3.3.執(zhí)行執(zhí)行ENDSCANENDSCAN時,記錄指針自動移到下一條記錄,轉(zhuǎn)到時,記錄指針自動移到下一條記錄,轉(zhuǎn)到SCANSCAN重新判斷,直到重新判斷,直到EOF()EOF()函數(shù)值為真或到指定范圍末尾函數(shù)值為真或到指定范圍末尾, ,退出循環(huán)退出循環(huán), ,執(zhí)行執(zhí)行ENDSCAN后面的語句后面的語句;3.3.無無 選項時,則表示對所有記錄進行處理;選項時,則表示對所有記錄進行處理;4.LOOP4.LOOP和和EXITEXIT命令的功能和用

15、法與條件循環(huán)中該命令的命令的功能和用法與條件循環(huán)中該命令的用法相同。用法相同??傢摰?3頁指針循環(huán)流程圖指針循環(huán)流程圖總頁第14頁例:例:編寫程序,其功能是編寫程序,其功能是用指針循環(huán)統(tǒng)計學(xué)生表中用指針循環(huán)統(tǒng)計學(xué)生表中入??偡衷谌胄?偡衷?70570分以上的學(xué)分以上的學(xué)生人數(shù)。生人數(shù)。CleaCleaSet talk offSet talk offuse use 學(xué)生學(xué)生list for list for 入??偡秩胄?偡?570=570rsrs=0=0scan for scan for 入??偡秩胄?偡?570=570rsrs=rs+1=rs+1endscanendscan?入??偡植坏陀谌?/p>

16、??偡植坏陀?70570的學(xué)的學(xué)生人數(shù)是:生人數(shù)是:,rs,rsuseuseset talk onset talk onreturetu總頁第15頁四、多重循環(huán)四、多重循環(huán)多重循環(huán)是指在一個循環(huán)語句內(nèi)又包含另一個循環(huán)語句,多重循環(huán)是指在一個循環(huán)語句內(nèi)又包含另一個循環(huán)語句,多重循環(huán)也稱為循環(huán)嵌套。下面以條件循環(huán)為例,進行多重循環(huán)也稱為循環(huán)嵌套。下面以條件循環(huán)為例,進行說明。說明?!靖袷健靖袷健?DO WHILE DO WHILE 1 11DO WHILE DO WHILE 2 21 ENDDO ENDDO 12ENDDOENDDO總頁第16頁【功能【功能】 在多重循環(huán)中,首先從外循環(huán)進入內(nèi)循環(huán),

17、執(zhí)行在多重循環(huán)中,首先從外循環(huán)進入內(nèi)循環(huán),執(zhí)行內(nèi)循環(huán)的語句。當(dāng)內(nèi)循環(huán)的條件為假時,返回到外循環(huán)內(nèi)循環(huán)的語句。當(dāng)內(nèi)循環(huán)的條件為假時,返回到外循環(huán);當(dāng)外循環(huán)的條件為真時,又進入內(nèi)循環(huán);否則,退出;當(dāng)外循環(huán)的條件為真時,又進入內(nèi)循環(huán);否則,退出循環(huán)。循環(huán)。 【說明【說明】1.1.循環(huán)嵌套層次不限,但內(nèi)循環(huán)的所有語句必須完全嵌套循環(huán)嵌套層次不限,但內(nèi)循環(huán)的所有語句必須完全嵌套在外層循環(huán)之中。否則,就會出現(xiàn)循環(huán)的交叉,造成邏在外層循環(huán)之中。否則,就會出現(xiàn)循環(huán)的交叉,造成邏輯上的混亂;輯上的混亂;2.2.循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)允許混合嵌套使用,但不允許交叉。循環(huán)結(jié)構(gòu)和分支結(jié)構(gòu)允許混合嵌套使用,但不允許交叉。其

18、入口語句和相應(yīng)的出口語句必須成對出現(xiàn)。其入口語句和相應(yīng)的出口語句必須成對出現(xiàn)??傢摰?7頁例例: : 編寫程序,其功能是使用多重循環(huán)打印一個九九乘法口訣表。編寫程序,其功能是使用多重循環(huán)打印一個九九乘法口訣表。SET TALK OFFSET TALK OFFCLEARCLEARFOR I=1 TO 9 &IFOR I=1 TO 9 &I循環(huán)為外層,共循環(huán)九次,控制循環(huán)為外層,共循環(huán)九次,控制“九九表九九表”的行的行 FOR j=1 TO I &JFOR j=1 TO I &J循環(huán)為內(nèi)層,共循環(huán)循環(huán)為內(nèi)層,共循環(huán)4545次(次(I I從從1 1到到9 9), ,控

19、制列控制列 ? SPACE(2) +STR(j,1)+? SPACE(2) +STR(j,1)+STR(I,1)+=+STR(I+STR(I,1)+=+STR(I* *J,2)+SPACE(2) &?J,2)+SPACE(2) &?輸輸出不換行出不換行 ENDFORENDFOR? ? & &每輸出九九表一行要換行每輸出九九表一行要換行 ENDFORENDFORSET TALK ONSET TALK ON RETURN RETURN思考:如果改用條件循環(huán),程序應(yīng)作如何修改?思考:如果改用條件循環(huán),程序應(yīng)作如何修改?總頁第18頁相關(guān)概念相關(guān)概念模塊化是結(jié)構(gòu)化程序的重

20、要原則,所謂模塊化就是模塊化是結(jié)構(gòu)化程序的重要原則,所謂模塊化就是把大程序按照功能分為較小的程序,具有一定功能的每把大程序按照功能分為較小的程序,具有一定功能的每個小程序即為模塊。一般來講,一個程序是由一個主控個小程序即為模塊。一般來講,一個程序是由一個主控模塊和若干子模塊組成的,主控模塊用來完成某些公用模塊和若干子模塊組成的,主控模塊用來完成某些公用操作及功能選擇,而子模塊用來完成某項特定的功能。操作及功能選擇,而子模塊用來完成某項特定的功能。這種設(shè)計風(fēng)格便于分工合作,將一個龐大的模塊這種設(shè)計風(fēng)格便于分工合作,將一個龐大的模塊分解為若干個子模塊分別完成,然后用主控模塊調(diào)用子分解為若干個子模塊

21、分別完成,然后用主控模塊調(diào)用子模塊。這種程序的模塊化結(jié)構(gòu)如下圖所示。模塊。這種程序的模塊化結(jié)構(gòu)如下圖所示。結(jié)構(gòu)化程序的設(shè)計過程就是將問題求解由抽象逐結(jié)構(gòu)化程序的設(shè)計過程就是將問題求解由抽象逐步具體化的過程。這種方法符合人們解決復(fù)雜問題遵循步具體化的過程。這種方法符合人們解決復(fù)雜問題遵循的普遍規(guī)律,可以顯著提高程序設(shè)計的效率。的普遍規(guī)律,可以顯著提高程序設(shè)計的效率。 8.4 多模塊程序設(shè)計多模塊程序設(shè)計 總頁第19頁程序的模塊化結(jié)構(gòu)程序的模塊化結(jié)構(gòu) 總頁第20頁總39頁第20頁 在編制程序時,經(jīng)常會遇到有些運算或某段程序在在編制程序時,經(jīng)常會遇到有些運算或某段程序在程序運行中被多次調(diào)用的情況,為

22、了有效解決上述重復(fù)程序運行中被多次調(diào)用的情況,為了有效解決上述重復(fù)調(diào)用,有必要設(shè)計相對獨立并能完成特定功能的程序段,調(diào)用,有必要設(shè)計相對獨立并能完成特定功能的程序段,這種程序段稱為這種程序段稱為子程序子程序( (該程序段單獨保存為一個程序文該程序段單獨保存為一個程序文件件) )或或過程過程( (該程序段附在調(diào)用程序末尾或放在過程文件該程序段附在調(diào)用程序末尾或放在過程文件中中) )。調(diào)用子程序的程序稱為。調(diào)用子程序的程序稱為調(diào)用程序調(diào)用程序。對于一個子程序。對于一個子程序來說,除了被調(diào)用以外,還可以調(diào)用其他子程序來說,除了被調(diào)用以外,還可以調(diào)用其他子程序( (子程序子程序的嵌套調(diào)用的嵌套調(diào)用)

23、)。此時,該子程序便成為其被調(diào)用程序的調(diào)。此時,該子程序便成為其被調(diào)用程序的調(diào)用程序。在一個應(yīng)用系統(tǒng)中,處于最高層次的調(diào)用程序用程序。在一個應(yīng)用系統(tǒng)中,處于最高層次的調(diào)用程序稱為稱為主程序主程序??傢摰?1頁總39頁第21頁 在應(yīng)用系統(tǒng)的開發(fā)中,一般會根據(jù)實際的需要將整個系在應(yīng)用系統(tǒng)的開發(fā)中,一般會根據(jù)實際的需要將整個系統(tǒng)劃分成若干個模塊,然后在主控模塊的控制下,調(diào)用各個統(tǒng)劃分成若干個模塊,然后在主控模塊的控制下,調(diào)用各個功能模塊以實現(xiàn)系統(tǒng)的各種功能操作,通常將這些可調(diào)用的功能模塊以實現(xiàn)系統(tǒng)的各種功能操作,通常將這些可調(diào)用的功能模塊也設(shè)計成過程或子程序。功能模塊也設(shè)計成過程或子程序。特點:特點

24、:(1)(1)過程或子程序一般不單獨運行,而是通過上級程序調(diào)用過程或子程序一般不單獨運行,而是通過上級程序調(diào)用; ;(2)(2)過程可以附在調(diào)用程序的末尾過程可以附在調(diào)用程序的末尾, ,也可以放在單獨的文件中也可以放在單獨的文件中(過程文件)(過程文件); ;(3)(3)子程序可以嵌套調(diào)用。子程序可以嵌套調(diào)用??傢摰?2頁總39頁第22頁8.4.1 8.4.1 子程序子程序1 1子程序的建立子程序的建立 子程序作為一個獨立程序,與其他程序一樣可以用子程序作為一個獨立程序,與其他程序一樣可以用MODIFY COMMANDMODIFY COMMAND命令、菜單或項目管理器等多種方法建立和命令、菜單

25、或項目管理器等多種方法建立和調(diào)試,也是以程序文件名調(diào)試,也是以程序文件名.PRG.PRG的形式獨立存盤。的形式獨立存盤??傢摰?3頁總39頁第23頁2 2子程序的調(diào)用子程序的調(diào)用子程序的調(diào)用是通過調(diào)用語句實現(xiàn)的。子程序的調(diào)用是通過調(diào)用語句實現(xiàn)的。【格式【格式】DO DO 或或 ( )( )【功能【功能】執(zhí)行執(zhí)行DODO調(diào)用命令時,將指定的子程序調(diào)入內(nèi)存并執(zhí)行,調(diào)用命令時,將指定的子程序調(diào)入內(nèi)存并執(zhí)行,當(dāng)執(zhí)行到當(dāng)執(zhí)行到RETURNRETURN命令時,返回到該命令指定位置。命令時,返回到該命令指定位置?!菊f明【說明】調(diào)用程序可以調(diào)用任何子程序。子程序還可以調(diào)用下一調(diào)用程序可以調(diào)用任何子程序。子程序

26、還可以調(diào)用下一級子程序,但子程序不能調(diào)用自己上層的調(diào)用程序。子程序級子程序,但子程序不能調(diào)用自己上層的調(diào)用程序。子程序可以返回到調(diào)用它的調(diào)用程序中,也可以直接返回到主程序可以返回到調(diào)用它的調(diào)用程序中,也可以直接返回到主程序中。中。總頁第24頁總39頁第24頁子程序調(diào)用子程序調(diào)用嵌套調(diào)用嵌套調(diào)用總頁第25頁總39頁第25頁3 3子程序的返回子程序的返回 子程序執(zhí)行后,可以采用下面語句返回到調(diào)用程序。子程序執(zhí)行后,可以采用下面語句返回到調(diào)用程序?!靖袷健靖袷健縍ETURN RETURN |TO |TO |TO |TO MASTERMASTER【功能【功能】該語句終止子程序執(zhí)行,返回到調(diào)用程序中調(diào)該

27、語句終止子程序執(zhí)行,返回到調(diào)用程序中調(diào)用語句的下一個語句執(zhí)行用語句的下一個語句執(zhí)行( (或到指定位置或到指定位置) )。如無調(diào)用。如無調(diào)用程序,則返回命令窗口。程序,則返回命令窗口。總頁第26頁總39頁第26頁【說明【說明】(1 1)子程序的一個重要標(biāo)志是:以)子程序的一個重要標(biāo)志是:以RETURNRETURN語句作為結(jié)束語句,語句作為結(jié)束語句,而一般在主程序和無上一級調(diào)用程序的程序尾部用而一般在主程序和無上一級調(diào)用程序的程序尾部用CANCELCANCEL語語句作為結(jié)束語句;句作為結(jié)束語句;(2 2)在返回語句中,若選擇可選項在返回語句中,若選擇可選項 ,將表達式的值,將表達式的值返回給調(diào)用程

28、序。選擇可選項返回給調(diào)用程序。選擇可選項TOTO,可直接返,可直接返回指定的程序文件。選擇可選項回指定的程序文件。選擇可選項TO MASTERTO MASTER,則不論前面,則不論前面有多少級調(diào)用而直接返回到主程序。有多少級調(diào)用而直接返回到主程序??傢摰?7頁總39頁第27頁8.4.2 8.4.2 過程及過程文件過程及過程文件把多個子程序合并成一個大的文件,在該文件中,每把多個子程序合并成一個大的文件,在該文件中,每個子程序仍然是獨立的,這個大的公用程序文件被稱作個子程序仍然是獨立的,這個大的公用程序文件被稱作過過程文件程文件。其中的每個子程序模塊稱為過程。在系統(tǒng)執(zhí)行過。其中的每個子程序模塊稱

29、為過程。在系統(tǒng)執(zhí)行過程中,只需打開相應(yīng)的過程文件即可調(diào)用其中的多個過程,程中,只需打開相應(yīng)的過程文件即可調(diào)用其中的多個過程,從而大大減少了訪問磁盤的次數(shù),可提高程序運行效率。從而大大減少了訪問磁盤的次數(shù),可提高程序運行效率。過程文件的擴展名仍然是過程文件的擴展名仍然是.PRG.PRG?!靖袷健靖袷健縋ROCEDURE PROCEDURE PARAMETERS PARAMETERS RETURN RETURN ENDPROC ENDPROC總頁第28頁總39頁第28頁1 1過程定義過程定義【命令【命令】 MODIFY COMMAND MODIFY COMMAND 過程文件的基本書寫格式:過程文件

30、的基本書寫格式:PROCEDURE PROCEDURE 1 1RETURNRETURNENDPROCENDPROCPROCEDURE PROCEDURE N NRETURNRETURNENDPROCENDPROC總頁第29頁總39頁第29頁【功能【功能】建立過程。建立過程?!菊f明【說明】過程名和過程文件名是兩個不同的概念,過程名和過程文件名是兩個不同的概念,每個過程是具有獨立功能的一段程序,過程名是一每個過程是具有獨立功能的一段程序,過程名是一個沒有擴展名的過程名稱。一個過程文件可以由一個沒有擴展名的過程名稱。一個過程文件可以由一個或多個過程構(gòu)成,個或多個過程構(gòu)成,擴展名是擴展名是.PRG.P

31、RG。在在PROCEDURE與與ENDPROC之間如果使用之間如果使用RETURN命令,可以返回到上一層程序。命令,可以返回到上一層程序。2調(diào)用(執(zhí)行)過程調(diào)用(執(zhí)行)過程【格式【格式】DO 【功能【功能】用于調(diào)用用于調(diào)用指定的過程。指定的過程??傢摰?0頁總39頁第30頁3 3過程文件的打開和關(guān)閉過程文件的打開和關(guān)閉 調(diào)用過程時,首先打開包含被調(diào)用過程的過程文件。調(diào)用過程時,首先打開包含被調(diào)用過程的過程文件。過程文件使用后需要及時關(guān)閉。過程文件使用后需要及時關(guān)閉。(1 1)打開過程文件)打開過程文件【命令【命令】 SET PROCEDURE TO SET PROCEDURE TO 【功能【功

32、能】 打開指定的過程文件,將過程文件中所包含打開指定的過程文件,將過程文件中所包含的過程全部調(diào)入內(nèi)存。的過程全部調(diào)入內(nèi)存?!菊f明【說明】 系統(tǒng)在同一時刻只能打開一個過程文件,打系統(tǒng)在同一時刻只能打開一個過程文件,打開新過程文件的同時將關(guān)閉原來打開的過程文件。若開新過程文件的同時將關(guān)閉原來打開的過程文件。若要修改過程文件的內(nèi)容,一定要先關(guān)閉該過程文件。要修改過程文件的內(nèi)容,一定要先關(guān)閉該過程文件。(2 2)關(guān)閉過程文件)關(guān)閉過程文件【命令【命令】 CLOSE PROCEDURECLOSE PROCEDURE 或或 SET PROCEDURE TOSET PROCEDURE TO【功能【功能】 關(guān)

33、閉已打開的過程文件。關(guān)閉已打開的過程文件。總頁第31頁總39頁第31頁8.4.3 8.4.3 內(nèi)存變量的作用域及帶參數(shù)調(diào)用子程序內(nèi)存變量的作用域及帶參數(shù)調(diào)用子程序1 1內(nèi)存變量作用域內(nèi)存變量作用域 在程序設(shè)計中,特別是模塊程序中,往往會用到許在程序設(shè)計中,特別是模塊程序中,往往會用到許多內(nèi)存變量,這些內(nèi)存變量有的在整個程序運行過程中多內(nèi)存變量,這些內(nèi)存變量有的在整個程序運行過程中起作用,而有的僅在某些程序模塊中起作用,內(nèi)存變量起作用,而有的僅在某些程序模塊中起作用,內(nèi)存變量的這些作用范圍稱為內(nèi)存變量的這些作用范圍稱為內(nèi)存變量作用域作用域。內(nèi)存變量的作用。內(nèi)存變量的作用域根據(jù)作用范圍可以分為三類

34、:域根據(jù)作用范圍可以分為三類:全局變量全局變量、局部變量局部變量和和本地變量本地變量。2.2.內(nèi)存變量的一般性質(zhì)內(nèi)存變量的一般性質(zhì)在多模塊程序設(shè)計中在多模塊程序設(shè)計中, ,不同的程序塊分為主程序、調(diào)用程不同的程序塊分為主程序、調(diào)用程序、子程序,程序調(diào)用時有上下級關(guān)系,在不同的程序序、子程序,程序調(diào)用時有上下級關(guān)系,在不同的程序中的變量有其一般如下性質(zhì):中的變量有其一般如下性質(zhì):(1)(1)上級程序生成的變量,調(diào)用的下級程序可以使用,反之上級程序生成的變量,調(diào)用的下級程序可以使用,反之下級程序生成的變量,在上級程序中不可使用。下級程序生成的變量,在上級程序中不可使用。(2)(2)上級程序中已有的

35、變量,如果在下級程序中未重新定義,上級程序中已有的變量,如果在下級程序中未重新定義,則返回上級程序時,保留下級程序重新賦的值。則返回上級程序時,保留下級程序重新賦的值??傢摰?2頁總39頁第32頁3 3全局變量全局變量 全局變量又稱為公共變量,在程序運行中,上下各級全局變量又稱為公共變量,在程序運行中,上下各級程序或任何程序模塊中都可以使用該內(nèi)存變量。當(dāng)程序執(zhí)程序或任何程序模塊中都可以使用該內(nèi)存變量。當(dāng)程序執(zhí)行完畢,回到命令窗后,其值仍然保存。行完畢,回到命令窗后,其值仍然保存?!靖袷健靖袷健縋UBLIC PUBLIC 【功能【功能】將將 中指定的變量定義為全局內(nèi)存變量。中指定的變量定義為全局

36、內(nèi)存變量??傢摰?3頁總39頁第33頁【說明【說明】(1 1)用)用PUBLICPUBLIC語句定義的內(nèi)存變量系統(tǒng)設(shè)置初值為邏輯型語句定義的內(nèi)存變量系統(tǒng)設(shè)置初值為邏輯型.F.F.;(2 2)一個)一個PUBLICPUBLIC語句可以定義多個內(nèi)存變量,可以是簡單變量,也可語句可以定義多個內(nèi)存變量,可以是簡單變量,也可以是下標(biāo)變量,每個內(nèi)存變量之間均用以是下標(biāo)變量,每個內(nèi)存變量之間均用“,”隔開;隔開;(3 3)全局變量必須先定義后賦值,故稱為建立全局型變量;)全局變量必須先定義后賦值,故稱為建立全局型變量;(4 4)在程序中已被定義成全局變量的變量也可以在下一級程序中進一)在程序中已被定義成全局

37、變量的變量也可以在下一級程序中進一步定義成局部變量;但已定義成局部變量的,卻不可反過來再定義成步定義成局部變量;但已定義成局部變量的,卻不可反過來再定義成全局變量;全局變量;(5 5)若下層模塊中建立的內(nèi)存變量要供上層模塊使用,或某模塊中建)若下層模塊中建立的內(nèi)存變量要供上層模塊使用,或某模塊中建立的內(nèi)存變量要供并列模塊使用,必須將這種變量設(shè)置成全局變量立的內(nèi)存變量要供并列模塊使用,必須將這種變量設(shè)置成全局變量; ;(6 6)在)在Visual FoxProVisual FoxPro的命令窗口中所定義的內(nèi)存變量,系統(tǒng)默認為的命令窗口中所定義的內(nèi)存變量,系統(tǒng)默認為是全局變量是全局變量, ,但不能

38、在程序方式下利用但不能在程序方式下利用 ;(7 7)由于全局變量的作用范圍為整個系統(tǒng),當(dāng)程序執(zhí)行完畢后,全局)由于全局變量的作用范圍為整個系統(tǒng),當(dāng)程序執(zhí)行完畢后,全局變量仍占用內(nèi)存,不會自動被清除。因此,不再使用全局變量時,可變量仍占用內(nèi)存,不會自動被清除。因此,不再使用全局變量時,可以使用下列語句清除:以使用下列語句清除:RELEASE RELEASE 、CLEAR ALLCLEAR ALL總頁第34頁總39頁第34頁4 4局部變量局部變量 局部變量又稱私有變量。在局部變量又稱私有變量。在Visual FoxProVisual FoxPro的程序中,的程序中,未加未加PUBLICPUBLIC

39、語句定義的內(nèi)存變量,系統(tǒng)默認為局部變量,局語句定義的內(nèi)存變量,系統(tǒng)默認為局部變量,局部變量的作用域限制在定義它的程序和被該程度所調(diào)用的下部變量的作用域限制在定義它的程序和被該程度所調(diào)用的下級程序過程中,一旦定義它的程序運行完畢,局部變量將從級程序過程中,一旦定義它的程序運行完畢,局部變量將從內(nèi)存中自動被清除。內(nèi)存中自動被清除?!靖袷健靖袷健縋RIVATE PRIVATE 內(nèi)存變量表內(nèi)存變量表ALLLIKE|EXCEPTALLLIKE|EXCEPT【功能【功能】聲明局部變量并隱藏上級程序中的同名內(nèi)存變量。將聲明局部變量并隱藏上級程序中的同名內(nèi)存變量。將 中所列的內(nèi)存變量定義為本級程序和下一級程中

40、所列的內(nèi)存變量定義為本級程序和下一級程序中專用的局部變量。序中專用的局部變量??傢摰?5頁總39頁第35頁【說明【說明】(1 1)在同一過程中,用隱式或顯式定義的局部變量的)在同一過程中,用隱式或顯式定義的局部變量的作用域完全相同。在主程序或上級過程中未經(jīng)作用域完全相同。在主程序或上級過程中未經(jīng)PRIVATEPRIVATE語句定義的局部變量,在下級過程中也未經(jīng)顯式定義,語句定義的局部變量,在下級過程中也未經(jīng)顯式定義,那么它的新值可以帶回主程序或上級過程;若在下級那么它的新值可以帶回主程序或上級過程;若在下級過程中進行了顯式定義,其新值不能帶回主程序或上過程中進行了顯式定義,其新值不能帶回主程序

41、或上級過程中使用;級過程中使用;(2 2)用)用PRIVATEPRIVATE定義的局部變量只對本級程序及下級定義的局部變量只對本級程序及下級子程序有效,當(dāng)返回上級程序時,這種局部型變量便子程序有效,當(dāng)返回上級程序時,這種局部型變量便自動被消除;自動被消除;(3 3)當(dāng)下級程序或過程中顯式定義了與上級程序中同)當(dāng)下級程序或過程中顯式定義了與上級程序中同名的局部變量時,上級程序中的名的局部變量時,上級程序中的 同名變量將被隱藏起同名變量將被隱藏起來,一旦含有來,一旦含有PRIVATEPRIVATE的內(nèi)存變量程序運行完畢,上級的內(nèi)存變量程序運行完畢,上級程序被隱藏的同變量自行恢復(fù)原來的狀態(tài);程序被隱

42、藏的同變量自行恢復(fù)原來的狀態(tài);總頁第36頁總39頁第36頁(4 4)用用PRIVATE定義的內(nèi)存變量僅指明變量的類型,定義的內(nèi)存變量僅指明變量的類型,沒有賦初值;沒有賦初值;(5 5)PRIVATE ALL:表示將所有位于本級程序中的內(nèi):表示將所有位于本級程序中的內(nèi)存變量定義為局部型量;存變量定義為局部型量;(6 6)PRIVATE ALL LIKE :將位于本級程序:將位于本級程序中符合中符合的變量定義為局部型變量;的變量定義為局部型變量;(7 7)PRIVATE ALL EXCEPT :將位于本級程:將位于本級程序中不符合序中不符合的變量定義為局部型變量。的變量定義為局部型變量??傢摰?7

43、頁總39頁第37頁5 5本地變量本地變量 本地變量只能在定義它的程序中使用,一旦定義它本地變量只能在定義它的程序中使用,一旦定義它的程序運行完畢,本地變量將從內(nèi)存中釋放。的程序運行完畢,本地變量將從內(nèi)存中釋放?!靖袷健靖袷健縇OCAL LOCAL 【功能【功能】將將 中指定的變量定義為本地變量。中指定的變量定義為本地變量?!菊f明【說明】(1 1)用)用LOCALLOCAL定義的本地變量,系統(tǒng)自動將其初值賦以定義的本地變量,系統(tǒng)自動將其初值賦以邏輯型邏輯型.F.F.;(2 2)LOCALLOCAL與與LOCATELOCATE前前4 4個字母相同,故不可縮寫。本地個字母相同,故不可縮寫。本地型內(nèi)存

44、變量只能在定義它的程序中使用,不能在上級或型內(nèi)存變量只能在定義它的程序中使用,不能在上級或下級的調(diào)用程序中使用。下級的調(diào)用程序中使用??傢摰?8頁總39頁第38頁例:例:建立一個程序,內(nèi)容是子程序的嵌套調(diào)用及在過程調(diào)用建立一個程序,內(nèi)容是子程序的嵌套調(diào)用及在過程調(diào)用中查看變量值的變化。中查看變量值的變化。程序如下:程序如下: * *主程序主程序GCCS.PRGGCCS.PRG SET TALK OFF SET TALK OFF CLEAR CLEAR PUBLIC X,Z PUBLIC X,Z X=1 X=1 Y=1 Y=1 Z=1 Z=1 DO SUB1 DO SUB1 ?“SUB1 ?“S

45、UB1結(jié)束后結(jié)束后:”:” ? MAIN-X=,X ? MAIN-X=,X ? MAIN-Y=,Y ? MAIN-Y=,Y WAIT WAIT DO SUB2 DO SUB2 ?“SUB2 ?“SUB2結(jié)束后結(jié)束后:”:” ? MAIN-Z=,Z ? MAIN-Z=,Z RETURN RETURNPROCEDURE SUB1 X=X+1 Y=Y*X RETURN &過程 SUB1結(jié)束PROCEDURE SUB2 PRIVATE Z Z=4 X=Z+2DO SUB3 ?“SUB2中中” ? SUB2-X=,XWAITRETURN &過程SUB2結(jié)束PROCEDURE SUB3LO

46、CAL X X=4Z=Z+3 ?”SUB3中中” ? SUB3-X=,X? SUB3-Z=,ZWAITRETURN&過程過程SUB3結(jié)束結(jié)束總頁第39頁總39頁第39頁6. 6. 子程序或過程的帶參調(diào)用子程序或過程的帶參調(diào)用 在調(diào)用過程時,有時需要將數(shù)據(jù)傳遞到被調(diào)用過程,在調(diào)用過程時,有時需要將數(shù)據(jù)傳遞到被調(diào)用過程,有時又需要從被調(diào)用過程將數(shù)據(jù)返回,實現(xiàn)數(shù)據(jù)相互傳有時又需要從被調(diào)用過程將數(shù)據(jù)返回,實現(xiàn)數(shù)據(jù)相互傳遞。遞。Visual FoxProVisual FoxPro為此提供了過程的帶參調(diào)用方法。為此提供了過程的帶參調(diào)用方法。 在調(diào)用過程的命令和被調(diào)用過程的相關(guān)語句中,分在調(diào)用過程的

47、命令和被調(diào)用過程的相關(guān)語句中,分別設(shè)置數(shù)量相同、數(shù)據(jù)類型一致且排列順序相互對應(yīng)的別設(shè)置數(shù)量相同、數(shù)據(jù)類型一致且排列順序相互對應(yīng)的參數(shù)表。調(diào)用過程的命令將一系列參數(shù)的值傳遞給被調(diào)參數(shù)表。調(diào)用過程的命令將一系列參數(shù)的值傳遞給被調(diào)用過程中的對應(yīng)參數(shù),被調(diào)用過程運行結(jié)束時,再將參用過程中的對應(yīng)參數(shù),被調(diào)用過程運行結(jié)束時,再將參數(shù)的值返回到調(diào)用它的上一級過程或主程序中。數(shù)的值返回到調(diào)用它的上一級過程或主程序中??傢摰?0頁總39頁第40頁(1)(1)帶參調(diào)用帶參調(diào)用【命令【命令】 DO DO WITH WITH 【功能【功能】 調(diào)用指定過程,并為被調(diào)用過程提供參數(shù)。調(diào)用指定過程,并為被調(diào)用過程提供參數(shù)。

48、【說明【說明】 該命令只用在調(diào)用過程的程序中。此處該命令只用在調(diào)用過程的程序中。此處 又稱為實參表,其中的參數(shù)可以是常量、已賦值的變量又稱為實參表,其中的參數(shù)可以是常量、已賦值的變量或數(shù)值表達式,參數(shù)之間用逗號分開。或數(shù)值表達式,參數(shù)之間用逗號分開??傢摰?1頁總39頁第41頁(2)(2)接受參數(shù)接受參數(shù)【命令【命令】 PARAMETERS PARAMETERS 【功能【功能】 接受調(diào)用過程的命令傳遞過來的參數(shù)。接受調(diào)用過程的命令傳遞過來的參數(shù)?!菊f明【說明】 該命令必須位于被調(diào)用過程的第一條可執(zhí)行語句該命令必須位于被調(diào)用過程的第一條可執(zhí)行語句處。此處處。此處 又稱為形參表,其中的參數(shù)一般為內(nèi)

49、又稱為形參表,其中的參數(shù)一般為內(nèi)存變量。形參與實參的個數(shù)應(yīng)相等、數(shù)據(jù)類型和個數(shù)要存變量。形參與實參的個數(shù)應(yīng)相等、數(shù)據(jù)類型和個數(shù)要對應(yīng)相同。對應(yīng)相同。總頁第42頁總39頁第42頁(3) (3) 參數(shù)的傳遞形式參數(shù)的傳遞形式 在在VF VF 的過程及自定義函數(shù)中都涉及參數(shù)傳遞。參數(shù)的的過程及自定義函數(shù)中都涉及參數(shù)傳遞。參數(shù)的傳遞形式分為傳遞形式分為值參數(shù)傳遞值參數(shù)傳遞和和引用參數(shù)傳遞引用參數(shù)傳遞( (傳地址傳地址) )。值參數(shù)傳遞值參數(shù)傳遞: : 在調(diào)用過程或自定義函數(shù)時在調(diào)用過程或自定義函數(shù)時, , 先計算出實先計算出實參的值參的值, , 并將其按位置對應(yīng)關(guān)系傳遞給形式參數(shù)變量并將其按位置對應(yīng)關(guān)

50、系傳遞給形式參數(shù)變量, , 形式形式參數(shù)變量值的改變不影響實際參數(shù);參數(shù)變量值的改變不影響實際參數(shù);引用參數(shù)傳遞引用參數(shù)傳遞: : 在調(diào)用過程或自定義函數(shù)時在調(diào)用過程或自定義函數(shù)時, , 將實際參將實際參數(shù)的地址傳遞給形式參數(shù)數(shù)的地址傳遞給形式參數(shù), , 形式參數(shù)值的改變會影響實際參形式參數(shù)值的改變會影響實際參數(shù)。數(shù)??傢摰?3頁總39頁第43頁在過程調(diào)用中的參數(shù)傳遞方式在過程調(diào)用中的參數(shù)傳遞方式: : VF VF 中的過程在調(diào)用時中的過程在調(diào)用時: : 當(dāng)實參是常數(shù)、當(dāng)實參是常數(shù)、( (變量變量) )或表達式時或表達式時, , 實參傳遞給形參屬于值傳實參傳遞給形參屬于值傳遞遞; ;當(dāng)實參是變

51、量時當(dāng)實參是變量時, , 實參傳遞給形參屬于引用實參傳遞給形參屬于引用傳遞。傳遞。總頁第44頁總39頁第44頁例例: :cleacleacleaclea all allset talk offset talk offx=5x=5y=10y=10?主程序未調(diào)用過程時變量的值主程序未調(diào)用過程時變量的值:?X=+str(X,2),Y=+str(Y,2)?X=+str(X,2),Y=+str(Y,2)do sub with x,(ydo sub with x,(y) )?主程序調(diào)用過程后變量的值主程序調(diào)用過程后變量的值:?X=+str(X,2),Y=+str(Y,2)?X=+str(X,2),Y=+s

52、tr(Y,2)set talk onset talk onreturnreturnprocedure subprocedure subparameters a,bparameters a,ba=a+5a=a+5b=b+10b=b+10?過程中變量的值過程中變量的值:?A=+str(a,2),B=+str(b,2)?A=+str(a,2),B=+str(b,2)returnreturn總頁第45頁總39頁第45頁8.4.4 8.4.4 自定義函數(shù)自定義函數(shù)Visual FoxProVisual FoxPro除了提供許多系統(tǒng)函數(shù)外,也允許用戶自定除了提供許多系統(tǒng)函數(shù)外,也允許用戶自定義函數(shù)(義函數(shù)(User Defined FuntionUser Defined Funtion),簡稱),簡稱UDFUDF。自定義。自定義函數(shù)既可以放在主程序中,只對主程序有效,也可以作函數(shù)既可以放在主程序中,只對主程序有效,也可以作為獨立文件保存,其擴展名為為獨立文件保存,其擴展名為. . PRG。在。在Visual FoxProVisual FoxPro中中UDFUDF可以分為:獨立可以分為:獨立UDFUDF和依附和依附UDFUDF。1 1獨立獨立UDFUDF獨立自定義函數(shù)和子程序的區(qū)別在于自定義函數(shù)必須有返獨立自定義函數(shù)和子程序的區(qū)別在于自定義函

溫馨提示

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

評論

0/150

提交評論