數(shù)據(jù)結(jié)構(gòu)----集合運(yùn)算課程設(shè)計(jì)報(bào)告(C++)_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)----集合運(yùn)算課程設(shè)計(jì)報(bào)告(C++)_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)----集合運(yùn)算課程設(shè)計(jì)報(bào)告(C++)_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)----集合運(yùn)算課程設(shè)計(jì)報(bào)告(C++)_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)----集合運(yùn)算課程設(shè)計(jì)報(bào)告(C++)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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、 數(shù)據(jù)結(jié)構(gòu) 課程設(shè)計(jì)報(bào)告題 目: 集 合 運(yùn) 算 學(xué)生姓名: 童 侃 學(xué) 號(hào): 200917010241 專業(yè)班級(jí): 計(jì)科09102班 指導(dǎo)教師: 鄒漢斌 設(shè)計(jì)時(shí)間: 2011年上學(xué)期第2周 指導(dǎo)老師意見: 評(píng)定成績(jī): 簽名: 日期:1、程序簡(jiǎn)介 此程序是解決集合運(yùn)算的一個(gè)程序。它使用鏈表來(lái)表示集合,并完成集合的一些操作,其中包括交集運(yùn)算、并集運(yùn)算以及差集運(yùn)算。 程序采用多文件的方式構(gòu)成,包括主函數(shù)、界面操作、鏈表的建立與輸出以及三個(gè)操作函數(shù)。主函數(shù)主要起對(duì)其他文件中的函數(shù)調(diào)用的作用;界面操作主要包含主界面及一個(gè)選擇函數(shù),起到對(duì)操作函數(shù)的調(diào)用作用;鏈表的建立和輸出函數(shù)是對(duì)題目要求的滿足,為操作

2、函數(shù)分配空間等作用;三個(gè)操作函數(shù)分別為:交際運(yùn)算、并集運(yùn)算、差集運(yùn)算。 構(gòu)成圖操作函數(shù)鏈表界面主函數(shù)2、系統(tǒng)實(shí)現(xiàn)(1)主函數(shù):#include<iostream>#define MAXSIZE 10 /最大集合個(gè)數(shù)static int COUNT=0; /記錄集合個(gè)數(shù)using namespace std;#include"11.h"#include"12.h"#include"13.h"int main()output(); /輸出數(shù)據(jù)menu (); /主菜單return 0;( 2 ) 主界面:void select

3、 ()int i,k;cout<<" 請(qǐng)注意,下面開始進(jìn)入系統(tǒng)!"<<endl;cout<<" "<<endl;cout<<" * 集合的運(yùn)算 *"<<endl;cout<<" "<<endl;cout<<" *"<<endl;cout<<" * 1.交集運(yùn)算 *"<<endl;cout<<" * 2.并集運(yùn)算

4、*"<<endl;cout<<" * 3.差集運(yùn)算 *"<<endl;cout<<" * 4.退出 *"<<endl;cout<<" *"<<endl;cout<<" "<<endl;cout<<"請(qǐng)選擇(1-4):"while(1)cin>>k; if(k<1|k>4) cout<<endl<<"t輸入錯(cuò)誤,

5、請(qǐng)重新輸入:(1-4) " elsebreak;switch(k)case 1: H=Cross(L0,L1);if(COUNT>2)for(i=2;i<COUNT;i+)H=Cross(H,Li);printf(H);select ();break;case 2: H=Union(L0,L1);if(COUNT>2)for(i=2;i<COUNT;i+)H=Union(H,Li);printf(H);select ();break; case 3:H=Subtract(L0,L1);if(COUNT>2)for(i=2;i<COUNT;i+)H=

6、Subtract(H,Li);printf(H);select ();break;case 4: return; (3)鏈表及輸出函數(shù)typedef struct LNodeint data; /數(shù)據(jù)struct LNode *next; /指針LNode;LNode *LMAXSIZE,*H;LNode * Linklist(LNode *L) /建立鏈表LNode *q;int i;L=NULL;cout<<" 請(qǐng)您輸入集合數(shù)據(jù):"<<endl;cin>>i;while(i!=0)q= (LNode*)malloc(sizeof(LN

7、ode);while(!q)cout<<"分配內(nèi)存失??!"<<endl;q->data =i;q->next=L;L=q;cin>>i; q=NULL;return L;void printf(LNode *L) /輸出鏈表 LNode *q;int count=0;q=L;if(q=NULL)cout<<"集合為空!"<<endl;cout<<"集合數(shù)據(jù):"while(q)cout<<q->data<<" &q

8、uot;q=q->next ;+count;cout<<"數(shù)據(jù)元素個(gè)數(shù):"<<count<<endl;void output()int i;cout<<"請(qǐng)問(wèn)您要構(gòu)建幾個(gè)集合(小于10個(gè)):"cin>>i;COUNT=i;cout<<"!輸入數(shù)據(jù)時(shí),輸入0表示輸入結(jié)束"<<endl;while(i)cout<<"集合"<<COUNT-i+1;LCOUNT-i=Linklist(LCOUNT-i);i-;

9、(4)操作函數(shù)【1】交集運(yùn)算LNode * Cross(LNode *L1,LNode *L2) LNode *q1,*q2,*L,*q;L=NULL;q1=L1;while(q1!=NULL)q2=L2;while(q2!=NULL)if(q2->data=q1->data)q= (LNode*)malloc(sizeof(LNode);q->data=q2->data;q->next=L;L=q;break;q2=q2->next;q1=q1->next;return L;【2】并集運(yùn)算LNode * Union(LNode *L1,LNode *

10、L2)LNode *q1,*q2,*L,*q;int frag=0;L=NULL;q1=L1;while(q1!=NULL)q= (LNode*)malloc(sizeof(LNode);q->data=q1->data;q->next=L;L=q;q1=q1->next; q2=L2;while(q2!=NULL)q1=L1;frag=0;if(q1!=NULL)while(q1)if(q1->data=q2->data)frag=1;break;q1=q1->next;if(frag!=1)q= (LNode*)malloc(sizeof(LNod

11、e);q->data=q2->data;q->next=L;L=q;q2=q2->next;return L;【3】差集運(yùn)算LNode * Subtract(LNode *L1,LNode *L2)LNode *L,*p,*q,*test;int flag=0;p=L1;q=L2;L=NULL;while(p)/ 直接除掉L1中包含在L2中的元素flag=0;while(q)if(p->data=q->data)flag=1;break;q=q->next;if(flag=0)test= (LNode*)malloc(sizeof(LNode);test->data=p->data;test->next=L;L=test;p=p->next;return L; 3、系統(tǒng)測(cè)試 主界面交集運(yùn)算并集運(yùn)算4、心得體會(huì) 通過(guò)本次的課程設(shè)計(jì),我進(jìn)一步加深了對(duì)數(shù)據(jù)結(jié)構(gòu)的了解和認(rèn)識(shí)。雖然我選的題目不是很難,但是正因?yàn)檫@個(gè)題目,它讓我更好地鞏固了以前所學(xué)的知識(shí),扎實(shí)了基礎(chǔ)。前一次的課程設(shè)計(jì)告訴我的經(jīng)驗(yàn)是團(tuán)隊(duì)的重要性,而此次給我的啟示是:對(duì)待一個(gè)問(wèn)題應(yīng)該先做好分析工作,只有正確的分析問(wèn)題才能找出好的方法,否則會(huì)誤入歧途。俗話說(shuō)磨刀不

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論