![編譯原理課程設(shè)計(jì)報(bào)告——編譯器實(shí)現(xiàn).doc_第1頁(yè)](http://file.renrendoc.com/FileRoot1/2019-11/15/0d2bdbe3-ec00-4156-94ed-d0df66b9716e/0d2bdbe3-ec00-4156-94ed-d0df66b9716e1.gif)
![編譯原理課程設(shè)計(jì)報(bào)告——編譯器實(shí)現(xiàn).doc_第2頁(yè)](http://file.renrendoc.com/FileRoot1/2019-11/15/0d2bdbe3-ec00-4156-94ed-d0df66b9716e/0d2bdbe3-ec00-4156-94ed-d0df66b9716e2.gif)
![編譯原理課程設(shè)計(jì)報(bào)告——編譯器實(shí)現(xiàn).doc_第3頁(yè)](http://file.renrendoc.com/FileRoot1/2019-11/15/0d2bdbe3-ec00-4156-94ed-d0df66b9716e/0d2bdbe3-ec00-4156-94ed-d0df66b9716e3.gif)
已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
編譯技術(shù)課程設(shè)計(jì) 實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)名稱(chēng):編譯器程序姓名:XXX學(xué)號(hào):XXXXX班級(jí):軟件工程XX班指導(dǎo)老師:XXX201X年11月12日目錄一、課設(shè)要求3二、總體設(shè)計(jì)思想4三、詳細(xì)算法設(shè)計(jì)4四、流程框圖5五、函數(shù)相關(guān)說(shuō)明91.所有函數(shù)一覽92.void emit(char *res,char *num1,char *op,char *num2)93.char *newTemp()104.int merge(int p1,int p2)105.void backpatch(int p,int t)116.void fuzhi()117.void tiaojian(int *nChain)128.void xunhuan()13六、程序運(yùn)行結(jié)果15七、編譯器使用說(shuō)明17八、心得與體會(huì)17九、源程序清單18一、 課設(shè)要求用C語(yǔ)言對(duì)下述文法和單詞表定義的語(yǔ)言設(shè)計(jì)編制一個(gè)編譯器。(1)單詞符號(hào)及種別表單詞符號(hào)種別編碼單詞值main1int 2float3double4char5if 6else 7do8while9l(l|d)*10內(nèi)部字符串 ( +|-| ) d*(.dd* | )( e ( +|-| ) dd*|) 20二進(jìn)制數(shù)值表示=21+22- 23* 24/ 25(26)272829,30;3132=3334=35=36!=37(2)語(yǔ)法結(jié)構(gòu)定義 := main() := /程序用括號(hào)括起來(lái):=;:=|:=ID= /賦值語(yǔ)句用”=”號(hào):=if /條件怎么沒(méi)有括號(hào),囧(自己加1個(gè)):=do while := /沒(méi)有布爾運(yùn)算,還算簡(jiǎn)單 := +|- := *|/ :=ID|num|()num:= ( +|-| ) 數(shù)字*(.數(shù)字?jǐn)?shù)字* | )( e ( +|-| ) 數(shù)字?jǐn)?shù)字*|)ID:=字母(字母|d數(shù)字)*字母:=a|b|c|z|A|B|C|Z數(shù)字:=0|1|2|9 := |=|=|!=二、 總體設(shè)計(jì)思想采用遞歸下降(自上而下)的語(yǔ)法制導(dǎo)翻譯法。三、 詳細(xì)算法設(shè)計(jì)在前兩次試驗(yàn)的基礎(chǔ)上改進(jìn)。詞法分析程序 語(yǔ)法分析程序 語(yǔ)義分析程序 編譯器。不斷完善,不斷改進(jìn)。漸變的過(guò)程。四、 流程框圖圖 I 主函數(shù)示意圖圖 II 遞歸下降分析程序示意圖是否為main?調(diào)用scanner是否為(?調(diào)用scanner是否為)?調(diào)用scanner調(diào)用語(yǔ)句塊分析函數(shù)staBlock出錯(cuò)處理否否否圖 III 語(yǔ)句塊分析示意圖是否為 ?調(diào)用scanner調(diào)用語(yǔ)句串分析函數(shù)staString調(diào)用scanner是否為 ?出錯(cuò)處理否否圖 IV 語(yǔ)句串分析示意圖調(diào)用語(yǔ)句分析函數(shù)sta回溯,調(diào)用backpatch是否為 ; ?調(diào)用scanner調(diào)用語(yǔ)句分析函數(shù)sta否出錯(cuò)處理圖 V 語(yǔ)句分析示意圖調(diào)用賦值語(yǔ)句分析函數(shù)fuzhi是否為 字符串?是否為 if ?調(diào)用條件語(yǔ)句分析函數(shù)tiaojian是否為 do ?調(diào)用循環(huán)語(yǔ)句分析函數(shù)xunhuan五、 函數(shù)相關(guān)說(shuō)明1. 所有函數(shù)一覽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 backpatch(int p,int t); /回填int merge(int p1,int p2); /合并p1和p2void emit(char *res,char *num1,char *op,char *num2); /生成四元式2. void emit(char *res,char *num1,char *op,char *num2)該函數(shù)的功能是生成一個(gè)三地址語(yǔ)句送到四元式表中。void emit(char *res,char *num1,char *op,char *num2)strcpy(fourComq.result,res);strcpy(fourComq.arg1,num1);strcpy(fourComq.opera,op);strcpy(fourComq.arg2,num2);q+;四元式表中的結(jié)構(gòu)如下:structchar result10; /字符串(字符數(shù)組)char arg110; /操作數(shù)1char opera10; /運(yùn)算符char arg210; /操作數(shù)2fourCom20; /結(jié)構(gòu)體數(shù)組3. char *newTemp()該函數(shù)的功能是會(huì)動(dòng)一個(gè)新的臨時(shí)變量,臨時(shí)變量名產(chǎn)生的順序是T1,T2,T3,.char *newTemp()char *p;char varTemp10;p=(char *)malloc(10);kk+;itoa(kk,varTemp,10); /整數(shù)轉(zhuǎn)換為字符串strcpy(p+1,varTemp);p0=T; /字符串前加T,便于識(shí)別return p;4. int merge(int p1,int p2)該函數(shù)的功能是將以P1,P2為鏈?zhǔn)椎膬蓷l鏈合并成一條鏈,返回時(shí)的函數(shù)值作為合并后的鏈?zhǔn)?。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.result); /strcpy(fourComcircle.result,p1);sprintf(fourComcircle.result,%s,p1);/目的是用p1的值覆蓋0return nResult; /p2是頭,p1覆蓋0,接在p2后邊5. void backpatch(int p,int t)該函數(shù)的功能是把P所鏈接的每個(gè)四元式的第四區(qū)段(result段)都回填t。void backpatch(int p,int t) int w,circle=p;while(circle) /circle不為0的時(shí)候w=atoi(fourComcircle.result); /四元式circle第四分量?jī)?nèi)容/strcpy(fourComcircle.result,t); /把t填進(jìn)四元式circle的第四分量sprintf(fourComcircle.result,%d,t);circle=w; /w記錄的是鏈條上下一個(gè)四元式,移動(dòng)!return;6. void fuzhi()該函數(shù)的功能是對(duì)賦值語(yǔ)句進(jìn)行分析。void fuzhi() /賦值語(yǔ)句只有1個(gè)操作數(shù)char res10,num10; /num操作數(shù)if(syn=10) /字符串strcpy(res,token); /結(jié)果scanner();if(syn=21) /=scanner();strcpy(num,E();emit(res,num,=,);elseprintf(缺少=號(hào)n);7. void tiaojian(int *nChain)該函數(shù)的功能是對(duì)條件語(yǔ)句進(jìn)行分析。/-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: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; /if中表達(dá)式為假emit(0,goto);/第一個(gè)0已回填backpatch(ntc,nextq); /ntc鏈接的所有四元式都回填nextqif(syn=27) /)scanner();staBlock(&nChainTemp); /語(yǔ)句塊*nChain=merge(nChainTemp,nfc);8. void xunhuan()該函數(shù)的功能是對(duì)循環(huán)語(yǔ)句進(jìn)行分析。/:=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); scanner();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);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();六、 程序運(yùn)行結(jié)果圖 VI 賦值語(yǔ)句的分析圖 VII 條件語(yǔ)句的分析圖 VIII 循環(huán)語(yǔ)句的分析圖 IX 綜合七、 編譯器使用說(shuō)明程序提示用戶(hù)輸入字符串“Please input your source string:”,用戶(hù)輸入字符串并以“#”號(hào)結(jié)束?;剀?chē)后,程序顯示運(yùn)行結(jié)果。八、 心得與體會(huì)剛拿到課設(shè)題目的時(shí)候,感覺(jué)很難,沒(méi)有頭緒。雖然之前實(shí)驗(yàn)時(shí)候,詞法分析程序和語(yǔ)法分析程序的代碼都是自己一個(gè)一個(gè)敲的。但是記得那時(shí)的語(yǔ)法分析程序用的是遞歸下降分析法,而且只判斷輸入串是否是文法的句子(輸出只有簡(jiǎn)單的success或者error)。課設(shè)的要求呢?要加上語(yǔ)義分析,而且要輸出四元式。好像語(yǔ)義分析的部分,我一點(diǎn)印象也沒(méi)有了,老師那一部分上得有點(diǎn)快。運(yùn)動(dòng)會(huì)3天假,時(shí)間全用來(lái)啃課本了?!罢Z(yǔ)義分析與中間代碼生成”,我又一點(diǎn)一點(diǎn)的看。3天時(shí)間,終于可以寫(xiě)出語(yǔ)義程序了。這是課設(shè)的第1個(gè)里程碑。采用遞歸下降的語(yǔ)法制導(dǎo)翻譯法,實(shí)現(xiàn)了對(duì)賦值表達(dá)式的語(yǔ)義分析,并生成四元式。但是后來(lái)發(fā)現(xiàn),更難的東西在后邊。程序語(yǔ)句有3種:賦值語(yǔ)句,條件語(yǔ)句,循環(huán)語(yǔ)句。而賦值語(yǔ)句的翻譯,恰恰是最簡(jiǎn)單的。對(duì)于賦值語(yǔ)句的翻譯,課本上有詳細(xì)的講解,有代碼的簡(jiǎn)單舉例。而對(duì)于條件語(yǔ)句(ifelse)和循環(huán)語(yǔ)句(dowhile),課本講解不那么詳細(xì),沒(méi)有代碼舉例,上課時(shí)候我也沒(méi)太理解老師所講解的。特別是其中鏈nChain的概念,一直看不懂。因?yàn)檫@個(gè)困難,課設(shè)被我擱置了3天。再后來(lái)利用上機(jī)的時(shí)間,請(qǐng)教了一下老師和另外一個(gè)同學(xué),發(fā)現(xiàn)課本后給的樣例程序是錯(cuò)的,而且錯(cuò)得一塌糊涂。只好自己寫(xiě),寫(xiě),寫(xiě)。然后就是課設(shè)的第2個(gè)里程碑。實(shí)現(xiàn)了對(duì)條件語(yǔ)句(if語(yǔ)句)的分析,并生成四元式。接下來(lái)又是開(kāi)發(fā)停滯的一段時(shí)間,直到11月18日。熟悉了一下原先寫(xiě)的代碼,然后開(kāi)始繼續(xù)后邊的部分。迎來(lái)了課設(shè)的第3個(gè)里程碑。實(shí)現(xiàn)了對(duì)循環(huán)語(yǔ)句(while語(yǔ)句)的分析,并生成四元式。而且好像沒(méi)有預(yù)期中困難,可能是有條件語(yǔ)句的鋪墊吧。他們的處理方法其實(shí)很類(lèi)似,也是emit+backpatch+merge。而且由于老師給的語(yǔ)法中沒(méi)有布爾表達(dá)式,所以很多merge的工作也可以省略了,嘿嘿。最后一步就是整合,系統(tǒng)測(cè)試,書(shū)寫(xiě)文檔了。個(gè)人認(rèn)為這次課設(shè)的機(jī)會(huì)非常寶貴,加深了我對(duì)編譯器處理語(yǔ)言的過(guò)程的理解。我想,作為學(xué)軟件的學(xué)生,不應(yīng)該只會(huì)用Java,或者C+,或者C#。一門(mén)高級(jí)語(yǔ)言其實(shí)學(xué)起來(lái)是很容易的,而在校期間,這些計(jì)算機(jī)基礎(chǔ)課程一定要學(xué)好!才能為將來(lái)打好基礎(chǔ)。九、 源程序清單/*編譯器*/*Erin*/*軟件工程0801班*/*HUST*/*#include#include#include#includechar 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 nextq;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ù)組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 backpatch(int p,int t); /回填int merge(int p1,int p2); /合并p1和p2void emit(char *res,char *num1,char *op,char *num2); /生成四元式void main()p=0;count=0;isDecimal=0;index=0;repeat=0;kk=0;printf(nPlease input your source string:n);doch=getchar();progp+=ch;while(ch!=#);p=0;isError=0;scanner();lrparser();for(i=1;inextq;i+) /循環(huán)輸出四元式printf(n%dt,i);printf(%5s %5s %5s t%5s )n,fourComi.arg1,fourComi.opera,fourComi.arg2,fourComi.result);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);/ := void 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 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: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; /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); scanner();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);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();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,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,/);scanner();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) /)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); /四元式circle第四分量?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.result); /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+;void scanner() sum
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 五年級(jí)數(shù)學(xué)口算題
- 青島版數(shù)學(xué)七年級(jí)上冊(cè)5.2《代數(shù)式》聽(tīng)評(píng)課記錄
- 魯教版地理六年級(jí)下冊(cè)6.2《自然環(huán)境》聽(tīng)課評(píng)課記錄3
- 蘇教版三年級(jí)下冊(cè)《兩位數(shù)乘整十?dāng)?shù)的口算》教案
- 委托經(jīng)營(yíng)管理協(xié)議書(shū)范本
- 蘇州蘇教版三年級(jí)數(shù)學(xué)上冊(cè)《周長(zhǎng)是多少》聽(tīng)評(píng)課記錄
- 產(chǎn)品銷(xiāo)售合作協(xié)議書(shū)范本(代理商版本)
- 書(shū)稿專(zhuān)用版權(quán)合同范本
- 酒店房屋出租辦公經(jīng)營(yíng)協(xié)議書(shū)范本
- 部編版道德與法治九年級(jí)下冊(cè)《1.2復(fù)雜多變的關(guān)系》聽(tīng)課評(píng)課記錄
- 義務(wù)教育數(shù)學(xué)新課標(biāo)課程標(biāo)準(zhǔn)2022年版考試真題與答案
- 新加坡房子出租合同范本
- 英語(yǔ)語(yǔ)法基礎(chǔ)知識(shí)大全
- 河南省安陽(yáng)市2024年中考一模語(yǔ)文試卷(含答案)
- TD/T 1044-2014 生產(chǎn)項(xiàng)目土地復(fù)墾驗(yàn)收規(guī)程(正式版)
- 2024年湖南現(xiàn)代物流職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及答案1套
- (正式版)JTT 1499-2024 公路水運(yùn)工程臨時(shí)用電技術(shù)規(guī)程
- 2024年職業(yè)技能測(cè)試題庫(kù)500道【基礎(chǔ)題】
- 垃圾桶創(chuàng)新設(shè)計(jì)說(shuō)明書(shū)
- 《游戲界面設(shè)計(jì)專(zhuān)題實(shí)踐》課件-知識(shí)點(diǎn)1:游戲圖標(biāo)設(shè)計(jì)定義、分類(lèi)與設(shè)計(jì)原則
- 病案信息技術(shù)(中級(jí))考試真題及答案5篇
評(píng)論
0/150
提交評(píng)論