2023年全國(guó)碩士研究生考試考研英語(yǔ)一試題真題(含答案詳解+作文范文)_第1頁(yè)
已閱讀1頁(yè),還剩17頁(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>  數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì)報(bào)告</p><p>  題 目: 集 合 運(yùn) 算 </p><p><b>  1、程序簡(jiǎn)介</b></p><p>  此程序是解決集合運(yùn)算的一個(gè)程序。它使用鏈表來(lái)表示集合,并完成集合的一些操作,其中包括交集運(yùn)算、并集運(yùn)算以及差集運(yùn)算。</p><p>  程序采

2、用多文件的方式構(gòu)成,包括主函數(shù)、界面操作、鏈表的建立與輸出以及三個(gè)操作函數(shù)。</p><p>  主函數(shù)主要起對(duì)其他文件中的函數(shù)調(diào)用的作用;界面操作主要包含主界面及一個(gè)選擇函數(shù),起到對(duì)操作函數(shù)的調(diào)用作用;鏈表的建立和輸出函數(shù)是對(duì)題目要求的滿足,為操作函數(shù)分配空間等作用;三個(gè)操作函數(shù)分別為:交際運(yùn)算、并集運(yùn)算、差集運(yùn)算。</p><p><b>  2、系統(tǒng)實(shí)現(xiàn)</b>

3、</p><p><b> ?。?)主函數(shù):</b></p><p>  #include<iostream></p><p>  #define MAXSIZE 10 //最大集合個(gè)數(shù)</p><p>  static int COUNT=0; //記錄集合個(gè)數(shù)</p><

4、;p>  using namespace std;</p><p>  #include"11.h"</p><p>  #include"12.h"</p><p>  #include"13.h"</p><p>  int main()</p><p

