2023年全國(guó)碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩27頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p><b>  編譯原理課程設(shè)計(jì)</b></p><p>  課程設(shè)計(jì)題目 :表達(dá)式計(jì)算器</p><p>  姓 名 :***</p><p>  院(系) :計(jì)算機(jī)科學(xué)與工程學(xué)院 </p><p>  專業(yè)班級(jí) :計(jì)算機(jī)科學(xué)與技術(shù)084班</p><p><b>

2、;  學(xué) 號(hào) : </b></p><p><b>  指導(dǎo)教師 :***</b></p><p>  設(shè)計(jì)日期 :2010 年 12 月26日</p><p><b>  目錄</b></p><p><b>  表達(dá)式計(jì)算器1</b></p>

3、<p><b>  1. 需求分析1</b></p><p><b>  1.1.總述1</b></p><p><b>  2. 概要設(shè)計(jì)1</b></p><p>  2.1.開發(fā)環(huán)境1</p><p>  2.2.總體設(shè)計(jì)2</p>

4、;<p>  2.2.1.模塊結(jié)構(gòu)圖2</p><p>  2.2.2.模塊說明2</p><p>  2.2.3.界面設(shè)計(jì)3</p><p><b>  3. 詳細(xì)設(shè)計(jì)4</b></p><p>  3.1.詞法分析模塊:4</p><p>  3.1.1.詞法

5、分析簡(jiǎn)介:4</p><p>  3.1.2.詞法分析模塊的設(shè)計(jì)及實(shí)現(xiàn)4</p><p>  3.2.語法分析模塊11</p><p>  3.2.1.語法分析簡(jiǎn)介11</p><p>  3.2.2.語法分析器的實(shí)現(xiàn)11</p><p>  3.3文法分析19</p><p&

6、gt;  ..1文法分析器生成工具yacc19</p><p>  4..測(cè)試分析21</p><p><b>  5課程總結(jié)24</b></p><p>  6.參考文獻(xiàn)25</p><p><b>  表達(dá)式計(jì)算器</b></p><p><b>

7、;  需求分析</b></p><p><b>  總述</b></p><p>  計(jì)算器是我們經(jīng)常使用的小工具,它能幫我們對(duì)數(shù)據(jù)進(jìn)行有效的運(yùn)算,如通過四則運(yùn)算能實(shí)現(xiàn)對(duì)輸入數(shù)據(jù)的加減乘除。本課程設(shè)計(jì)結(jié)合了編譯原理中的詞法分析、語法分析及語義分析方法,給出了表達(dá)式計(jì)算器的系統(tǒng)設(shè)計(jì)過程,并在VC++6.0中使用面向?qū)ο蟮募夹g(shù)實(shí)現(xiàn)了計(jì)算器。</p>

8、<p><b>  功能要求</b></p><p>  計(jì)算器的功能要求如下:可以支持加(+)、減(-)、乘(*)、除(/)運(yùn)算,如3+4-5*2/2;支持括號(hào)運(yùn)算,如(4+5)*5/8;判斷用戶輸入的表達(dá)式是否正確,如3+-*3是一個(gè)錯(cuò)誤的表達(dá)式,在計(jì)算時(shí)將提示錯(cuò)誤;用戶輸入表達(dá)式后,按下等號(hào)按鈕執(zhí)行計(jì)算。</p><p><b>  概要

9、設(shè)計(jì)</b></p><p><b>  開發(fā)環(huán)境</b></p><p>  開發(fā)平臺(tái):Windows XP + VC++6.0</p><p><b>  開發(fā)語言:C++</b></p><p><b>  總體設(shè)計(jì)</b></p><p&

10、gt;  程序在VC++6.0中使用面向?qū)ο蟮募夹g(shù)實(shí)現(xiàn)了計(jì)算器。模塊設(shè)計(jì)</p><p><b>  模塊結(jié)構(gòu)圖</b></p><p><b>  圖1. 程序模塊圖</b></p><p><b>  模塊說明</b></p><p>  計(jì)算器分為三個(gè)功能模塊:</

