哈夫曼(huffman)編譯碼器課程設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  工學(xué)系課程設(shè)計(jì)報(bào)告</b></p><p>  設(shè) 計(jì) 題 目:哈夫曼(huffman)編譯碼器 </p><p>  系 別: </p><p>  專 業(yè) (方 向): </p><p>  年

2、級(jí)、 班: </p><p>  學(xué) 生 姓 名: </p><p>  學(xué) 生 學(xué) 號(hào): </p><p>  指 導(dǎo) 教 師: </p><p><b>  年 月日<

3、/b></p><p><b>  目 錄</b></p><p>  哈夫曼(huffman )編譯碼器3</p><p>  一、 編譯碼器開發(fā)的背景3</p><p>  二、系統(tǒng)的分析與設(shè)計(jì)3</p><p> ?。ㄒ唬┫到y(tǒng)功能要求3</p><p&

4、gt; ?。ǘ┫到y(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)4</p><p>  三、系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)6</p><p> ?。ㄒ唬﹎ain()6</p><p><b> ?。ǘ┻\(yùn)算7</b></p><p>  1. 權(quán)值運(yùn)算quanzhi()7</p><p>  2. 印二叉樹函數(shù)huffmantree

5、( )7</p><p>  3.編譯碼運(yùn)算huffmancode()9</p><p>  4. 輸出運(yùn)算 shuchu()9</p><p><b>  四、系統(tǒng)測(cè)試10</b></p><p>  (一)測(cè)試主函數(shù)10</p><p> ?。ǘy(cè)試印二叉樹函數(shù)10</p&

6、gt;<p> ?。ㄈ?測(cè)試譯碼運(yùn)算函數(shù)11</p><p><b>  五、總結(jié)12</b></p><p>  六、附件(代碼、部分圖表)13</p><p>  哈夫曼(huffman )編譯碼器</p><p>  編譯碼器開發(fā)的背景 &

7、lt;/p><p>  利用哈夫曼編碼進(jìn)行通信可以大大提高信道利用率,縮短信息傳輸時(shí)間,降低傳輸成本。但是,這要求在發(fā)送端通過(guò)一個(gè)編碼系統(tǒng)對(duì)待傳數(shù)據(jù)預(yù)先編碼,在接收端將傳來(lái)的數(shù)據(jù)進(jìn)行譯碼(復(fù)原)。對(duì)于雙工信道(即可以雙向傳輸信息的信道),每端都需要一個(gè)完整的編/譯碼系統(tǒng)。</p><p>  二、系統(tǒng)的分析與設(shè)計(jì)</p><p><b> ?。ㄒ唬┫到y(tǒng)功能要求

8、</b></p><p>  一個(gè)完整的系統(tǒng)應(yīng)具有以下功能:</p><p>  I:初始化(Initialization)。從終端讀入字符集大小n,以及n個(gè)字符和n個(gè)權(quán)值,建立哈夫曼樹,并將它存于文件hfmTree中。</p><p>  E:編碼(Encoding)。利用以建好的哈夫曼樹(如不在內(nèi)存,則從文件hfmTree中讀入),對(duì)文件ToBeTr

9、an中的正文進(jìn)行編碼,然后將結(jié)果存入文件CodeFile中。</p><p>  D:譯碼(Decoding)。利用已建好的哈夫曼樹將文件CodeFile中的代碼進(jìn)行譯碼,結(jié)果存入文件TextFile中。</p><p>  P:印代碼文件(Print)。將文件CodeFile以緊湊格式顯示在終端上,每行50個(gè)代碼。同時(shí)將此字符形式的編碼文件寫入文件CodePrin中。</p>

10、<p>  T:印哈夫曼樹(Tree Printing)。將已在內(nèi)存中的哈夫曼樹以直觀的方式(樹或凹入表形式)顯示在終端上,同時(shí)將此字符形式的哈夫曼樹寫入文件TreePrint中。</p><p> ?。ǘ┫到y(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)</p><p>  通過(guò)對(duì)系統(tǒng)功能的分析,哈夫曼(huffman)編譯碼器功能如圖(1)所示。</p><p>  圖(1)哈夫

