編譯原理課程設(shè)計(jì)(c++)-語(yǔ)法分析器_第1頁(yè)
已閱讀1頁(yè),還剩15頁(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>  課程設(shè)計(jì)報(bào)告</b></p><p>  2010~2011學(xué)年第一學(xué)期</p><p> 課程名稱:編譯原理</p><p> 課程設(shè)計(jì)題目:語(yǔ)法分析器</p><p> 姓 名:</p><p> 系:計(jì)算機(jī)</p><p> 專

2、 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p> 年 級(jí):</p><p> 學(xué) 號(hào):</p><p> 指導(dǎo)教師:</p><p> 職 稱:</p><p>  目 錄</p><p>  1 正則表達(dá)式1</p><p>  1.1

3、正則表達(dá)式1</p><p>  1.2 確定化(化簡(jiǎn))后的狀態(tài)轉(zhuǎn)換圖1</p><p>  1.3 分析程序代碼1</p><p>  1.4 程序運(yùn)行截圖4</p><p><b>  1.5 小結(jié)4</b></p><p>  2 LL(1)分析5</p>

4、<p>  2.1 LL(1)文法5</p><p>  2.2 LL(1)預(yù)測(cè)分析表5</p><p>  2.3 分析程序代碼5</p><p>  2.4 程序運(yùn)行截圖7</p><p><b>  2.5 小結(jié)7</b></p><p>  3 算符優(yōu)先分析

5、8</p><p>  3.1 算符優(yōu)先文法8</p><p>  3.2 算符優(yōu)先關(guān)系表8</p><p>  3.3 分析程序代碼8</p><p>  3.4 程序運(yùn)行截圖10</p><p>  3.5 小結(jié)11</p><p>  4 LR分析12</p

6、><p>  4.1 LR文法12</p><p>  4.2 LR分析表12</p><p>  4.3 分析程序代碼12</p><p>  4.4 程序運(yùn)行截圖14</p><p>  4.5 小結(jié)14</p><p><b>  參考文獻(xiàn):14</b&g

7、t;</p><p><b>  1 正則表達(dá)式</b></p><p>  1.1 正則表達(dá)式</p><p>  (a|b)*(aa|bb)(a|b)* (注:該正規(guī)式為示例,可更改)</p><p>  1.2 確定化(化簡(jiǎn))后的狀態(tài)轉(zhuǎn)換圖</p><p>  1.3 分析程序代碼

8、</p><p>  #include <iostream>  </p><p>  #include <string>  </p><p>  using namespace std;  </p><p>  cons

9、t int Max=20;                 </p><p>  typedef struct ArcNode{  </p><p>  int&

10、#160;adjvex;//該弧所指向的頂點(diǎn)的位置  </p><p>  char info;  //權(quán)  </p><p>  struct ArcNode *nextarc;//指向下一條弧的指針  </p><p>  }ArcNode; 

11、 </p><p>  typedef struct VNode{  </p><p>  char data;                  //

12、頂點(diǎn)信息  </p><p>  ArcNode *firstarc;          //指向第一條依附該頂點(diǎn)的弧的指針  </p><p><b>  }VNode;  </b></p&g

13、t;<p>  class Nfa  </p><p><b>  {  </b></p><p><b>  public:  </b></p><p>  Nfa();     

14、0;//構(gòu)造函數(shù),初始化nfa  </p><p>  int FindAdj(char c);       //返回c狀態(tài)的在鄰接表中的序號(hào)  </p><p>  void AlpAdd(char c);   

15、;    //向字母表集合中添加表中沒(méi)有的新元素c  </p><p>  void InitVisit();           //初始化Visited集合  </p><p>  voi

16、d e_closure(int index);  //求單一狀態(tài)c的e-閉包  </p><p>  void e_closure(int a[]);    //重載的狀態(tài)集合的e-閉包  </p><p>  void move(int&#

17、160;I,char a);    //單一狀態(tài)I的a弧轉(zhuǎn)換  </p><p>  void move(int I[],char a);  //重載的狀態(tài)集合的a弧轉(zhuǎn)換  </p><p>  void Nfa::Visit_I(int&#

18、160;*Temp); //Visited轉(zhuǎn)換為集合  </p><p>  void Insert(int I[],int a); //向狀態(tài)集合中添加新元素  </p><p>  int TAdd(int I[]);     

19、     //狀態(tài)矩陣T中加入新?tīng)顟B(tài)集合  </p><p>  void Resault(int i);  </p><p>  void Nfa_Dfa();  </p><p>  private:  

20、</p><p>  int K;              //狀態(tài)數(shù)  </p><p>  int T[Max][Max];       

21、; //狀態(tài)子集矩陣  </p><p>  VNode AdjList[Max];         //nfa,鄰接表的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)  </p><p>  VNode Dfa[Max];   

22、60;         //dfa  </p><p>  bool Visited[Max];      //存e-閉包結(jié)果  </p><p>  char Alp[Max];&

23、#160;     //字母表,0號(hào)單元用于存放個(gè)數(shù)  </p><p><b>  };  </b></p><p>  Nfa::Nfa()  </p><p><b>  {  </b>&

24、lt;/p><p>  K=Alp[0]=0;  </p><p><b>  char c;  </b></p><p>  string line;  </p><p>  ArcNode *p;  </p

25、><p>  while(cin>>c&&c!='#')  </p><p><b>  {  </b></p><p>  AdjList[K].data=c;  </p><p>  AdjList[K].firsta

26、rc=new ArcNode;  </p><p>  AdjList[K].firstarc->nextarc=NULL;  </p><p><b>  K++;  </b></p><p><b>  }  </b><

27、;/p><p>  getline(cin,line);        </p><p>  while(getline(cin,line)&&line!="#")  </p><p><b>  {  &

28、lt;/b></p><p>  int index=FindAdj(line[0]);  </p><p>  if(index!=-1)  </p><p><b>  {  </b></p><p>  p=AdjList[index].f

29、irstarc;  </p><p>  while(p->nextarc)  </p><p>  p=p->nextarc;  </p><p>  p->nextarc=new ArcNode;  </p><p>  p->

30、;nextarc->nextarc=NULL;  </p><p>  p->nextarc->adjvex=FindAdj(line[4]);  </p><p>  p->nextarc->info=line[2];  </p><p>  AlpAdd(p->nex

31、tarc->info);  </p><p><b>  }  </b></p><p><b>  }  </b></p><p>  cout<<"------------------------------"<&l

32、t;endl;  </p><p>  cout<<"Initialization completely."<<endl;  </p><p>  cout<<"K={";  </p><p>  for(int 

33、;i=0;i<K-1;i++)  </p><p>  cout<<AdjList[i].data<<",";  </p><p>  cout<<AdjList[K-1].data<<"}."<<endl;  </p&

34、gt;<p>  cout<<"∑={";  </p><p>  for(int i=1;i<(int)Alp[0];i++)  </p><p>  cout<<Alp[i]<<",";  </p><

35、p>  cout<<Alp[Alp[0]]<<"}."<<endl;  </p><p>  for(int i=0;i<K;i++)  </p><p><b>  {  </b></p><p>  p=

36、AdjList[i].firstarc;  </p><p>  p=p->nextarc;  </p><p>  while(p)  </p><p><b>  {  </b></p><p>  cout<<&quo

37、t;f("<<AdjList[i].data<<","<<p->info<<")="<<p->adjvex<<"  ";  </p><p>  p=p->nextarc;  </p>

38、<p><b>  }  </b></p><p>  if(i<K&&AdjList[i].firstarc->nextarc)  </p><p>  #include<stdio.h></p><p>  int exch[4][2]={1,2,

39、3,2,1,3,3,3};</p><p>  void judge(char *s) </p><p><b>  {</b></p><p>  int cur = 0, i = 0;</p><p>  while(s[i])</p><p><b>  {</b>&l

40、t;/p><p>  if(s[i]-'a' > 1 || s[i] < 'a')</p><p><b>  break;</b></p><p>  cur=exch[cur][ s[i++] - 'a'];</p><p><b>  }</b

41、></p><p>  if(s[i] == 0 && cur == 3)</p><p>  printf ("%s √ Right!\n\n",s);</p><p>  else printf ("%s × Wrong!\n\n",s);</p><p><

42、b>  }</b></p><p>  int main()</p><p><b>  {</b></p><p>  char str[100];</p><p><b>  while(1)</b></p><p><b>  {</

43、b></p><p>  printf("有限自動(dòng)機(jī),判斷是否符合 (a|b)*(aa|bb)(a|b)*\n");</p><p>  printf("請(qǐng)輸入字符串: ");</p><p>  gets(str);</p><p>  judge(str);</p><

44、p><b>  }</b></p><p><b>  }</b></p><p>  1.4 程序運(yùn)行截圖</p><p><b>  1.5 小結(jié)</b></p><p>  平時(shí)的學(xué)習(xí)需要通過(guò)實(shí)踐來(lái)檢驗(yàn),通過(guò)這次實(shí)驗(yàn)我能發(fā)現(xiàn)自身存在的一些問(wèn)題,并且加以改正,同時(shí)通

45、過(guò)實(shí)驗(yàn)加強(qiáng)了自己的動(dòng)手能力,并且增強(qiáng)了對(duì)于正則表達(dá)式的理解,并不只在于應(yīng)試方面。</p><p>  2 LL(1)分析</p><p>  2.1 LL(1)文法</p><p>  E→TE' (注:該文法為示例,可更改)</p><p><b>  E'→+TE'|ε</b>&l

46、t;/p><p><b>  T→FT'</b></p><p><b>  T'→*FT'|ε</b></p><p><b>  F→(E)|i</b></p><p>  2.2 LL(1)預(yù)測(cè)分析表</p><p>  2.

47、3 分析程序代碼</p><p>  輸入文法:E→TE' (注:該文法為示例,可更改)</p><p><b>  E'→+TE'|ε</b></p><p><b>  T→FT'</b></p><p><b>  T'→*FT

48、9;|ε</b></p><p><b>  F→(E)|i</b></p><p><b>  代碼:</b></p><p>  #include<stdio.h></p><p>  #include<string.h> </p><

49、p>  char data[5][6][10]={ "12","","","12","","",</p><p>  "","12+","","","-","-",

50、</p><p>  "34","","","34","","",</p><p>  "","-","34*","","-","-",</p&g

51、t;<p>  "i","","",")0(","","",</p><p>  };// 第一維0-4分別代表 EE'TT'F ,第二維0-5代表i+*()# -代表ε</p><p>  int exch(char ch)</p&g

52、t;<p><b>  {</b></p><p>  switch(ch)</p><p><b>  {</b></p><p>  case 'i': return 0;</p><p>  case '+': return 1;</p>

53、;<p>  case '*': return 2;</p><p>  case '(': return 3;</p><p>  case ')': return 4;</p><p>  case 0 : return 5; //字符串結(jié)束標(biāo)志代表'#'.</p>&

54、lt;p>  default: return -1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void judge(char *s)</p><p><b>  {</b></p><p>

55、;  int tot=0,i=0,cur,k=exch(s[0]);</p><p>  char sta[100];;</p><p>  sta[++tot]='0';</p><p>  while(tot>0)</p><p><b>  {</b></p><p>

56、  cur = sta[tot] - '0';</p><p>  if(s[i] == ' ') // 去空格</p><p>  ++tot,k=exch(s[++i]);</p><p>  else if(cur+'0' == s[i]) // 推導(dǎo)出相同字符,出棧</p><p>

57、  k=exch(s[++i]);</p><p>  else if(k < 0 || data[cur][k][0] == 0) // 踩空,或者出現(xiàn)非法字符</p><p><b>  break;</b></p><p>  else if(data[cur][k][0] != '-') //不是ε,進(jìn)棧繼續(xù)推導(dǎo)

58、</p><p><b>  {</b></p><p>  strcpy(sta+tot,data[cur][k]);</p><p>  tot+=strlen(data[cur][k]);</p><p><b>  }</b></p><p><b>  -

59、-tot;</b></p><p><b>  }</b></p><p>  if(tot==0)</p><p>  printf(" %s √ Right!\n\n",s);</p><p>  else printf(" %

60、s × Wrong!\n\n",s);</p><p><b>  }</b></p><p>  int main()</p><p><b>  {</b></p><p>  char str[100];</p><p>  printf(&quo

61、t;判斷符號(hào)串是否符合文法:\n\n\tE→TE'\n\t");</p><p>  printf("E'→+TE'|ε\n\tT→FT'\n\tT'→*FT'|ε\n\tF→(E)|i\n\n");</p><p>  while(printf("輸入符號(hào)串: ")&&get

62、s(str)&&str[0])</p><p>  judge(str);</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  2.4 程序運(yùn)行截圖</p><p><b>  2.5

63、 小結(jié)</b></p><p>  實(shí)踐實(shí)踐驗(yàn)證里的唯一標(biāo)準(zhǔn),這次課程設(shè)計(jì)主要鞏固了我對(duì)LL(1)文法的深刻認(rèn)識(shí),掌握程序?qū)崿F(xiàn)文法判斷、鏈表的使用等多種問(wèn)題的基本方法,進(jìn)一步提高了綜合運(yùn)用所學(xué)知識(shí)的能力。</p><p><b>  3 算符優(yōu)先分析</b></p><p>  3.1 算符優(yōu)先文法</p>&l

64、t;p>  E→T | E+T | E-T (注:該文法為示例,可更改)</p><p>  T→F | T*F | T/F</p><p><b>  F→(E) | i</b></p><p>  3.2 算符優(yōu)先關(guān)系表</p><p>  3.3 分析程序代碼</p><p> 

65、 #include<stdio.h></p><p>  #include<string.h></p><p>  char com[8][8]={ '>', '>', '<', '<', '<', '>', '<

66、;', '>',</p><p>  '>', '>', '<', '<', '<', '>', '<', '>',</p><p>  '>', '>

67、;', '>', '>', '<', '>', '<', '>',</p><p>  '>', '>', '>', '>', '<', '>'

68、, '<', '>',</p><p>  '<', '<', '<', '<', '<', '=', '<', ' ',</p><p>  '>', '

69、;>', '>', '>', '-', '>', '-', '>', </p><p>  '>', '>', '>', '>', '-', '>'

70、, '-', '>',</p><p>  '<', '<', '<', '<', '<', '-', '<', '=',</p><p>  }; // 0-7 分別代表 + - * /

71、( ) i #</p><p>  int exch(char ch)</p><p><b>  {</b></p><p>  switch(ch)</p><p><b>  {</b></p><p>  case '+': return 0;<

72、/p><p>  case '-': return 1;</p><p>  case '*': return 2;</p><p>  case '/': return 3;</p><p>  case '(': return 4;</p><p>  c

73、ase ')': return 5;</p><p>  case 'i': return 6;</p><p>  case 0 : return 7; //字符串結(jié)束標(biāo)志代表‘#’</p><p>  default: return -1;</p><p><b>  }</b><

74、;/p><p><b>  }</b></p><p>  char expre[6][5]={"N+N","N-N","N*N","N/N","(=N)","i"}; //為了挽回因忽略語(yǔ)法變量而產(chǎn)生的錯(cuò)誤,在規(guī)約時(shí)檢驗(yàn)終結(jié)符是否帶了應(yīng)有的操作對(duì)象。

75、</p><p>  int confirm(char *sta,int t) //檢驗(yàn)終結(jié)符是否帶了應(yīng)有的變量。</p><p><b>  {</b></p><p>  int i,n=t;</p><p>  while( n>0&&sta[n]!='<')</p

76、><p><b>  n--;</b></p><p><b>  if(n>0)</b></p><p>  for(i=0;i<6;i++)</p><p>  if(memcmp(expre[i],sta+n+1,sizeof(char)*(t-n))==0)</p>&

77、lt;p><b>  {</b></p><p>  sta[n] = 'N'; // 說(shuō)明是有應(yīng)有的操作對(duì)象,所以進(jìn)行規(guī)約。</p><p><b>  return n;</b></p><p><b>  }</b></p><p><b&g

78、t;  return 0;</b></p><p><b>  }</b></p><p>  void judge(char *s)</p><p><b>  {</b></p><p>  char sta[100];</p><p>  int tot=0

79、,cur,m,k,i=0;</p><p>  sta[++tot]=0;</p><p>  while(tot>0)</p><p><b>  {</b></p><p><b>  m=tot;</b></p><p><b>  do {</b

80、></p><p>  cur=exch(sta[m--]);</p><p>  }while(cur<0); // 要忽略變量,直接對(duì)終結(jié)符進(jìn)行比較優(yōu)先級(jí)。</p><p>  while(s[i] == ' ') // 跳過(guò)空格</p><p><b>  i++;</b><

81、/p><p>  k = exch(s[i]);</p><p>  if( cur==k&&cur==7)</p><p>  tot = 0; // 規(guī)約成功,結(jié)束標(biāo)記。</p><p>  else if( k<0 || com[cur][k] == '-' ) // 踩空或者輸入非法符</p&

82、gt;<p><b>  tot = -1;</b></p><p>  else if( com[cur][k] != '>' ) // 遇到‘>',準(zhǔn)備規(guī)約</p><p><b>  {</b></p><p>  if(sta[tot] == 'N

83、9;) // 這里一個(gè)小問(wèn)題就是變量N是要在'<'左邊還是右邊呢,這要取決于終結(jié)符是什么,左右兩邊有幾個(gè)變量,不過(guò)針對(duì)本程序方法,只需全部放在右邊。</p><p><b>  {</b></p><p>  sta[tot] = com[cur][k];</p><p>  sta[++tot] = 'N&#

84、39;;</p><p><b>  }</b></p><p><b>  else </b></p><p>  sta[++tot] = com[cur][k];</p><p>  sta[++tot] =s[i++];</p><p><b>  }<

85、;/b></p><p>  else if( (tot = confirm( sta,tot ))==0 ) //檢驗(yàn)終結(jié)符是否帶了應(yīng)有的變量。沒(méi)有,就規(guī)約失敗</p><p><b>  tot = -1;</b></p><p><b>  }</b></p><p>  if(tot=

86、=0)</p><p>  printf(" %s √ Right!\n\n",s);</p><p>  else printf(" %s × Wrong!\n\n",s);</p><p><b>  }</b></p><