11、p><p>  (1)詞法分析模塊:對(duì)輸入的表達(dá)式從左到右掃描,識(shí)別出表達(dá)式中的單詞(包括運(yùn)算符和運(yùn)算數(shù)),若單詞的構(gòu)成不符合詞法規(guī)則(運(yùn)算符和運(yùn)算數(shù)的構(gòu)成規(guī)則),則報(bào)錯(cuò)并停止計(jì)算。</p><p>  (2)語法分析模塊:將單詞分解為各類語法短語,若存在不符合規(guī)則的語法短語,則報(bào)錯(cuò)并停止計(jì)算。</p><p> ?。?)計(jì)算模塊:對(duì)符合語法規(guī)則的語法短語進(jìn)行計(jì)算,若計(jì)

12、算不能進(jìn)行,則報(bào)錯(cuò)并停止計(jì)算。</p><p>  計(jì)算器的三個(gè)功能模塊中語法分析模塊起到了核心作用,如圖1所示。</p><p><b>  界面設(shè)計(jì)</b></p><p><b>  圖2表達(dá)式計(jì)算器</b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p>

13、;<p><b>  詞法分析模塊:</b></p><p>  其詞法分析器調(diào)用接口為lex()</p><p><b>  詞法分析簡(jiǎn)介:</b></p><p>  詞法分析是編譯原理程序的第一階段,其任務(wù)是:從左至右逐個(gè)字符地對(duì)源程序掃描和分解,識(shí)別出一個(gè)個(gè)的單詞(如標(biāo)志符、常量、運(yùn)算符、界符等),并

14、判斷單詞的構(gòu)成是否符合詞法規(guī)則??梢允褂蒙舷挛臒o關(guān)文法來描述詞法規(guī)則,使用有限自動(dòng)機(jī)來識(shí)別單詞。</p><p>  詞法分析模塊的設(shè)計(jì)及實(shí)現(xiàn)</p><p>  lex工具的基本使用方法和工作原理:</p><p>  Lex工具是一種詞法分析程序生成器,它可以根據(jù)詞法規(guī)則說明書的要求來生成單詞識(shí)別程序,由該程序識(shí)別出輸入文本中的各個(gè)單詞。 一般可以分為<

