版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(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> ?。?011--2012學(xué)年 第二學(xué)期) </p><p> 題 目:集合交、并、差、對(duì)稱(chēng)差運(yùn)算</p><p> 學(xué) 號(hào): </p><p> 姓 名: </p><p> 指導(dǎo)教師: </
2、p><p><b> 信息科學(xué)與工程系</b></p><p> 1設(shè)計(jì)內(nèi)容、任務(wù)及具體要求 </p><p><b> 1.1設(shè)計(jì)內(nèi)容</b></p><p> 編寫(xiě)一個(gè)程序,實(shí)現(xiàn)集合(同一集合中可以存在重復(fù)的元素,函數(shù)將自動(dòng)過(guò)濾)</p><p> 的并、交、差和對(duì)
3、稱(chēng)差。</p><p> 1.2設(shè)計(jì)任務(wù)及具體要求</p><p> 1、用順序表表示集合,在建立順序表時(shí),自動(dòng)清除同一集合中的相同元素,并根據(jù)長(zhǎng)度定位元素位置; 2、集合的元素限定為字母;</p><p> 3、要求實(shí)現(xiàn)的算法:</p><p> 1)兩個(gè)集
4、合的并運(yùn)算</p><p> 2)兩個(gè)集合的交運(yùn)算</p><p> 3)兩個(gè)集合的差運(yùn)算</p><p> 4)兩個(gè)集合的對(duì)稱(chēng)差運(yùn)算</p><p> 4、運(yùn)行界面要人性化,便于使用,提示清楚,操作簡(jiǎn)單。</p><p><b> 問(wèn)題補(bǔ)充:</b></p><p&
5、gt; 要求數(shù)據(jù)是無(wú)序的,不能順序表示,通過(guò)函數(shù)(插入、刪除)完成集合間的運(yùn)算。</p><p><b> 2概要設(shè)計(jì)</b></p><p> 2.1該系統(tǒng)的功能簡(jiǎn)介</p><p> 建立順序表,通過(guò)順序表進(jìn)行集合間并、交、差、對(duì)稱(chēng)差的運(yùn)算。使用者只需根據(jù)程序提示,進(jìn)行必要步驟的輸入和選擇,就能實(shí)現(xiàn)集合間的簡(jiǎn)單運(yùn)算。</p&g
6、t;<p> 2.2 總體程序框圖</p><p> 2.3各個(gè)模塊之間的主要關(guān)系</p><p> 3系統(tǒng)功能模塊的具體設(shè)計(jì)</p><p> 3.1各個(gè)模塊的程序流程圖及運(yùn)行界面</p><p> 1.初始化順序表模塊</p><p><b> 0</b></p
7、><p><b> 1 1</b></p><p><b> 2.求長(zhǎng)模塊</b></p><p><b> 插入模塊</b></p><p><b> 111</b></p><p><b> 00<
8、/b></p><p><b> 0</b></p><p><b> 創(chuàng)建順序表</b></p><p><b> 11</b></p><p><b> 0</b></p><p><b> 取元素&
9、lt;/b></p><p><b> 1</b></p><p><b> 0</b></p><p><b> 比較模塊</b></p><p><b> 1</b></p><p><b> 0<
10、;/b></p><p><b> 定位模塊</b></p><p><b> 00</b></p><p><b> 1</b></p><p><b> 1</b></p><p><b> 刪除模塊
11、</b></p><p><b> 1</b></p><p><b> 1</b></p><p><b> 00</b></p><p><b> 并集模塊0</b></p><p><b>
12、 11</b></p><p><b> 0</b></p><p><b> 交集模塊</b></p><p><b> 0</b></p><p> 1 11</p><p><b> 0</
13、b></p><p><b> 差集模塊</b></p><p><b> 0</b></p><p><b> 111</b></p><p><b> 0</b></p><p><b> 對(duì)稱(chēng)差模
14、塊</b></p><p><b> 輸出模塊</b></p><p><b> 01</b></p><p><b> 0</b></p><p><b> 1</b></p><p><b>
15、菜單模塊</b></p><p> 3.2關(guān)鍵代碼分析說(shuō)明</p><p><b> a.插入模塊中</b></p><p> while(p>=q)</p><p><b> { </b></p><p> *(p+1)=*p; </p&g
16、t;<p><b> --p;</b></p><p> } //插入位置后的元素右移</p><p> 當(dāng)原始申請(qǐng)內(nèi)存不足時(shí)</p><p> if(!newbase) exit(OVERFLOW); </p><p> L.elem=newbase; </p>
17、<p> L.listsize+=LISTINCREMENT;</p><p><b> b.刪除模塊中</b></p><p> if(i<1||i>L.length) </p><p> return ERROR;//刪除位置不合理</p><p><b> c.定位模塊中&
18、lt;/b></p><p> ElemType *p=L.elem; //p指向第一個(gè)元素</p><p> int i=1; //i始終為p所指向元素的位序</p><p> while(i<=L.length&&!(*compare)(*p++,e))</p><p><b>
19、++i;</b></p><p> if(i<=L.length) </p><p> return(i);</p><p><b> else </b></p><p><b> return 0;</b></p><p> d.main()函數(shù)
20、中</p><p> 重新輸入數(shù)據(jù)時(shí),用er做goto語(yǔ)句的跳轉(zhuǎn)標(biāo)</p><p> e.其它 見(jiàn)源代碼注釋。</p><p><b> 4程序調(diào)試分析</b></p><p><b> a.界面測(cè)試</b></p><p><b> 底面 粉紅<
21、/b></p><p><b> 字體 深藍(lán)</b></p><p> 提示語(yǔ)輸出 歡迎使用集合計(jì)算器</p><p><b> b.測(cè)試空表:</b></p><p> 1.執(zhí)行程序 2退出程序</p><p> 對(duì)應(yīng)選擇2 退出</p&
22、gt;<p><b> c.測(cè)試建表:</b></p><p> 1二執(zhí)行程序 2退出程序</p><p> 對(duì)應(yīng)選擇1 繼續(xù)</p><p><b> 請(qǐng)輸入第一個(gè)集合:</b></p><p> a b c d e f </p><p>
23、<b> 請(qǐng)輸入第一個(gè)集合:</b></p><p> d e f g h i</p><p> d.測(cè)試輸入不符合要求(a---z)程序能否自動(dòng)過(guò)濾</p><p> 1執(zhí)行程序 2退出程序</p><p> 對(duì)應(yīng)選擇1 繼續(xù)</p><p><b> 請(qǐng)輸入第一
24、個(gè)集合:</b></p><p> 1 2 a b c d e f </p><p><b> 請(qǐng)輸入第一個(gè)集合:</b></p><p> d e f g h i 2 4</p><p> 1交集 2并集 3差集 4對(duì)稱(chēng)差 5清屏 6重新輸入 其它退出</p>
25、<p><b> 對(duì)應(yīng)選擇1</b></p><p><b> 輸出 d e f</b></p><p> e.測(cè)試輸入不符合順序程序能否執(zhí)行</p><p> 1執(zhí)行程序 2退出程序</p><p> 對(duì)應(yīng)選擇1 繼續(xù)</p><p>&l
26、t;b> 請(qǐng)輸入第一個(gè)集合:</b></p><p> f e d c b a </p><p><b> 請(qǐng)輸入第一個(gè)集合:</b></p><p> i h g f e d </p><p> 1交集 2并集 3差集 4對(duì)稱(chēng)差 5清屏 6重新輸入 其它退出<
27、;/p><p><b> 對(duì)應(yīng)選擇1</b></p><p><b> 輸出 f e d</b></p><p><b> f.測(cè)試功能</b></p><p> 1執(zhí)行程序 2退出程序</p><p> 對(duì)應(yīng)選擇1 繼續(xù)</p&g
28、t;<p><b> 請(qǐng)輸入第一個(gè)集合:</b></p><p> a b c d e f </p><p><b> 請(qǐng)輸入第一個(gè)集合:</b></p><p> d e f g h i </p><p> 1交集 2并集 3差集 4對(duì)稱(chēng)差 5清屏 6
29、重新輸入 其它退出</p><p><b> 對(duì)應(yīng)選擇 1</b></p><p><b> 輸出d e f </b></p><p> 1交集 2并集 3差集 4對(duì)稱(chēng)差 5清屏 6重新輸入 其它退出</p><p><b> 對(duì)應(yīng)選擇 2</b
30、></p><p> 輸出a b c d e f g h i </p><p> 1交集 2并集 3差集 4對(duì)稱(chēng)差 5清屏 6重新輸入 其它退出</p><p><b> 對(duì)應(yīng)選擇 3</b></p><p><b> 輸出a b c</b></p>
31、;<p> 1交集 2并集 3差集 4對(duì)稱(chēng)差 5清屏 6重新輸入 其它退出</p><p><b> 對(duì)應(yīng)選擇 4</b></p><p> 輸出a b c g h i </p><p> 1交集 2并集 3差集 4對(duì)稱(chēng)差 5清屏 6重新輸入 其它退出</p>
32、<p><b> 對(duì)應(yīng)選擇 5</b></p><p><b> 輸出 </b></p><p> 1交集 2并集 3差集 4對(duì)稱(chēng)差 5清屏 6重新輸入 其它退出</p><p><b> 對(duì)應(yīng)選擇 6</b></p><p
33、> 輸出 請(qǐng)輸入第一個(gè)集合A</p><p> 輸入 b c d e f </p><p><b> 請(qǐng)輸入第一個(gè)集合B</b></p><p> 輸入 d e f g h</p><p><b> 輸出 </b></p><p> 1交集
34、2并集 3差集 4對(duì)稱(chēng)差 5清屏 6重新輸入 其它退出</p><p><b> 對(duì)應(yīng)選擇 1</b></p><p> 輸出 d e f </p><p><b> 輸出 </b></p><p> 1交集 2并集 3差集 4對(duì)稱(chēng)差 5清
35、屏 6重新輸入 其它退出</p><p><b> 對(duì)應(yīng)選擇 其它</b></p><p><b> 退出程序</b></p><p><b> 5程序使用說(shuō)明</b></p><p> 1、用順序表表示集合,在建立順序表時(shí),自動(dòng)清除同一集合中的相同元素,并自動(dòng)
36、定位元素位置;</p><p> 集合的元素限定為字母;</p><p> 3、要求實(shí)現(xiàn)的算法:</p><p> 1)兩個(gè)集合的并運(yùn)算</p><p> 2)兩個(gè)集合的交運(yùn)算</p><p> 3)兩個(gè)集合的差運(yùn)算</p><p> 3)兩個(gè)集合的對(duì)稱(chēng)差運(yùn)算</p>
37、<p><b> 4)清空界面</b></p><p><b> 5)重新輸入</b></p><p><b> 6)其它退出</b></p><p> 4、根據(jù)界面提示操作。</p><p><b> 6總結(jié)</b></p>
38、;<p> 程序的編譯要注意以下幾點(diǎn):</p><p> 要求算法精簡(jiǎn)全面,沒(méi)有邏輯錯(cuò)誤和漏洞。</p><p> 要求界面美觀,操作方便,功能全面。</p><p> 代碼要注意結(jié)構(gòu)清晰,便于復(fù)查。</p><p> 調(diào)用函數(shù)名要注意清晰易懂。</p><p> 盡量要將常用函數(shù)模塊化,調(diào)用
39、方便,編寫(xiě)簡(jiǎn)單。</p><p> 6、代碼的書(shū)寫(xiě)注意細(xì)致,區(qū)分大小寫(xiě),參數(shù)要有規(guī)律。</p><p><b> 7、其它。</b></p><p><b> 致謝</b></p><p> 李印清教授關(guān)于數(shù)據(jù)結(jié)構(gòu)知識(shí),算法的指導(dǎo)。</p><p> 方瑞英老師對(duì)算
40、法優(yōu)化,代碼語(yǔ)言規(guī)范化的指導(dǎo)。</p><p><b> 參考文獻(xiàn)</b></p><p> 《C語(yǔ)言程序設(shè)計(jì)第二版 (機(jī)械工業(yè)出版社)》 關(guān)于程序測(cè)試的方法。</p><p> 李印清教授 《學(xué)生檔案管理系統(tǒng)》參考示例及代碼分析。</p><p> 《數(shù)據(jù)結(jié)構(gòu)上機(jī)指導(dǎo)(清華大學(xué)出版社)》實(shí)例分析及算法指導(dǎo)。&l
41、t;/p><p><b> 附:源程序</b></p><p> //文件名《簡(jiǎn)單集合計(jì)算器》</p><p> //##########################源代碼#########################</p><p> /* 制作人 :楊世杰;</p><p>&l
42、t;b> 指導(dǎo)老師:方瑞英;</b></p><p> 完成時(shí)間:2012.3.25;</p><p> 修改時(shí)間:2012.4.03 基本算法的代碼化;</p><p> 2012.4.07 基本算法的實(shí)現(xiàn);</p><p> 2012.4.15 參數(shù)值函數(shù)名的標(biāo)準(zhǔn)化;</p><p
43、> 2012.4.16 函數(shù)界面的優(yōu)化;</p><p> 2012.4.25 完成數(shù)據(jù)的測(cè)試.</p><p> 定稿時(shí)間:2012.4.30。*/</p><p><b> // 程序的頭文件</b></p><p> #include<stdio.h></p><
44、;p> #include<malloc.h></p><p> #include<stdlib.h></p><p> #include<string.h></p><p><b> // 函數(shù)返回值</b></p><p> #define OK 1</p&
45、gt;<p> #define ERROR 0</p><p> #define INFEASIBLE -1</p><p> #define OVERFLOW -2</p><p> #define LISTINCREMENT 10</p><p> #define LIST_INIT_SIZE 10
46、0 //順序表的初始大小</p><p> typedef int Status; //返回狀態(tài)類(lèi)型</p><p> typedef char ElemType; //元素類(lèi)型</p><p> //結(jié)點(diǎn)類(lèi)型 指針類(lèi)型</p><p> typedef struct{</p><p&
47、gt; ElemType *elem; </p><p> int length; </p><p> int listsize;</p><p> }SqList; </p><p> Status chushihua(SqList &l)</p>
48、<p> {/******************初始化順序表*****************</p><p> *調(diào)用函數(shù): 無(wú);*</p><p> *參 數(shù): 無(wú);*</p><p> *返 回 值: OK. *</p><p> **********************************
49、****************/</p><p> l.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));</p><p> if(!l.elem) exit(OVERFLOW);</p><p> l.length=0;</p><p> l.listsize=LI
50、ST_INIT_SIZE;</p><p> return OK;</p><p><b> }</b></p><p> int qiuchang(SqList l)</p><p> {/******************求順序表的長(zhǎng)度*****************</p><p&g
51、t; *調(diào)用函數(shù): 無(wú);*</p><p> *參 數(shù): 無(wú);*</p><p> *返 回 值: l.length*</p><p> **************************************************/</p><p> return(l.length);</p>&
52、lt;p><b> }</b></p><p> Status charu_Sq(SqList &L,int i, ElemType e)</p><p> {/******************在i處插入元素e*****************</p><p> *調(diào)用函數(shù): 無(wú);*</p><p
53、> *參 數(shù): L,i,e;i,L.elem,*p*</p><p> *返 回 值: ERROR,OK. *</p><p> **************************************************/</p><p> if(i<1||i>L.length+1) </p><p&
54、gt; return ERROR; </p><p> if(L.length>=L.listsize)</p><p> { </p><p> ElemType*newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType));
55、</p><p> if(!newbase) exit(OVERFLOW); </p><p> L.elem=newbase; </p><p> L.listsize+=LISTINCREMENT;</p><p><b> }</b></p><p> ElemTy
56、pe *q=&L.elem[i-1], *p=&L.elem[L.length-1];</p><p> while(p>=q)</p><p><b> { </b></p><p> *(p+1)=*p; </p><p><b> --p;</b></p&g
57、t;<p> } //插入位置后的元素右移</p><p><b> *q=e;</b></p><p> ++L.length;</p><p> return OK;</p><p><b> }</b></p><p> Status chu
58、angjian(SqList &l,ElemType a[],int n)</p><p> {/******************創(chuàng)建順序表********************</p><p> *調(diào)用函數(shù): charu(),qiuchang();*</p><p> *參 數(shù): L,a[i],n;len,l *</p>
59、<p> *返 回 值: ERROR,OK. *</p><p> **************************************************/</p><p> int len=qiuchang(l);</p><p> for(int i=0;i<n;i++)</p><p><
60、b> {</b></p><p> if(a[i]>='a'&&a[i]<='z')</p><p> charu_Sq(l,++len,a[i]);</p><p><b> }</b></p><p> return OK;<
61、;/p><p><b> }</b></p><p> Status quyuansu(SqList L,int i,ElemType &e)</p><p> {/**************取順序表中元素 *****************</p><p> *調(diào)用函數(shù): 無(wú);*</p>
62、<p> *參 數(shù): L,i,e;L.elem*</p><p> *返 回 值: ERROR,OK. *</p><p> **************************************************/</p><p> if(i<=0||i>L.length)</p><p>
63、; return ERROR;</p><p><b> else</b></p><p> e=*(L.elem+i-1);</p><p> return OK;</p><p><b> }</b></p><p> Status bijiao(ElemTy
64、pe e1,ElemType e2)</p><p> {/*****************比較元素的值 *****************</p><p> *調(diào)用函數(shù): 無(wú);*</p><p> *參 數(shù): e1,e2;e1,e2*</p><p> *返 回 值: ERROR,OK. *</p>&l
65、t;p> **************************************************/</p><p> if(e1==e2)</p><p> return OK; </p><p><b> else </b></p><p> return ERROR; </p>
66、;<p><b> }</b></p><p> int dingwei_Sq(SqList L, ElemType e, Status (*compare)(ElemType,ElemType))</p><p> {/**************定位順序表中元素位置 *****************</p><p>
67、 *調(diào)用函數(shù): 無(wú);*</p><p> *參 數(shù): L,i,e;*</p><p> *返 回 值: i,0. *</p><p> **************************************************/</p><p> ElemType *p=L.elem; //p指向第一個(gè)元素
68、</p><p> int i=1; //i始終為p所指向元素的位序</p><p> while(i<=L.length&&!(*compare)(*p++,e))</p><p><b> ++i;</b></p><p> if(i<=L.length) </p&g
69、t;<p> return(i);</p><p><b> else </b></p><p><b> return 0;</b></p><p><b> }</b></p><p> Status shanchu(SqList &L,in
70、t i,ElemType &e)</p><p> {/**********在順序表L中刪除第i個(gè)元素,用e返回其值**********</p><p> *調(diào)用函數(shù): 無(wú);*</p><p> *參 數(shù): L,i,e;i,p,q,e,L.length*</p><p> *返 回 值: ERROR,OK. *&l
71、t;/p><p> ***********************************************************/</p><p> if(i<1||i>L.length) </p><p> return ERROR;//刪除位置不合理</p><p> ElemType *p=&L.ele
72、m[i-1],*q=L.elem+L.length-1;</p><p><b> e=*p;</b></p><p> while(p<q){*p=*(p+1); ++p;} //刪除位置后的元素左移</p><p> --L.length;</p><p> return OK;</p>
73、<p><b> }</b></p><p> void bingji(SqList &La,SqList Lb)</p><p> {/******************實(shí)現(xiàn)集合的并 *****************</p><p> *調(diào)用函數(shù): qiuchang();charu();dingwei();q
74、uyuansu()*</p><p> *參 數(shù): La,Lb,la_len,lb_len; L,i,e*</p><p> *返 回 值: ERROR,OK. *</p><p> **************************************************/</p><p> //將所有在線性表Lb
75、中而不在La中的元素插入La</p><p> int la_len , lb_len;</p><p> ElemType e;</p><p> la_len=qiuchang(La);</p><p> lb_len=qiuchang(Lb);</p><p> for(int i=1;i<=l
76、b_len;++i)</p><p><b> {</b></p><p> quyuansu(Lb,i,e);</p><p> if(dingwei_Sq(La,e,bijiao)==0)</p><p> charu_Sq(La,++la_len,e);</p><p><b&
77、gt; }</b></p><p><b> }</b></p><p> Status JiaoJi(SqList l1,SqList l2, SqList &l3)</p><p> {/*****************求集合的交集********************</p><p>
78、; *調(diào)用函數(shù): qiuchang();quyuansu();charu();*</p><p> *參 數(shù): l1_len,l2_len,l3_len,e,u;i,j,l1,l2,l3;*</p><p> *返 回 值: OK. *</p><p> **********************************************
79、****/</p><p> int l1_len, l2_len,l3_len,i=1,j=1;</p><p> ElemType e,u;</p><p> l1_len=qiuchang(l1);</p><p> l2_len=qiuchang(l2);</p><p> l3_len=qiuch
80、ang(l3);</p><p> for(i=1;i<=l1_len;i++)</p><p><b> {</b></p><p> quyuansu(l1,i,e);</p><p> for(j=l2_len;j>=1;j--)</p><p><b> {
81、</b></p><p> quyuansu(l2,j,u);</p><p><b> if(e==u)</b></p><p><b> {</b></p><p> charu_Sq(l3,++l3_len,u);</p><p><b>
82、 break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> continue;</b></p><p><b> }</b></p><p
83、><b> }</b></p><p> return OK;</p><p><b> }</b></p><p> Status chaji(SqList &l1,SqList l2)</p><p> {/**************求順序表的差集 *********
84、********</p><p> *調(diào)用函數(shù): qiuchang();quyuansu();chushihua();shanchu()*</p><p> *參 數(shù): l1_len,l2_len,count,e,u,f; l1,l2*</p><p> *返 回 值: OK. *</p><p> *************
85、*************************************/</p><p> SqList lc;</p><p> int lc_len,l1_len,l2_len;</p><p> ElemType e,u,f;</p><p> chushihua(lc);</p><p> Jia
86、oJi(l1,l2,lc);</p><p> lc_len=qiuchang(lc);</p><p> l1_len=qiuchang(l1);</p><p> l2_len=qiuchang(l2);</p><p> for(int i=1;i<=lc_len;i++)</p><p><
87、b> {</b></p><p> quyuansu(lc,i,e);</p><p> for(int j=1;j<=l1_len;j++)</p><p><b> {</b></p><p> quyuansu(l1,j,u);</p><p><b&
88、gt; if(u==e)</b></p><p><b> {</b></p><p> shanchu(l1,j,f);</p><p><b> } </b></p><p><b> }</b></p><p><b
89、> }</b></p><p> returnOK;</p><p><b> }</b></p><p> Status duichencha(SqList &l1,SqList l2)</p><p> {/******************求順序表的對(duì)稱(chēng)差集 *******
90、**************</p><p> *調(diào)用函數(shù): chushihua();qiuchang();bingji();chaji().*</p><p> *參 數(shù): lc,ld,lc_len,ld_len,l1_len,l2_len;l1,l2*</p><p> *返 回 值: OK. *</p><p> *
91、**********************************************************/</p><p> SqList lc;</p><p> int lc_len,l1_len,l2_len;</p><p> ElemType e,u,f;</p><p> chushihua(lc);</
92、p><p> lc_len=qiuchang(lc);</p><p> l1_len=qiuchang(l1);</p><p> l2_len=qiuchang(l2);</p><p> JiaoJi(l1,l2,lc);</p><p> lc_len=qiuchang(lc);//求出交集</p&
93、gt;<p> l2_len=qiuchang(l2);</p><p> l1_len=qiuchang(l1);</p><p> bingji(l1,l2); //求出并集</p><p> l1_len=qiuchang(l1);</p><p> chaji(l1,lc); //(l1U
94、l2)-(l2nl1)求對(duì)稱(chēng)差</p><p> return OK;</p><p><b> }</b></p><p> void shuchu(SqList &L)</p><p> {/******************輸出函數(shù) *********************</p>
95、<p> *調(diào)用函數(shù): 無(wú);*</p><p> *參 數(shù): l.length,i;L;*</p><p> *返 回 值: ERROR,OK. *</p><p> **************************************************/</p><p> if(0==L.l
96、ength)</p><p> printf("空集!");</p><p><b> else</b></p><p> for(int i=0;i<L.length;++i)</p><p><b> {</b></p><p> pr
97、intf("%c",*(L.elem+i));</p><p><b> }</b></p><p><b> }</b></p><p> int caidan()</p><p> {/********************菜單 ******************
98、******</p><p> *調(diào)用函數(shù): 無(wú);*</p><p> *參 數(shù): cn;*</p><p> *返 回 值: cn. *</p><p> **************************************************/</p><p><b>
99、int cn;</b></p><p> printf("**********************************************************\n");</p><p> printf(" # 求集合的交請(qǐng)按1 #求 集 合 的 并請(qǐng)按2 \n");</p>
100、<p> printf(" # 求集合的差請(qǐng)按3 #求集合的對(duì)稱(chēng)差請(qǐng)按4 \n");</p><p> printf(" # 清 屏 請(qǐng) 按5 #重 新 輸 入 請(qǐng) 按 6 \n");</p><p> printf(" # 退出請(qǐng)按其
101、它鍵 \n");</p><p> printf("**********************************************************\n");</p><p> printf("請(qǐng)輸入選項(xiàng):");</p><p&
102、gt; scanf("%d",&cn);</p><p> return cn;</p><p><b> }</b></p><p> void main()</p><p> {/**************程序的主函數(shù) *****************</p>
103、<p> *調(diào)用函數(shù): chushihua();chuangjian();chaji();bingji();chaji();</p><p> duichencha();shuchu();caidan();*</p><p> *參 數(shù): c,i,j,l1,l2,l3,a1,la,lb,n1,n2,;*</p><p> *返 回 值:
104、ERROR,OK. *</p><p> **********************************************/</p><p> system("color d1");</p><p> printf("**************************************************
105、***************\n");</p><p> printf("* *\n");</p><p> printf("# 歡迎使用集合計(jì)算器!
106、 #\n");</p><p> printf("* *\n");</p><p> printf("* 注意: 此集合運(yùn)算器僅適用于字母間運(yùn)算 *\n")
107、;</p><p><b> for(1;;)</b></p><p><b> {</b></p><p><b> int c;</b></p><p> printf("*********************#####################
108、###*********************\n");</p><p> printf("# 1 執(zhí)行程序 2 退出程序 #\n");</p><p> printf("**********************************************
109、********************\n");</p><p> printf("請(qǐng)按鍵選擇(1或2): ");</p><p> scanf("%d",&c);</p><p> er:getchar(); //goto語(yǔ)句跳轉(zhuǎn)標(biāo)志</p><p> prin
110、tf("\n");</p><p><b> if(c==1)</b></p><p><b> {</b></p><p> SqList l1,l2,l3,la;</p><p> int n1,n2,i,j;</p><p> char
111、a1[30], a2[30];</p><p> chushihua(l1);</p><p> chushihua(l2);</p><p> chushihua(l3);</p><p> chushihua(la);</p><p> printf("請(qǐng)輸入第一個(gè)集合: ");<
112、;/p><p><b> gets(a1);</b></p><p> n1=strlen(a1);</p><p> for(i=n1-1;i>=0;i--) //從最后一個(gè)開(kāi)始依次與前面的比較 重復(fù)賦值為0</p><p><b> {</b></p><p>
113、; for(j=0;j<i;j++)</p><p><b> {</b></p><p> if(a1[j]==a1[i])</p><p><b> a1[i]=0;</b></p><p><b> }</b></p><p>&l
114、t;b> }</b></p><p> chuangjian(l1,a1,n1);</p><p><b> la=l1;</b></p><p> printf("請(qǐng)輸入第二個(gè)集合: ");</p><p><b> gets(a2);</b><
115、;/p><p> n2=strlen(a2);</p><p> for(i=n2-1;i>=0;i--) //同上</p><p><b> {</b></p><p> for(j=0;j<i;j++)</p><p><b> {</b></p
116、><p> if(a1[j]==a1[i])</p><p><b> a1[i]=0;</b></p><p><b> }</b></p><p><b> }</b></p><p> chuangjian(l2,a2,n2);</p&
117、gt;<p><b> int a;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> a = caidan();</p><p><b> switch(a)</b>
118、;</p><p><b> {</b></p><p><b> case 1:</b></p><p><b> {</b></p><p> printf("集合的交集是: ");</p><p> JiaoJi(l1
119、,l2,l3);</p><p> shuchu(l3);</p><p> printf("\n");</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 2:&l
120、t;/b></p><p><b> {</b></p><p> printf("集合的并集是: ");</p><p> bingji(l1,l2);</p><p> shuchu(l1);</p><p> printf("\n");
121、</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 3: </b></p><p><b> {</b></p><p> printf("
122、集合的差集是: ");</p><p> chaji(la,l2);</p><p> shuchu(la);</p><p> printf("\n");</p><p><b> break;</b></p><p><b> }</b&
123、gt;</p><p><b> case 4: </b></p><p><b> {</b></p><p> printf("集合的對(duì)稱(chēng)差集是: ");</p><p> duichencha(la,l2);</p><p> shuchu
124、(la);</p><p> printf("\n");</p><p><b> break;</b></p><p><b> }</b></p><p><b> case 5:</b></p><p><b>
125、; {</b></p><p> system("cls"); </p><p><b> continue;</b></p><p><b> }</b></p><p><b> case 6:</b></p><
126、;p><b> {</b></p><p> system("cls");</p><p> printf("輸入新的集合");</p><p> goto er;//goto語(yǔ)句標(biāo)志及跳轉(zhuǎn)點(diǎn)</p><p><b> }</b></p&
127、gt;<p><b> default: </b></p><p><b> {</b></p><p><b> exit(0);</b></p><p><b> }</b></p><p><b> }</b&
128、gt;</p><p><b> }</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p><b> exit(0);&l
129、t;/b></p><p> } </p><p><b> }</b></p><p><b> }</b></p><p><b> 指導(dǎo)教師評(píng)語(yǔ):</b></p><p> 成績(jī): 指導(dǎo)教師簽名:
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-- 集合的并、交和差運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--集合的并、交和差運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--集合的并、交和差運(yùn)算
- java語(yǔ)言課程設(shè)計(jì)--集合的并、交和差運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--編制一個(gè)演示集合的并、交和差運(yùn)算的程序
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)集合的交并差運(yùn)算
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告(集合交集并集運(yùn)算)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---數(shù)據(jù)庫(kù)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--數(shù)據(jù)庫(kù)原理及應(yīng)用課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)---網(wǎng)上拍賣(mài)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--bbs系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)
- 數(shù)據(jù)庫(kù)課程設(shè)計(jì)--cd唱片數(shù)據(jù)庫(kù)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論