11、曼(huffman)編譯碼器功能圖</p><p>  通過(guò)上圖的功能分析,把整個(gè)系統(tǒng)分為四個(gè)模塊:</p><p>  1.初始化模塊,該模塊主要實(shí)現(xiàn):輸入二叉樹的結(jié)點(diǎn)數(shù),以及要加密的句子,建立哈夫曼樹。</p><p>  2.輸出二叉樹模塊,該運(yùn)算模塊主要實(shí)現(xiàn):將輸入的字符串中每個(gè)字符出現(xiàn)的次數(shù)當(dāng)作權(quán)值,建立二叉樹,將二叉樹的parent,weight,lch

12、ild,rchild輸出。</p><p>  3.譯碼模塊,該操作主要實(shí)現(xiàn):對(duì)編碼后的代碼進(jìn)行譯碼,然后輸出。</p><p>  4.輸出模塊,該操作主要進(jìn)行表頭的輸出。</p><p><b>  圖2  流程圖</b></p><p>  三、系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)</p><p><b&

13、gt;  (一)main()</b></p><p>  輸出1.輸出二叉樹操作2.進(jìn)行輸出二叉樹操作3.退出編譯碼操作系統(tǒng),并讓用戶選擇所進(jìn)行的操作,對(duì)其調(diào)用。</p><p>  該模塊的具體代碼如下所示:</p><p>  void main()</p><p><b>  {</b></p&g

14、t;<p>  int i,n,s=1; </p><p>  hnodetype huffnode[maxnode];</p><p><b>  while(s)</b></p><p><b>  {</b></p><p><b>  shuchu();</b&

15、gt;</p><p>  scanf("%d",&i);</p><p><b>  switch(i)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p>&

16、lt;b>  {</b></p><p>  haffmantree(huffnode,&n);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 2:</b></p&

17、gt;<p><b>  {</b></p><p>  haffmancode();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 3: </b></p

18、><p><b>  s=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b><

19、;/p><p>  分析:首先輸出一個(gè)主菜單,方便用戶進(jìn)行操作,用switch語(yǔ)句調(diào)用函數(shù)使用戶對(duì)其進(jìn)行選擇要執(zhí)行的操作(1.輸出二叉樹操作,2.進(jìn)行編譯碼操作,3.退出程序)。</p><p><b> ?。ǘ┻\(yùn)算</b></p><p>  該模塊的具體代碼如下所示:</p><p>  權(quán)值運(yùn)算quanzhi()&

20、lt;/p><p>  分析:此函數(shù)用于對(duì)一串字符進(jìn)行求權(quán)值運(yùn)算,利用循環(huán)將一串字符中每個(gè)字符的個(gè)數(shù)設(shè)定為權(quán)值。</p><p>  void quanzhi(int t[maxleaf],char s[maxleaf],int n)//求權(quán)值函數(shù),將句子中的字符出現(xiàn)的個(gè)數(shù)當(dāng)作權(quán)值</p><p><b>  {</b></p>&l

21、t;p>  int i,j,h;</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  for(j=0;j<n;j++)</p><p>  if(s[i]==s[j])</p><p><b>  h++;&

22、lt;/b></p><p><b>  t[i]=h;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  印二叉樹函數(shù)huffmantree( )</p><p>  void haffm

23、antree(hnodetype huffnode[maxnode],int *m)</p><p><b>  {</b></p><p>  int i,j,n,k;</p><p>  int m1,m2,x1,x2;</p><p>  char s[maxleaf],t[maxleaf];</p>

24、<p>  printf("輸入葉子結(jié)點(diǎn)個(gè)數(shù):");</p><p>  scanf("%d",&n);</p><p>  for(i=0;i<2*n-1;i++)//數(shù)組huffnode[]初始化</p><p><b>  {</b></p><p>

25、;  huffnode[i].weight=0;</p><p>  huffnode[i].parent=-1;</p><p>  huffnode[i].lchild=-1;</p><p>  huffnode[i].rchild=-1;</p><p><b>  }</b></p><p&

26、gt;  printf("輸入要編譯的句子的\n");</p><p>  for(i=0;i<n;i++){</p><p>  printf("第%d個(gè)結(jié)點(diǎn)",i+1);</p><p>  scanf("%d",&huffnode[i].weight);</p><p

27、>  getchar();</p><p><b>  }</b></p><p>  printf("印二叉樹:\n"); </p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>

28、;  quanzhi(t,s,n);</p><p>  k=huffnode[i].weight;</p><p><b>  }</b></p><p>  for(i=0;i<n-1;i++)</p><p><b>  {//構(gòu)造哈夫曼樹</b></p><p>

29、;  m1=m2=maxvalue;</p><p><b>  x1=x2=0;</b></p><p>  for(j=0;j<n+i;j++)</p><p>  {//選取最小和次小兩個(gè)權(quán)值</p><p>  if(huffnode[j].parent==-1&&huffnode[j].w

30、eight<m1)</p><p><b>  {</b></p><p><b>  m2=m1;</b></p><p><b>  x2=x1;</b></p><p>  m1=huffnode[j].weight;</p><p><

31、;b>  x1=j;</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  if(huffnode[j].parent==-1&&huffnode[j].weight<m2)</p><p><

32、b>  {</b></p><p>  m2=huffnode[j].weight;</p><p><b>  x2=j;</b></p><p><b>  }</b></p><p>  }//將找出的兩棵子樹合并為一顆子樹</p><p>  huf

33、fnode[x1].parent=n+i;</p><p>  huffnode[x2].parent=n+i;</p><p>  huffnode[n+i].weight=huffnode[x1].weight+huffnode[x2].weight;</p><p>  huffnode[n+i].lchild=x1;</p><p>

34、  huffnode[n+i].rchild=x2;</p><p><b>  }</b></p><p>  for(i=0;i<2*n-1;i++)</p><p><b>  {</b></p><p>  printf(" %4d",k);</

35、p><p>  printf(" %4d",huffnode[i].lchild);</p><p>  printf(" %4d",huffnode[i].rchild);</p><p>  printf(" %4d\n",huffnode[i].parent);&

36、lt;/p><p><b>  }</b></p><p><b>  *m=n;</b></p><p><b>  }</b></p><p>  3.編譯碼運(yùn)算huffmancode()</p><p>  void haffmancode()<

37、/p><p><b>  {</b></p><p>  hnodetype huffnode[maxnode];</p><p>  hcodetype huffcode[maxleaf],cd;</p><p>  int i,j,c,p,n=0;</p><p>  haffmantree(hu

38、ffnode,&n);</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  cd.start=n-1;</p><p><b>  c=i;</b></p><p>  p=huffnode[c].p

39、arent;</p><p>  while(p!=-1)</p><p><b>  {</b></p><p>  if(huffnode[p].lchild==c)</p><p>  cd.bit[cd.start]=0;</p><p><b>  else</b>

40、</p><p>  cd.bit[cd.start]=1;</p><p>  cd.start--;</p><p><b>  c=p;</b></p><p>  p=huffnode[c].parent;</p><p><b>  }</b></p>

41、<p>  for(j=cd.start+1;j<n;j++)</p><p>  huffcode[i].bit[j]=cd.bit[j];</p><p>  huffcode[i].start=cd.start;</p><p><b>  }</b></p><p>  for(i=0;i<

42、;n;i++)</p><p><b>  {</b></p><p>  printf("第%d個(gè)譯碼為:",i+1);</p><p>  for(j=huffcode[i].start+1;j<n;j++)</p><p>  printf("%4d",huffcode

43、[i].bit[j]);</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }</b></p><p>  輸出運(yùn)算 shuchu()</p><p>  void shuchu()<

44、/p><p><b>  {</b></p><p>  printf("********************************************************************************\n");</p><p>  printf("***

45、 |** 哈夫曼樹的編譯碼 ** | ***\n");</p><p>  printf("*** |** 1.輸出二叉樹操作 ** | ***\n");</p><p>  printf("**

46、* |** 2.進(jìn)行編譯碼操作 ** | ***\n");</p><p>  printf("*** |** 3.退出編譯碼操作系統(tǒng)** | ***\n");</p><p>

47、  printf("********************************************************************************\n");</p><p>  printf("請(qǐng)選擇要進(jìn)行的操作:");</p><p><b>  }</b></p><p&

48、gt;<b>  四、系統(tǒng)測(cè)試</b></p><p> ?。ㄒ唬y(cè)試主函數(shù)main()函數(shù)</p><p>  該測(cè)試主要進(jìn)行對(duì)主函數(shù)調(diào)用以及輸出的測(cè)試,測(cè)試的結(jié)果:</p><p> ?。ǘy(cè)試印二叉樹函數(shù)</p><p>  測(cè)試選擇1,選擇1操作首先輸入葉子節(jié)點(diǎn)數(shù),然后輸入要編譯的句子,分別輸入第n+1個(gè)節(jié)點(diǎn),

49、然后系統(tǒng)會(huì)將輸入字符的個(gè)數(shù)當(dāng)作權(quán)值進(jìn)行編譯輸出二叉樹,測(cè)試結(jié)果為:</p><p><b>  測(cè)試譯碼運(yùn)算函數(shù)</b></p><p>  測(cè)試選擇2,輸入要選擇的操作2,然后按要求依次輸入需要的值,系統(tǒng)會(huì)根據(jù)輸入的數(shù)據(jù)進(jìn)行譯碼操作,最后輸出譯碼。輸出結(jié)果為: </p><p><b>  測(cè)試退出函數(shù)</b>&l

50、t;/p><p>  測(cè)試選擇3進(jìn)行退出,測(cè)試結(jié)果為:</p><p><b>  五、總結(jié)</b></p><p>  系統(tǒng)功能:系統(tǒng)完成了將一段字符串進(jìn)行哈夫曼加密,用戶將自己的選擇輸入程序,然后按照程序的提示進(jìn)行輸入,系統(tǒng)將根據(jù)輸入進(jìn)行編碼、譯碼操作,然后印出編譯的二叉樹,以及每個(gè)字符的譯碼。</p><p>  不足

51、:系統(tǒng)沒有將印哈夫曼樹操作完成,系統(tǒng)沒有將字符的權(quán)值根據(jù)大小將左孩子設(shè)為最小權(quán)值,將次小權(quán)值設(shè)為右孩子,導(dǎo)致加密有許多種,哈夫曼樹也創(chuàng)建了許多種,輸出的譯碼不唯一。</p><p>  收獲:通過(guò)一學(xué)期數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí),我發(fā)現(xiàn)數(shù)據(jù)結(jié)構(gòu)比較難,沒有完整的自己獨(dú)立完成一個(gè)程序。但也學(xué)到了許多東西,學(xué)會(huì)了以前不會(huì)的函數(shù)調(diào)用,在編程時(shí),有許多小問題還是不能夠及時(shí)的發(fā)現(xiàn),老是被一點(diǎn)小問題卡住導(dǎo)致程序不執(zhí)行或輸出死循環(huán),一些程

52、序的指針還不太熟悉。</p><p>  通過(guò)這次程序設(shè)計(jì),我發(fā)現(xiàn)了許多自己的不足,對(duì)一些算法還不能熟練運(yùn)用,不能將所學(xué)的運(yùn)用到程序中,一些語(yǔ)句還是不太懂;同時(shí),也有一些收獲,對(duì)函數(shù)調(diào)用能夠熟練運(yùn)用,也明白了結(jié)構(gòu)體的作用,掌握了最優(yōu)二叉樹的建立和原理,對(duì)哈夫曼樹有了更深一步的了解。</p><p>  六、附件(代碼、部分圖表)</p><p><b> 

53、 /*哈弗曼樹*/</b></p><p>  #include <stdio.h></p><p>  #define maxvalue 1000//定義最大權(quán)值</p><p>  #define maxleaf 50//定義哈夫曼樹中葉子結(jié)點(diǎn)個(gè)數(shù)</p><p>  #define maxnode maxleaf

54、*2-1//定義哈夫曼樹中結(jié)點(diǎn)個(gè)數(shù)整數(shù)常量maxnode</p><p>  #define maxbit 100//定義哈夫曼樹的最大長(zhǎng)度整數(shù)常量</p><p>  typedef struct//定義結(jié)構(gòu)體</p><p><b>  {</b></p><p>  int weight;</p>&

55、lt;p>  int parent;</p><p>  int lchild;</p><p>  int rchild;</p><p>  }hnodetype;</p><p>  typedef struct</p><p><b>  {</b></p><p

56、>  int bit[maxbit];</p><p>  int start;</p><p>  }hcodetype;</p><p><b>  //求權(quán)值函數(shù)</b></p><p>  void quanzhi(int t[maxleaf],char s[maxleaf],int n)//求權(quán)值函數(shù),將

57、句子中的字符出現(xiàn)的個(gè)數(shù)當(dāng)作權(quán)值</p><p><b>  {</b></p><p>  int i,j,h;</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  for(j=0;j<n;j++)&l

58、t;/p><p>  if(s[i]==s[j])</p><p><b>  h++;</b></p><p><b>  t[i]=h;</b></p><p><b>  }</b></p><p><b>  }</b><