87、p>  int main()</p><p><b>  {</b></p><p>  char str[100];</p><p>  printf("判斷符號(hào)串是否符合文法:\n\n\tE→T | E+T | E-T\n\tT→F | T*F | T/F\n\tF→(E) | i\n\n");</p>

88、<p>  while(printf("輸入符號(hào)串: ")&&gets(str)&&str[0])</p><p>  judge(str);</p><p><b>  return 0;</b></p><p><b>  }</b></p>

89、<p>  3.4 程序運(yùn)行截圖</p><p><b>  3.5 小結(jié)</b></p><p>  通過(guò)這次課程設(shè)計(jì),我發(fā)現(xiàn)之前沒(méi)發(fā)現(xiàn)的問(wèn)題。算符優(yōu)先分析方法有一定的局限性由于算符優(yōu)先分析法去掉了單非終結(jié)符之間的歸約,盡管在分析過(guò)程中,當(dāng)決定是否為句柄時(shí)采取一些檢查措施,但仍難完全避免把錯(cuò)誤的句子得到正確的歸約。</p><p

90、><b>  4 LR分析</b></p><p><b>  4.1 LR文法</b></p><p>  (0) S'→S (注:該文法為示例,可更改)</p><p>  (1) S→BB </p><p>  (2) B→aB </p><p