15、定義部分><規(guī)則部分><用戶子程序部分>。其中規(guī)則部分是必須的,定義和用戶子程序部分是任選的。</p><p>  (1)定義部分 定義部分起始于 %{ 符號(hào),終止于 %} 符號(hào),其間可以是包括include語句、聲明語句在內(nèi)的C語句。這部分跟普通C程序開頭沒什么區(qū)別。%{ #include "stdio.h"int linenum;%}</p

16、><p>  (2) 規(guī)則部分 規(guī)則部分起始于"%%"符號(hào),終止于"%%"符號(hào),其間則是詞法規(guī)則。詞法規(guī)則由模式和動(dòng)作兩部分組成。模式部分可以由任意的正則表達(dá)式組成,動(dòng)作部分是由C語言語句組成,這些語句用來對(duì)所匹配的模式進(jìn)行相應(yīng)處理。需要注意的是,lex將識(shí)別出來的單詞存放在yytext[]字符數(shù)據(jù)中,因此該數(shù)組的內(nèi)容就代表了所識(shí)別出來的單詞的內(nèi)容。類似yytext這

17、些預(yù)定義的變量函數(shù)會(huì)隨著后面內(nèi)容展開一一介紹。動(dòng)作部分如果有多行執(zhí)行語句,也可以用{}括起來。</p><p>  %%title                 showtitle();[\n]    

18、60;             linenum++;[0-9]+                printf("Int   &#

19、160; : %s\n",yytext);[0-9]*\.[0-9]+        printf("Float   : %s\n",yytext);[a-zA-Z][a-zA-Z0-9]* printf("Var     : %s\n",yytext);

20、[\+\-\*\/\%]          printf("Op      : %s\n",yytext);.              

21、;       printf("Unknown : %c\n",yytext[0]);%%</p><p>  A.規(guī)則部分的正則表達(dá)式</p><p>  規(guī)則部分是Lex描述文件中最為復(fù)雜的一部分,下面列出一些模式部分的正則表達(dá)式字符含義:</p><p>  A-Z, 0-9,

22、 a-z         構(gòu)成模式部分的字符和數(shù)字。</p><p>  -                     指定范圍。例如:a

23、-z 指從 a 到 z 之間的所有字符。</p><p>  \                     轉(zhuǎn)義元字符。用來覆蓋字符在此表達(dá)式中定義的特殊意義,    

24、0;                 只取字符的本身。                  

25、0;   []                    表示一個(gè)字符集合。匹配括號(hào)內(nèi)的任意字符。如果第一個(gè)字          

26、            符是^那么它表示否定模式。例如: [abC] 匹配 a, b, 和C                   

27、0;  的任何一個(gè)。                      ^            

28、60;        表示否定。</p><p>  *                     匹配0個(gè)或者多個(gè)上述模式。+ 

29、60;                   匹配1個(gè)或者多個(gè)上述模式。?               

30、60;     匹配0個(gè)或1個(gè)上述模式。</p><p>  $                     作為模式的最后一個(gè)字符時(shí)匹配一行的結(jié)尾。</p><

31、;p>  { }                   表示一個(gè)模式可能出現(xiàn)的次數(shù)。 例如: A{1,3} 表示 A 可           &

32、#160;         能出現(xiàn)1次或3次。[a-z]{5} 表示長(zhǎng)度為5的,由a-z組成的                     字符。此外,還可以表示

33、預(yù)定義的變量。                     .               

34、;      匹配任意字符,除了 \n。</p><p>  ( )                   將一系列常規(guī)表達(dá)式分組。如:{Letter}({Letter}|{Digit})

35、* |                     表達(dá)式間的邏輯或。</p><p>  "一些符號(hào)"        

36、;    字符的字面含義。元字符具有。如:"*" 相當(dāng)于 [\*]。</p><p>  /                     向前匹配。如果在匹配的模式中的&

37、quot;/"后跟有后續(xù)表達(dá)式,                      只匹配模版中"/"前面的部分。如:模式為 ABC/D 輸入 ABCD,    &

38、#160;                 時(shí)ABC會(huì)匹配ABC/D,而D會(huì)匹配相應(yīng)的模式。輸入ABCE的話,              

39、        ABCE就不會(huì)去匹配ABC/D。</p><p>  B.規(guī)則部分的優(yōu)先級(jí)</p><p>  規(guī)則部分具有優(yōu)先級(jí)的概念,先舉個(gè)簡(jiǎn)單的例子:</p><p>  %{#include "stdio.h"%}%%[\n]   

40、               ;A                     {printf(&qu

41、ot;ONE\n");};AA                    {printf("TWO\n");};AAAA        &#

42、160;         {printf("THREE\n");};%%</p><p>  此時(shí),如果輸入內(nèi)容:</p><p>  [root@localhost liweitest]# cat file1.txtAAAAAAA</p><p>  [root

43、@localhost liweitest]# ./parser < file1.txtTHREETWOONE</p><p>  Lex分析詞法時(shí),是逐個(gè)字符進(jìn)行讀取,自上而下進(jìn)行規(guī)則匹配的,讀取到第一個(gè)A字符時(shí),遍歷后發(fā)現(xiàn)三個(gè)規(guī)則皆匹配成功,Lex會(huì)繼續(xù)分析下去,讀至第五個(gè)字符時(shí),發(fā)現(xiàn)"AAAA"只有一個(gè)規(guī)則可用,即按行為進(jìn)行處理,以此類推??梢奓ex會(huì)選擇最長(zhǎng)的字符匹配規(guī)

44、則。</p><p>  如果將規(guī)則AAAA                  {printf("THREE\n");};改為AAAAA       

45、          {printf("THREE\n");};</p><p>  ./parser < file1.txt 輸出結(jié)果為:THREETWO(3) 用戶子程序部分</p><p>  最后一個(gè)%%后面的內(nèi)容是用戶子程序部分,可以包含用C語言編寫的子程序,而

46、這些子程序可以用在前面的動(dòng)作中,這樣就可以達(dá)到簡(jiǎn)化編程的目的。這里需要注意的是,當(dāng)編譯時(shí)不帶-ll選項(xiàng)時(shí),是必須加入main函數(shù)和yywrap(yywrap將下后面說明)。如:</p><p>  ...%%showtitle(){printf("----- Lex Example -----\n");}</p><p>  int main(){li

47、nenum=0;yylex(); /* 進(jìn)行Lex分析 */printf("\nLine Count: %d\n",linenum);return 0;}int yywrap(){return 1;}</p><p><b>  語法分析模塊</b></p><p><b>  語法分析簡(jiǎn)介</b></p

48、><p>  語法分析的任務(wù)是:在詞法分析的基礎(chǔ)上,根據(jù)語言的語法規(guī)則,把單詞串分解成各類語法短語(如句子、程序、表達(dá)式等),從而確定整個(gè)輸入串的結(jié)構(gòu)是否正確。可使用上下文無法文法描述語法規(guī)則,算符優(yōu)先分析法是一種語法分析方法,它特別適合分析各類表達(dá)式。</p><p><b>  語法分析器的實(shí)現(xiàn)</b></p><p>  (1)產(chǎn)生式:

49、(0)S’→E</p><p><b>  (1)E→E+T</b></p><p><b>  (2)E→T</b></p><p><b>  (3)T→T*F</b></p><p><b>  (4)T→F</b></p><p

50、><b>  (5)F→(E)</b></p><p><b>  (6)F→i</b></p><p><b>  (7)E→E-T</b></p><p><b>  (8)T→T/F</b></p><p> ?。?)得出LR分析表:</

51、p><p><b> ?。?)代碼實(shí)現(xiàn):</b></p><p>  /*以下變量用于語法分析*/</p><p><b>  //終結(jié)符符號(hào)表</b></p><p><b>  V vt[]={</b></p><p><b>  "

52、i",$INT,</b></p><p>  "+",$PLUS,</p><p>  "-",$MINUS,</p><p><b>  "*",$MUL,</b></p><p><b>  "/",$DI

53、V,</b></p><p>  "(",$LPAR,</p><p>  ")",$RPAR,</p><p><b>  "#",$END</b></p><p><b>  };</b></p><p&

54、gt;<b>  //非終結(jié)符符號(hào)表</b></p><p><b>  V vn[]={</b></p><p><b>  "E",$E,</b></p><p><b>  "T",$T,</b></p><p&g

55、t;<b>  "F",$F</b></p><p><b>  };</b></p><p>  //文法的產(chǎn)生式集合</p><p>  P pset[]={</p><p>  1,$E,{$E,$PLUS,$T,0},//E->E+T</p><

