版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、編譯原理實(shí)驗(yàn) 寶思陽(yáng)學(xué)生專業(yè)/班級(jí) 計(jì)算機(jī) 22 班學(xué)號(hào) 2120505031提交日期 2014.12.09 實(shí)驗(yàn)一:詞法分析器一、實(shí)驗(yàn)?zāi)康模?強(qiáng)化對(duì)系統(tǒng)綜合工程實(shí)現(xiàn)能力的訓(xùn)練;2加強(qiáng)對(duì)詞法分析原理、方法和基本實(shí)現(xiàn)技術(shù)的理解;二、實(shí)驗(yàn)內(nèi)容:用C 語(yǔ)言或者其他的高級(jí)語(yǔ)言作為宿主語(yǔ)言完成C1 語(yǔ)言的詞法分析器的設(shè)計(jì)。三、實(shí)驗(yàn)要求:1. 編寫C0 語(yǔ)言的詞法分析器的源程序并調(diào)試通過。其中詞法分析程序既可以自己手動(dòng)去完成,也可以利用 LEX 自動(dòng)生成。2. 通過測(cè)試程序的驗(yàn)收;3.實(shí)驗(yàn)按照提供的模板填寫:(1)功能描述:該程序具功能?程序結(jié)構(gòu)描述:函數(shù)調(diào)用格式、參數(shù)含義、返回值描述、函數(shù)功能;另外可以
2、附加函數(shù)之間的調(diào)用關(guān)系圖、程序總體執(zhí)行流程圖。實(shí)驗(yàn)總結(jié):你在編程過程中花時(shí)多少?多少時(shí)間在紙上設(shè)計(jì)?多少時(shí)間上機(jī)輸入和調(diào)試?多少時(shí)間在思考問題?遇到了哪些難題?你是怎么克服的?你對(duì)你的程序的評(píng)價(jià)?你的收獲有哪些?四、實(shí)驗(yàn)任務(wù)、詞法分析器任務(wù):輸入源程序;掃描、分解字符串,識(shí)別出一個(gè)個(gè)單詞(定義符、標(biāo)識(shí)符、運(yùn)算符、界符、常數(shù))。單詞符號(hào)的表示:1) 需要對(duì)單詞分類,每一個(gè)識(shí)別出來的單詞都屬于不同的類型public enum TokenType/關(guān)鍵字 IF,ELSE,WHILE,RETURN,VOID,/運(yùn)算符 + - * / = = != PLUS,MINUS,STAR,SLASH, LT,L
3、TEQ,GT,GTEQ,EQ,NEQ,ASSIGN,/界符 ; , ( ) /* */ MA,LPAREN,RPAREN,LSQUAR,RSQUAR,LBRACE,RBRACE,MENT,ID,NUMBER,/標(biāo)識(shí)符/數(shù)字常量 IDletter(letter|didit)*NUMBERdigit digit * lettera|b|z|A|B|Z digit0|9 NONTOKEN,ERROR,ENDFILE / 其它;2) 單詞符號(hào)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)public class Tokenstring str; TokenType ttype;line;/單詞字符串/單詞的類型/所在行號(hào)信息3) 詞
4、法分析 狀態(tài)轉(zhuǎn)換圖letter|digit開始狀態(tài);Sletter非letter|digitS1需要回退一個(gè)字符;digit不需要字符回退;非digitdigit2=非=4=非=5!=6非=/非/非*8*97/S非*+ - * , ; ( ) 其他五、實(shí)驗(yàn)結(jié)果:使用測(cè)試文件 test.txt:void f1(a, a = 1;b = a+b;void main()a100;b; float c; ab=a;b) if(c=b)f1(a,b);for(i=0;i5:i+)得到進(jìn)行詞法翻譯后:tokentokentokentokentokentokentokentokentokentokentok
5、entokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentype=ID string=f1 type=LPAREN string=(type= string=type=ID string=a type=COMMA string=,type= string=type=ID string=b type=RPAREN string=) type=LBRACE string= type=ID string=a type=ASSIGN string
6、= type=NUMBER string=1 type=SEMI string=; type=ID string=b type=ASSIGN string= type=ID string=a type=PLUS string=+ type=ID string=b type=SEMI string=; type=RBRACE string=type=VOID string=void type=ID string=main type=LPARENtype=RPAREN type=LBRACEstring=(string=) string=type= string= type=ID string=a
7、 type=LSQUAR type=NUMBERtype=RSQUARstring=string=100 string= type=SEMI string=; type= string= tokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokentokent
8、okentoken type=SEMI string=; type=FLOAT string=float type=ID string=c type=SEMI string=; type=ID string=a type=LSQUAR string= type=ID string=b type=RSQUAR string= type=ASSIGN string= type=ID string=a type=SEMI string=; type=IF string=if type=LPAREN string=(type=ID string=c type=LTEQ string=type=ID s
9、tring=b type=RPAREN string=) type=LBRACE string= type=ID string=f1 type=LPAREN string=(type=ID string=a type=COMMA string=, type=ID string=b type=RPAREN string=) type=SEMI string=; type=RBRACE string= type=ID string=for type=LPAREN string=( type=ID string=i type=ASSIGN string= type=NUMBER string=0 t
10、ype=SEMI string=; type=ID string=i type=LT string=type=NUMBER string=5line=14 line=14 line=14 line=14 line=14 line=14 line=14 line=14 line=14 line=14 line=14 line=14 line=14 line=14 line=15 line=17line=18CANNOT RECGNIZE! string=:type=ID string=i type=PLUS string=+ type=PLUS string=+ type=RPAREN type
11、=LBRACE type=RBRACEtype=RBRACEstring=) string= string=string=六、實(shí)驗(yàn)代碼文件名:TokenType.l:%# include # include linecount=1;char stype10=;%letter A-Za-z digit 0-9blt number digit+id (letter|_)(letter|digit|_)*%bl+ ;n linecount+; float|if|char|else|while|return|void|Upper(yytext,yyleng);|includefpr string=%s
12、number string=%sidstring=%sf(yyout,n,linecount,stype,yytext);fprf(yyout,n,linecount,yytext);fprf(yyout,n,linecount,yytext);+fprf(yyout,n,linecount,yytext); /算符-fprf(yyout,n,linecount,yytext);*fprf(yyout,n,linecount,yytext);/fprf(yyout,n,linecount,yytext);=fprf(yyout,n,linecount,yytext);fprf(yyout,n,
13、linecount,yytext);=fprf(yyout,n,linecount,yytext);fprf(yyout,n,linecount,yytext);=fprf(yyout,n,linecount,yytext);!=fprf(yyout,n,linecount,yytext);=fprf(yyout,n,linecount,yytext);fprf(yyout,n,linecount,yytext); /界符,fprf(yyout,n,linecount,yytext);(fprf(yyout,n,linecount,yytext);)fprf(yyout,n,linecount
14、,yytext);fprf(yyout,n,linecount,yytext);fprf(yyout,n,linecount,yytext);fprf(yyout,n,linecount,yytext);fprf(yyout,n,linecount,yytext);/*fprf(yyout,n,linecount,yytext);*/fprf(yyout,n,linecount,yytext);.fprf(yyout,n,linecount,yytext);%Upper(char *s,i;l)for(i=0;il;i+) stypei=toupper(si);stypei=0;yywrap(
15、)return 1;文件名:exle.c:#include main()extern FILE *yyin;extern FILE *yyout;if (yyin=fopen(test.txt,rt) = NULL )perror(can not open file test.txtn) ;exit(1);yyout = fopen(result.xml,wa);fprf(yyout , n);yylex();fprf(yyout , n);prf(Complete sucsfully!n);return 0;實(shí)驗(yàn)二 語(yǔ)法分析器一、實(shí)驗(yàn)題目和要求1、題目編寫 C0 語(yǔ)言的語(yǔ)法分析器的源程序并調(diào)
16、試通過。其中語(yǔ)法分析程序既可以自己手動(dòng)去完成,也可以利用 YACC 自動(dòng)生成。2、實(shí)驗(yàn)?zāi)康模?)強(qiáng)化對(duì)系統(tǒng)綜合工程實(shí)現(xiàn)能力的訓(xùn)練;(2)加強(qiáng)對(duì)語(yǔ)法分析原理、方法和基本實(shí)現(xiàn)技術(shù)的理解。二、程序設(shè)計(jì)及設(shè)計(jì)方案1、語(yǔ)法分析器流設(shè)計(jì)由于語(yǔ)法分析是在詞法分析上做的進(jìn)一步分析, 所以要求在上次輸出詞法分析結(jié)果的同時(shí),也需要輸出語(yǔ)法分析的結(jié)果。該結(jié)果用 xml 格式的文件表示。具體來說,我在設(shè)計(jì)程序時(shí)首先集成了一個(gè)詞法分析器(參見實(shí)驗(yàn)一) ,將詞法分析的結(jié)果保存在一個(gè) temp 緩存區(qū)內(nèi),然后送交語(yǔ)法分析器。語(yǔ)法分析器是一個(gè)函數(shù),簡(jiǎn)述如下:voidfpr fprYacc() /語(yǔ)法分析器f(fpout,n)
17、; f(fpout,n);Cur=0; ChengXu(); boddy();fprf(fpout,);它調(diào)用了 Chengxu() 、body()兩個(gè)函數(shù),基本思路是將詞法分析分析出的符號(hào)與關(guān)鍵字等比較,相等的話則轉(zhuǎn)入相應(yīng)的分支處理。如,若檢測(cè)到當(dāng)前字符串為“if” ,則轉(zhuǎn)入處理“條件語(yǔ)句”的部分,以確定是否有 if 語(yǔ)句的特征存在。在實(shí)際實(shí)驗(yàn)中,我所設(shè)計(jì)的程序?qū)炭梢酝耆_地輸出結(jié)果,對(duì)其他測(cè)試程序的分析也基本無誤,體現(xiàn)了驗(yàn)收,這是對(duì)我極大地鼓舞。 2、簡(jiǎn)要設(shè)計(jì)方案設(shè)計(jì)思路的合理性。在驗(yàn)收時(shí),我首先通過了將待分析程序保存在 f 盤根目錄下的 incode.txt 文件中,以備詞法分析器
18、調(diào)用;詞法分析器對(duì)待分析程序進(jìn)行分析后, 在 f 盤根目錄下創(chuàng)建 outfile.xml 文件,輸出詞法分析結(jié)果;待分析代碼以#為結(jié)束符。3、程序工作說明由于語(yǔ)法分析是在詞法分析上做的進(jìn)一步分析, 所以要求在上次輸出詞法分析結(jié)果的同時(shí),也需要輸出語(yǔ)法分析的結(jié)果。該結(jié)果用 xml 格式的文件表示,如:4、相關(guān)說明 詞法分析器任務(wù)ype= 將詞法分析過程輸出的記號(hào)輸入到語(yǔ)法分析器中,按照 C0和相關(guān)數(shù)據(jù)輸出到語(yǔ)法樹中。語(yǔ)法樹點(diǎn)的類型public enum NodeKindFuncK,SenK,ExpK;public enum SenKindIfK,WhileK,RetureK.的文則,將記號(hào)pub
19、lic enum ExpKindSimpleK,AssignK語(yǔ)法樹的節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu)public class treeNodeStruct treeNode * childMAXCHILD; NodeKind nodeKind;UnionSenKind sen; ExpKind exp;kind; UnionTokenType op; val;Char * name;attr; ExpType type;lineNo;三、實(shí)驗(yàn)結(jié)果輸入文件內(nèi)容void main()a=0; b=2;while(a=b)+a; #輸出文件內(nèi)容?xml ver=1.0?tree line=1tree line=3tr
20、ee line=3notetype=FunDecl notestring=maindaype=VOID/nodetype=ASSIGN nodestring= daype=none/nodetype=VarDecl nodestring=a daype=/tree line=3tree line=4tree line=4tree line=4nodetype=NUMBER nodestring=0 daype=none/nodetype=ASSIGN nodestring= daype=none/nodetype=VarDecl nodestring=b daype=/nodetype=NUM
21、BER nodestring=2 daype=none/tree line=5 notetype=SENTEN notestring=none daype=none/tree line=5 nodetype=WhileStm nodestring=while daype=none/tree line=5tree line=5tree line=5nodetype=VarID nodestring=a daype=none/nodetype=EQ nodestring= daype=none/nodetype=VarIDnodestring=b daype=none/tree line=6 no
22、tetype=SENTENtree line=6 notetype=EXPRES notestring=none daype=none/ notestring=+a daype=none/四、源代碼:#include #include#include #include #define MAXBUF 1023Cur=0; typeMAXBUF; lineMAXBUF;char FILE FILE*stringMAXBUF;*fpin;*fpout;FuZhiYuJu(); TiaoJianYuJu(); XunHuanYuJu(); BoolLiang(); BiaoDaShi(); Xiang
23、();YinZi(); YuJuChuan(); YuJu();Body(); ChengXu(); Yacc(); Judge(char*);void void void void void void void void voidvoid lexscanf(); Judge(char *p)char*word=exp,throw,catch,try,virtual,this,delete,new,protected,private,public,class,return,while,if,else, ,void,float,string;ptr,i,flag; flag=0; for(i=0
24、;i18;i+)ptr=stricmp(p,wordi); if(ptr=0)flag=1; return(i+1); break;if(flag=0)return 0;return 0;void lexscanf()char arrMAXBUF; i=0;j=0;char ch;lineo=1;/fpr ver/fprf(fpout,n);f(fpout,n);while(1)fscanf(fpin,%c,&ch); /從輸入文件中讀入字符if(ch= |ch=t) /清除空白;else if(ch=n) /識(shí)別回車,行數(shù)+1lineo+;else if(isdigit(ch) /如果輸入字
25、符為數(shù)字while(isdigit(ch) /一直讀字符,直到讀入的字符不是數(shù)字arrj=ch; j+;fscanf(fpin,%c,&ch);fseek(fpin,-1L,SEEK_CUR); char* temp1=(char*)malloc(j+1); memcpy(temp1,arr,j); /將緩沖區(qū)的內(nèi)容拷貝到 temp1 中去 temp1j=0;j=0;typeCur=44; lineCur=lineo; stringCur=temp1; Cur+;else if(isalpha(ch) /如果讀入的字符為字母while(isalpha(ch)|isdigit(ch)arri=c
26、h; i+;fscanf(fpin,%c,&ch);fseek(fpin,-1L,SEEK_CUR); char* temp=(char*)malloc(i+1); memcpy(temp,arr,i); tempi=0;i=0;if(Judge(temp) /如果 讀入的字母能與關(guān)鍵字相等typeCur=Judge(temp); lineCur=lineo; stringCur=temp; Cur+;elsetypeCur=43; lineCur=lineo; stringCur=temp; Cur+;else if(ch=) /處理二字符運(yùn)算符) /處理二字符運(yùn)算符=fscanf(fpin
27、,%c,&ch); if(ch=)typeCur=26; lineCur=lineo; stringCur=GTEQ; Cur+;else if(isdigit(ch)|isalpha(ch)|ch=fseek(fpin,-1L,SEEK_CUR); typeCur=25; lineCur=lineo; stringCur=GT;Cur+;else if(ch=) /處理二字符運(yùn)算符=fscanf(fpin,%c,&ch); if(ch=)typeCur=27; lineCur=lineo; stringCur=EQ; Cur+;else if(isdigit(ch)|isalpha(ch)|
28、ch=)fseek(fpin,-1L,SEEK_CUR); typeCur=29; lineCur=lineo; stringCur=ASSIGN; Cur+;else if(ch=/)fscanf(fpin, %c,&ch); if(ch=*)while(1) fscanf(fpin,%c,&ch);while(ch!=*)fscanf(fpin,%c,&ch);fscanf(fpin,%c,&ch); if(ch=/)break;else if(ch=!) /處理二字符運(yùn)算符!=fscanf(fpin,%c,&ch); if(ch=)typeCur=28; lineCur=lineo; s
29、tringCur=NEQ; Cur+;else /處理各種單字符運(yùn)算符if(ch=+)typeCur=19; lineCur=lineo; stringCur=+; Cur+;continue;if(ch=-)typeCur=20; lineCur=lineo; stringCur=-; Cur+;continue;if(ch=)typeCur=22; lineCur=lineo; stringCur=SLASH; Cur+;continue;if(ch=;)typeCur=30; lineCur=lineo; stringCur=SEMI; Cur+;continue;if(ch=,)typ
30、eCur=31; lineCur=lineo; stringCur=COMMA; Cur+;continue;if(ch=:)typeCur=32; lineCur=lineo; stringCur=COLON; Cur+;continue;if(ch=.)typeCur=33; lineCur=lineo; stringCur=DOT; Cur+;continue;if(ch=)typeCur=34; lineCur=lineo; stringCur=WAVE; Cur+;continue;if(ch=()typeCur=35; lineCur=lineo; stringCur=LPAREN
31、; Cur+;continue;if(ch=)typeCur=36; lineCur=lineo; stringCur=RPAREN; Cur+;continue;if(ch=)typeCur=37; lineCur=lineo; stringCur=LSQUAR; Cur+;continue;if(ch=)typeCur=38; lineCur=lineo; stringCur=RSQUAR; Cur+;continue;if(ch=)typeCur=39; lineCur=lineo; stringCur=LBRACE; Cur+;continue;if(ch=)typeCur=40; l
32、ineCur=lineo; stringCur=RBRACE; Cur+;continue;if(ch=*)typeCur=21; lineCur=lineo; stringCur=STAR; Cur+;continue;if(ch=#)/終止符typeCur=45; lineCur=lineo; stringCur=STOP; Cur+;break;FuZhiYuJu() /賦值語(yǔ)句if(typeCur=!43)prf(語(yǔ)法錯(cuò)誤,缺少標(biāo)示符。錯(cuò)誤行號(hào)%dn,lineCur);else fprf(fpout, n,lineCur); f(fpout, n); f(fpout, n,lineCu
33、r,stringCur);f(fpout, n); f(fpout, n);Cur+; if(typeCur!=29)prf(語(yǔ)法錯(cuò)誤,缺少=。錯(cuò)誤行號(hào)%dn,lineCur);Cur+; BiaoDaShi();fprf(fpout, n);return 1;TiaoJianYuJu() /條件語(yǔ)句if(typeCur!=15)prf(語(yǔ)法錯(cuò)誤,缺少 if。錯(cuò)誤行號(hào)%dn,lineCur);elsefprf(fpout, n,lineCur);Cur+; if(typeCur!=35)prf(語(yǔ)法錯(cuò)誤,缺少(。錯(cuò)誤行號(hào)%dn,lineCur);Cur+;fprf(fpout, n);Biao
34、DaShi();fprf(fpout, n);if(typeCur!=36)prf(語(yǔ)法錯(cuò)誤,缺少)。錯(cuò)誤行號(hào)%dn,lineCur);Body(); if(typeCur!=16)fprf(fpout, n);return 0;Body();fprf(fpout, n);return 1;XunHuanYuJu() /循環(huán)語(yǔ)句if(typeCur!=14)prf(語(yǔ)法錯(cuò)誤,缺少 while。錯(cuò)誤行號(hào)%dn,lineCur);/return 0;elsefprf(fpout, n,lineCur,stringCur); f(fpout, n);f(fpout, n,lineCur);Cur+;
35、 if(typeCur!=35)prf(語(yǔ)法錯(cuò)誤,缺少(。錯(cuò)誤行號(hào)%dn,lineCur);Cur+;fprf(fpout, n);BiaoDaShi();fprf(fpout, n);if(typeCur!=36)prf(語(yǔ)法錯(cuò)誤,缺少)。錯(cuò)誤行號(hào)%dn,lineCur);Body();fprf(fpout,n); return 1;DiaoYongYuJu()/函數(shù)調(diào)用語(yǔ)句fprf(fpout, n,lineCur,stringCur);Cur+; Cur+;fprf(fpout, n);while(typeCur!=36)if(typeCur=43|typeCur=44)fprf(fpo
36、ut, n,lineCur,stringCur);Cur+; if(typeCur=31)Cur+;else if(typeCur!=36)prf(語(yǔ)法錯(cuò)誤,沒有函數(shù)調(diào)用。錯(cuò)誤行號(hào)%dn,lineCur);Cur+;fpr fprf(fpout, n); f(fpout, n);return 1;ReturnYuJu()fprf(fpout, n,lineCur);Cur+;fprf(fpout, n);if(typeCur=44)fprf(fpout, n,lineCur,stringCur);if(typeCur=43)f(fpout, n,lineCur,stringCur);prf(語(yǔ)
37、法錯(cuò)誤,返回值類型錯(cuò)誤。錯(cuò)誤行號(hào)%dn,lineCur);Cur+;fpr fprf(fpout, n); f(fpout, n);return 1;void BiaoDaShi() /表達(dá)式Xiang(); if(typeCur=30|typeCur=36)return;elseif(typeCur-1=19)fprf(fpout, n,lineCur); if(typeCur-1=20)f(fpout, n,lineCur); if(typeCur-1=23)f(fpout, tree line=%dnodetype=LT nodestring=n,lineCur); if(typeCur
38、-1=24)f(fpout, tree line=%dnodetype=LTEQ nodestring=n,lineCur); if(typeCur-1=25)f(fpout, da else fprype=none/n,lineCur); if(typeCur-1=26)f(fpout, =da else fprype=none/=n,lineCur); if(typeCur-1=27)f(fpout, n,lineCur); if(typeCur-1=28)f(fpout, n,lineCur);BiaoDaShi();fprvoidfprf(fpout, n);Xiang() /項(xiàng)數(shù)f(
39、fpout, n);YinZi(); while(typeCur=21|typeCur=22)Cur+; YinZi();fprf(fpout, n);if(typeCur=19|typeCur=23|typeC ur=24|typeCur=25|typeCur=26|type Cur=27|typeCur=28|typeCur=20)Cur+;void YinZi() /因子switch(typeCur)case 35:Cur+; BiaoDaShi(); Cur+; break;case 43: if(typeCur+1=35)DiaoYongYuJu();elsefprf(fpout,n
40、,lineCur,stringCur);Cur+;break; case 44:fprf(fpout, n,lineCur,stringCur);Cur+; break; default:prf(語(yǔ)法錯(cuò)誤,缺少因子。錯(cuò)誤行號(hào)%dn,lineCur);void YuJuChuan() /語(yǔ)句串 YuJu();while(typeCur=30|(typeCur-1=40 &(typeCur=43|typeCur=15)|typeC ur=14)|typeCur=13)if(typeCur-1=40)if(typeCur=43|typeCur=15)Cur-;else if(typeCur=14|t
41、ypeCur=13)Cur-;Cur+; YuJu();void YuJu() /語(yǔ)句switch(typeCur)case 43: if(typeCur+1=35)if(DiaoYongYuJu()=1)prf(函數(shù)調(diào)用語(yǔ)句n);elseif(FuZhiYuJu()=1)prf(變量n);break; case 15:if(TiaoJianYuJu()=0)prf(if then 分支語(yǔ)句n,lineCur);elseprf(if then else 分支語(yǔ)句n);break; case 14:if(XunHuanYuJu()=1)prf(while do 循環(huán)語(yǔ)句n);break; cas
42、e 17: Cur+;fprf(fpout, n,lineCur,stringCur);Cur+; break; case 13:if(ReturnYuJu()=1)prf(Return 語(yǔ)句n);break;/*case 19: if(typeCur+1=19)fprf(fpout, n,lineCur,stringCur);/prf(語(yǔ)法錯(cuò)誤,缺少語(yǔ)句。錯(cuò)誤行號(hào)%dn,lineCur);fprf(fpout, n,lineCur,stringCur);void Body() /程序體Cur+; switch(typeCur)case 39: break; case 19:fprf(fpou
43、t, n,lineCur,stringCur);fprf(fpout,n); fpr f(fpout,n,lineCur,stringCur);break; default: Cur+; break;/prf(語(yǔ)法錯(cuò)誤,缺少。錯(cuò)誤行號(hào)%dn,lineCur);Cur+; if(typeCur!=40)YuJuChuan();switch(typeCur)case 40: break; default: Cur+; break;/prf(語(yǔ)法錯(cuò)誤,缺少。錯(cuò)誤行號(hào)%dn,lineCur);Cur+;void boddy()fpr fpr fpr fpr fpr fprvoidf(fpout,f(fpout,f(fpout,f(fpout,f(fpout,f(fpout,n);n);n);n);n);n);ChengXu()
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 百歲老人新冠康復(fù)護(hù)理
- 二零二五年旅游度假村股權(quán)并購(gòu)與特色旅游服務(wù)合同3篇
- 幼兒園預(yù)防交通安全
- 安全生產(chǎn)事例培訓(xùn)
- 二零二五年度遺產(chǎn)繼承財(cái)產(chǎn)分割與債務(wù)償還協(xié)議2篇
- 安全協(xié)議書游泳
- 臨時(shí)柜臺(tái)租賃合同范本
- 2025年度股權(quán)轉(zhuǎn)讓合同書標(biāo)的5000萬元
- 幼兒園信息技術(shù)培訓(xùn)
- 2024物業(yè)委托代管協(xié)議書(含綠化養(yǎng)護(hù)專項(xiàng)條款)3篇
- DB51∕T 5060-2013 四川省預(yù)拌砂漿生產(chǎn)與應(yīng)用技術(shù)規(guī)程
- 珠心算習(xí)題匯總(可以打印版A4)
- 設(shè)備潤(rùn)滑注油周期表.doc
- 醫(yī)用紅外熱像儀
- 65歲老年人健康體檢表
- 有限空間作業(yè)應(yīng)急預(yù)案及現(xiàn)場(chǎng)處置方案
- (完整版)宴會(huì)預(yù)定單
- 售后服務(wù)部績(jī)效考核表59929
- 三字經(jīng)完整A4打印
- 模擬電子技術(shù)答疑
- 眼內(nèi)容物剜除并Ⅰ期植入義眼臺(tái)的臨床效果
評(píng)論
0/150
提交評(píng)論