版權(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> 目 錄</p><p> 一 課程設(shè)計(jì)的目的…………………………………………………………4</p><p> 二 課程設(shè)計(jì)的要求…………………………………………………………4</p><p> 三 課程設(shè)計(jì)的報(bào)告內(nèi)容…………………………………………………
2、…4</p><p> 1.系統(tǒng)說(shuō)明…………………………………………………………………4</p><p> 2.設(shè)計(jì)目標(biāo)和主要功能……………………………………………………5</p><p> 3. 設(shè)計(jì)原則…………………………………………………………………5</p><p> 4. 系統(tǒng)頭文件及流程圖……………………………………………
3、………5</p><p> 5. 程序運(yùn)行…………………………………………………………………</p><p> 6. 系統(tǒng)的優(yōu)點(diǎn)和缺點(diǎn)………………………………………………………</p><p> 四 收獲與體會(huì)………………………………………………………………</p><p> 五 遇到的問(wèn)題……………………………………………………
4、…………</p><p> 六 源代碼……………………………………………………………………</p><p> 七 參考資料………………………………………………………………</p><p><b> 集合的交集并集運(yùn)算</b></p><p> 一. 課程設(shè)計(jì)的目的</p><p>
5、1.掌握在Visual C++集成開(kāi)發(fā)環(huán)境下編輯、編譯、鏈接和運(yùn)行一個(gè)C++程序的基本方法;</p><p> 2.利用最近所學(xué)的知識(shí)并結(jié)合C和C++編寫(xiě)程序,實(shí)現(xiàn)集合的簡(jiǎn)單運(yùn)算;</p><p> 3.培養(yǎng)同學(xué)與同學(xué)之間團(tuán)結(jié)協(xié)作互幫互助的精神,使團(tuán)隊(duì)精神發(fā)揮的淋漓盡致;</p><p> 4. 同時(shí)培養(yǎng)同學(xué)們的積極動(dòng)腦動(dòng)手能力,培養(yǎng)興趣;</p>
6、<p> 二. 課程設(shè)計(jì)的要求</p><p> 要求同學(xué)能夠結(jié)合所學(xué)過(guò)的知識(shí)和內(nèi)容有目的編寫(xiě)程序,能夠不斷的嘗試和查閱資料,對(duì)所學(xué)的知識(shí)有更深刻的理解,并在理解的基礎(chǔ)上加以運(yùn)用.根據(jù)自己對(duì)線性表的概念、原理和機(jī)制的理解,結(jié)合數(shù)學(xué)知識(shí)編寫(xiě)程序,并求解運(yùn)行出集合的交集并集運(yùn)算.</p><p> 三. 課程設(shè)計(jì)的報(bào)告內(nèi)容</p><p><b
7、> 1.系統(tǒng)說(shuō)明:</b></p><p> 系統(tǒng)名稱(chēng)是集合的交集并集運(yùn)算;</p><p> 2.設(shè)計(jì)目標(biāo)和主要功能:</p><p> 給出集合的元素個(gè)數(shù)及元素,可以分別做出集合的交集和并集運(yùn)算;</p><p><b> 3.設(shè)計(jì)原則:</b></p><p>
8、 (1)系統(tǒng)運(yùn)行安全可靠,穩(wěn)定性好 ;</p><p> (2)系統(tǒng)輸入界面友好,操作簡(jiǎn)便易行,盡量減少用戶的輸入工作量; </p><p> 4.系統(tǒng)頭文件及流程圖</p><p><b> (1)系統(tǒng)的頭文件</b></p><p> #include<string.h></p>&
9、lt;p> #include<ctype.h></p><p> #include<malloc.h> //malloc()等 </p><p> #include<limits.h> // INT_MAX等 </p><p> #include<stdio.h> // EOF(=^Z或F6),NULL
10、</p><p> #include<stdlib.h> // atoi() </p><p> #include<io.h> // eof() </p><p> #include<math.h> // floor(),ceil(),abs() </p><p> #include<proc
11、ess.h> // exit() </p><p> #include<iostream.h></p><p><b> (2)流程圖</b></p><p><b> 5.程序運(yùn)行:</b></p><p> (1)輸入部分演示:</p><p>
12、 (2)求交集部分演示:</p><p> (3)求并集部分演示:</p><p> (4)退出部分演示:</p><p><b> 6.系統(tǒng)優(yōu)點(diǎn)和缺點(diǎn)</b></p><p> 優(yōu)點(diǎn):程序簡(jiǎn)潔明了,可以明確的實(shí)現(xiàn)集合的簡(jiǎn)單的運(yùn)算,并加以處理,可以加強(qiáng)理解力,并用了所學(xué)過(guò)的知識(shí)實(shí)現(xiàn)操作.除此之外,不但可以實(shí)現(xiàn)數(shù)
13、字與數(shù)字之間的運(yùn)算,還可以實(shí)現(xiàn)帶字母集合的運(yùn)算,使得程序多樣化,拓展知識(shí).</p><p> 缺點(diǎn):只能實(shí)現(xiàn)集合的簡(jiǎn)單操作,運(yùn)算量小,很多方面設(shè)計(jì)的不夠全面細(xì)致,集合的另外許多功能不能加以體現(xiàn).除此之外,有些步驟重復(fù)化,但是又找不到簡(jiǎn)潔明了的解決辦法.</p><p><b> 四. 收獲與體會(huì)</b></p><p> 通過(guò)小組成員的共
14、同努力,我們聯(lián)系以前學(xué)過(guò)的知識(shí),并結(jié)合新學(xué)的有關(guān)線性表的內(nèi)容,除此之外,還查閱了不少資料,并利用所學(xué)的數(shù)學(xué)知識(shí),運(yùn)用邏輯的投保編寫(xiě)出這個(gè)程序.</p><p> 這是我們小組人共同努力的成果,在此過(guò)程中,我們體會(huì)到了團(tuán)結(jié)協(xié)作的力量,每個(gè)人都有個(gè)人的任務(wù),我們分工明確,各盡其責(zé),并利用課余時(shí)間互相幫助討論,才有今天的成果.</p><p> 除此之外,我們還共同回憶了有關(guān)于C和C++的部
15、分知識(shí),熟悉操作,對(duì)線性表的知識(shí)也得到的深刻的 理解和體會(huì)。</p><p><b> 五. 遇到的問(wèn)題</b></p><p> 在討論用何種算法實(shí)現(xiàn)的過(guò)程中,大家的意見(jiàn)和想法不一,但是大家并沒(méi)有固執(zhí)己見(jiàn),而是耐心聽(tīng)從他人意見(jiàn)和建議,求同存異,不斷改進(jìn)算法,使程序達(dá)到最完美的標(biāo)準(zhǔn).</p><p> 在使用線性表的問(wèn)題上,不知道使用幾個(gè)
16、更簡(jiǎn)潔,更易懂,在上網(wǎng)查閱資料后才得出答案. </p><p><b> 六. 源代碼</b></p><p><b> //頭文件</b></p><p> #include<string.h></p><p> #include<ctype.h></p>
17、;<p> #include<malloc.h> //malloc()等 </p><p> #include<limits.h> // INT_MAX等 </p><p> #include<stdio.h> // EOF(=^Z或F6),NULL </p><p> #include<stdlib.
18、h> // atoi() </p><p> #include<io.h> // eof() </p><p> #include<math.h> // floor(),ceil(),abs() </p><p> #include<process.h> // exit() </p><p>
19、 #include<iostream.h></p><p> //函數(shù)結(jié)果狀態(tài)代碼</p><p> #define TRUE 1</p><p> #define FALSE 0</p><p> #define OK 1</p><p> #define ERROR 0</p>
20、<p> #define INFEASIBLE -1</p><p> //#define OVERFLOW -2 因?yàn)樵趍ath.h中已定義OVERFLOW的值為3,故去掉此行 </p><p> typedef intStatus; //Status是函數(shù)的類(lèi)型,其值是函數(shù)結(jié)果狀態(tài)代碼,如OK等 </p><p> typedef int B
21、oolean; //Boolean是布爾類(lèi)型,其值是TRUE或FALSE </p><p> typedef int ElemType;</p><p> // 線性表的動(dòng)態(tài)分配順序存儲(chǔ)結(jié)構(gòu) </p><p> #define LIST_INIT_SIZE 10 // 線性表存儲(chǔ)空間的初始分配量 </p><p> #define L
22、ISTINCREMENT 2 // 線性表存儲(chǔ)空間的分配增量 </p><p> typedef struct</p><p><b> {</b></p><p> ElemType *elem; // 存儲(chǔ)空間基址 </p><p> int length; // 當(dāng)前長(zhǎng)度 </p><p
23、> int listsize; // 當(dāng)前分配的存儲(chǔ)容量(以sizeof(ElemType)為單位) </p><p><b> }SqList;</b></p><p> // 順序表示的線性表的基本操作(12個(gè)) </p><p> Status InitList(SqList *L) // 算法2.3 </p>
24、<p><b> { </b></p><p> //操作結(jié)果:構(gòu)造一個(gè)空的順序線性表 </p><p> (*L).elem = (ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));</p><p> if(!(*L).elem)</p><p>&
25、lt;b> {</b></p><p> exit(OVERFLOW); // 存儲(chǔ)分配失敗 </p><p><b> }</b></p><p> (*L).length = 0; // 空表長(zhǎng)度為0 </p><p> (*L).listsize = LIST_INIT_SIZE; //
26、 初始存儲(chǔ)容量 </p><p> return OK;</p><p><b> }</b></p><p> Status DestroyList(SqList *L)</p><p><b> { </b></p><p> // 初始條件:順序線性表L已存在
27、。操作結(jié)果:銷(xiāo)毀順序線性表L </p><p> free((*L).elem);</p><p> (*L).elem = NULL;</p><p> (*L).length = 0;</p><p> (*L).listsize = 0;</p><p> return OK;</p>&
28、lt;p><b> }</b></p><p> Status ClearList(SqList *L)</p><p><b> { </b></p><p> // 初始條件:順序線性表L已存在。操作結(jié)果:將L重置為空表 </p><p> (*L).length = 0;<
29、;/p><p> return OK;</p><p><b> }</b></p><p> Status ListEmpty(SqList L)</p><p><b> { </b></p><p> // 初始條件:順序線性表L已存在。操作結(jié)果:若L為空表,則返
30、回TRUE,否則返回FALSE </p><p> if(L.length == 0)</p><p><b> {</b></p><p> return TRUE;</p><p><b> }</b></p><p><b> else</b&
31、gt;</p><p><b> {</b></p><p> return FALSE;</p><p><b> }</b></p><p><b> }</b></p><p> int ListLength(SqList L)</
32、p><p><b> { </b></p><p> // 初始條件:順序線性表L已存在。操作結(jié)果:返回L中數(shù)據(jù)元素個(gè)數(shù) </p><p> return L.length;</p><p><b> }</b></p><p> Status GetElem(SqLi
33、st L, int i, ElemType *e)</p><p><b> { </b></p><p> // 初始條件:順序線性表L已存在,1≤i≤ListLength(L) </p><p> // 操作結(jié)果:用e返回L中第i個(gè)數(shù)據(jù)元素的值 </p><p> if(i < 1 || i >
34、L.length)</p><p><b> {</b></p><p> exit(ERROR);</p><p><b> }</b></p><p> *e = *(L.elem+i-1);</p><p> return OK;</p><
35、;p><b> }</b></p><p> int LocateElem(SqList L, ElemType e, Status(*compare)(ElemType, ElemType))</p><p><b> { </b></p><p> // 初始條件:順序線性表L已存在,compare()是
36、數(shù)據(jù)元素判定函數(shù)(滿足為1,否則為0) </p><p> // 操作結(jié)果:返回L中第1個(gè)與e滿足關(guān)系compare()的數(shù)據(jù)元素的位序。 </p><p> // 若這樣的數(shù)據(jù)元素不存在,則返回值為0。算法2.6 </p><p> ElemType *p;</p><p> int i = 1; // i的初值
37、為第1個(gè)元素的位序 </p><p> p = L.elem; // p的初值為第1個(gè)元素的存儲(chǔ)位置 </p><p> while(i <= L.length && !compare(*p++, e))</p><p><b> {</b></p><p><b> ++i;&l
38、t;/b></p><p><b> }</b></p><p> if(i<=L.length)</p><p><b> {</b></p><p><b> return i;</b></p><p><b> }&
39、lt;/b></p><p><b> else</b></p><p><b> {</b></p><p><b> return 0;</b></p><p><b> }</b></p><p><b&g
40、t; }</b></p><p> Status PriorElem(SqList L, ElemType cur_e, ElemType *pre_e)</p><p><b> { </b></p><p> // 初始條件:順序線性表L已存在 </p><p> // 操作結(jié)果:若cur_e是
41、L的數(shù)據(jù)元素,且不是第一個(gè),則用pre_e返回它的前驅(qū), </p><p> // 否則操作失敗,pre_e無(wú)定義 </p><p> int i = 2;</p><p> ElemType *p = L.elem + 1;</p><p> while(i <= L.length && *
42、p != cur_e)</p><p><b> {</b></p><p><b> p++;</b></p><p><b> i++;</b></p><p><b> }</b></p><p> if(i >
43、; L.length)</p><p><b> {</b></p><p> return INFEASIBLE;</p><p><b> }</b></p><p><b> else</b></p><p><b> {<
44、;/b></p><p> *pre_e = *--p;</p><p> return OK;</p><p><b> }</b></p><p><b> }</b></p><p> Status NextElem(SqList L, ElemType
45、 cur_e, ElemType *next_e)</p><p><b> { </b></p><p> // 初始條件:順序線性表L已存在 </p><p> // 操作結(jié)果:若cur_e是L的數(shù)據(jù)元素,且不是最后一個(gè),則用next_e返回它的后繼, </p><p> // 否則操作失
46、敗,next_e無(wú)定義 </p><p> int i = 1;</p><p> ElemType *p = L.elem;</p><p> while(i < L.length && *p != cur_e)</p><p><b> {</b></p><p>
47、;<b> i++;</b></p><p><b> p++;</b></p><p><b> }</b></p><p> if(i == L.length)</p><p><b> {</b></p><p>
48、 return INFEASIBLE;</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> *next_e = *++p;</p><p> return O
49、K;</p><p><b> }</b></p><p><b> }</b></p><p> Status ListInsert(SqList *L, int i, ElemType e) // 算法2.4 </p><p><b> { </b></p&g
50、t;<p> // 初始條件:順序線性表L已存在,1≤i≤ListLength(L)+1 </p><p> // 操作結(jié)果:在L中第i個(gè)位置之前插入新的數(shù)據(jù)元素e,L的長(zhǎng)度加1 </p><p> ElemType *newbase,*q,*p;</p><p> if(i < 1 || i > (*L).length + 1)
51、// i值不合法 </p><p><b> {</b></p><p> return ERROR;</p><p><b> }</b></p><p> if((*L).length >= (*L).listsize) // 當(dāng)前存儲(chǔ)空間已滿,增加分配 </p>&
52、lt;p><b> {</b></p><p> newbase = (ElemType *)realloc((*L).elem, ((*L).listsize + LISTINCREMENT)*sizeof(ElemType));</p><p> if(!newbase)</p><p><b> {</b&g
53、t;</p><p> exit(OVERFLOW); // 存儲(chǔ)分配失敗 </p><p><b> }</b></p><p> (*L).elem = newbase; // 新基址 </p><p> (*L).listsize += LISTINCREMENT; // 增加存儲(chǔ)容量 </p>
54、<p><b> }</b></p><p> q = (*L).elem + i - 1; // q為插入位置 </p><p> for (p = (*L).elem + (*L).length - 1;p >= q; --p) // 插入位置及之后的元素右移 </p><p><b> {</b
55、></p><p> *(p+1) = *p;</p><p><b> }</b></p><p> *q = e; // 插入e </p><p> ++(*L).length; // 表長(zhǎng)增1 </p><p> return OK;</p><p>
56、<b> }</b></p><p> Status ListDelete(SqList *L, int i, ElemType *e) // 算法2.5 </p><p><b> { </b></p><p> // 初始條件:順序線性表L已存在,1≤i≤ListLength(L) </p>&l
57、t;p> // 操作結(jié)果:刪除L的第i個(gè)數(shù)據(jù)元素,并用e返回其值,L的長(zhǎng)度減1 </p><p> ElemType *p, *q;</p><p> if(i < 1 || i > (*L).length) // i值不合法</p><p><b> {</b></p><p> retur
58、n ERROR;</p><p><b> }</b></p><p> p = (*L).elem + i - 1; // p為被刪除元素的位置 </p><p> *e = *p; // 被刪除元素的值賦給e </p><p> q = (*L).elem + (*L).length - 1; // 表尾元素
59、的位置 </p><p> for (++p; p <= q; ++p) // 被刪除元素之后的元素左移 </p><p><b> {</b></p><p> *(p-1) = *p;</p><p><b> }</b></p><p> (*L).le
60、ngth--; // 表長(zhǎng)減1 </p><p> return OK;</p><p><b> }</b></p><p> Status ListTraverse(SqList *L, void (*vi)(ElemType*))</p><p><b> { </b></p&g
61、t;<p> // 初始條件:順序線性表L已存在 </p><p> // 操作結(jié)果:依次對(duì)L的每個(gè)數(shù)據(jù)元素調(diào)用函數(shù)vi()。一旦vi()失敗,則操作失敗 </p><p> // vi()的形參加'&',表明可通過(guò)調(diào)用vi()改變?cè)氐闹?</p><p> ElemType *p;</p&g
62、t;<p><b> int i;</b></p><p> p = (*L).elem;</p><p> for(i = 1; i <= (*L).length; i++)</p><p><b> {</b></p><p><b> vi(p++);&
63、lt;/b></p><p><b> }</b></p><p> //printf("\n");</p><p> return OK;</p><p><b> }</b></p><p><b> //vi</b&
64、gt;</p><p> void print(ElemType *a)</p><p><b> {</b></p><p> printf("%d ",*a);</p><p><b> }</b></p><p><b> //冒
65、泡排序</b></p><p> void sort(SqList *L)</p><p><b> {</b></p><p> int i, j, sign, tmp;</p><p> for(i = 0; i < L->length - 1; i++)</p><
66、;p><b> {</b></p><p><b> sign = 0;</b></p><p> for(j = L->length - 1; j > i; j--)</p><p> if(L->elem[j] < L->elem[j-1])</p><p
67、><b> {</b></p><p> tmp = L->elem[j];</p><p> L->elem[j] = L->elem[j-1];</p><p> L->elem[j-1] = tmp;</p><p><b> sign = 1;</b>
68、</p><p><b> }</b></p><p><b> } </b></p><p><b> }</b></p><p> //判斷當(dāng)前元素與其它元素是否相等</p><p> int DuplicateTest(SqList L,
69、 ElemType e)</p><p><b> {</b></p><p><b> int i;</b></p><p> ElemType f;</p><p> for (i = 1; i <= ListLength(L); i++)</p><p>
70、<b> {</b></p><p> GetElem(L, i, &f);</p><p> if (e == f)</p><p><b> {</b></p><p> return TRUE;</p><p><b> }</b&g
71、t;</p><p><b> }</b></p><p> return FALSE;</p><p><b> }</b></p><p> //Intersection</p><p> void Intersection(SqList La,SqList L
72、b,SqList *Lc)</p><p> {int La_length,Lb_length;</p><p> ElemType a,b; </p><p> int i=1, j=1, k=1; </p><p> La_length=La.length;Lb_length=Lb.length;</p><
73、p> for(i = 1;i <= La_length; i++)</p><p> {GetElem(La, i, &a); </p><p> for(j=1; j <= Lb_length; j++)</p><p><b> {</b></p><p> GetElem(Lb
74、,j,&b); </p><p> if(a == b)</p><p> ListInsert(Lc, k++, a);</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b>
75、</p><p><b> //Union</b></p><p> Status Union(SqList La, SqList Lb, SqList *Lc)</p><p><b> {</b></p><p> ElemType e;</p><p> in
76、ti = 1;</p><p> ClearList(Lc);</p><p> while(i <= ListLength(La))</p><p><b> {</b></p><p> GetElem(La, i, &e);</p><p> ListInsert(
77、Lc, 1, e);</p><p><b> i++;</b></p><p><b> }</b></p><p><b> i = 1;</b></p><p> while(i <= ListLength(Lb))</p><p>
78、<b> {</b></p><p> GetElem(Lb, i, &e);//get elem from Lb</p><p> if(DuplicateTest(La, e) == 0)//if all elems are not equal with La</p><p><b> {</b><
79、;/p><p> ListInsert(Lc, 1, e);</p><p><b> }</b></p><p><b> i++;</b></p><p><b> }</b></p><p> return OK;</p>&l
80、t;p><b> }</b></p><p> //output輸出函數(shù)</p><p> void output(SqList *L)</p><p><b> {</b></p><p> if (ListEmpty(*L))</p><p><b&
81、gt; {</b></p><p> printf(" 該集合為空集!\n");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><
82、p> printf("{ ");</p><p><b> sort(L);</b></p><p> ListTraverse(L, print);</p><p> printf("}\n");</p><p><b> }</b><
83、/p><p><b> }</b></p><p> //input 輸入函數(shù)</p><p> int input(SqList &L)</p><p><b> {</b></p><p><b> int n;</b></p&g
84、t;<p><b> int flag;</b></p><p><b> do</b></p><p><b> {</b></p><p> flag = scanf("%d", &n);</p><p> if (fla
85、g == 0)</p><p><b> {</b></p><p> printf(" 請(qǐng)輸入整數(shù)!\t");</p><p><b> }</b></p><p> while ( getchar() != '\n' ); /* Clear the
86、 input buffer */</p><p><b> }</b></p><p> while (flag != 1);</p><p> if (n == 0)</p><p><b> {</b></p><p> printf(" 該集合為
87、空集!\n");</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> input:</b></p><p> prin
88、tf(" 請(qǐng)輸入該集合的元素:");</p><p> int i, j, e, f, flag;</p><p> for(i = 1; i <= n; i++)</p><p><b> {</b></p><p><b> do</b></p>
89、<p><b> {</b></p><p> flag = scanf("%d", &e);</p><p> if (flag == 0)</p><p><b> {</b></p><p> printf(" 請(qǐng)輸入整數(shù)
90、!\t");</p><p><b> }</b></p><p> while ( getchar() != '\n' ); /* Clear the input buffer */</p><p><b> }</b></p><p> while (flag
91、== 0);</p><p> ListInsert(&L, i, e);</p><p><b> }</b></p><p><b> if(n > 1)</b></p><p><b> {</b></p><p> fo
92、r (i = 1; i <= n; i++)</p><p><b> {</b></p><p> GetElem(L, i, &e);</p><p> for (j =i + 1; j <= n; j++)</p><p><b> {</b></p>
93、<p> GetElem(L, j, &f);</p><p> if (e == f)</p><p><b> {</b></p><p> printf(" 集合元素%d有重復(fù),請(qǐng)重新輸入\n",e);</p><p> ClearList(&L);&l
94、t;/p><p> goto input;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><
95、p> printf(" 該集合為:");</p><p> output(&L);</p><p><b> n = 0;</b></p><p><b> }</b></p><p> return OK;</p><p>&
96、lt;b> }</b></p><p> void operationInterface1()</p><p><b> {</b></p><p> printf(" *********************************************************************
97、******* ");</p><p> printf(" * * ");</p><p> printf(" * 程序名稱(chēng)(Name): 集合交集并集運(yùn)算
98、 * ");</p><p> printf(" * 程序功能(Function): 求兩個(gè)集合的交集并集 * ");</p><p> printf(" * 程序作者(Written By):劉卓 李玉婷 李啟梅 孫玉婷 王皓靖 王婷
99、 尹淑韻* ");</p><p> printf(" * 劉金杰 楊冰 * ");</p><p> printf(" *
100、 * ");</p><p> printf(" **************************************************************************** ");</p><p> printf("\n");</p>
101、<p><b> }</b></p><p> void operationInterface2(SqList La, SqList Lb, SqList &Lc)</p><p><b> {</b></p><p> printf(" **********************
102、****************************************************** ");</p><p> printf(" * Menu * ");</p><p> printf(&q
103、uot; * a.求它們的交集 b.求它們的并集 c.退出 * ");</p><p> printf(" * * ");</p><p&
104、gt; printf(" **************************************************************************** ");</p><p><b> cin:</b></p><p><b> char key;</b></p><p
105、> printf("\n 請(qǐng)選擇a~c:\t");</p><p><b> cin>>key;</b></p><p> switch (key)</p><p><b> {</b></p><p><b> case 'a&
106、#39;:</b></p><p><b> case 'A':</b></p><p> Intersection(La, Lb, &Lc);</p><p> printf(" 交集:");</p><p> output(&Lc);<
107、/p><p> ClearList(&Lc);</p><p><b> break;</b></p><p><b> case 'b':</b></p><p><b> case 'B':</b></p><
108、p> Union(La, Lb, &Lc);</p><p> printf(" 并集:");</p><p> output(&Lc);</p><p> ClearList(&Lc);</p><p><b> break;</b></p>
109、<p><b> case 'c':</b></p><p><b> case 'C':</b></p><p> printf(" 按任意鍵退出");</p><p> getchar();</p><p><b&
110、gt; exit(0);</b></p><p><b> break;</b></p><p><b> default:</b></p><p> printf(" 錯(cuò)誤,請(qǐng)重新輸入");</p><p><b> goto cin;<
111、;/b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b>&l
112、t;/p><p> operationInterface1();</p><p> SqList La,Lb,Lc;</p><p> InitList(&La);</p><p> InitList(&Lb);</p><p> InitList(&Lc);</p><
113、;p><b> char com;</b></p><p> printf(" 請(qǐng)輸入集合A的元素個(gè)數(shù):");</p><p> input(La);</p><p> printf(" 請(qǐng)輸入集合B的元素個(gè)數(shù):");</p><p> input(Lb);
114、</p><p><b> do</b></p><p><b> {</b></p><p> operationInterface2(La, Lb, Lc);</p><p> printf(" 繼續(xù)?Y/N\t");</p><p>&l
115、t;b> doinput:</b></p><p><b> cin>>com;</b></p><p> if (com != 'Y' && com != 'y' && com != 'N' && com != 'n')
116、</p><p><b> {</b></p><p> printf(" 請(qǐng)輸入正確字符:\t");</p><p> goto doinput;</p><p><b> }</b></p><p><b> }</b&g
117、t;</p><p> while (com == 'y' || com == 'Y');</p><p> printf(" 程序結(jié)束,謝謝使用!");</p><p> getchar();</p><p><b> exit(0);</b></p
118、><p><b> }</b></p><p><b> 七. 參考資料</b></p><p> 1.數(shù)據(jù)結(jié)構(gòu)(C語(yǔ)言版)(清華大學(xué)出版社)</p><p> 2.C++語(yǔ)言程序設(shè)計(jì)(清華大學(xué)出版社)</p><p> 3.數(shù)據(jù)結(jié)構(gòu)(清華大學(xué)出版社)</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ù)覽,若沒(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--集合的并、交和差運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-- 集合的并、交和差運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--集合的并、交和差運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)----集合運(yùn)算課程設(shè)計(jì)報(bào)告(c++)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--文章編輯集合運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)集合的交并差運(yùn)算
- 集合間的并集交集運(yùn)算練習(xí)題(含答案)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告-長(zhǎng)整數(shù)運(yùn)算
- 集合的運(yùn)算(交集、并集)
- 集合的運(yùn)算(交集、并集)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---二叉排序樹(shù)實(shí)現(xiàn)集合的運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--編制一個(gè)演示集合的并、交和差運(yùn)算的程序
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)報(bào)告--稀疏矩陣運(yùn)算器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--稀疏矩陣運(yùn)算器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告 稀疏矩陣運(yùn)算器
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告 稀疏矩陣運(yùn)算器設(shè)計(jì)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論