59、/p><p><b>  //印二叉樹函數(shù)</b></p><p>  void haffmantree(hnodetype huffnode[maxnode],int *m)</p><p><b>  {</b></p><p>  int i,j,n,k;</p><p>

60、  int m1,m2,x1,x2;</p><p>  char s[maxleaf],t[maxleaf];</p><p>  printf("輸入葉子結(jié)點(diǎn)個(gè)數(shù):");</p><p>  scanf("%d",&n);</p><p>  for(i=0;i<2*n-1;i++)/

61、/數(shù)組huffnode[]初始化</p><p><b>  {</b></p><p>  huffnode[i].weight=0;</p><p>  huffnode[i].parent=-1;</p><p>  huffnode[i].lchild=-1;</p><p>  huff

62、node[i].rchild=-1;</p><p><b>  }</b></p><p>  printf("輸入要編譯的句子的\n");</p><p>  for(i=0;i<n;i++){</p><p>  printf("第%d個(gè)結(jié)點(diǎn)",i+1);</p&

63、gt;<p>  scanf("%d",&huffnode[i].weight);</p><p>  getchar();</p><p><b>  }</b></p><p>  printf("印二叉樹:\n"); </p><p>  for

64、(i=0;i<n;i++)</p><p><b>  {</b></p><p>  quanzhi(t,s,n);</p><p>  k=huffnode[i].weight;</p><p><b>  }</b></p><p>  for(i=0;i<

65、n-1;i++)</p><p><b>  {//構(gòu)造哈夫曼樹</b></p><p>  m1=m2=maxvalue;</p><p><b>  x1=x2=0;</b></p><p>  for(j=0;j<n+i;j++)</p><p>  {//選取最

66、小和次小兩個(gè)權(quán)值</p><p>  if(huffnode[j].parent==-1&&huffnode[j].weight<m1)</p><p><b>  {</b></p><p><b>  m2=m1;</b></p><p><b>  x2=x1;

67、</b></p><p>  m1=huffnode[j].weight;</p><p><b>  x1=j;</b></p><p><b>  }</b></p><p><b>  else</b></p><p>  if(huf

68、fnode[j].parent==-1&&huffnode[j].weight<m2)</p><p><b>  {</b></p><p>  m2=huffnode[j].weight;</p><p><b>  x2=j;</b></p><p><b> 

69、 }</b></p><p>  }//將找出的兩棵子樹合并為一顆子樹</p><p>  huffnode[x1].parent=n+i;</p><p>  huffnode[x2].parent=n+i;</p><p>  huffnode[n+i].weight=huffnode[x1].weight+huffnode[