56、p>  2,$E,{$E,$MINUS,$T,0},</p><p>  3,$E,{$T,0,0,0},</p><p>  4,$T,{$T,$MUL,$F,0},</p><p>  5,$T,{$T,$DIV,$F,0},</p><p>  6,$T,{$F,0,0,0},</p><p>  7,$F

57、,{$LPAR,$E,$RPAR,0},</p><p>  8,$F,{$INT,0,0,0},</p><p><b>  0,0,0</b></p><p><b>  };</b></p><p><b>  //action表</b></p><p

58、>  int action[16][8] = {</p><p>  // i,+,-,*,/,(,),#</p><p>  S+5,BLANK,BLANK,BLANK,BLANK,S+4,BLANK,BLANK,</p><p>  BLANK,S+6,S+7,BLANK,BLANK,BLANK,BLANK,ACC,</p><p&g

59、t;  BLANK,R+3,R+3,S+8,S+9,BLANK,R+3,R+3,</p><p>  BLANK,R+6,R+6,R+6,R+6,BLANK,R+6,R+6,</p><p>  S+5,BLANK,BLANK,BLANK,BLANK,S+4,BLANK,BLANK,</p><p>  BLANK,R+8,R+8,R+8,R+8,BLANK,R+8

60、,R+8,</p><p>  S+5,BLANK,BLANK,BLANK,BLANK,S+4,BLANK,BLANK,</p><p>  S+5,BLANK,BLANK,BLANK,BLANK,S+4,BLANK,BLANK,</p><p>  S+5,BLANK,BLANK,BLANK,BLANK,S+4,BLANK,BLANK,</p>&l

61、t;p>  S+5,BLANK,BLANK,BLANK,BLANK,S+4,BLANK,BLANK,</p><p>  BLANK,S+6,S+7,BLANK,BLANK,BLANK,S+15,BLANK,</p><p>  BLANK,R+1,R+1,S+8,S+9,BLANK,R+1,R+1,</p><p>  BLANK,R+2,R+2,S+8,S

62、+9,BLANK,R+2,R+2,</p><p>  BLANK,R+4,R+4,R+4,R+4,BLANK,R+4,R+4,</p><p>  BLANK,R+5,R+5,R+5,R+5,BLANK,R+5,R+5,</p><p>  BLANK,R+7,R+7,R+7,R+7,BLANK,R+7,R+7</p><p><b&

63、gt;  };</b></p><p><b>  //Goto表</b></p><p>  int go[16][3] = {</p><p><b>  //E,T,F</b></p><p><b>  1,2,3,</b></p><p