91、><b>  (3) B→b</b></p><p>  4.2 LR分析表</p><p>  4.3 分析程序代碼</p><p>  #include<stdio.h></p><p>  #include<string.h> </p><p>  in

92、t action[7][5]= {</p><p>  3, 4, 0, 1, 2,</p><p>  0, 0,-4, 0, 0,</p><p>  3, 4, 0, 0, 5,</p><p>  3, 4, 0, 0, 6,</p><p>  -3,-3,-3, 0, 0,</p><

93、;p>  -1,-1,-1, 0, 0,</p><p>  -2,-2,-2, 0, 0</p><p>  };// 負(fù)數(shù)代表此時(shí)可規(guī)約,即r,第二維0-5分別代表a b # S B,-4表示acc</p><p>  int cnt[]={0,'S'*10+2,'B'*10+2,'B'*10+1};// 表

94、示ri的產(chǎn)生式的左邊變量和右邊長(zhǎng)度</p><p>  int exch(char ch)</p><p><b>  {</b></p><p>  switch(ch)</p><p><b>  {</b></p><p>  case 'a': ret

95、urn 0;</p><p>  case 'b': return 1;</p><p><b>  case '#':</b></p><p>  case'\0': return 2; //字符串結(jié)束標(biāo)志代表‘#'.</p><p>  case 'S&

96、#39;: return 3;</p><p>  case 'B': return 4;</p><p>  default: return -1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  void

97、 judge(char *s)</p><p><b>  {</b></p><p>  int int_stack[100],ti=0,tc=0,i=1,cur,k=exch(s[0]);</p><p>  char char_stack[100];</p><p>  int_stack[++ti]=0;<

98、/p><p>  while(ti>0)</p><p><b>  {</b></p><p>  cur = int_stack[ti];</p><p>  if(k<0||action[cur][k]==0) // 踩空,或者出現(xiàn)非法字符</p><p><b>  ti

99、 = -1;</b></p><p>  else if(action[cur][k]>0) //入棧,等待規(guī)約</p><p><b>  {</b></p><p>  int_stack[++ti] = action[cur][k]; //數(shù)字棧</p><p>  char_stack[++t

100、c] = s[i]; //字符棧</p><p>  k = exch(s[i++]);</p><p><b>  }</b></p><p>  else if(action[cur][k] == -4) //規(guī)約完成,說(shuō)明是符合要求</p><p><b>  ti = 0;</b></

101、p><p>  else // 可以規(guī)約</p><p><b>  {</b></p><p>  --i; //說(shuō)明輸入的字符s[i-1]還沒(méi)有用,此時(shí)它不進(jìn)棧,故i--,以便下次取到的是要s[i-1];</p><p>  ti -= cnt[ -action[cur][k] ]%10; // 取ri的長(zhǎng)度,出棧這么

102、多個(gè)的字符</p><p>  tc -= cnt[ -action[cur][k] ]%10;</p><p>  char_stack[++tc] = cnt[ -action[cur][k] ]/10; // 取產(chǎn)生式的左邊變量,進(jìn)行規(guī)約。</p><p>  k = exch( char_stack[tc] );</p><p>

103、<b>  }</b></p><p><b>  }</b></p><p>  if(ti == 0)</p><p>  printf(" %s √ Right!\n\n",s);</p><p>  else printf("

104、 %s × Wrong!\n\n",s);</p><p><b>  }</b></p><p>  int main()</p><p><b>  {</b></p><p>  char str[100];</p><p>  prin

105、tf("判斷符號(hào)串是否符合如下文法:\n\n\tS→BB\n\tB→aB\n\tB→b\n\n");</p><p>  while(printf("輸入符號(hào)串: ")&&gets(str)&&str[0])</p><p>  judge(str);</p><p><b>  re

106、turn 0;</b></p><p><b>  }</b></p><p>  4.4 程序運(yùn)行截圖</p><p><b>  4.5 小結(jié)</b></p><p>  LR(0)分析器規(guī)約沒(méi)有平時(shí)學(xué)的那么輕松,在實(shí)驗(yàn)的過(guò)程中我還是借助了老師、同學(xué)以及參考書(shū)的力量來(lái)完成改課程設(shè)

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論