70、x2].weight;</p><p>  huffnode[n+i].lchild=x1;</p><p>  huffnode[n+i].rchild=x2;</p><p><b>  }</b></p><p>  for(i=0;i<2*n-1;i++)</p><p><b

71、>  {</b></p><p>  printf(" %4d",k);</p><p>  printf(" %4d",huffnode[i].lchild);</p><p>  printf(" %4d",huffnode[i].rchild

72、);</p><p>  printf(" %4d\n",huffnode[i].parent);</p><p><b>  }</b></p><p><b>  *m=n;</b></p><p><b>  }</b></p>

73、;<p><b>  //編譯碼函數(shù)</b></p><p>  void haffmancode()</p><p><b>  {</b></p><p>  hnodetype huffnode[maxnode];</p><p>  hcodetype huffcode[max

74、leaf],cd;</p><p>  int i,j,c,p,n=0;</p><p>  haffmantree(huffnode,&n);</p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  cd.start=n-1

75、;</p><p><b>  c=i;</b></p><p>  p=huffnode[c].parent;</p><p>  while(p!=-1)</p><p><b>  {</b></p><p>  if(huffnode[p].lchild==c)<

76、;/p><p>  cd.bit[cd.start]=0;</p><p><b>  else</b></p><p>  cd.bit[cd.start]=1;</p><p>  cd.start--;</p><p><b>  c=p;</b></p>&

77、lt;p>  p=huffnode[c].parent;</p><p><b>  }</b></p><p>  for(j=cd.start+1;j<n;j++)</p><p>  huffcode[i].bit[j]=cd.bit[j];</p><p>  huffcode[i].start=cd