64、>  BLANK,BLANK,BLANK,</p><p>  BLANK,BLANK,BLANK,</p><p>  BLANK,BLANK,BLANK,</p><p><b>  10,2,3,</b></p><p>  BLANK,BLANK,BLANK,</p><p>  B

65、LANK,11,3,</p><p>  BLANK,12,3,</p><p>  BLANK,BLANK,13,</p><p>  BLANK,BLANK,14,</p><p>  BLANK,BLANK,BLANK,</p><p>  BLANK,BLANK,BLANK,</p><p&

66、gt;  BLANK,BLANK,BLANK,</p><p>  BLANK,BLANK,BLANK,</p><p>  BLANK,BLANK,BLANK,</p><p>  BLANK,BLANK,BLANK</p><p><b>  };</b></p><p>  int SLR1

67、()//SLR1分析表入口</p><p><b>  {</b></p><p>  int token;//輸入符號(hào)</p><p>  int s,e;//狀態(tài)棧頂、符號(hào)棧頂元素</p><p>  int *pr,pl;//產(chǎn)生式右部、左部</p><p>  int act;//動(dòng)作&

68、lt;/p><p><b>  //分析棧</b></p><p>  rstack slrstack(256);</p><p>  slrstack.push(0, $END);</p><p>  token = Lex();</p><p>  while(true)</p>&

