




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、南華大學(xué)編譯原理課程設(shè)計(jì)名:編譯代生成器設(shè)計(jì) 專(zhuān)業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 學(xué)生姓名 熊浩斌 班 級(jí) 計(jì)算機(jī)01班 學(xué) 號(hào) 20109440114 指導(dǎo)老師 陳星 實(shí)驗(yàn)地點(diǎn) 8棟 2-209 完成日期:2013.6.2一、課程設(shè)計(jì)的目的 編譯原理課程兼有很強(qiáng)的理論性和實(shí)踐性,是計(jì)算機(jī)專(zhuān)業(yè)的一門(mén)非常重要的專(zhuān)業(yè)基礎(chǔ)課程,它在系統(tǒng)軟件中占有十分重要的地位,是計(jì)算機(jī)專(zhuān)業(yè)學(xué)生的一門(mén)主修課。為了讓學(xué)生能夠更好地掌握編譯原理的基本理論和編譯程序構(gòu)造的基本方法和技巧,融會(huì)貫通本課程所學(xué)專(zhuān)業(yè)理論知識(shí),提高他們的軟件設(shè)計(jì)能力,特設(shè)定該課程的課程設(shè)計(jì),通過(guò)設(shè)計(jì)一個(gè)簡(jiǎn)單的pascal語(yǔ)言(el語(yǔ)言)的編譯程序,提高學(xué)生設(shè)計(jì)
2、程序的能力,加深對(duì)編譯理論知識(shí)的理解與應(yīng)用。二、課程設(shè)計(jì)的要求1、 明確課程設(shè)計(jì)任務(wù),復(fù)習(xí)編譯理論知識(shí),查閱復(fù)印相關(guān)的編譯資料。2、 按要求完成課程設(shè)計(jì)內(nèi)容,課程設(shè)計(jì)報(bào)告要求文字和圖表工整、思路清晰、算法正確。3、 寫(xiě)出完整的算法框架。4、 編寫(xiě)完整的編譯程序。 三、課程設(shè)計(jì)的內(nèi)容 課程設(shè)計(jì)是一項(xiàng)綜合性實(shí)踐環(huán)節(jié),是對(duì)平時(shí)實(shí)驗(yàn)的一個(gè)補(bǔ)充,課程設(shè)計(jì)內(nèi)容包括課程的主要理論知識(shí),但由于編譯的知識(shí)量較復(fù)雜而且綜合性較強(qiáng),因而對(duì)一個(gè)完整的編譯程序不適合平時(shí)實(shí)驗(yàn)。通過(guò)課程設(shè)計(jì)可以達(dá)到綜合設(shè)計(jì)編譯程序的目的。本課程的課程設(shè)計(jì)要求學(xué)生編寫(xiě)一個(gè)完整的編譯程序,包括詞法分析器、語(yǔ)法分析器以及實(shí)現(xiàn)對(duì)簡(jiǎn)單程序設(shè)計(jì)語(yǔ)言中
3、的邏輯運(yùn)算表達(dá)式、算術(shù)運(yùn)算表達(dá)式、賦值語(yǔ)句、if語(yǔ)句、while語(yǔ)句以及dowhile語(yǔ)句進(jìn)行編譯,并生成中間代碼和直接生匯編指令的代碼生成器。四、總體設(shè)計(jì)方案及詳細(xì)設(shè)計(jì)總體設(shè)計(jì)方案:1.總體模塊主程序詞法分析程序語(yǔ)法分析程序中間代碼生成程序2.表2.1 各種單詞符號(hào)對(duì)應(yīng)的種別碼單詞符號(hào)種別碼 單詞符號(hào)種別碼bgin1:17if2:=18then320wile421do523lettet(letter|digit)*10=24dight dight*11=25+13;2614(27*15)28/16#0詳細(xì)設(shè)計(jì): 4.1界面導(dǎo)入設(shè)計(jì) (1)一共三個(gè)選項(xiàng):choice 1-cifafenxi c
4、hoice 2-yufafenxi choice 3-zhongjiandaima (2)界面演示 圖一 圖二 圖三 4.2詞法分析程序置初值調(diào)用掃描子程序輸出單詞二元組輸入串結(jié)束結(jié)束否是(1)流程圖設(shè)計(jì)(2)具體功能的具體設(shè)計(jì)1、cifafenxi( ) 首先設(shè)置progn來(lái)接收輸入的語(yǔ)句,以#來(lái)結(jié)束; 調(diào)用掃描子程序 scaner1( ),每一次得到一個(gè)類(lèi)型碼; 用switch判別相應(yīng)輸出; 直到syn1=0為止。2、掃描子程序scaner1( )-掃描輸入的語(yǔ)句 首先設(shè)置3個(gè)變量:token1用來(lái)存放構(gòu)成單詞符號(hào)的字符串;sum1用來(lái)存放整型單詞;syn1用來(lái)存放單詞符號(hào)的類(lèi)型碼。 有關(guān)
5、scaner1()中關(guān)鍵點(diǎn)解析: while(ch= )|(ch=n) ch=progp+; ;忽略空格 if(ch=a)|(ch=a) while(ch=a)|(ch=a)|(ch=0)&(ch=9) tokenm+=ch; ch=progp+; ;判別標(biāo)識(shí)符 for(n=0;n=0)&(ch=0)&(ch32=3334=35=36!=37 (2)程序結(jié)構(gòu)描述 (3) 程序的功能描述從文件中讀入表達(dá)式,輸出其四元式的結(jié)果序列 是否為main?調(diào)用scanner是否為(?調(diào)用scanner是否為)?調(diào)用scanner調(diào)用語(yǔ)句塊分析函數(shù)stablock出錯(cuò)處理 遞歸下降示意圖 (4)詳細(xì)功能描述
6、void scanner(); /掃描void lrparser(); void stablock(int *nchain); /語(yǔ)句塊void stastring(int *nchain); /語(yǔ)句串void sta(int *nchain); /語(yǔ)句void fuzhi(); /賦值語(yǔ)句void tiaojian(int *nchain); /條件語(yǔ)句void xunhuan(); /循環(huán)語(yǔ)句char* e(); /expresiion表達(dá)式char* t(); /term項(xiàng)char* f(); /factor因子char *newtemp(); /自動(dòng)生成臨時(shí)變量void backpat
7、ch(int p,int t); /回填int merge(int p1,int p2); /合并p1和p2void emit(char *res,char *num1,char *op,char *num2); /生成四元式void emit(char *res,char *num1,char *op,char *num2) 該函數(shù)的功能是生成一個(gè)三地址語(yǔ)句送到四式表中 char *newtemp()該函數(shù)的功能是會(huì)動(dòng)一個(gè)新的臨時(shí)變量,臨時(shí)變量名產(chǎn)生的 順序是t1,t2,t3,.int merge(int p1,int p2)該函數(shù)的功能是將以p1,p2為鏈?zhǔn)椎膬蓷l鏈合并成一條鏈,返回時(shí)的函
8、數(shù)值作為合并后的鏈?zhǔn)?。void backpatch(int p,int t)該函數(shù)的功能是把p所鏈接的每個(gè)四元式的第四區(qū)段(result段)都回 填t。void fuzhi()該函數(shù)的功能是對(duì)賦值語(yǔ)句進(jìn)行分析。void tiaojian(int *nchain)該函數(shù)的功能是對(duì)條件語(yǔ)句進(jìn)行分析。void xunhuan()該函數(shù)的功能是對(duì)循環(huán)語(yǔ)句進(jìn)行分析。(4) 結(jié)果演示 圖一 簡(jiǎn)單語(yǔ)句生成四元式 圖二 if語(yǔ)句的四元式生成 圖三 循環(huán)語(yǔ)句四元式生成(5)匯編生成if(strcmp(fourcomi.opera,=)=0) printf(move ax,%1sn,fourcomi.arg1);
9、 printf(move %5s,axn,fourcomi.result);if(strcmp(fourcomi.opera,+)=0) printf(mov ax,%1sn,fourcomi.arg1); printf(add ax,%1sn,fourcomi.arg2);printf(mov %1s,axn,fourcomi.result);if(strcmp(fourcomi.opera,-)=0) printf(mov ax,%1sn,fourcomi.arg1); printf(sub ax,%1sn,fourcomi.arg2); printf(mov %1s,axn,fourco
10、mi.result);if(strcmp(fourcomi.opera,*)=0) printf(mov al,%1sn,fourcomi.arg1); printf(mul %1sn,fourcomi.arg2); printf(mov %1s,axn,fourcomi.result);if(strcmp(fourcomi.opera,/)=0) printf(mov ax,%1sn,fourcomi.arg1); printf(div %1sn,fourcomi.arg2); printf(mov %1s,aln,fourcomi.result);if(strcmp(fourcomi.op
11、era,goto)=0) printf(jmp l%1sn,i); 結(jié)果演示五、課程設(shè)計(jì)的體會(huì)與總結(jié) 經(jīng)過(guò)一個(gè)星期的編譯原理課程設(shè)計(jì),本人在陳宏建老師的指導(dǎo)下,順利完成該課程設(shè) 計(jì)。通過(guò)該課程設(shè)計(jì),收獲頗多。 詞法分析的基本任務(wù)是從字符串表示的源程序中識(shí)別出具有獨(dú)立意義的單詞符號(hào),其基本思想是根據(jù)掃描到單詞符號(hào)的第一個(gè)字符的種類(lèi),拼出相應(yīng)的單詞符號(hào)。通過(guò)本試驗(yàn)的完成,更加加深了對(duì)詞法分析原理的理解。 通過(guò)本次試驗(yàn),了解了語(yǔ)法分析的運(yùn)行過(guò)程,主程序大致流程為:“置初值”調(diào)用scaner函數(shù)讀下一個(gè)單詞符號(hào)調(diào)用irparse結(jié)束。遞歸下降分析的大致流程為:“先判斷是否為begin”不是則“出錯(cuò)處理
12、”,若是則“調(diào)用scaner函數(shù)”調(diào)用語(yǔ)句串分析函數(shù)“判斷是否為end”不是則“出錯(cuò)處理”,若是則調(diào)用scaner函數(shù)“判斷syn=0&kk=0是否成立”成立則說(shuō)明分析成功打印出來(lái)。不成立則“出錯(cuò)處理”。 一、對(duì)實(shí)驗(yàn)原理有更深的理解通過(guò)該課程設(shè)計(jì),掌握了什么是編譯程序,編譯程序工作的基本過(guò)程及其各階段的基本任務(wù),熟悉了編譯程序總流程框圖,了解了編譯程序的生成過(guò)程、構(gòu)造工具及其相關(guān)的技術(shù)對(duì)課本上的知識(shí)有了更深的理解,課本上的知識(shí)師機(jī)械的,表面的。通過(guò)把該算法的內(nèi)容,算法的執(zhí)行順序在計(jì)算機(jī)上實(shí)現(xiàn),把原來(lái)以為很深?yuàn)W的書(shū)本知識(shí)變的更為簡(jiǎn)單,對(duì)實(shí)驗(yàn)原理有更深的理解。二、對(duì)該理論在實(shí)踐中的應(yīng)用有深刻的理解
13、通過(guò)把該算法的內(nèi)容,算法的執(zhí)行順序在計(jì)算機(jī)上實(shí)現(xiàn),知道和理解了該理論在計(jì)算機(jī)中是怎樣執(zhí)行的,對(duì)該理論在實(shí)踐中的應(yīng)用有深刻的理解。三、激發(fā)了學(xué)習(xí)的積極性通過(guò)該課程設(shè)計(jì),全面系統(tǒng)的理解了編譯原理程序構(gòu)造的一般原理和基本實(shí)現(xiàn)方法。把死板的課本知識(shí)變得生動(dòng)有趣,激發(fā)了學(xué)習(xí)的積極性。把學(xué)過(guò)的計(jì)算機(jī)編譯原理的知識(shí)強(qiáng)化,能夠把課堂上學(xué)的知識(shí)通過(guò)自己設(shè)計(jì)的程序表示出來(lái),加深了對(duì)理論知識(shí)的理解。以前對(duì)與計(jì)算機(jī)操在這次課程設(shè)計(jì)中,我就是按照實(shí)驗(yàn)指導(dǎo)的思想來(lái)完成。加深了理解文件系統(tǒng)的內(nèi)部功能及內(nèi)部實(shí)現(xiàn),培養(yǎng)實(shí)踐動(dòng)手能力和程序開(kāi)發(fā)能力的目的。 附錄-程序清單#include#include#include#inclu
14、deusing namespace std;#define max 100char inputstream50; /存儲(chǔ)輸入句子int temp1=0; /數(shù)組下標(biāo)int right1; /判斷輸出信息int m2=0,sum2=0;/sum用于計(jì)算運(yùn)算符的個(gè)數(shù) /m用于標(biāo)記輸入表達(dá)式中字符的個(gè)數(shù) char jg=a;char strmax;/用于存輸入表達(dá)式int tokene=0;/左括號(hào)的標(biāo)志char prog180,token18,ch1;int syn1,p1,m1,n1,sum1;char *rwtab16=begin,if,then,while,do,end;int r1 ;ch
15、ar prog80; /存放所有輸入字符 char token8; /存放詞組 char ch; /單個(gè)字符 int syn,p,m,n,i; /syn:種別編碼 double sum; int count; int issignal; /是否帶正負(fù)號(hào)(0不帶,1負(fù)號(hào),2正號(hào))int iserror;int isdecimal; /是否是小數(shù) double decimal; /小數(shù) int isexp; /是否是指數(shù) int index; /指數(shù)冪 int isnegative; /是否帶負(fù)號(hào) double temp; int temp2;int repeat; /是否連續(xù)出現(xiàn)+,-int n
16、extq;int kk; /臨時(shí)變量的標(biāo)號(hào)int ntc,nfc,nnc,nnb,nna;char *rwtab9=main,int,float,double,char,if,else,do,while; structchar result10; /字符串(字符數(shù)組)char arg110;char opera10;char arg210;fourcom20; /結(jié)構(gòu)體數(shù)組 cifafenxi();yufafenxi();zhongjiandaima();scaner1();void e();void e1();void t();void t1();void f();void lrparser
17、(); void stablock(int *nchain); /語(yǔ)句塊void stastring(int *nchain); /語(yǔ)句串void sta(int *nchain); /語(yǔ)句void fuzhi(); /賦值語(yǔ)句void tiaojian(int *nchain); /條件語(yǔ)句void xunhuan(); /循環(huán)語(yǔ)句char* e(); /expresiion表達(dá)式char* t(); /term項(xiàng)char* f(); /factor因子char *newtemp(); /自動(dòng)生成臨時(shí)變量void backpatch(int p,int t); /回填int merge(in
18、t p1,int p2); /合并p1和p2void emit(char *res,char *num1,char *op,char *num2); /生成四元式void scanner(); /掃描void lrparser()int nchain;nfc=ntc=1;nextq=1;if(syn=1) /mainscanner();if(syn=26) /(scanner();if(syn=27) /)scanner();stablock(&nchain);elseprintf(缺少右括號(hào)n);else printf(缺少左括號(hào)n);elseprintf(缺少mainn);/ := voi
19、d stablock(int *nchain) /語(yǔ)句塊if(syn=28) /scanner();stastring(nchain);/backpatch(*nchain,nextq);if(syn=29) /scanner(); /讀下一個(gè)elseprintf(缺少號(hào)n);elseprintf(缺少號(hào)n);/:=;void stastring(int *nchain) /語(yǔ)句串sta(nchain);backpatch(*nchain,nextq);while(syn=31) /;scanner();sta(nchain);/backpatch(*nchain,nextq-1);void
20、sta(int *nchain) /語(yǔ)句if(syn=10)fuzhi();/*nchain=0;else if(syn=6) /iftiaojian(nchain);else if(syn=8) /doxunhuan();/-if()void tiaojian(int *nchain)char res10,num110,num210,op10;int nchaintemp;/-if(syn=6) /ifscanner();/strcpy(num1,e();if(syn=26) /(scanner();strcpy(num1,e();if(syn=32) switch(syn)case 32:
21、strcpy(op,);break;case 33:strcpy(op,=);break;case 34:strcpy(op,);break;case 35:strcpy(op,=);break;case 36:strcpy(op,=);break;case 37:strcpy(op,!=);break;default:printf(error);scanner();strcpy(num2,e();strcat(num1,op);strcat(num1,num2);/nfc=nextq+1;ntc=nextq; /記住if語(yǔ)句位置emit(0,if,num1,goto); nfc=nextq;
22、 /if中表達(dá)式為假emit(0,goto);/第一個(gè)0已回填backpatch(ntc,nextq); /ntc鏈接的所有四元式都回填nextqif(syn=27) /)scanner();stablock(&nchaintemp); /語(yǔ)句塊*nchain=merge(nchaintemp,nfc);/:=do while void xunhuan()char res10,num110,num210,op10;int nchaintemp;if(syn=8) /donnc=nextq; /記住if語(yǔ)句位置,emit之后nextq就變了/emit(0,if,num1,goto); scann
23、er();stablock(&nchaintemp); /語(yǔ)句塊if(syn=9) /whilescanner();if(syn=26) /(scanner();strcpy(num1,e();if(syn=32) switch(syn)case 32:strcpy(op,);break;case 33:strcpy(op,=);break;case 34:strcpy(op,);break;case 35:strcpy(op,=);break;case 36:strcpy(op,=);break;case 37:strcpy(op,!=);break;default:printf(error
24、);scanner();strcpy(num2,e();strcat(num1,op);strcat(num1,num2);nnb=nextq;emit(0,if,num1,goto); backpatch(nnb,nnc);nna=nextq;emit(0,goto);backpatch(nna,nextq);if(syn=27) /)scanner();void fuzhi() /賦值語(yǔ)句只有1個(gè)操作數(shù)char res10,num10; /num操作數(shù)if(syn=10) /字符串strcpy(res,token); /結(jié)果scanner();if(syn=21) /=scanner();
25、strcpy(num,e();emit(res,num,=,);elseprintf(缺少=號(hào)n);char* e() /expression表達(dá)式char *res,*num1,*op,*num2;res=(char *)malloc(10);num1=(char *)malloc(10);op=(char *)malloc(10);num2=(char *)malloc(10);strcpy(num1,t();while(syn=22)|(syn=23) /+ -if(syn=22) /+strcpy(op,+);elsestrcpy(op,-);scanner();strcpy(num2
26、,t();strcpy(res,newtemp();emit(res,num1,op,num2);strcpy(num1,res);return num1;char* t() /term項(xiàng)char *res,*num1,*op,*num2;res=(char *)malloc(10);num1=(char *)malloc(10);op=(char *)malloc(10);num2=(char *)malloc(10);strcpy(num1,f();while(syn=24)|(syn=25) /* /if(syn=24) strcpy(op,*);elsestrcpy(op,/);sca
27、nner();strcpy(num2,f();strcpy(res,newtemp();emit(res,num1,op,num2);strcpy(num1,res);return num1;char* f() /factor因子char *res;res=(char *)malloc(10);if(syn=10) /字符串strcpy(res,token);scanner();else if(syn=20) /二進(jìn)制數(shù)itoa(int)sum,res,10); /整數(shù)轉(zhuǎn)換為字符串scanner();else if(syn=26) /(scanner();res=e();if(syn=27)
28、/)scanner();else iserror=1;elseiserror=1;return res;char *newtemp()char *p;char vartemp10;p=(char *)malloc(10);kk+;itoa(kk,vartemp,10);strcpy(p+1,vartemp);p0=t;return p;/將p所鏈接的每個(gè)四元式的第四個(gè)分量都回填tvoid backpatch(int p,int t) int w,circle=p;while(circle) /circle不為0的時(shí)候w=atoi(fourcomcircle.result); /四元式circl
29、e第四分量?jī)?nèi)容/strcpy(fourcomcircle.result,t); /把t填進(jìn)四元式circle的第四分量sprintf(fourcomcircle.result,%d,t);circle=w; /w記錄的是鏈條上下一個(gè)四元式,移動(dòng)!return;int merge(int p1,int p2) /合并p1和p2char circle,nresult;if(p2=0)nresult=p1;elsenresult=circle=p2;while(atoi(fourcomcircle.result) /四元式第四個(gè)分量不為0circle=atoi(fourcomcircle.resul
30、t); /strcpy(fourcomcircle.result,p1);sprintf(fourcomcircle.result,%s,p1);/目的是用p1的值覆蓋0return nresult; /p2是頭,p1覆蓋0,接在p2后邊void emit(char *res,char *num1,char *op,char *num2)strcpy(fourcomnextq.result,res);strcpy(fourcomnextq.arg1,num1);strcpy(fourcomnextq.opera,op);strcpy(fourcomnextq.arg2,num2);nextq+
31、;void scanner() sum=0; decimal=0; m=0; for(n=0;n=a)&(ch=a)&(ch=a)&(ch=a)&(ch=0)&(chtoken ch=progp+; /讀下一個(gè)字符 tokenm+=0; p-; /回退一格 syn=10; /標(biāo)識(shí)符 /如果是begin,if,then,while,do,end標(biāo)識(shí)符中的一個(gè) for(n=0;n=0)&(ch=0)&(ch=0)&(ch=0)&(ch=9) /指數(shù) index=index*10+ch-0; ch=progp+; /10的冪 /123e3代表123*10(3) /sum=sum*pow(10,ind
32、ex);是錯(cuò)誤的 if(isnegative) sum=sum*pow(0.1,index); else sum=sum*pow(10,index); if(issignal=1)sum=-sum;issignal=0; p-; syn=20; else switch(ch) case : m=0; tokenm+=ch; ch=progp+; if(ch=) syn=33; tokenm+=ch; else syn=32; p-; break; case =: m=0; tokenm+=ch; ch=progp+; if(ch=) syn=36; tokenm+=ch; else syn=21; p-; break; case +:temp2=progp;tokenm+=ch;if(temp2=0)&(temp2=0)&(temp2=9)&(repeat=1)issignal=1;ch=progp+; /讀-下一個(gè)字符r
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 黑龍江大慶市社會(huì)保險(xiǎn)事業(yè)中心招聘筆試歷年參考題庫(kù)附帶答案詳解
- 安徽2025年安徽望江縣融媒體中心招聘急需緊缺專(zhuān)業(yè)技術(shù)人員筆試歷年參考題庫(kù)附帶答案詳解
- 上海建橋?qū)W院《新能源材料科學(xué)基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 羅定職業(yè)技術(shù)學(xué)院《需求分析與系統(tǒng)設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧農(nóng)業(yè)職業(yè)技術(shù)學(xué)院《工程統(tǒng)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 遼寧師范高等專(zhuān)科學(xué)?!洞髷?shù)據(jù)基礎(chǔ)實(shí)踐》2023-2024學(xué)年第二學(xué)期期末試卷
- 衡陽(yáng)科技職業(yè)學(xué)院《電視制片人管理》2023-2024學(xué)年第二學(xué)期期末試卷
- 黑河學(xué)院《建筑熱工與節(jié)能》2023-2024學(xué)年第二學(xué)期期末試卷
- 山西科技學(xué)院《社會(huì)體育導(dǎo)論》2023-2024學(xué)年第二學(xué)期期末試卷
- 長(zhǎng)沙南方職業(yè)學(xué)院《自貿(mào)區(qū)與國(guó)際商務(wù)專(zhuān)題》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東省臨沂市2025年普通高等學(xué)校招生全國(guó)統(tǒng)一考試(模擬)語(yǔ)文及答案(臨沂二模)
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 宮頸癌護(hù)理查房-4
- 上海建設(shè)工程通用硅酸鹽水泥質(zhì)量檢驗(yàn)報(bào)告 - 上海水泥行業(yè)協(xié)會(huì)
- NY T 1145-2006 溫室地基基礎(chǔ)設(shè)計(jì)丶施工與驗(yàn)收技術(shù)規(guī)范
- 餐飲服務(wù)六大技能培訓(xùn).ppt
- 基于單片機(jī)的電話撥號(hào)系統(tǒng)的設(shè)計(jì)畢業(yè)論文
- 叉車(chē)產(chǎn)品數(shù)據(jù)表
- 高填方、深挖路塹邊坡和軟基監(jiān)測(cè)方案
- 機(jī)器人學(xué)導(dǎo)論(課堂PPT)
- 機(jī)電設(shè)備維修與管理專(zhuān)業(yè)畢業(yè)論文30442
評(píng)論
0/150
提交評(píng)論