78、.start;</p><p><b>  }</b></p><p>  for(i=0;i<n;i++)</p><p><b>  {</b></p><p>  printf("第%d個(gè)譯碼為:",i+1);</p><p>  for(j=

79、huffcode[i].start+1;j<n;j++)</p><p>  printf("%4d",huffcode[i].bit[j]);</p><p>  printf("\n");</p><p><b>  }</b></p><p><b>  }&

80、lt;/b></p><p><b>  //輸出主菜單函數(shù)</b></p><p>  void shuchu()</p><p><b>  {</b></p><p>  printf("*********************************************

81、***********************************\n");</p><p>  printf("*** |** 哈夫曼樹的編譯碼 ** | ***\n");</p><p>  printf("***

82、 |** 1.輸出二叉樹操作 ** | ***\n");</p><p>  printf("*** |** 2.進(jìn)行編譯碼操作 ** | ***\n");</p><p>  printf("***

83、 |** 3.退出編譯碼操作系統(tǒng)** | ***\n");</p><p>  printf("********************************************************************************\n");</p><

84、;p>  printf("請(qǐng)選擇要進(jìn)行的操作:");</p><p><b>  }</b></p><p><b>  //主函數(shù)</b></p><p>  void main()</p><p><b>  {</b></p>&l

85、t;p>  int i,n,s=1; </p><p>  hnodetype huffnode[maxnode];</p><p><b>  while(s)</b></p><p><b>  {</b></p><p><b>  shuchu();</b><

86、;/p><p>  scanf("%d",&i);</p><p><b>  switch(i)</b></p><p><b>  {</b></p><p><b>  case 1:</b></p><p><b&g

87、t;  {</b></p><p>  haffmantree(huffnode,&n);</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 2:</b></p>&

88、lt;p><b>  {</b></p><p>  haffmancode();</p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case 3: </b></p>

89、<p><b>  s=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p>

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)僅提供信息存儲(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)論