版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第4章 MatLab的程序設(shè)計MatLab是一個工具、開發(fā)平臺,同時它也是一門編程語言。與在命令窗口用交互的方式工作相比,通過程序運行來解決實際問題,其效率更高,因此,凡是復(fù)雜的、大型的應(yīng)用都是以程序的方式執(zhí)行。相對其它高級語言,MatLab更簡單、編程的效率更高、調(diào)試過程也更容易。MatLab中的程序文件是以m為后綴,所以通常將MatLab的程序文件稱為m文件。MatLab提供了兩種形式的m文件,即:腳本(Script)式m文件(就簡稱m文件)、函數(shù)型m文件。在MatLab中已經(jīng)嵌入了一個功能強大的集成開發(fā)環(huán)境m文件編輯器,用它來進行程序的編輯、修改、調(diào)試、運行等,完成應(yīng)用開發(fā)工作。4.1
2、MatLab程序設(shè)計基礎(chǔ)通過前面內(nèi)容的學(xué)習(xí),大家對MatLab已經(jīng)有了一個初步的認(rèn)識和印象,到目前為止,我們都是在“命令”窗口中,以交互的方式運行,完成我們的工作。實際上簡單的m文件,就是一個批處理程序,它是若干條命令的集合。例:4.1.1 M文件規(guī)則和屬性函數(shù)M文件必須遵循一些特定的規(guī)則。除此之外,它們有許多的重要屬性,這其中包括:1. 函數(shù)名和文件名必須相同。例如,函數(shù)fliplr 存儲在名為fliplr.m 文件中。 2. MATLAB頭一次執(zhí)行一函數(shù)個M文件時,它打開相應(yīng)的文本文件并將命令編輯成存儲器的內(nèi)部表示,以加速執(zhí)行以后所有的調(diào)用。如果函數(shù)包含了對其它函數(shù)M文件的引用,它們也同樣
3、被編譯到存儲器。普通的腳本M文件不被編譯,即使它們是從函數(shù)M文件內(nèi)調(diào)用;打開腳本M文件,調(diào)用一次就逐行進行注釋。 3. 在函數(shù)M文件中,到第一個非注釋行為止的注釋行是幫助文本。當(dāng)需要幫助時,返回該文本。例如, » help fliplr返回上述前八行注釋。 4. 第一行幫助行,名為H1 行,是由lookfor 命令搜索的行。 5. 函數(shù)可以有零個或更多個輸入?yún)⒘?。函?shù)可以有零個或更多個輸出參量。 6. 函數(shù)可以按少于函數(shù)M文件中所規(guī)定的輸入和輸出變量進行調(diào)用,但不能用多于函數(shù)M文件中所規(guī)定的輸入和輸出變量數(shù)目。如果輸入和輸出變量數(shù)目多于函數(shù)M文件中function 語句一開始所規(guī)定的
4、數(shù)目,則調(diào)用時自動返回一個錯誤。相對于函數(shù)m文件,腳本式m文件就簡單多了,它沒有嚴(yán)格的格式要求,只要將有關(guān)的命令或函數(shù)一一敲入即可,但是還是有幾個問題需要注意:1. m文件的名稱不得與MatLab的內(nèi)部函數(shù)同名、第一個字符不得為數(shù)字(這點與變量的命名規(guī)則相同);2. 最好在文件的頭部加上注釋,對該m文件的作用、功能作一個簡要說明,而在一些重要命令行后也加上注釋行,以方便使用者閱讀、查找;3. 要特別注意m文件的保存路徑或位置,如果不是保存在MatLab默認(rèn)的路徑下,可以使用addpath函數(shù)來設(shè)置、添加路徑,否則,m文件不能運行。腳本式m文件與函數(shù)m文件還有一個重要區(qū)別:腳本式m文件中的變量均
5、為全局變量,而函數(shù)m文件中的變量則是局部變量。這可以從這兩種程序文件運行后在Workspace中留下痕跡看出。當(dāng)然,在函數(shù)m文件中也可以專門將某些變量定義為全局變量(關(guān)鍵字是:global)。不過,在使用全局變量(函數(shù)m文件中)時應(yīng)特別注意:.全局變量需要函數(shù)體的變量賦值語句之前定義或說明;.全局變量名最好是大寫,而且要盡量長,能反映它本身的含義; .實際編程時,全局變量也要盡可能少用,因為一旦它在一個地方被改變,那么其它包括該變量的函數(shù)中都得改變,有時可能會出現(xiàn)意想不到情況。4.1.2 M文件的組成函數(shù)M文件實例:function f=fact(n) %函數(shù)定義行 %Compute a fa
6、ctorial value %H1行 %FACT (N)return the factorial of N, %usually denoted by N %幫助文本 %Put simply,F(xiàn)ACT (N)is PROD (1:N ) %注釋 f=prod (1:N ); %函數(shù)體一個完整的函數(shù)M文件通常包括:. 函數(shù)定義行:定義函數(shù)名以及輸入、輸出變量的數(shù)目和順序;. H1行:對該函數(shù)進行概括性的描述(可用help和Lookfor命令調(diào)出此行);. 幫助文本:這是比H1行更詳細(xì)的幫助信息,使用help命令時與H1行一起顯示;. 函數(shù)體:這是函數(shù)M文件的主要部分,程序的功能都在此部分實現(xiàn);.
7、注釋:對程序行的意義進行解釋(與H1行一樣都是用%開頭)。有的函數(shù)M文件還包含return語句!4.1.3 M文件編輯器介紹1. m文件編輯器的啟動在命令窗口中敲入:edit點擊工具欄中的新建圖標(biāo)從菜單file/new/M-file中啟動2. m文件編輯器的界面菜單欄工具欄編輯窗口3. m文件的運行在m文件編輯器內(nèi)在命令窗口中運行 在命令窗口直接輸入m文件名,回車即可,但函數(shù)m文件通常還必須帶參數(shù)才能運行,也可以利用feval函數(shù)來運行函數(shù)m文件,其格式如下:feval('functionname', arg1, arg2, .)對于腳本式m文件,還可以用run函數(shù)在命令窗口中
8、運行存在的m文件。格式:run m文件名 (不必帶文件的后綴)4.1.4 對函數(shù)M文件的調(diào)用凡是以函數(shù)m文件形式保存的程序文件,均可以被其它函數(shù)m文件或腳本m文件所調(diào)用。例:先定義一個函數(shù)m文件:%計算階乘function y=jiech(n)y=1;for i=1:n y=y*i;end編寫m文件實現(xiàn)對上述函數(shù)m文件的調(diào)用:function z=dy(n)z=log(jiech(n);4.1.5數(shù)據(jù)類型與結(jié)構(gòu)MatLab的數(shù)據(jù)類型前面已經(jīng)介紹,下面是它們之間的關(guān)系圖:MatLab中結(jié)構(gòu)(教材中稱構(gòu)架)的概念和C語言中的類似,它也包含一個或多個域(數(shù)據(jù)容器),每個域可以包含任何類型的數(shù)據(jù)(這一
9、點與單元數(shù)組又相似),且相互獨立。下面通過實例來說明如何建立并訪問結(jié)構(gòu)。用結(jié)構(gòu)建立學(xué)生的數(shù)據(jù)記錄。. 例1:在命令窗口直接創(chuàng)建(或用m文件編輯器)創(chuàng)建。student.num=20070135;='李四'student.age=20;student.weight=67;student.height=1.68;student.test=90 85 76 63 88 54 79; 從這個例子可以看出結(jié)構(gòu)建立的方法:直接建立結(jié)構(gòu)和各個域,同時給各域賦值(也可以不賦值),結(jié)構(gòu)和域之間用點“.”連接。. 用關(guān)鍵字“struct”創(chuàng)建,格式如下:s = struct
10、('field1', values1, 'field2', values2, .)例2:用關(guān)鍵字“struct”創(chuàng)建。student=struct('num',20070135,'name','zhangsan','weight',1.68,'height',75,'test',98 87 65 95 78). 結(jié)構(gòu)的操作 結(jié)構(gòu)域的訪問 結(jié)構(gòu)域的添加、修改直接添加或用函數(shù)setfield()添加;直接修改或用函數(shù)setfield()修改。 結(jié)構(gòu)域的刪除 用函數(shù)rmfi
11、eld()刪除某個域。格式:s=rmfield(s,'fieldname')4.2 MatLab程序的控制程序的流程控制是高級語言中必不可少、也是非常重要的部分,要編寫出高質(zhì)量的程序,實現(xiàn)對復(fù)雜系統(tǒng)的控制、仿真,這一點也是必須掌握的。MatLab提供了多種控制結(jié)構(gòu),包括:順序結(jié)構(gòu)、選擇(分支)結(jié)構(gòu)以及循環(huán)結(jié)構(gòu),每種結(jié)構(gòu)都有各自的控制機制,利用它們及其它們的組合可以實行功能強大的、復(fù)雜的應(yīng)用。4.2.1順序結(jié)構(gòu)順序結(jié)構(gòu)最簡單,它是一種最基礎(chǔ)的程序結(jié)構(gòu),也是最遵循邏輯思路的程序代碼結(jié)構(gòu),批處理文件就是典型的順序語句文件。這種語句不需要任何特殊的流控制,按照語句的排列順序,一條一條的
12、執(zhí)行,直至結(jié)束。例:4.2.2選擇(或分支)結(jié)構(gòu)如果程序中需要根據(jù)一定條件來執(zhí)行不同的操作時,可以使用條件語句來構(gòu)成選擇或分支結(jié)構(gòu)。在MatLab中可利用if語句來實現(xiàn)這種結(jié)構(gòu)。if語句的結(jié)構(gòu)通常有以下三種形式:1. 單分支結(jié)構(gòu):這種分支結(jié)構(gòu)最簡單,格式為:if 表達式 語句end它只有一個判斷語句,當(dāng)表達式為真時,就執(zhí)行語句,否則就不執(zhí)行。例:function f=ifone(x)if x>=0 fprintf('%f is a Positive number.n',x);end2. 雙分支結(jié)構(gòu):此時,采用if-else-end結(jié)構(gòu),語法是: if 表達式 語句1 el
13、se 語句2 end 即:表達式為真,系統(tǒng)執(zhí)行語句1,否則將轉(zhuǎn)入語句2執(zhí)行。例:將上面的例子擴充function f=ifone(x)if x>=0 fprintf('%f is a positive number.n',x);else fprintf('%f is a negative number.n',x);end3. 多分支結(jié)構(gòu):仍采用if-else-end結(jié)構(gòu),但語法上略有不同,形式如下:if 表達式1 語句1 %表達式1為真執(zhí)行語句1 elseif 表達式2 語句2 %表達式2為真執(zhí)行語句2 elseif 表達式3 語句3 %表達式3為真執(zhí)行語
14、句3 else 語句n %所有表達式為假執(zhí)行語句n end 例:編寫一個成績打印程序。function f=chengji(x)if x>=90 fprintf('%d 分,成績?yōu)閮?yōu)n',x)elseif x>=80 fprintf('%d 分,成績?yōu)榱糿',x)elseif x>=70 fprintf('%d 分,成績?yōu)橹衝',x)elseif x>=60 fprintf('%d 分,成績?yōu)榧案駈',x)else fprintf('%d 分,成績?yōu)椴患案駈',x)end4.2.3開關(guān)語句(
15、Switch分支結(jié)構(gòu))開關(guān)語句實際上也是分支結(jié)構(gòu)的一種,是一種多選擇的分支語句,作用與上面介紹的多分支結(jié)構(gòu)相似,這是MatLab6.0以上版本新增加的功能。該結(jié)構(gòu)的一般調(diào)用格式如下:Switch expression Case value1 Statements Case value2 Statements . Otherwise Statementsend例:采用switch結(jié)構(gòu)的一個簡單應(yīng)用。%提示用戶輸入數(shù)據(jù)input_num=input('Enter a number:');%根據(jù)情況判斷數(shù)值大小,顯示數(shù)據(jù)信息switch input_num case -1 disp(
16、'negative one'); case 0 disp('zero'); case 1 disp('positive one'); otherwise disp('other value'); %如果不是上面數(shù)據(jù),顯示“其它數(shù)據(jù)”end4.2.4 try-catch 結(jié)構(gòu)try-catch結(jié)構(gòu)(或模塊)為用戶提供了一種錯誤捕捉機制,利用該模塊,一旦MatLab的編譯系統(tǒng)發(fā)現(xiàn)錯誤,就將其捕捉,用戶可以控制MatLab去對出現(xiàn)的錯誤進行相應(yīng)處理。它的調(diào)用格式如下:try 語句1catch 語句2end一般來說,語句1中的所有命令都要
17、執(zhí)行,如果在執(zhí)行語句1時,沒有出現(xiàn)錯誤,那么在執(zhí)行語句1之后,就直接跳到end后;但是,如果在執(zhí)行語句1時,出現(xiàn)了錯誤,程序立刻轉(zhuǎn)到catch模塊中,去執(zhí)行語句2,并可通過調(diào)用lasterr函數(shù)查詢出錯的原因。例:見教材中P70例4-4。4.2.5循環(huán)結(jié)構(gòu)很多程序都可能會出現(xiàn)一些反復(fù)運行的部分,前面介紹的這些結(jié)構(gòu)就很難實現(xiàn)了。同其它高級語言一樣,MatLab也提供了循環(huán)語句。在循環(huán)語句中,被重復(fù)執(zhí)行的部分稱為循環(huán)體,控制循環(huán)語句是否繼續(xù)的稱為循環(huán)條件。在MatLab中有兩種循環(huán)結(jié)構(gòu),即所謂的for循環(huán)和while循環(huán)。1. for循環(huán) for循環(huán)語句有如下特點: 它的循環(huán)判斷條件通常是對循環(huán)次
18、數(shù)的判斷,即它的循環(huán)次數(shù)是預(yù)先設(shè)定好的; for循環(huán)語句可以嵌套使用。不僅可以對for本身嵌套,還可以對其它的結(jié)構(gòu)形式進行嵌套使用。for循環(huán)的語法: for i=表達式 語句1,語句n; end例:求n個數(shù)的平方。function x=pfh(n)for i=1:n x(i)=i2;end2. while循環(huán)與for循環(huán)不同,while循環(huán)的判斷控制可以是邏輯判斷語句,它的循環(huán)次數(shù)可以是一個不定數(shù),因此比for循環(huán)有更廣泛的用途。while循環(huán)的格式: while 表達式 語句 end在這個循環(huán)中只要表達式值不為false,程序就一直運行下去,語句被反復(fù)執(zhí)行。 例1:求幾個數(shù)的階乘。func
19、tion m=jiech(x)m=1;n=1; %給m和n賦初值while n<=x m=m*n; n=n+1; %n自增1end例2:Fibonacci數(shù)組的元素滿足Fibonacci 規(guī)則: ,;且?,F(xiàn)要求該數(shù)組中第一個大于10000的元素。a(1)=1;a(2)=1;i=2;while a(i)<=10000 a(i+1)=a(i-1)+a(i); %當(dāng)現(xiàn)有元素仍小于10000時,繼續(xù)執(zhí)行。 i=i+1;end;i,a(i),例3:綜合實例,打印九九乘法表(包含for循環(huán)的嵌套及if結(jié)構(gòu))。clear allclcfor i=1:9 for j=1:i fprintf(
20、9;%d*%d=%d, ',j,i,i*j); if j=i fprintf('n'); end endend 思考題:如果希望打印任意個數(shù)的乘法表怎么實現(xiàn)?4.2.6輸出格式的設(shè)置在上面的程序中已經(jīng)用到了輸出語句fprintf和disp,對于這些函數(shù)的使用,一個最重要的內(nèi)容就是對它們輸出格式的設(shè)置,MatLab提供了多種可選的輸出格式,方便了用戶的使用。下面表4-1就是一些常用輸出格式的名稱及其作用:輸出格式說 明%c輸出單個字符(Single character)%d帶符號十進制數(shù)Decimal notation (signed)%f定點數(shù)(Fixed-point
21、notation)%e指數(shù)記數(shù)制Exponential notation (using a lowercase e as in 3.1415e+00)%E指數(shù)記數(shù)制Exponential notation (using an uppercase E as in 3.1415E+00)%s字符串(String of characters)%u無符號十進制數(shù)Decimal notation (unsigned)%i與%d相同Decimal notation (signed)表4-1 輸出格式說明4.3 MatLab的人機交互命令在MatLab中,還提供了一些特殊的程序控制語句,利用這些語句用可以實
22、現(xiàn)以交互的方式輸入/輸出數(shù)據(jù)、提前終止循環(huán)、跳出子程序及顯示M文件的執(zhí)行過程等操作,方便用戶與計算機之間及時地進行交互。1.終止命令break和return這兩個命令在使用上的區(qū)別: break是終止循環(huán)(專門針對for和while循環(huán)),而return是終止程序。break必須在循環(huán)語句內(nèi),return可在任何位置。例:以只讀的方式打開一個m文件(不運行)。fid = fopen('fft.m','r'); %以只讀的方式打開fft.m文件s = '' %定義一個空字符串?dāng)?shù)組while feof(fid) line = fgetl(fid);
23、if isempty(line), break, end s = strvcat(s,line); %將空格與字符串進行垂直連接enddisp(s)return函數(shù)的使用就不在此舉例了。2.繼續(xù)命令continue for或while循環(huán)中,一旦遇到continue語句時,程序立即跳到循環(huán)的end語句,即跳過在continue與end之間的所有命令。例:程序行數(shù)的統(tǒng)計。fid = fopen('magic.m','r');count = 0;while feof(fid) line = fgetl(fid); if isempty(line) | strncmp
24、(line,'%',1) continue end count = count + 1;enddisp(sprintf('%d lines',count);3.等待用戶反映命令pause 作用:程序運行到此暫停,等待用戶的響應(yīng)。 格式: pause 或 pause(n),n暫停的時間。例:在九九乘法表程序的第一個fprintf語句后加上pause,看執(zhí)行的效果。4.echo命令 控制m文件中的命令在窗口是否顯示。通常m文件在執(zhí)行過程中并不會在命令窗口中顯示。例:在m文件中加入echo或echo on??梢宰尦绦蜻\行到哪里就顯示在哪里。5.請求用戶輸入命令inpu
25、t 這是人機交互程序中一個非常重要的命令,利用它,程序?qū)⒁越换サ姆绞浇邮沼脩舻妮斎霐?shù)據(jù)或字符。例:將九九乘法表程序修改如下:function jjb(m)n=input('請輸入n的值:');fprintf('%d*%d的乘法表是:n',n,n);for i=1:n for j=1:i fprintf('%d*%d=%d, ',j,i,i*j); if j=i fprintf('n'); end endend另外,keyboard命令也可以達到相似的功能。6.輸出命令disp、fprintffprintf格式化數(shù)據(jù)輸出命令,但它的
26、功能有很多。如將文本或數(shù)據(jù)輸出到設(shè)備(屏幕)、串口或子系統(tǒng)中。disp顯示文本或矩陣,這里的文本包括數(shù)學(xué)符號、希臘字母等。例:disp(' Corn Oats Hay')disp(rand(5,3)關(guān)于fprintf輸出格式見前面的輸出格式的設(shè)置。4.4 MatLab的符號計算MatLab最初將其功能重點放在數(shù)值運算、矩陣運算等方面,因此,它的符號計算功能相對薄弱,但是,自從MatLab5.3開始,它這方面已經(jīng)在有了很大的改進、提高和加強。由于采用了全新的數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο缶幊碳爸剌d技術(shù),使得MatLab的符號計算與數(shù)值計算在形式和風(fēng)格上渾然統(tǒng)一,7.0以后的版本,符號計算功能
27、更加強大,如提供了Symbolic Math Toolbax,這使得MatLab的符號計算的功能可以與符號計算的專用語言Maple、Mathematic等相媲美。MatLab符號運算方法:. MatLab本身已開發(fā)了許多符號運算函數(shù),如:符號表達式、符號矩陣、符號微積分、符號線形方程等;. MatLab開發(fā)了與其它符號計算語言的接口函數(shù),如:maple.m和map.m使之可以與Maple進行相互調(diào)用,博采眾長,這樣,MatLab符號計算的功能就進一步加強。4.4.1符號變量的生成和使用1. 符號變量、符號表達式和符號方程的生成在進行符號計算之前,首先要生成符號表達式等。 用sym函數(shù)定義符號變
28、量和符號表達式格式見教材P81。sym有兩種用法:一是用它定義一個符號變量,二是用它對整個表達式進行定義。例1:符號變量的定義。a=sym(2)/sym(5)+sym(1)/sym(3);比較b=sqrt(2)和b=sqrt(sym(2)兩個式子的輸出結(jié)果。例2:符號表達式的定義。a=sym(a);b=sym(b);c=sym(c);x=sym(x); f=a*x2+b*x+c或者:f=sym('a*x2+b*x+c') 用syms函數(shù)定義符號變量和符號表達式從例2可以看出:用sym定義符號變量還是比較麻煩,它每次只能定義一個符號變量,像上面有多個變量需要定義的話,不方便。Sy
29、ms則方便多了。其格式為:syms var1 var2 var3 例:syms x y zf=x2+2*y2+3*z2 符號方程式的生成方程與函數(shù)的區(qū)別在于函數(shù)是一個由數(shù)字和變量組成的代數(shù)式,而方程則是由函數(shù)和等號組成的等式,但它們的定義卻沒有什么差別。例:equa1=sym('sin(x)+cos(x)=1')2. 符號變量的基本操作 符號變量的尋找(findsym函數(shù)的使用)例:findsym(equa1) 或 findsym(f) 等。 符號表達式的精度(digits、vap函數(shù))digits函數(shù)用于顯示或設(shè)定數(shù)值的精度;例:digits digits(100)vap函數(shù)
30、進行可控精度運算,與digits也有些相似。例:vpa(pi) vpa(pi,1000) 數(shù)值型變量符號型變量的轉(zhuǎn)換形式對于任意數(shù)值變量,使用sym函數(shù)可以將其轉(zhuǎn)換為4種形式的符號變量,它們是:有理數(shù)形式: sym(t)或sym(t,'r');浮點數(shù)形式: sym(t,'f');指數(shù)形式: sym(t,'e');數(shù)值精度形式:sym(t,'d')。4.4.2符號表達式運算MatLab提供的符號運算函數(shù)很多,如:四則運算、合并同類項、因式分解、展開、化簡等,靈活使用這些函數(shù),可以給我們的工作帶來便利。下面舉例說明。1. 符號表達式的四則運算2. 合并符號表達式的同類項(Collect函數(shù))例:syms x y;R1 = collect(exp(x)+x)*(x+2)R2 = collect(x+y)*(x2+y2+1), y)R3 = collect(x+1)*(y+1),x+y)3.
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年食品安全合同書
- 2024影視道具租賃合同參考范本
- 工程承包合同示例文本
- 2024舉辦合同培訓(xùn)班的通知
- 2024年度銷售合同智能家居產(chǎn)品銷售合同(04版)
- 2024蔬菜超市采購合同
- 2024年度安全設(shè)備維護及更新改造合同
- 農(nóng)村新建住宅協(xié)議書
- 2024天臺縣花生種植收購合同樣書
- 2024工業(yè)生產(chǎn)廠房租賃合同范本
- 幼兒園教學(xué)課件中班美術(shù)《百變的花瓶》課件
- 液化石油氣充裝操作規(guī)程(YSP118液化石油氣鋼瓶)
- 工程樣板過程驗收單
- 顱內(nèi)動脈動脈瘤介入治療臨床路徑
- 糧食倉儲場建設(shè)項目可行性研究報告
- 珠寶銷貨登記表Excel模板
- 深基坑開挖施工風(fēng)險源辨識與評價及應(yīng)對措施
- 唯美手繪風(fēng)花藝插花基礎(chǔ)培訓(xùn)PPT模板課件
- 《現(xiàn)代漢語語法》PPT課件(完整版)
- 5G智慧農(nóng)業(yè)建設(shè)方案
- 航海學(xué)天文定位第四篇天文航海第1、2章
評論
0/150
提交評論