69、lt;p><b>  {</b></p><p>  if (token == $UNKNOWN)</p><p><b>  {</b></p><p>  ProcError();</p><p>  return FAIL;</p><p><b>  

70、}</b></p><p><b>  else</b></p><p><b>  {</b></p><p>  act = action[slrstack.top(s,e)][token-1];</p><p>  if (act == BLANK)</p><

71、p><b>  {</b></p><p>  ProcError();</p><p>  return FAIL;</p><p><b>  }</b></p><p>  else if (act == ACC)</p><p><b>  {<

72、/b></p><p>  printf("接受!");</p><p>  return SUCCESS;</p><p><b>  }</b></p><p>  else if (act < R)</p><p><b>  {</b>

73、</p><p><b>  //移入</b></p><p>  printf("移入%s\n", vt[token-1].name);</p><p>  slrstack.push(act-S, token);</p><p>  token = Lex();</p><p&

74、gt;<b>  }</b></p><p><b>  else</b></p><p><b>  {</b></p><p><b>  //規(guī)約</b></p><p>  pr = pset[act-R-1].right;</p>

75、<p>  pl = pset[act-R-1].left;</p><p>  printf("規(guī)約產(chǎn)生式:%s->", vn[pl-100].name);</p><p>  while(*pr != 0)</p><p><b>  {</b></p><p>  if (*pr

76、 >= 100)</p><p>  printf("%s ", vn[*pr-100].name);</p><p><b>  else</b></p><p>  printf("%s ", vt[*pr-1].name);</p><p>  slrstack.pop

77、(s, e);</p><p><b>  pr++;</b></p><p><b>  }</b></p><p>  printf("\n");</p><p>  s = go[slrstack.top(s,e)][pl-100];</p><p>

78、;  slrstack.push(s, pl);</p><p>  }//if (act == BLANK)</p><p>  }//if (token == $UNKNOWN)</p><p><b>  }//while</b></p><p><b>  }</b></p>

79、<p><b>  文法分析</b></p><p>  文法分析器生成工具yacc</p><p>  簡(jiǎn)單來說,yacc(Yet Another Compiler-Compiler)就是編譯器的編譯器。Yacc是一個(gè)通用的工具,能夠根據(jù)用戶指定的規(guī)則,生成一個(gè)詞法分析程序。yacc能識(shí)別LALR(1)且無歧義的文法,它的輸入是詞法分析器的輸出。我們知道,

80、生成詞法分析器是lex分內(nèi)的事,因此lex和yacc常常珠聯(lián)璧合。</p><p>  先讓我們看一下yacc文件的格式。和前面介紹的lex的格式類似:</p><p>  其中聲明段聲明一些符號(hào)常量,可以為空。同lex一樣,聲明段中可以有出現(xiàn)在目標(biāo)C程序中的代碼,放在%{…%}中;還有一些yacc關(guān)鍵詞可以指示出token的結(jié)合順序:</p><p>  俗話說“

81、沒有規(guī)矩,不成方圓”。 規(guī)則段描述規(guī)則,自然是重中之重了。規(guī)則段的結(jié)構(gòu)是如下,</p><p>  A表示非終結(jié)符名,BODY表示產(chǎn)生式和動(dòng)作。產(chǎn)生式包括非終結(jié)符和終結(jié)符,終結(jié)符用’’引用。一些轉(zhuǎn)義字符,比如’\r’,’\n’等,和C里面的表示是一樣的。動(dòng)作(action)則是在輸入被當(dāng)前規(guī)則識(shí)別出來時(shí)而執(zhí)行的。動(dòng)作實(shí)際上就是C的代碼,寫在{ }中。為了溝通詞法分析器和動(dòng)作,yacc引入了形式變量,以$開頭。如果

82、希望獲得詞法分析器和前面的動(dòng)作返回的值,我們可以使用$1,$2,…。$i表示一條規(guī)則右側(cè)第i個(gè)單元的值。比如有這樣的一條規(guī)則,</p><p>  C的返回值為$2,D為$3。依此類推。</p><p>  程序段放一些其它的程序,也可以省略,連%%都可以不要。</p><p>  連接時(shí)需要指定連接庫,gcc的參數(shù)為-ly。</p><p>

83、;<b>  .測(cè)試分析</b></p><p><b>  功能測(cè)試:</b></p><p><b>  圖2進(jìn)行加法運(yùn)算</b></p><p>  圖3表達(dá)式進(jìn)行減法運(yùn)算</p><p>  圖4表達(dá)式進(jìn)行乘法運(yùn)算</p><p>  圖5表達(dá)式

84、進(jìn)行除法運(yùn)算</p><p>  圖6表達(dá)式進(jìn)行四則運(yùn)算</p><p>  圖7表達(dá)式進(jìn)行括號(hào)優(yōu)先運(yùn)算</p><p><b>  課程總結(jié)</b></p><p>  本課程設(shè)計(jì)基于程序設(shè)計(jì)語言的編譯原理,給出了表達(dá)式計(jì)算器的設(shè)計(jì)過程,并在VC++6..0下將其進(jìn)行了實(shí)現(xiàn)。其中由于時(shí)間問題,在詞法分析與語義分析中分別

85、運(yùn)用了LEX和YACC工具。所以本課程設(shè)計(jì)的核心內(nèi)容在于語法分析階段,語法分析采用自上而下分析法,確定相關(guān)的文法產(chǎn)生式,確定FIRST和FOLLOW集合,對(duì)產(chǎn)生式進(jìn)行移近和規(guī)約,構(gòu)造ACTION和GOTO表,最后進(jìn)行代碼的編寫。</p><p>  通過本課程設(shè)計(jì)讓我深刻掌握了詞法分析、語法分析和語義分析等相關(guān)內(nèi)容。特別是能靈活的運(yùn)用LEX和YACC工具進(jìn)行詞法和語義分析。</p><p>

86、;<b>  .參考文獻(xiàn)</b></p><p>  [1] Alfred V.Aho, Ravi Sethi, Jeffrey D,Ullman著,李建中, 姜守旭等譯. 編譯原理[M]. 北京:機(jī)械工業(yè)出版社出版</p><p>  [2] 陳火旺,劉春林, 譚慶平, 趙克佳, 劉越著. 程序設(shè)計(jì)語言編譯原理(第三版)[M]. 長(zhǎng)沙:國(guó)防工業(yè)出版社出版</p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論