版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第7章結(jié)構(gòu)化程序設(shè)計(jì),迄今為止,前面介紹的操作都是通過(guò)菜單或在命令窗口中逐條輸入命令的方法來(lái)執(zhí)行的,這種工作方式稱為單命令方式或交互工作方式。但此方式不適合復(fù)雜的數(shù)據(jù)管理任務(wù)。為此,Visual FoxPro提供了批命令處理方式,即程序工作方式。 程序工作方式是根據(jù)解決實(shí)際問(wèn)題的需要,將一系列的命令按一定的邏輯結(jié)構(gòu)編排成一個(gè)完整的應(yīng)用程序,然后由計(jì)算機(jī)自動(dòng)地、連續(xù)地按程序的順序執(zhí)行。 Visual FoxPro系統(tǒng)支持傳統(tǒng)的面向過(guò)程的程序設(shè)計(jì),也支持面向?qū)ο蟮某绦蛟O(shè)計(jì)。 本章介紹面向過(guò)程的程序設(shè)計(jì)方法,程序中的命令一般稱為語(yǔ)句,每一行為一個(gè)語(yǔ)句,不同的語(yǔ)句應(yīng)放在不同的行。,7.1.1程序文件的
2、建立 程序文件(簡(jiǎn)稱程序)也叫命令文件。在Visual FoxPro環(huán)境下,利用程序文件方式進(jìn)行數(shù)據(jù)庫(kù)管理,是通過(guò)程序文件編輯工具,將對(duì)數(shù)據(jù)庫(kù)操作的命令和對(duì)系統(tǒng)環(huán)境進(jìn)行設(shè)置的命令,集中在一個(gè)以.PRG為擴(kuò)展名的程序文件中,然后再通過(guò)菜單方式或命令方式運(yùn)行該程序文件。 程序文件的建立可以用Visual FoxPro本身自帶的編輯工具建立,也可用其它文本編輯軟件建立(保存時(shí)以帶分行符的純文本文件保存,擴(kuò)展名為.prg),7.1程序文件的建立與運(yùn)行,程序的五要素 1,有窮性:程序的操作步驟必須是有限的,不能出現(xiàn)死循環(huán)。 2,確定性:每個(gè)語(yǔ)句都必須有確定的含義,不能有二義性。 3,有0個(gè)或多個(gè)輸入。
3、4,有一個(gè)或多個(gè)輸出:程序必須有輸出。 5,有效性:程序中的每一步都必須是能有效地執(zhí)行的。,1,用菜單方式建立程序文件 操作步驟(1)執(zhí)行“文件/新建/程序/新建文件” (2)輸入程序文件的內(nèi)容(每行輸入完后按回車鍵) (3)保存文件 2,以命令方式建立程序文件 在命令窗口中輸入命令: modify command 程序文件名 文件名必須包括路徑,缺省時(shí)為程序1,關(guān)閉窗口時(shí)可以修改。,7.1.2程序文件的運(yùn)行 方法一:打開程序文件后或編輯完程序后,執(zhí)行“程序”菜單中的“運(yùn)行”命令,或單擊工具欄中的“ !” 方法二:在沒(méi)有打開程序編輯窗口的情況下,在命令窗口中輸入以下格式的命令: do 當(dāng)程序文
4、件不在默認(rèn)目錄下時(shí),程序文件名中必須包含路徑。 中止程序的執(zhí)行:在程序的執(zhí)行過(guò)程中可按ESC鍵中止程序的執(zhí)行。 程序的修改:當(dāng)關(guān)閉程序的編輯窗口后,要修改程序,可以通過(guò)文件菜單中的打開命令,文件類型選擇“程序”,然后選擇要打開的文件。,7.1.3程序中的輔助命令 1,注釋命令 以note或或開頭的內(nèi)容。其中note和只能作用于整行內(nèi)容作為注釋的情形,要在一行命令右邊加上注釋只能用& 【例7-1】 :程序中的注釋命令示例,* * 程序:職工檔案管理系統(tǒng) * * 作者: 高路 * * 日期 2005年月 * All Rights Reserved * * note 設(shè)置系統(tǒng)運(yùn)行環(huán)境 set tal
5、k off &關(guān)閉人機(jī)對(duì)話 set default to e:liang &指定默認(rèn)目錄 set date to YMD &指定日期格式,2,結(jié)束運(yùn)行程序運(yùn)行命令 格式1:RETURN 功能:返回到上級(jí)程序模塊。若本程序模塊是以菜單方式或命令方式調(diào)用的,則返回交互狀態(tài)(命令窗口中) 格式2:RETURNMASTER 功能:返回到最上級(jí)主程序。 格式3:CANCEL 功能:終止程序的執(zhí)行,返回交互狀態(tài)(命令窗口中) 格式4:QUIT 功能:關(guān)閉所有文件,關(guān)閉Visual FoxPro,3,運(yùn)行環(huán)境設(shè)置 在程序的開始部分經(jīng)常要進(jìn)行運(yùn)行環(huán)境的設(shè)置,其設(shè)置見表61,7.1.4程序的交互輸入命令 1,字
6、符串輸入命令 格式:accept to 功能:暫停程序的運(yùn)行,等待用戶從鍵盤輸入一串字符并賦給指定的內(nèi)存變量。 說(shuō)明:(1),提示信息用于提示用戶的輸入,其內(nèi)容必須是字符型的。 (2),用此命令輸入的所有內(nèi)容均作為字符型數(shù)據(jù)。 (3),輸入的字符串以回車符結(jié)束。,【例7-2】以下程序段是打開用戶從鍵盤輸入的表名,并根據(jù)輸入的姓名進(jìn)行簡(jiǎn)單的查詢輸出。 accept 請(qǐng)輸入要打開的數(shù)據(jù)表名: to tab_name use &tab_name accept 請(qǐng)輸入被查者姓名: to name locate for 姓名=name display,2,表達(dá)式輸入命令 格式:INPUT to 功能:暫
7、停程序的運(yùn)行,等待用戶從鍵盤輸入數(shù)據(jù)并賦給指定的內(nèi)存變量。若輸入的是一個(gè)表達(dá)式,則先計(jì)算表達(dá)式的值,然后將表達(dá)式的值賦給內(nèi)存變量。 說(shuō)明:(1)提示信息為字符型常量 (2)輸入的內(nèi)容可以是任何一個(gè)合法的N、C、D、L型表達(dá)式 (3)若輸入的是字符串,則必須加上定界符。,【例7-3】根據(jù)輸入的某種商品的單價(jià)和數(shù)量,計(jì)算并輸出應(yīng)付的金額。 CLEAR ALL INPUT 單價(jià): TO dj INPUT 數(shù)量: TO sl ?應(yīng)付金額:+str(dj*sl,9,2) RETURN,3,等待或單字符輸入命令 格式:WAIT to 功能:暫停程序的運(yùn)行,等待用戶從鍵盤輸入一個(gè)字符。當(dāng)包含to 短語(yǔ)時(shí),將
8、輸入的字符賦給指定的內(nèi)存變量,否則當(dāng)用戶按下任意鍵后繼續(xù)執(zhí)行程序。 說(shuō)明: 當(dāng)命令中包含了提示信息時(shí),將顯示提示信息。 本命令只能輸入一個(gè)字符(按下后不能修改,也不用按回車鍵結(jié)束輸入) 若命令中不帶任何選項(xiàng),只有WAIT,則程序暫停并顯示“按任意鍵后繼續(xù).”,【例7-4】下面的程序段是用WAIT命令接收用戶的回答,當(dāng)輸入N或n時(shí)終止程序的運(yùn)行,返回命令窗口。 . wait 繼續(xù)運(yùn)行嗎?(Y/N) to jx if upper(jx)=N cancel endif .,4,定位輸出與輸入命令 格式1:say 功能:在屏幕上的指定行、列位置,輸出表達(dá)式的值 格式2:sayget read 功能:在
9、屏幕上的指定行、列位置,輸出表達(dá)式的值,并在其后顯示變量的值,當(dāng)執(zhí)行read語(yǔ)句后可在原位置修改變量的值,修改后的值會(huì)自動(dòng)返回給變量。 格式3:saygetrange,valid 功能:在格式2的基礎(chǔ)上用表達(dá)式1和表達(dá)式2的值來(lái)規(guī)定數(shù)值或日期型變量的上限和下限。 valid用于規(guī)定輸入的變量值要滿足的條件。,【例7-5】定位輸出輸入命令應(yīng)用舉例。 clear use zgda append blank 6,12 say 請(qǐng)輸入新職工的信息: 7,12 say 姓名: get 姓名 8,12 say 性別: get 性別 valid 性別$男女 9,12 say 年齡 get 年齡 range
10、18,60 read browse use return,7.2 順序結(jié)構(gòu)程序設(shè)計(jì),7.2.13種基本程序結(jié)構(gòu) 程序中的基本語(yǔ)句由一般語(yǔ)句(能在命令窗口中運(yùn)行的語(yǔ)句)和結(jié)構(gòu)控制語(yǔ)句組成。結(jié)構(gòu)控制語(yǔ)句有選擇結(jié)構(gòu)(分支結(jié)構(gòu))和循環(huán)結(jié)構(gòu)。 程序的基本結(jié)構(gòu)有:順序結(jié)構(gòu)、分支結(jié)構(gòu)(又稱為選擇結(jié)構(gòu))和循環(huán)結(jié)構(gòu)。,1,順序結(jié)構(gòu):由一般語(yǔ)句按一定的順序排列而成,執(zhí)行時(shí)嚴(yán)格地從上至下執(zhí)行 2,分支結(jié)構(gòu):根據(jù)給定的條件決定執(zhí)行哪一個(gè)程序塊。分為簡(jiǎn)單分支、選擇分支和多路分支。 3,循環(huán)結(jié)構(gòu):在一定的條件下反復(fù)執(zhí)行某一程序段,直至條件不滿足時(shí)止。此條件又稱為循環(huán)條件。 循環(huán)結(jié)構(gòu)分為:當(dāng)型循環(huán)(dowhile循環(huán))、計(jì)
11、數(shù)型循環(huán)(for循環(huán))、掃描型循環(huán)(scan循環(huán)),7.2.2順序結(jié)構(gòu)程序設(shè)計(jì) 順序結(jié)構(gòu)的一般格式為: 設(shè)置工作環(huán)境 打開表等 給變量賦值 計(jì)算或操作語(yǔ)句 輸出語(yǔ)句 關(guān)閉文件 恢復(fù)工作環(huán)境,【例7-6】在職工檔案表中查看指定職工的有關(guān)情況。,算法: S1:打開職工檔案表 S2:輸入要查詢的職工的姓名 S3:按姓名查詢 S4:顯示查詢結(jié)果 S5:關(guān)閉表,use zgda accept 請(qǐng)輸入被查詢者姓名: to xm locate for 姓名=xm clear ?姓名:+姓名 ?職稱:+職稱 ?出生日期:+DTOC(出生日期) use return,【例7-7】根據(jù)輸入的人口基數(shù)和年平均增長(zhǎng)率
12、,計(jì)算二十年后的人口數(shù).,算法: S1:清屏 S2:輸入人口基數(shù) S3:輸入年平均增長(zhǎng)率 S4:計(jì)算二十年后的人口數(shù) S5:輸出計(jì)算結(jié)果,clear input 人口基數(shù): TO aa input 年平均增長(zhǎng)率: to bb cc=aa*(1+bb)20 ?二十年后的人口數(shù)為:+str(cc) return,7.3 分支結(jié)構(gòu)程序設(shè)計(jì),7.3.1 簡(jiǎn)單分支結(jié)構(gòu) 格式: IF ENDIF 功能:若條件成立,則執(zhí)行其后的語(yǔ)句系列,否則跳過(guò)語(yǔ)句系列,執(zhí)行ENDIF后面的語(yǔ)句。 說(shuō)明:1,IF和ENDIF必須成對(duì)出現(xiàn),且各占一行 2,書寫時(shí)最好將IF后面的語(yǔ)句系列向右縮進(jìn),將IF與其相對(duì)應(yīng)的ENDIF對(duì)
13、齊。,【例7-8】某種商品一次購(gòu)買100件以上時(shí),可享受8%的優(yōu)惠,試編程根據(jù)輸入的單價(jià)和數(shù)量計(jì)算應(yīng)付的金額。,算法設(shè)計(jì): S1:輸入數(shù)量與單價(jià) S2:計(jì)算金額je S3:IF 數(shù)量=100 je=je*0.92 ENDIF S4:輸出金額,clear input 數(shù)量: to sl input 單價(jià): to dj je=dj*sl if sl=100 je=je*0.92 endif ?應(yīng)付金額:+str(je,8,2) return,【例7-9】在程序中設(shè)置簡(jiǎn)單口令核對(duì)的一段程序 ?口令 set console off accept to password set console on i
14、f passwordABCD cancel endif,7.3.2選擇分支結(jié)構(gòu) 格式: IF條件 語(yǔ)句系列1 ELSE 語(yǔ)句系列2 ENDIF 功能:若條件為真則執(zhí)行語(yǔ)句系列1而不執(zhí)行語(yǔ)句系列2,否則執(zhí)行語(yǔ)句系列2而不執(zhí)行語(yǔ)句系列1。 說(shuō)明:1,IF和ENDIF必須成對(duì)出現(xiàn),且各占一行,ELSE也必須獨(dú)占一行。 2,語(yǔ)句系列中的語(yǔ)句可以是一句,也可以是多句。,【例7-10】設(shè)出租車不超過(guò)5公里時(shí)一律收費(fèi)10元,超過(guò)時(shí)則超過(guò)部分每公里加收1.5元,試編程根據(jù)里程數(shù)計(jì)算車費(fèi)。 clear input 里程數(shù): to lc if lc=5 ?車費(fèi)十元 else cf=10+(lc-5)*1.5 ?車
15、費(fèi)為:+str(cf,6,2) endif return,【例7-11】按姓名查詢職工檔案表中職工的基本情況。 clear use zgda input 請(qǐng)輸入要查詢的職工的姓名: to xm locate for 姓名=xm if found() display else ?查無(wú)此人! endif clear all return,7.3.3 分支嵌套結(jié)構(gòu) 前面的分支結(jié)構(gòu)中的語(yǔ)句系列也可以是IF.ELSE語(yǔ)句,即分支結(jié)構(gòu)可以嵌套。 【例7-12】設(shè)硅谷公司員工的工資計(jì)算方法如下: 工作時(shí)數(shù)超過(guò)120小時(shí)者,超過(guò)部分加百分之十五 工作時(shí)數(shù)低于80者,扣發(fā)500元 余者按每小時(shí)68元計(jì)發(fā),cle
16、ar input 請(qǐng)輸入工時(shí): to gs if gs120 gz=gs*68+(gs-120)*68*0.15 else if gs80 gz=gs*68-500 else gz=gs*68 endif endif ? gz,7.3.4多路分支結(jié)構(gòu) 格式: DOCASE CASE條件1 CASE條件2 CASE條件n OTHERWISE ENDCASE 功能:根據(jù)條件執(zhí)行相應(yīng)的語(yǔ)句,當(dāng)前面n個(gè)條件均不成立時(shí)執(zhí)行語(yǔ)句系列n+1,說(shuō)明:1,DO CASE必須和CASE成對(duì)出現(xiàn),且 各占一行 2, 各CASE語(yǔ)句的執(zhí)行是從CASE開始 按順序執(zhí)行,因此必須對(duì)條件的順序加以考慮。 3,DO CASE
17、與第1個(gè)CASE語(yǔ)句之間的語(yǔ)句將不執(zhí)行 【例7-13】編程計(jì)算銀行存款整存整取應(yīng)得的利息。,clear input本金(元): to bj input存期(年): to cq do case case cq=5 rate=7.5 case cq=3 rate=6.9 case cq=2 rate=6.6 case cq=1 rate=6.3 case cq=0.5 rate=4.5 otherwise rate=1.7 endcase lixi=bj*cq*rate/1000 ?應(yīng)得利息:+str(lixi,8,2) return,作業(yè),1,編程求下面分段函數(shù)的值(其中自變量x的值由鍵盤輸入)
18、。 2,編程求一元二次方程的根。 3,從鍵盤輸入成績(jī),然后根據(jù)下面標(biāo)準(zhǔn)給出等級(jí)成績(jī)(要求用 DO CASE語(yǔ)句完成) 成績(jī) 等級(jí)成績(jī) 等級(jí) 90100 A60-69 D 80-69 B60 E 70-79 C,提示: 1,S1:輸入x的值 S2:使用if語(yǔ)句根據(jù)x的值計(jì)算出y的值 S3:輸出y的值 2,S1:輸入一元二次方程的二次項(xiàng)、一次項(xiàng)系數(shù)和常數(shù)項(xiàng) S2:ifa=0則輸出“不是一元二次方程”,終止程序 S3:計(jì)算disc=b2-4*a*c S4:根據(jù)disc的不同情況分別計(jì)算出方程的根:實(shí)根、虛根,并輸出 3,S1:輸入成績(jī) S2:do case case 成績(jī)=90 輸出評(píng)語(yǔ) . end
19、case,7.4 循環(huán)結(jié)構(gòu)程序設(shè)計(jì),三種循環(huán)結(jié)構(gòu):當(dāng)型循環(huán)、步長(zhǎng)型循環(huán)和掃描型循環(huán) 循環(huán)結(jié)構(gòu)的組成: 循環(huán)開始語(yǔ)句 循環(huán)體 循環(huán)結(jié)束語(yǔ)句 其中:循環(huán)開始語(yǔ)句一般由循環(huán)結(jié)構(gòu)語(yǔ)句和條件判斷組成。 循環(huán)體是要反復(fù)執(zhí)行的程序段,7.4.1當(dāng)型循環(huán)結(jié)構(gòu) 1, DO WHILE循環(huán)語(yǔ)句 【格式】DO WHILE ENDDO,一個(gè)循環(huán)結(jié)構(gòu)一般應(yīng)具備如下的條件: (1)循環(huán)的初始條件:一般為給循環(huán)控制變量賦初值; (2)循環(huán)頭:循環(huán)語(yǔ)句的起始,設(shè)置、判斷循環(huán)條件; (3)循環(huán)尾:循環(huán)語(yǔ)句的結(jié)尾; (4)循環(huán)體:位于循環(huán)頭和循環(huán)尾之間、循環(huán)控制重復(fù)執(zhí)行的語(yǔ)句序列,循環(huán)的終止: 正常終止:當(dāng)循環(huán)條件為假(即不成立
20、)時(shí),將終止循環(huán)的執(zhí)行轉(zhuǎn)到執(zhí)行ENDDO后面的語(yǔ)句。 非正常終止:通過(guò)EXIT、QIUT、CANCEL和LOOP等語(yǔ)句控制循環(huán)的執(zhí)行。其中: EXIT:終止本層循環(huán)的執(zhí)行轉(zhuǎn)到執(zhí)行ENDDO后面的語(yǔ)句。 CANCEL:終止程序的執(zhí)行,返回命令窗口 QUIT:終止程序的執(zhí)行,關(guān)閉所有文件,關(guān)閉Visual FoxPro LOOP:終止從本語(yǔ)句的下一語(yǔ)句開始到ENDDO之間的語(yǔ)句的執(zhí)行,回到循環(huán)的開始處。 以上4個(gè)命令一般和IF語(yǔ)句配合使用,當(dāng)某一條件滿足時(shí)執(zhí)行相應(yīng)的語(yǔ)句。,【例7-14】求123.100的累計(jì)值 clear store 0 to n,sum do while n100 n=n+1
21、sum=sum+n enddo ?累計(jì)值為:+str(sum,6),已知遞推公式,求其通項(xiàng)的值 若 Si=Si-1+f(i) 求Sn的值的程序段為 s=0 i=1 do while i=n s=s+f(i) i=i+1 enddo,例:求1 到100的所有偶數(shù)之和,si=si-1+2i 程序段為: s=0 i=1 do while i=50 s=s+2*i i=i+1 enddo,【例7-15】雞兔同籠問(wèn)題。設(shè)雞和兔共有頭37個(gè)、腳134個(gè),問(wèn)雞和兔各有多少? 設(shè)雞有cock個(gè),兔有rabbit個(gè),則有: cock+rabbit=37 2*cock+4*rabbit=134 解題方法:對(duì)雞、兔
22、的各種情形(雞數(shù)從0到37)進(jìn)行判斷 cock=0 do while cock=37 rabbit=37-cock if 2*cock+4*rabbit=134 ?雞:+str(cock,2)+ 兔:+str(rabbit,2) endif cock=cock+1 enddo,【例7-16】簡(jiǎn)單的程序功能選擇程序。下面程序是打開職工檔案表后,在屏幕上顯示一個(gè)可對(duì)該表進(jìn)行“瀏覽”、“修改”或“追加”操作的菜單供用戶選擇,根據(jù)選擇結(jié)果由多路分支語(yǔ)句控制所做的相應(yīng)的操作。,算法設(shè)計(jì): S1:打開表 S2:do while .t. S21: 顯示選擇菜單:1,瀏覽,2,修改,3,追加,4,退出 S22
23、:選擇 S23:根據(jù)選擇結(jié)果執(zhí)行相應(yīng)的操作,SET TALK OFF SET STATUS OFF &關(guān)閉狀態(tài)行 CLEAR ALL USE ZGDA DO WHILE .T. CLEAR TEXT 1-瀏覽 2修改 3追加0退出 ENDTEXT ? WAIT 請(qǐng)選擇(03): TO X,CLEAR DO CASE CASE X=1 GO TOP BROWSE NOMODIFY CASE X=2 INPUT 請(qǐng)輸入修改的記錄號(hào): TO jlh EDIT CASE X=3 APPEND LIST CASE X=0 EXIT OTHERWISE WAIT 選擇錯(cuò),按任意鍵繼續(xù) ENDCASE EN
24、DDO CLOSE ALL SET TALK ON RETURN,【例7-17】編程輸出職工檔案表中基本工資在800元以下的職工的姓名及基本工資,并統(tǒng)計(jì)這些職工的人數(shù)。,clear all use zgda n=0 do while !EOF() if 基本工資800 ?姓名,基本工資 n=n+1 endif skip enddo ?基本工資小于800的共有+str(n)+人 use return,clear all use zgda n=0 do while !EOF() if 基本工資=800 skip loop endif ?姓名,基本工資 n=n+1 skip enddo ?基本工資小
25、于800的共有+str(n)+人 use return,7.4.2步長(zhǎng)型循環(huán)結(jié)構(gòu),格式: FOR = TO STEP ENDFOR或NEXT 功能:當(dāng)循環(huán)變量不超過(guò)終值時(shí)執(zhí)行循環(huán)體,超過(guò)終值時(shí)執(zhí)行ENDFOR后的語(yǔ)句。超過(guò)的意義為:當(dāng)步長(zhǎng)為正時(shí)循環(huán)變量大于終值為超過(guò);當(dāng)步長(zhǎng)為負(fù)時(shí)循環(huán)變量小于終值為超過(guò)。,使用FOR循環(huán)語(yǔ)句的有關(guān)說(shuō)明: 省略STEP ,則步長(zhǎng)為默認(rèn)值1; 初值、終值和步長(zhǎng)都可以是數(shù)值表達(dá)式,但這些表達(dá)式僅在循環(huán)語(yǔ)句開始執(zhí)行時(shí)計(jì)算一次。循環(huán)語(yǔ)句執(zhí)行過(guò)程中,初值、終值和步長(zhǎng)是不會(huì)改變的,并由此確定循環(huán)的次數(shù); 可以在循環(huán)體內(nèi)改變循環(huán)變量的值,但會(huì)改變循環(huán)執(zhí)行次數(shù); EXIT和LOO
26、P命令可以出現(xiàn)在循環(huán)體內(nèi)。執(zhí)行LOOP命令時(shí),結(jié)束本次循環(huán),循環(huán)變量增加一個(gè)步長(zhǎng)值,返回FOR循環(huán)頭判斷循環(huán)條件是否成立。執(zhí)行EXIT命令時(shí),程序跳出循環(huán),執(zhí)行循環(huán)尾后面的語(yǔ)句,【例7-18】用步長(zhǎng)型循環(huán)求1到100之和,sum=0 for i=1 to 100 sum=sum+i endfor ?1+2+.+100=,sum,sum=0 for i=2 to 100 step 2 sum=sum+i endfor ?1+2+.+100=,sum,sum=0 for i=1 to 100 step 2 sum=sum+i endfor ?1+2+.+100=,sum,例:求n! set tal
27、k off input n=: to n p=1 for i=1 to n p=p*i endfor ?p set talk on,例:求1!+2!+ +n! set talk off input n=: to n sum=0 p=1 for i=1 to n p=p*i sum=sum+p endfor ?sum set talk on,【例7-19】從鍵盤輸入10個(gè)數(shù),編程找出其中的最大值和最小值。 SET TALK OFF CLEAR INPUT “請(qǐng)從鍵盤輸入一個(gè)數(shù):” TO A STORE A TO MAX,MIN FOR I=2 TO 10 INPUT “請(qǐng)從鍵盤輸入一個(gè)數(shù):” T
28、O A IF MAXA MIN=A ENDIF ENDFOR ? “最大值為:” , MAX ? “最小值為:” , MIN SET TALK ON RETURN,7.4.3 掃描型循環(huán)結(jié)構(gòu)(scan循環(huán)),1,SCAN ENDSCAN 語(yǔ)法:SCAN 范圍 for|while 條件 語(yǔ)句序列 ENDSCAN 功能:對(duì)當(dāng)前表的指定范圍內(nèi)的滿足條件的記錄逐個(gè) 執(zhí)行一次語(yǔ)句序列,直到條件不成立或記錄指針指向表尾。,說(shuō)明:(1)使用SCAN循環(huán)之前必須先打開要操作的表。 (2)缺省范圍短語(yǔ)時(shí),指ALL。 (3) 執(zhí)行完循環(huán)體后記錄指針自動(dòng)指向下一記錄。 (4)SCAN為循環(huán)起始語(yǔ)句,ENDSCAN為
29、循環(huán)結(jié)束語(yǔ)句,這兩個(gè)語(yǔ)句必須配對(duì)使用。 (5) 循環(huán)體內(nèi)可以使用LOOP語(yǔ)句和EXIT語(yǔ)句。,【例7-20】編程輸出職工檔案表中基本工資在800元以下的職工的姓名及基本工資,并統(tǒng)計(jì)這些職工的人數(shù)。,clear all use zgda n=0 do while !EOF() if 基本工資800 ?姓名,基本工資 n=n+1 endif skip enddo ?基本工資小于800的共有+str(n,3)+人 use return,clear all use zgda n=0 scan if 基本工資800 ?姓名,基本工資 n=n+1 endif endscan ?基本工資小于800的共有+s
30、tr(n,3)+人 use return,作業(yè),1,用FOR循環(huán)語(yǔ)句編程求 1+1/1!1/2!1/n! 2,編程求學(xué)生表中入學(xué)成績(jī)大于550的人數(shù)(用SCAN語(yǔ)句) 3,由鍵盤輸入多串字符,每個(gè)字符串輸入完成后給一 個(gè)選擇提示:“是否繼續(xù)(Y/N?),若輸入Y或y則繼續(xù),否則退出輸出字母?jìng)€(gè)數(shù)和數(shù)字個(gè)數(shù)。,習(xí)題講解,1,編程求下面分段函數(shù)的值(其中自變量x的值由鍵盤輸入)。 2,編程求一元二次方程的根。 3,從鍵盤輸入成績(jī),然后根據(jù)下面標(biāo)準(zhǔn)給出等級(jí)成績(jī)(要求用 DO CASE語(yǔ)句完成) 成績(jī) 等級(jí)成績(jī) 等級(jí) 90100 A60-69 D 80-69 B60 E 70-79 C,input 請(qǐng)輸
31、入自變量x的值: to x if x0 y=x2 else if x=1 y=sin(x) else y=1-2*x endif endif ?x=+str(x,4,2) ?y=+str(y,5,3),input請(qǐng)輸入二次項(xiàng)系數(shù): to a input請(qǐng)輸入一次項(xiàng)系數(shù): to b input請(qǐng)輸入常數(shù)項(xiàng): to c if a=0 ?不是一元二次方程 wait cancel endif disc=b*b-4*a*c if disc=0 x1=(-b+sqrt(disc)/(2*a) x2=(-b-sqrt(disc)/(2*a) ?方程有兩個(gè)根:,x1,x2 endif if disc0 ?方程
32、有一對(duì)共軛復(fù)根,其實(shí)部為:,b/(2*a),虛部為:,sqrt(-disc)/(2*a) endif return,input 請(qǐng)輸入百分制成績(jī): to score do case case score=90 ?等級(jí)為A case score=80 ?等級(jí)為B case score=70 ?等級(jí)為C case score=60 ?等級(jí)為D otherwise ?等級(jí)為E endcase,7.4.4 循環(huán)嵌套結(jié)構(gòu),循環(huán)的嵌套,是在一個(gè)循環(huán)結(jié)構(gòu)的循環(huán)體中又包含另一個(gè)循環(huán)。我們稱外層循環(huán)為外循環(huán),被包含的循環(huán)為內(nèi)循環(huán)。嵌套層數(shù)一般沒(méi)有限制,但內(nèi)循環(huán)的循環(huán)體必須完全包含在外循環(huán)的循環(huán)體中,不能相互交叉
33、。正確的嵌套關(guān)系如: DO WHILE DO WHILE DO WHILE ENDDO ENDDO ENDDO,例7-21:輸出乘法口訣表 基本思路:輸出第1到第9行 a=1 do while a=9 輸出第a行 換行 a=a+1 enddo 輸出第a行:輸出a1=a . aa=a*a共a個(gè)式子 b=1 do while b=a 不換行輸出ab=a*b b=b+1 enddo 不換行輸出ab=a*b:?a,b,=,a*b ? +str(a,1)+str(b,1)+=+str(a*b,2),clear a=1 do while a=9 b=1 ? do while b=a ?space(2)+s
34、tr(a,1)+str(b,1)+=+str(a*b,2) b=b+1 enddo a=a+1 enddo,例7-22:編程輸出如下圖形,clear for m=1 to 8 m+2,20-m say for n=1 to 2*m-1 ?* endfor endfor,輸出8行“*”號(hào),第m行輸出2m-1個(gè)其中第1個(gè)星號(hào)的列號(hào)遞減 for m=1 to 8 移動(dòng)輸出位置到m+2行20-m列 輸出2m-1個(gè)“*”號(hào) endfor,例7-23輸出3到500之間的所有素?cái)?shù),for m=3 to 500 若m能被2.m-1中的某一個(gè)數(shù)整除則m不是素?cái)?shù) 否則m為素?cái)?shù),輸出m endfor for i=2
35、 to m-1 if m%i=0 exit endif,for m=3 to 500 step 2 for i=3 to m-1 if m%i=0 exit endif endfor if im-1 ?m endif endfor,【例7-24】某單位按部門建立了rsda1rsda8共個(gè)結(jié)構(gòu)相同的人事檔案數(shù)據(jù)表,其中日期型字段“工作日期”記載著各位職工參加工作的日期,試編程分別統(tǒng)計(jì)各部門各階段(1978年前,1978年至1984年,1985年至1999年,2000年后)參加工作的職工人數(shù)。,算法設(shè)計(jì) 打開表rsda1 對(duì)當(dāng)前表的各個(gè)記錄求其工作日期所在的年份y 根據(jù)y的值修改各階段參加工作的人
36、數(shù) 對(duì)其余表重復(fù)上面操作,clear all for n=1 to 8 bm=rsda+str(n,1) use &bm store 0 to a,b,c,d scan y=year(工作日期) do case case y1978 a=a+1 case y1985 b=b+1 case y2000 c=c+1 otherwise d=d+1,endcase endscan ?部門:+str(n,1) ?各年參加工作的人數(shù)為,a,b,c,d n=n+1 enddo close all,7.5模塊結(jié)構(gòu)程序設(shè)計(jì),結(jié)構(gòu)化程序設(shè)計(jì)采用的是自頂向下,逐步求精的模塊化結(jié)構(gòu)程序設(shè)計(jì)。 模塊:具有某種功能的一
37、段獨(dú)立的程序。 模塊化程序設(shè)計(jì):不同的功能用不同的模塊實(shí)現(xiàn),模塊之間的連接用DO命令實(shí)現(xiàn),被調(diào)用的模塊稱為子模塊,調(diào)用子模塊的模塊稱為主模塊。 模塊化程序設(shè)計(jì)的優(yōu)點(diǎn):程序結(jié)構(gòu)清晰,易于分別編寫與調(diào)試,便于維護(hù)與調(diào)用,有利于程序功能的進(jìn)一步擴(kuò)充與完善。,7.5.1 程序模塊的建立與運(yùn)行,程序模塊的建立方法與建立程序的方法相同。利用模塊建立完整的程序的步驟為: :用建立程序文件的方法分別建立各子模塊并保存。 :用建立程序文件的方法建立主程序(在其中用命令 調(diào)用子模塊) :調(diào)試程序(即運(yùn)行主程序) 說(shuō)明:,模塊的最后一個(gè)語(yǔ)句為RETURN語(yǔ)句; ,子模塊也可調(diào)用其余模塊; ,當(dāng)程序執(zhí)行RETURN語(yǔ)
38、句后,將轉(zhuǎn)向調(diào)用該子模塊的DO語(yǔ)句的下一語(yǔ)句,模塊中位于RETURN語(yǔ)句后的語(yǔ)句將不被執(zhí)行。,【例7-25】用子模塊調(diào)用完成例7-24,*主模塊main.prg clear all n=1 do while n=8 clear bm=rsda+str(n,1) use &bm do subpro &調(diào)用子模塊 close data n=n+1 enddo return,*子模塊,文件名為subpro.prg store 0 to a,b,c,d scan y=year(工作日期) do case case y1978 a=a+1 case y1985 b=b+1 case y2000 c=c+
39、1 otherwise d=d+1 endcase endscan ?部門+str(n,1) ? 參加工作各階段人數(shù)為:,a,b,c,d return,【例7-26】對(duì)于任意輸入的x、y、z的正整數(shù)值,計(jì)算x!+y!+z!的值,子模塊subp_1.prg public t t=1 for i=1 to n t=t*i next return,*主模塊main_1.prg clear input x=: to x input y=: to y input z=: to z n=x do subp_1 a=t n=y do subp_1 b=t n=z,do subp_1 w=a+b+t ?x!+
40、y!+z!=,w return,【例7-27】一個(gè)簡(jiǎn)化的職工檔案管理系統(tǒng)的“檔案管理”主程序模塊,檔案管理 dagl.prg,添加記錄 tjjl.prg,刪除記錄 scjl.prg,修改數(shù)據(jù) xgsj.prg,查詢檢索 cxjs.prg,按記錄修改 ajlxg.prg,按字段修改 azdxg.prg,主控程序模塊算法 S1: 環(huán)境設(shè)置 S2: do while .t. S21: 顯示簡(jiǎn)易菜單 S22: 使用wait命令進(jìn)行菜單選擇 S23: 用do case按不同的選擇調(diào)用相應(yīng)的子模塊 S3: 結(jié)束,SET TALK OFF &不顯示命令執(zhí)行結(jié)果 SET SAFETY OFF &重寫文件時(shí)不提
41、示 SET STATUS OFF &關(guān)閉狀態(tài)行 SET DEFAULT TO D:ZGDAG1 &設(shè)置默認(rèn)目錄 CLEAR DO WHILE .T. CLEAR 2,20 SAY *職工檔案管理系統(tǒng)* 3,20 SAY T_添加記錄 S_刪除記錄 4,20 SAY X_修改數(shù)據(jù) C_查詢檢索 5,20 SAY Q_退出 6,20 SAY *,? WAIT 請(qǐng)鍵入字母選擇對(duì)應(yīng)功能: TO ch ch=upper(ch) do case case ch=Q ?歡迎再次使用本系統(tǒng)! exit case ch=T do tjjl case ch=S do scjl case ch=X do xgsj
42、case ch=C do cxjs otherwise ?選擇錯(cuò)誤,重新選擇 wait,endcase enddo set talk on close all return,7.5.3 帶參模塊的建立與調(diào)用,在模塊程序設(shè)計(jì)中,各模塊之間常需要傳遞數(shù)據(jù):將主模塊中的初始數(shù)據(jù)傳遞到子模塊中,將子模塊中的結(jié)果傳回給主模塊。 數(shù)據(jù)的傳遞有兩種方法:一是通過(guò)帶參調(diào)用程序模塊的方法,二是通過(guò)全局變量。 帶參調(diào)用程序模塊的方法:要求子模塊中必須有接受參數(shù)的命令,在主模塊中通過(guò)帶參模塊調(diào)用命令調(diào)用子模塊并將數(shù)據(jù)傳遞給子模塊。,1,帶參模塊調(diào)用 格式:DO 程序模塊名WITH參數(shù)表 功能:調(diào)用指定名稱的程序模塊
43、,并將參數(shù)表中的各參數(shù)的值分別傳遞給所調(diào)用模塊中的對(duì)應(yīng)位置的參數(shù)。 說(shuō)明:(1)本命令通常在主模塊中使用,也可在命令窗口中使用。 (2)程序模塊名應(yīng)是一個(gè)可被帶參調(diào)用的程序模塊,且應(yīng)具有接收參數(shù)的功能。 (3)參數(shù)表中的參數(shù)稱為實(shí)際參數(shù),各參數(shù)間用逗號(hào)分隔,參數(shù)可以是常量、變量和表達(dá)式,變量和表達(dá)式必須有確定的值。,2,接收參數(shù)命令 格式:PARAMETERS參數(shù)表 功能:接收帶參模塊調(diào)用命令傳遞過(guò)來(lái)的各個(gè)參數(shù)。 說(shuō)明:(1)本命令必須為第一個(gè)可執(zhí)行語(yǔ)句。 (2)中的各參數(shù)為形式參數(shù),其個(gè)數(shù)和類型必須和實(shí)際參數(shù)一一對(duì)應(yīng)。 (3)當(dāng)流程返回主模塊時(shí),形參的值將傳遞給實(shí)參變量。 【例7-28】利用
44、帶參調(diào)用的方法計(jì)算圓柱體的體積,*計(jì)算圓柱體體積的可被帶參調(diào)用的子模塊 *程序名:rhv.prg PARAMETERS R,H,V S=PI()*R*R V=S*H RETURN,*帶參調(diào)用計(jì)算圓柱體體積的主模塊 *程序名:例7_28.prg CLEAR INPUT 圓住體的底面半徑為: TO a INPUT 圓住體的高為: TO b c=0 DO rhv with a,b,c ?圓柱體的體積為:,c return,【例7-29】統(tǒng)計(jì)“分?jǐn)?shù).dbf”數(shù)據(jù)表中各門課程不及格的人數(shù),并調(diào)用帶參模塊scr.prg顯示統(tǒng)計(jì)結(jié)果。,store 0 to x,y,z use 分?jǐn)?shù) scan if 語(yǔ)文60
45、 x=x+1 endif if 數(shù)學(xué)60 y=y+1 endif if 英語(yǔ)60 z=z+1 endif endscan,do scr with x,語(yǔ)文 do scr with y,數(shù)學(xué) do scr with z,英語(yǔ) return,*scr.prg parameters rs,kc if rs0 cd=len(ltrim(str(rs) ? kc+不及格人數(shù)為+str(rs,cd)+人 endif return,7.5.4 內(nèi)存變量作用域,不同的范圍定義的變量有不同的使用范圍, 1,子程序中能否使用主程序中定義的變量? 2,能否使用其它程序中定義的變量? 3,主程序中能否使用子程序中定義
46、的變量?, 4,程序中能否使用在命令窗口中定義的變量? 內(nèi)存變量的作用域:內(nèi)存變量在各程序模塊內(nèi)起作用的有效范圍。 內(nèi)存變量的分類:按作用域的不同,可把內(nèi)存變量分為全局變量和局部變量。,,全局變量 又稱為公共變量。是在任何命令語(yǔ)句以及任何嵌套層次的程序模塊中均起作用的內(nèi)存變量。定義全局變量的命令如下: 格式:PUBLIC 說(shuō)明:(1) 全局變量在創(chuàng)建它的程序模塊運(yùn)行結(jié)束后并不釋放,因而可在其后的各 模塊中使用。 (2) 全局變量應(yīng)先定義后賦值,不允許先賦值后定義。 (3) 全局變量可用RELEASE命令釋放,沒(méi)有釋放前不能重新定義為局部變量。 (4) 在命令窗口中定義的變量為全局變量。,,局部
47、變量 只在當(dāng)前模塊和其下層模塊中使用的變量。 格式1:PRIVATE 格式2:PRIVATEALLLIKE/EXCEPT 功能:指定某些變量為只在本模塊及其下屬模塊中使用的局部變量,并使其上級(jí)模塊中的同名變量隱蔽起來(lái)直至本級(jí)模塊運(yùn)行結(jié)束為止。,說(shuō)明: 使用內(nèi)存變量表時(shí),表中所列的內(nèi)存變量為局部變量。 使用短語(yǔ)ALL時(shí),在本模塊中建立的所有內(nèi)存變量均為局部變量。 使用短語(yǔ)LIKE通配符時(shí),與通配符相匹配的內(nèi)存變量均為局部變量。 通配符有“*”號(hào)和“?”號(hào),*號(hào)代表任意一串字符,?號(hào)則只代表一個(gè)字符,?號(hào)常用于確定字符的位置。如第1個(gè)字母為a的所有變量:a*,第2、3個(gè)字母為cd的內(nèi)存變量:?cd
48、*。 使用短語(yǔ)EXCEPT通配符時(shí),不與通配符相匹配的內(nèi)存變量為局部變量。 在程序模塊中所有未經(jīng)特殊說(shuō)明的內(nèi)存變量均為局部變量,局部變量可在創(chuàng)建它的模塊及其下屬模塊中使用,而不能在其上級(jí)模塊中使用。,【例7-30】?jī)?nèi)存變量作用域示例,*子模塊sub_3.prg PRIVATE b PUBLIC c a=10 b=11 c=12 d=13 ?子模塊中,a=,a,b=,b,c=,c,d=,d RETURN,*主模塊main_3.prg CLEAR ALL a=1 b=2 ?主模塊中,a=,a,b=,b DO sub_3 ?返回主模塊后,a=,a,b=,b,c=,c,d=,d RETURN,b為局部
49、變量,其值不會(huì)返回到主模塊 c為全局變量,其值會(huì)返回到主模塊中 d為局部變量,其值不會(huì)返回到主模塊 a為主模塊中定義的變量,其值會(huì)返回,7.5.5過(guò)程與過(guò)程文件,1,過(guò)程的概念 過(guò)程是由一個(gè)或多個(gè)命令、語(yǔ)句構(gòu)成,以返回語(yǔ)句return結(jié)束的獨(dú)立程序段。使用過(guò)程時(shí),通過(guò)過(guò)程名調(diào)用并執(zhí)行。過(guò)程一般放在主模塊之后,與主模塊在同一個(gè)程序文件中。 過(guò)程的一般形式為: procedure parameters return 調(diào)用過(guò)程的方法為:DO 在一個(gè)程序文件中可以包含多個(gè)過(guò)程,也可將多個(gè)過(guò)程組織成一個(gè)過(guò)程文件,*過(guò)程應(yīng)用示例 CLEAR ALL INPUT x= TO x INPUT y= TO y
50、INPUT z= TO z n=x do factorial a=t n=y do factorial b=t n=z do factorial w=a+b+t ?w=x!+y!+z!=,w,【例7-32】編寫一個(gè)計(jì)算階乘的通用過(guò)程,并將其包含在一個(gè)求解w=x!+y!+z!之值的程序中.,*以下為計(jì)算階乘的通用過(guò)程 PROCEDURE factorial PUBLIC t t=1 for i=1 to n t=t*i next return,2, 過(guò)程文件 當(dāng)有多個(gè)過(guò)程時(shí),可以將其放在一個(gè)文件中,此文件稱為過(guò)程文件,過(guò)程文件的格式為: procedure parameters return p
51、rocedure parameters return . procedure parameters return 即由多個(gè)過(guò)程按順序排列而成,過(guò)程文件的建立:與普通程序文件的建立方法相同。 過(guò)程文件中的過(guò)程的調(diào)用方法: 先打開過(guò)程文件,然后使用DO過(guò)程名調(diào)用過(guò)程文件中的過(guò)程。 過(guò)程文件的打開格式: SET PROCEDURE TO 過(guò)程文件名 過(guò)程文件的關(guān)閉: CLOSE PROCEDURE 或 SET PROCEDURE TO,7.5.6 用戶自定義函數(shù),除了使用系統(tǒng)提供的函數(shù)外,用戶還可以定義函數(shù). 函數(shù)定義的一般格式: function parameters return 調(diào)用方法與調(diào)用
52、系統(tǒng)函數(shù)相同: 函數(shù)名(參數(shù)表),說(shuō)明: 自定義函數(shù)程序段允許以function 開頭,并包含在調(diào)用它的程序文件中,作為其中的一部分出現(xiàn).也可以在缺省function 的情況下,以一個(gè)獨(dú)立的程序文件存儲(chǔ),此時(shí)程序名即為其函數(shù)名。 PARAMETERS語(yǔ)句用來(lái)接收調(diào)用此函數(shù)時(shí)傳遞過(guò)來(lái)的自變量的值,若函數(shù)不用接收參數(shù),則去掉此句。 RETURN語(yǔ)句用來(lái)返回函數(shù)值,其返回的數(shù)據(jù)類型即函數(shù)的類型。 自定義函數(shù)的調(diào)用方法與調(diào)用系統(tǒng)函數(shù)的方法相同,例7-33:編寫一個(gè)計(jì)算階乘的自定義函數(shù)包含在調(diào)用它的程序中,并調(diào)用此函數(shù)計(jì)算組合數(shù),clear input 請(qǐng)輸入m的值: TO m input 請(qǐng)輸入n的值
53、: TO n y=jiech(m)/(jiech(n)*jiech(m-n) ? 組合數(shù)的計(jì)算結(jié)果是:+str(y,8) return FUNCTION JIECH PARAMETERS K t=1 for i=1 to k t=t*i endfor return t endfunc,clear input 請(qǐng)輸入m的值: TO m input 請(qǐng)輸入n的值: TO n y=jiech(m)/(jiech(n)*jiech(m-n) ? 組合數(shù)的計(jì)算結(jié)果是:+str(y,8) return FUNCTION JIECH PARAMETERS K t=1 for i=1 to k t=t*i e
54、ndfor return t endfunc,【例7-34】編寫一個(gè)獨(dú)立保存的自定義函數(shù),用來(lái)自動(dòng)實(shí)現(xiàn)將阿拉伯?dāng)?shù)字的整數(shù)金額轉(zhuǎn)換為對(duì)應(yīng)的漢字大寫金額。,PARAMETERS je z1=元拾佰仟萬(wàn)拾佰仟億拾佰仟 z2=零壹貳叁肆伍陸柒捌玖 je=ALLTRIM(STR(je,12) cd=LEN(je) dxje=整 k=0 DO WHILE cd0 k=k+1 n=val(substr(je,cd,1) &n為從個(gè)位開始的阿拉伯?dāng)?shù)字 b1=substr(z2,n*2+1,2) &b1為與n對(duì)應(yīng)的漢字 b2=subst(z1,k*2-1,2) &b2依次為元拾佰仟萬(wàn)拾佰仟億拾佰仟 dxje=b1+b2+dxje cd=cd-1 enddo return dxje,7.6數(shù)組及其應(yīng)用,數(shù)組是一批名稱相同,而以不同下標(biāo)加以區(qū)分的內(nèi)存變量,數(shù)組中的每個(gè)內(nèi)存變量稱為數(shù)組元素,數(shù)組元素用數(shù)組名和下標(biāo)表示,下標(biāo)的個(gè)數(shù)決定數(shù)組的維數(shù)。Visual FoxPro中的數(shù)組有以下特點(diǎn): ()只有一維數(shù)組和二維數(shù)組,二維數(shù)組相當(dāng)于一個(gè)矩陣。 ()每個(gè)數(shù)組至多可有3600個(gè)元素,同一數(shù)組內(nèi)的各元素的數(shù)據(jù)類型可以不同。 ()二維數(shù)組可作為一維數(shù)組進(jìn)行訪問(wèn)。,7.6.1數(shù)組的定義與使用,,數(shù)組的定義,例:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版無(wú)抵押個(gè)人裝修借款合同模板3篇
- 2025版智慧城市信托資金借款合同3篇
- 2025年度汽車租賃車輛更新?lián)Q代合同4篇
- 2025年度個(gè)人教育貸款合同
- 2025-2030全球高速自動(dòng)洗瓶機(jī)行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 2025年度個(gè)人對(duì)個(gè)人房屋裝修借款合同樣本2篇
- 2025版施工單位水泥磚采購(gòu)與施工圖設(shè)計(jì)及施工質(zhì)量監(jiān)督服務(wù)合同3篇
- 2025年度綠色建筑節(jié)能材料研發(fā)與應(yīng)用合同范本3篇
- 2025版房地產(chǎn)銷售合同修訂與購(gòu)房人權(quán)益保障
- 二零二五年度軟件測(cè)試工程師保密合同及質(zhì)量保證協(xié)議3篇
- 骨科抗菌藥物應(yīng)用分析報(bào)告
- 支付行業(yè)反洗錢與反恐怖融資
- 百詞斬托福詞匯excel版本
- 基礎(chǔ)設(shè)施綠色施工技術(shù)研究
- 寶鋼BQB 481-2023全工藝?yán)滠堉蓄l無(wú)取向電工鋼帶文件
- 車輛定損情況確認(rèn)書范本
- 高中英語(yǔ)新課標(biāo)詞匯表(附詞組)
- 證券公司信用風(fēng)險(xiǎn)和操作風(fēng)險(xiǎn)管理理論和實(shí)踐中金公司
- 2022年高考湖南卷生物試題(含答案解析)
- GB/T 20909-2007鋼門窗
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
評(píng)論
0/150
提交評(píng)論