5、><b>  {</b></p><p>  output(); //輸出數(shù)據(jù)</p><p>  menu (); //主菜單</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>

6、;  ( 2 ) 主界面:</p><p>  void select ()</p><p><b>  {</b></p><p><b>  int i,k;</b></p><p>  cout<<" 請(qǐng)注意,下面開始進(jìn)入系統(tǒng)!"<<endl;

7、</p><p>  cout<<" "<<endl;</p><p>  cout<<" **** 集合的運(yùn)算 ****"<<endl;</p><p>  cout<<"

8、 "<<endl;</p><p>  cout<<" ************************"<<endl;</p><p>  cout<<" ***** 1.交集運(yùn)算 *****"<<endl;</p>

9、;<p>  cout<<" ***** 2.并集運(yùn)算 *****"<<endl;</p><p>  cout<<" ***** 3.差集運(yùn)算 *****"<<endl;</p><p>  cout<<" ***** 4.退出

10、 *****"<<endl;</p><p>  cout<<" ************************"<<endl;</p><p>  cout<<" "<<endl;</p><p&g

11、t;  cout<<"請(qǐng)選擇(1-4):";</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  cin>>k;</b></p><p>  if(k<1||

12、k>4) </p><p>  cout<<endl<<"\t輸入錯(cuò)誤,請(qǐng)重新輸入:(1-4) ";</p><p><b>  else</b></p><p><b>  break;</b></p><p><b>  }</b

13、></p><p><b>  switch(k)</b></p><p><b>  {</b></p><p><b>  case 1: </b></p><p><b>  {</b></p><p>  H=Cros

14、s(L[0],L[1]);</p><p>  if(COUNT>2)</p><p><b>  {</b></p><p>  for(i=2;i<COUNT;i++)</p><p><b>  {</b></p><p>  H=Cross(H,L[i])

15、;</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf(H);</p><p>  select ();</p><p><b>  }</b></p><p><

16、;b>  break;</b></p><p><b>  case 2: </b></p><p><b>  {</b></p><p>  H=Union(L[0],L[1]);</p><p>  if(COUNT>2)</p><p><

17、;b>  {</b></p><p>  for(i=2;i<COUNT;i++)</p><p><b>  {</b></p><p>  H=Union(H,L[i]);</p><p><b>  }</b></p><p><b>

18、  }</b></p><p>  printf(H);</p><p>  select ();</p><p><b>  }</b></p><p><b>  break; </b></p><p><b>  case 3:</b>

19、</p><p><b>  {</b></p><p>  H=Subtract(L[0],L[1]);</p><p>  if(COUNT>2)</p><p><b>  {</b></p><p>  for(i=2;i<COUNT;i++)</p

20、><p><b>  {</b></p><p>  H=Subtract(H,L[i]);</p><p><b>  }</b></p><p><b>  }</b></p><p>  printf(H);</p><p> 

21、 select ();</p><p><b>  }</b></p><p><b>  break;</b></p><p>  case 4: return; </p><p><b>  }</b></p><p><b>

22、  } </b></p><p> ?。?)鏈表及輸出函數(shù)</p><p>  typedef struct LNode</p><p><b>  {</b></p><p>  int data; //數(shù)據(jù)</p><p>

23、;  struct LNode *next; //指針</p><p><b>  }LNode;</b></p><p>  LNode *L[MAXSIZE],*H;</p><p>  LNode * Linklist(LNode *L) //建立鏈表</p><p>

24、<b>  {</b></p><p><b>  LNode *q;</b></p><p><b>  int i;</b></p><p><b>  L=NULL;</b></p><p>  cout<<" 請(qǐng)您輸入集合

25、數(shù)據(jù):"<<endl;</p><p><b>  cin>>i;</b></p><p>  while(i!=0)</p><p><b>  {</b></p><p>  q= (LNode*)malloc(sizeof(LNode));</p>

26、<p><b>  while(!q)</b></p><p><b>  {</b></p><p>  cout<<"分配內(nèi)存失??!"<<endl;</p><p><b>  }</b></p><p>  q-&

27、gt;data =i;</p><p>  q->next=L;</p><p><b>  L=q;</b></p><p><b>  cin>>i; </b></p><p><b>  }</b></p><p><b&g

28、t;  q=NULL;</b></p><p>  return L;</p><p><b>  }</b></p><p>  void printf(LNode *L) //輸出鏈表</p><p><b>  {</b></p>

29、<p><b>  LNode *q;</b></p><p>  int count=0;</p><p><b>  q=L;</b></p><p>  if(q==NULL)</p><p>  cout<<"集合為空!"<<endl;&

30、lt;/p><p>  cout<<"集合數(shù)據(jù):";</p><p><b>  while(q)</b></p><p><b>  {</b></p><p>  cout<<q->data<<" ";</p&

31、gt;<p>  q=q->next ;</p><p><b>  ++count;</b></p><p><b>  }</b></p><p>  cout<<"數(shù)據(jù)元素個(gè)數(shù):"<<count<<endl;</p><p

32、><b>  }</b></p><p>  void output()</p><p><b>  {</b></p><p><b>  int i;</b></p><p>  cout<<"請(qǐng)問(wèn)您要構(gòu)建幾個(gè)集合(小于10個(gè)):";

33、</p><p><b>  cin>>i;</b></p><p><b>  COUNT=i;</b></p><p>  cout<<"!!輸入數(shù)據(jù)時(shí),輸入0表示輸入結(jié)束"<<endl;</p><p><b>  while(

34、i)</b></p><p><b>  {</b></p><p>  cout<<"集合"<<COUNT-i+1;</p><p>  L[COUNT-i]=Linklist(L[COUNT-i]);</p><p><b>  i--;</b&

35、gt;</p><p><b>  }</b></p><p><b>  }</b></p><p><b> ?。?)操作函數(shù)</b></p><p><b>  【1】交集運(yùn)算</b></p><p>  LNode * Cr

