




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、山東建筑大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)題 目: 對(duì)PL/O語(yǔ)言及其編譯器進(jìn)行擴(kuò)充和修改實(shí)現(xiàn)增加數(shù)據(jù)類(lèi)型的功能課程:編譯原理課程設(shè)計(jì)院(部):計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):計(jì)科學(xué)生姓名:學(xué)號(hào):指導(dǎo)教師:完成日期:2014年7月8日山東建筑大學(xué)計(jì)算機(jī)學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)目錄課程設(shè)計(jì)任務(wù)書(shū)II對(duì)PL/O語(yǔ)言及其編譯器進(jìn)行擴(kuò)充和修改一一實(shí)現(xiàn)增加數(shù)據(jù)類(lèi)型的功能 3一、問(wèn)題描述 3二、基本要求4三、算法思想4四、數(shù)據(jù)結(jié)構(gòu)4五、模塊劃分4六、源程序5七、測(cè)試數(shù)據(jù)15八、測(cè)試情況17結(jié)論18參考文獻(xiàn)19課程設(shè)計(jì)指導(dǎo)教師評(píng)語(yǔ) 20III山東建筑大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院課程設(shè)計(jì)任務(wù)書(shū)設(shè)計(jì)題
2、目對(duì)PL/O語(yǔ)言及其編譯器進(jìn)行擴(kuò)充和修改實(shí)現(xiàn)增加數(shù)據(jù)類(lèi)型的功能已知技術(shù)參 數(shù)和設(shè)計(jì)要 求PL/0程序設(shè)計(jì)語(yǔ)言是一個(gè)較簡(jiǎn)單的語(yǔ)言,它以賦值語(yǔ)句為基礎(chǔ),構(gòu)造 概念有順序、條件和重復(fù)(循環(huán))三種。PL/0有子程序概念,包括過(guò)程定義(可以嵌套)與調(diào)用且有局部變量說(shuō)明。PL/0中唯一的數(shù)據(jù)類(lèi)型是整型,可以用來(lái)說(shuō)明該類(lèi)型的常量和變量。當(dāng)然PL/0也具有通常的算術(shù)運(yùn)算和關(guān)系運(yùn)算。通過(guò)讀懂源程序,全面掌握編譯原理的基本實(shí)現(xiàn)過(guò)程。對(duì)現(xiàn)存的PL/0編譯程序做一些修改或擴(kuò)充。設(shè)計(jì)內(nèi) 容與步 驟通過(guò)讀懂源程序,全面掌握編譯原理的基本實(shí)現(xiàn)過(guò)程。 擴(kuò)充PL/0增加識(shí)別字符型數(shù)據(jù)類(lèi)型和實(shí)型數(shù)據(jù)類(lèi)型的功能 增加的數(shù)據(jù)類(lèi)型的定
3、義如下:D pi nteger id |char id |double id設(shè)計(jì)工作計(jì)劃與進(jìn)度安排1-4:進(jìn)行完整的編譯程序全過(guò)程的理解5-12 :根據(jù)源程序,理解整個(gè)編譯器的編寫(xiě)中涉及到的全局變量及基本函數(shù) 的意義。13-20 :在讀懂全程序的基礎(chǔ)上,進(jìn)行擴(kuò)充功能,并測(cè)試。21-24 :撰寫(xiě)課程設(shè)計(jì)報(bào)告書(shū)。設(shè)計(jì)考核要求設(shè)計(jì)考核方法:課程設(shè)計(jì)總成績(jī)=算法實(shí)現(xiàn)(30%) +課程設(shè)計(jì)說(shuō)明書(shū)(50%) +平時(shí)考 勤( 20% )。設(shè)計(jì)考核要求:(1)規(guī)范的課程設(shè)計(jì)說(shuō)明書(shū)(2)所設(shè)計(jì)的算法源代碼指導(dǎo)教師(簽字)教研室主任(簽字)山東建筑大學(xué)計(jì)算機(jī)學(xué)院課程設(shè)計(jì)說(shuō)明書(shū)對(duì)PL/O語(yǔ)言及其編譯器進(jìn)行擴(kuò)充和修改
4、型的功能實(shí)現(xiàn)增加數(shù)據(jù)類(lèi)一、問(wèn)題描述PL/0程序設(shè)計(jì)語(yǔ)言是一個(gè)較簡(jiǎn)單的語(yǔ)言,它以賦值語(yǔ)句為基礎(chǔ),構(gòu)造概念有順序、條件和重復(fù)(循環(huán))三種。 PL/0有子程序概念,包括過(guò)程定義(可以嵌套)與調(diào)用且有局部 變量說(shuō)明。PL/0中唯一的數(shù)據(jù)類(lèi)型是整型,可以用來(lái)說(shuō)明該類(lèi)型的常量和變量。當(dāng)然PL/0也具有通常的算術(shù)運(yùn)算和關(guān)系運(yùn)算。PL/0語(yǔ)言的BNF文法如下所示:程序 := 程序體.程序體常量說(shuō)明部分常量定義無(wú)符號(hào)整數(shù)變量說(shuō)明部分標(biāo)識(shí)符過(guò)程說(shuō)明部分過(guò)程首部語(yǔ)句 語(yǔ)句|空賦值語(yǔ)句復(fù)合語(yǔ)句條件表達(dá)式項(xiàng)因子加法運(yùn)算符乘法運(yùn)算符關(guān)系運(yùn)算符條件語(yǔ)句過(guò)程調(diào)用語(yǔ)句當(dāng)型循環(huán)語(yǔ)句字母數(shù)字=常量說(shuō)明部分 變量說(shuō)明部分 過(guò)程說(shuō)明部
5、分 語(yǔ)句=CONST常量定義,常量定義;= 標(biāo)識(shí)符 = 無(wú)符號(hào)整數(shù)= 數(shù)字?jǐn)?shù)字=VAR標(biāo)識(shí)符,標(biāo)識(shí)符;= 字母字母|數(shù)字= 過(guò)程首部 程序體;過(guò)程說(shuō)明部分;=PROCEDURE 標(biāo)識(shí)符 ;= 賦值語(yǔ)句|條件語(yǔ)句|當(dāng)型循環(huán)語(yǔ)句|過(guò)程調(diào)用語(yǔ)句|復(fù)合 = 標(biāo)識(shí)符 := 表達(dá)式=BEGIN 語(yǔ)句 ; 語(yǔ)句 END= 表達(dá)式 關(guān)系運(yùn)算符 表達(dá)式|ODD表達(dá)式=+卜 項(xiàng)加法運(yùn)算符 項(xiàng)= 因子乘法運(yùn)算符 因子= 標(biāo)識(shí)符|無(wú)符號(hào)整數(shù)|'('表達(dá)式')'=+卜=*|/=|#|=|=IF條件THEN語(yǔ)句=CALL標(biāo)識(shí)符 =WHILE 條件D0語(yǔ)句=a|b|.|X|Y|Z=0|1|2
6、|.|8|9對(duì)現(xiàn)存的PL/0編譯程序做如下修改或擴(kuò)充。(1)擴(kuò)充識(shí)別注釋功能:注釋由(*和*)包含,不允許嵌套。(2)識(shí)別對(duì)else子句進(jìn)行處理的功能條件語(yǔ)句:=IF條件THEN語(yǔ)句ELSE語(yǔ)句二、基本要求設(shè)計(jì)目的:掌握PL/O語(yǔ)言編譯器實(shí)現(xiàn)的基本原理和實(shí)現(xiàn)方法。能在理解其實(shí)現(xiàn)原理的方法的基礎(chǔ) 上進(jìn)行適當(dāng)?shù)臄U(kuò)充,使其功能更強(qiáng)大。設(shè)計(jì)要求:在理解源代碼的基礎(chǔ)上,根據(jù)文法的要求,采用C語(yǔ)言擴(kuò)充算法。完成擴(kuò)充識(shí)別注釋功能,和識(shí)別對(duì) else子句進(jìn)行處理的功能三、算法思想增加數(shù)據(jù)類(lèi)型的功能:因子語(yǔ)法描述該為EBNF文法為: 因子 :=標(biāo)識(shí)符|無(wú)符號(hào)整數(shù)|整型|字符型|浮點(diǎn)型|'( 表達(dá)式
7、9;'四、數(shù)據(jù)結(jié)構(gòu)#define norw 16關(guān)鍵字的個(gè)數(shù)#define txmax 100 /名 字表的容量#define nmax 14數(shù)字的最大位數(shù)#define al 10/符號(hào)的最大長(zhǎng)度#define amax 2047 地址上界#define levmax 3/最大允許的嵌套聲明層數(shù)#define cxmax 200/最多的虛擬機(jī)代碼數(shù) enum symbol/枚舉類(lèi)型:/nul=0,ident=1,number=2,plus=3, minus=4times=5,依次類(lèi)推,procsym=31nul,ident,number,/下面的表示的是系統(tǒng)的算數(shù)運(yùn)算符以及邏輯運(yùn)算符
8、,知道意思就可以plus,minus,times,/相乘的意思slash,oddsym,eql,neq,lss,leq,gtr,geq,lparen,/ 左括號(hào)rparen,comma,semicolon, period,becomes/ 賦值的意思/下面的表示是系統(tǒng)的保留字beginsym, endsym, ifsym.thensym, whilesym,23callsym,writesym, readsym, dosym,constsym, varsym, procsym,integersym,charactersym,doublesym.;#define symnum 35 enum o
9、bject constant, variable, procedur, integer, character, doubler,;五、模塊劃分過(guò)程或函數(shù)名簡(jiǎn)要功能說(shuō)明pl0主程序Error出錯(cuò)處理,打印出錯(cuò)位置和錯(cuò)誤編碼Getsym詞法分析,讀取一個(gè)單詞Getch漏掉空格,讀取一個(gè)字符Gen生成目標(biāo)代碼,并送入目標(biāo)程序區(qū)Test測(cè)試當(dāng)前單詞符號(hào)是否合法Block分程序分析處理過(guò)程En ter登錄名字表positi on(函數(shù))查找標(biāo)識(shí)符在名字表中的位置Con stdeclarati on常量定義處理Vardeclarati on變量說(shuō)明處理Listode列出目標(biāo)代碼清單Stateme nt語(yǔ)句
10、處理Expressi on表達(dá)式處理Term項(xiàng)處理Factor因子處理Con diti onIn terpret base(函數(shù))六、源程序條件處理對(duì)目標(biāo)代碼的解釋執(zhí)行程序 通過(guò)靜態(tài)鏈求出數(shù)據(jù)區(qū)的基地址1、/該函數(shù)的功能就是取一個(gè)數(shù)據(jù)單位,通過(guò)調(diào)用該函數(shù)可以一次取出一個(gè)數(shù)字或字符串或運(yùn)算符,這個(gè)函數(shù)和getch函數(shù)我覺(jué)得應(yīng)該是調(diào)用最經(jīng)常地函數(shù)啦,每調(diào)用一次該函數(shù),該函數(shù)就會(huì)去調(diào)用getch函數(shù)/sym記錄的是語(yǔ)句單位的類(lèi)型,num中存放的是數(shù)字的大小int getsym()/取一個(gè)數(shù)字單位else加入real類(lèi)型if (ch>='0'&&ch<=
11、39;9')k=0;num=0;sym=intsym;/以 sym 表示這是一個(gè)數(shù)字 /* type=i nteger;*/double coun t=0.1;doif(ch='.')getchdo;sym=doublesym;while(ch>='0'&&ch<='9')num=nu m+(ch - 'O')*co unt; k+;coun t*=0.1; getchdo;break;elsenum=10* nu m+ch-'O'k+;getchdo;while(ch>=
12、'0'&&ch<='9'|ch='.');k-;if(k>nmax)/要求數(shù)字位數(shù)不能超過(guò)15位,nmax=14,不過(guò)我覺(jué)得這有錯(cuò)誤error(30);輸出錯(cuò)誤碼 elseif(int)ch=39)加入字符類(lèi)型getchdo;if(ch>='A'&&ch<='Z')|(ch>='a'&&ch<='z') num=(i nt)ch;getchdo;if(i nt)ch=39)sym=charsym;el
13、senum=0;sym=n ul;error(49);/類(lèi)型錯(cuò)誤elseerror(49); getchdo;2、/cc=cx=ll=0;cx表示源程序中代碼的第幾行block(0,0,nxtlev)這是主程序/nxtlev中已有部分值為 1,大小為32int block(int lev,int tx,bool* fsys)/lev表示分程序所在層,tx表示當(dāng)前尾指針,fsys表示當(dāng)前模塊后跟符號(hào)集/如果當(dāng)前字符是變量,則將字符放入table中,形式同上述代碼,如對(duì)下面不動(dòng)的請(qǐng)參照上面的代碼if(sym=i ntsym)getsymdo;doin tdeclarati ondo(& t
14、x,lev, &dx);while(sym=comma)getsymdo;in tdeclarati ondo(&tx,lev,& dx);if(sym=semico Ion)getsymdo;elseerror(5);while(sym=ide nt);/如果當(dāng)前字符是變量,則將字符放入table中,形式同上述代碼,如對(duì)下面不動(dòng)的請(qǐng)參照上面的代碼if(sym=charsym)getsymdo;dochardeclarati ondo(&tx,lev, &dx);while(sym=comma)getsymdo; chardeclarati ondo(&
15、amp; tx,lev, &dx);if(sym=semico Ion)getsymdo;elseerror(5);while(sym=ide nt);/如果當(dāng)前字符是變量,則將字符放入table中,形式同上述代碼,如對(duì)下面不動(dòng)的請(qǐng)參照上面的代碼if(sym=doublesym)getsymdo;dodoubleclarati ondo(& tx,lev, &dx);while(sym=comma)getsymdo;doubleclarati ondo(&tx,lev, &dx);if(sym=semico Ion)getsymdo;elseerror(
16、5); while(sym=ide nt);if(tableswitch)/是否列出table表中的內(nèi)容prin tf("TABLE:n");if(txO+1>tx)當(dāng)table表為空時(shí),只輸出 NULLprin tf("NULLn");for(i=txO+1;i<=tx;i+)/自己修改的switch(tablei.ki nd)自己添加的case in teger:prin tf("%d int %s",i,tablei. name);prin tf("lev=%d addr=%dn",tablei.
17、level,tablei.adr);fprin tf(fas,"%d in teger %s",i,tablei. name);fprin tf(fas,"lev=%d addr=%dn",tablei.level,tablei.adr); break;case character:prin tf("%d character %s",i,tablei. name);prin tf("lev=%d addr=%dn",tablei.level,tablei.adr);fprin tf(fas,"%d cha
18、racter %s",i,tablei. name);fprin tf(fas,"lev=%d addr=%dn",tablei.level,tablei.adr); break;case doubler:prin tf("%d doubler %s",i,tablei. name);prin tf("lev=%d addr=%dn",tablei.level,tablei.adr); fprin tf(fas,"%d doubler %s",i,tablei. name);fprin tf(fas,&q
19、uot;lev=%d addr=%dn",tablei.level,tablei.adr); break;table表中3、/該函數(shù)的功能是將源程序中的常量,變量,分程序符號(hào)串輸入到 該table表是從下標(biāo)1開(kāi)始的,0號(hào)空間另做其它用途/void en ter(e num object k,e num datatype t,i nt* ptx ,int lev ,int * pdx) void en ter(e num object k,i nt* ptx ,int lev ,int * pdx)/ 自己修改的 /case in teger:table(*ptx).level=lev
20、;table(*ptx).adr=(*pdx);(*pdx)+;break;case doubler:table(*ptx).level=lev;table(*ptx).adr=(*pdx);(*pdx)+;break;case character:table(*ptx).level=lev;table(*ptx).adr=(*pdx);(*pdx)+;break;int characterdeclarati on (i nt * ptx,i nt lev,i nt * pdx)如果當(dāng)前的符號(hào)是一個(gè)字符類(lèi)型,則繼續(xù)執(zhí)行if(sym=ide nt)en ter(character,ptx,lev
21、,pdx); getsymdo;elseerror(4);return 0;int in tegerdeclarati on (i nt * ptx,i nt lev,i nt * pdx)如果當(dāng)前的符號(hào)是一個(gè)字符類(lèi)型,則繼續(xù)執(zhí)行if(sym=ide nt)en ter(i nteger,ptx,lev,pdx); getsymdo;elseerror(4);return 0;int doubdeclaratio n(i nt * ptx,i nt lev,i nt * pdx)如果當(dāng)前的符號(hào)是一個(gè)字符類(lèi)型,則繼續(xù)執(zhí)行if(sym=ide nt)en ter(doubler,ptx,lev,p
22、dx); getsymdo;elseerror(4);return 0;4、/遞歸讀取分析每一個(gè)語(yǔ)句,該函數(shù)會(huì)將整個(gè)程序的大部分子程序聯(lián)系起來(lái)該程序中大部分是遞歸調(diào)用,雖說(shuō)代碼很多,但基本都是一個(gè)格式,所以讀起來(lái)并不復(fù)雜 /相對(duì)來(lái)說(shuō)還比較簡(jiǎn)單/對(duì)于代碼實(shí)現(xiàn)上差不多的部分,我沒(méi)有做過(guò)多的注釋int stateme nt(bool* fsys,i nt * ptx,i nt lev)switch(tablei.kind)/ 輸出處理case character:ge ndo(opr,0,21); break;case in teger:gen do(opr,0,14); break;case do
23、ubler:gen do(opr,0,14); break;if(sym=begi nsym) getsymdo;/ 更改! ! ! ! /if(sym=doublesym)sym=ide nt; getsymdo;if(sym=i ntsym)sym=ide nt; getsymdo; if(sym=charsym)sym=ide nt; getsymdo;5、/因子處理int factor (bool* fsys,i nt *ptx,i nt lev)case character:gen do(lod,lev-tablei.level,tablei.adr); break;case in
24、teger:gen do(lod,lev-tablei.level,tablei.adr); break;case doubler:gen do(lod,lev-tablei.level,tablei.adr); break;if(sym=nu mber|sym=i ntsym|sym=charsym|sym=doublesym) / 女口果因子處理時(shí)遇至 U數(shù) 字if(num>amax)如果數(shù)字大于最大能表示的數(shù)字,則報(bào)錯(cuò)。amax=2047error(31);num=0;gen do(lit, 0,nu m);getsymdo;6、void in terpret()case 14:
25、/ 14號(hào)操作為輸出棧頂值操作/輸出棧頂值cout<<st-1<<e ndl;fprin tf(fa2,"%lfn",st-1); /同時(shí)打印到文件t-;棧頂下移break;case 15: 15號(hào)操作為輸出換行操作prin tf("n");/ 輸出換行fprin tf(fa2,"n");/同時(shí)輸出到文件break;case 16: / 16號(hào)操作是接受鍵盤(pán)值輸入到棧頂printf("輸入整形數(shù):");/屏顯問(wèn)號(hào)fprintf(fa2,"輸入整形數(shù):");/同時(shí)輸出到文件
26、 scanf("%lf",&(st); / 獲得輸入fprin tf(fa2,"%lfn",st); /把用戶(hù)輸入值打印到文件t+;II棧頂上移,分配空間break;case 17: II 17號(hào)操作為輸出棧頂值操作 prin tf("%c",(i nt)st-1);II 輸出棧頂值fprin tf(fa2,"%cn",st-1); II同時(shí)打印到文件t-;棧頂下移break;case 18: II 18號(hào)操作為輸出棧頂值操作 prin tf("%lf",st-1); II 輸出棧頂值
27、fprin tf(fa2,"%lfn",st-1); II同時(shí)打印到文件t-;棧頂下移break;case 19: II 19號(hào)操作是接受鍵盤(pán)值輸入到棧頂printf(”輸入單字符:”);II屏顯問(wèn)號(hào) fprintf(fa2,"輸入單字符:");II同時(shí)輸出到文 sca nf("%s",&(st);fprin tf(fa2,"%cn",st); II把用戶(hù)輸入值打印到文件 t+;II棧頂上移,分配空間break;case 20: II 20號(hào)操作是接受鍵盤(pán)值輸入到棧頂 printf(”輸入雙精度型數(shù):”);
28、屏顯問(wèn)號(hào) fprintf(fa2,"輸入雙精度型數(shù):");II同時(shí)輸出到文件 scanf("%lf",&(st); II 獲得輸入 fprin tf(fa2,"%lfn",st); II把用戶(hù)輸入值打印到文件t+;II棧頂上移,分配空間break;case 21: II 14號(hào)操作為輸出棧頂值操作II輸出棧頂值cout<<(char)st-1<<e ndl;fprin tf(fa2,"%lfn",st-1); II同時(shí)打印到文件t-;棧頂下移break;七、測(cè)試數(shù)據(jù)1運(yùn)行編譯后的可執(zhí)
29、行文件,輸入用 PL/O的源語(yǔ)言寫(xiě)的代碼文件integer.txt:該文件內(nèi)容如下:in teger w;beginin teger w:=25; write(w);en d.得到程序的運(yùn)行結(jié)果如圖1所示:Input pl/0 f ile ? in t ege r.t xt List object code? <¥/N>y List snbol table?3integer v>;Il beg i nTAELE:±nt wleu =0 addi* =312write<w>;7end.1234567±nt lit sto lod opr
30、 opp opr000000025331415 0;t ai't25pl0圖1測(cè)試數(shù)據(jù)integer.txt的運(yùn)行結(jié)果2、運(yùn)行編譯后的可執(zhí)行文件,輸入用 PL/0的源語(yǔ)言寫(xiě)的代碼文件character.txt:該文件內(nèi)容如下:character m; begincharacter m:=m;End.得到程序的運(yùn)行結(jié)果如圖2所示:character r:- n :nput p1/0 f ilerchdracter.tKt 1st abject code? <¥xH>y 1st snba1 t«ble?icikarActer n;ABLE:chaisetei
31、- nlev-R Ad<h'H3key to continuc_3、運(yùn)行編譯后的可執(zhí)行文件,輸入用 該文件內(nèi)容如下:PL/0的源語(yǔ)言寫(xiě)的代碼文件double.txt:double m;begindouble m:=5.5;write(m);End.得到程序的運(yùn)行結(jié)果如圖 3所示:Input pl/8 Filc?double List object code? <YzN>y Lise synbol tdble? (¥/N>y tldonblc n;IbelinTABLE:1 doubler nlew-0 addi*-32 double rt- -S .5 ;4 written);Vend*1 int 82 lit P 5-53 sto fl 34 lod B 35 opr 8 14 p a pi* B 15b opr fl 0ptirt pl0Press any
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 教學(xué)資源整合與秋季應(yīng)用計(jì)劃
- 2025年貴金屬靶材項(xiàng)目發(fā)展計(jì)劃
- 2025年面板封接玻璃合作協(xié)議書(shū)
- 2025年工業(yè)清洗清理設(shè)備:工業(yè)吸塵設(shè)備合作協(xié)議書(shū)
- 2025年電商大數(shù)據(jù)項(xiàng)目發(fā)展計(jì)劃
- 強(qiáng)化互動(dòng)反饋的按鈕動(dòng)畫(huà)設(shè)計(jì)
- 小學(xué)生勵(lì)志成長(zhǎng)故事讀后感
- 基因檢測(cè)技術(shù)研發(fā)合同
- 2025年制動(dòng)氣室項(xiàng)目發(fā)展計(jì)劃
- 智慧城市規(guī)劃與建設(shè)協(xié)議
- 甘草種植技術(shù)課件
- 餐飲服務(wù)保障措施、食品衛(wèi)生安全保障方案
- 鋼筋工工藝與實(shí)習(xí)(第二版)課件匯總?cè)珪?shū)電子教案完整版課件最全幻燈片(最新)課件電子教案幻燈片
- 物業(yè)保潔及餐飲服務(wù)項(xiàng)目方案
- (新版教材)粵教粵科版六年級(jí)下冊(cè)科學(xué)全冊(cè)課時(shí)練(同步練習(xí))
- TCETA 001-2021 演藝燈具型號(hào)命名規(guī)則
- c語(yǔ)言期末機(jī)考(大連理工大學(xué)題庫(kù))
- 煤礦從業(yè)人員考試題庫(kù)全答案(word版)
- 2019年工程設(shè)計(jì)收費(fèi)標(biāo)準(zhǔn)表
- (完整版)振幅調(diào)制與解調(diào)習(xí)題及其解答
- 政法書(shū)記在全縣公安工作會(huì)議上的講話(huà)
評(píng)論
0/150
提交評(píng)論