36、oss(LNode *L1,LNode *L2) </p><p><b>  {</b></p><p>  LNode *q1,*q2,*L,*q;</p><p><b>  L=NULL;</b></p><p><b>  q1=L1;</b></p&g

37、t;<p>  while(q1!=NULL)</p><p><b>  {</b></p><p><b>  q2=L2;</b></p><p>  while(q2!=NULL)</p><p><b>  {</b></p><p&

38、gt;  if(q2->data==q1->data)</p><p><b>  {</b></p><p>  q= (LNode*)malloc(sizeof(LNode));</p><p>  q->data=q2->data;</p><p>  q->next=L;</p

39、><p><b>  L=q;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  q2=q2->next;</p><p><b>  }</b></p&g

40、t;<p>  q1=q1->next;</p><p><b>  }</b></p><p><b>  return L;</b></p><p><b>  }</b></p><p><b>  【2】并集運(yùn)算</b><

41、/p><p>  LNode * Union(LNode *L1,LNode *L2)</p><p><b>  {</b></p><p>  LNode *q1,*q2,*L,*q;</p><p>  int frag=0;</p><p><b>  L=NULL;</b&g

42、t;</p><p><b>  q1=L1;</b></p><p>  while(q1!=NULL)</p><p><b>  {</b></p><p>  q= (LNode*)malloc(sizeof(LNode));</p><p>  q->data

43、=q1->data;</p><p>  q->next=L;</p><p><b>  L=q;</b></p><p>  q1=q1->next;</p><p><b>  }</b></p><p><b>  q2=L2;</b

44、></p><p>  while(q2!=NULL)</p><p><b>  {</b></p><p><b>  q1=L1;</b></p><p><b>  frag=0;</b></p><p>  if(q1!=NULL)<

45、;/p><p><b>  {</b></p><p><b>  while(q1)</b></p><p><b>  {</b></p><p>  if(q1->data==q2->data)</p><p><b>  {&l

46、t;/b></p><p><b>  frag=1;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  q1=q1->next;</p><p><b>  }&

47、lt;/b></p><p><b>  }</b></p><p>  if(frag!=1)</p><p><b>  {</b></p><p>  q= (LNode*)malloc(sizeof(LNode));</p><p>  q->data=q

48、2->data;</p><p>  q->next=L;</p><p><b>  L=q;</b></p><p><b>  }</b></p><p>  q2=q2->next;</p><p><b>  }</b><

49、;/p><p><b>  return L;</b></p><p><b>  }</b></p><p><b>  【3】差集運(yùn)算</b></p><p>  LNode * Subtract(LNode *L1,LNode *L2)</p><p>

50、;<b>  {</b></p><p>  LNode *L,*p,*q,*test;</p><p>  int flag=0;</p><p><b>  p=L1;</b></p><p><b>  q=L2;</b></p><p><

51、b>  L=NULL;</b></p><p>  while(p)// 直接除掉L1中包含在L2中的元素</p><p><b>  {</b></p><p><b>  flag=0;</b></p><p><b>  while(q)</b><

52、/p><p><b>  {</b></p><p>  if(p->data==q->data)</p><p><b>  {</b></p><p><b>  flag=1;</b></p><p><b>  break;&l

53、t;/b></p><p><b>  }</b></p><p>  q=q->next;</p><p><b>  }</b></p><p>  if(flag==0)</p><p><b>  {</b></p>&

54、lt;p>  test= (LNode*)malloc(sizeof(LNode));</p><p>  test->data=p->data;</p><p>  test->next=L;</p><p><b>  L=test;</b></p><p><b>  }</

55、b></p><p>  p=p->next;</p><p><b>  }</b></p><p><b>  return L;</b></p><p><b>  } </b></p><p><b>  3、系統(tǒng)

56、測(cè)試 </b></p><p><b>  主界面</b></p><p><b>  交集運(yùn)算</b></p><p><b>  并集運(yùn)算</b></p><p><b>  4、心得體會(huì)</b></p><p>

57、  通過(guò)本次的課程設(shè)計(jì),我進(jìn)一步加深了對(duì)數(shù)據(jù)結(jié)構(gòu)的了解和認(rèn)識(shí)。雖然我選的題目不是很難,但是正因?yàn)檫@個(gè)題目,它讓我更好地鞏固了以前所學(xué)的知識(shí),扎實(shí)了基礎(chǔ)。</p><p>  前一次的課程設(shè)計(jì)告訴我的經(jīng)驗(yàn)是團(tuán)隊(duì)的重要性,而此次給我的啟示是:對(duì)待一個(gè)問(wèn)題應(yīng)該先做好分析工作,只有正確的分析問(wèn)題才能找出好的方法,否則會(huì)誤入歧途。俗話說(shuō)磨刀不誤砍柴工,應(yīng)該充分分析問(wèn)題的工作。還有就是,無(wú)論是什么問(wèn)題,只有耐心的做下去,要有

58、堅(jiān)持不懈的精神。</p><p><b>  5、參考文獻(xiàn)</b></p><p>  [1] 劉振安等編著. C++程序設(shè)計(jì)課程設(shè)計(jì). 機(jī)械工業(yè)出版社 2004</p><p>  [2] 譚浩強(qiáng)著. C語(yǔ)言程序設(shè)計(jì). 清華大學(xué)出版社 2007</p><p>  [3] 陳維興等著. C++面向?qū)ο蟪绦蛟O(shè)計(jì)教程. 清

溫馨提示

  • 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)論