




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、實(shí) 驗(yàn) 報(bào) 告( / 學(xué)年 第 一 學(xué)期)課程名稱離散數(shù)學(xué)實(shí)驗(yàn)名稱集合上二元關(guān)系性質(zhì)判斷的實(shí)現(xiàn)實(shí)驗(yàn)時(shí)間年月日指導(dǎo)單位指導(dǎo)教師學(xué)生姓名班級(jí)學(xué)號(hào)學(xué)院(系)專 業(yè) PAGE 22實(shí) 驗(yàn) 報(bào) 告實(shí)驗(yàn)名稱集合上二元關(guān)系性質(zhì)判斷的實(shí)現(xiàn)指導(dǎo)教師實(shí)驗(yàn)類型上機(jī)實(shí)驗(yàn)實(shí)驗(yàn)學(xué)時(shí)4實(shí)驗(yàn)時(shí)間實(shí)驗(yàn)?zāi)康暮鸵竽苷_判定任意二元關(guān)系的自反性、對(duì)稱性、傳遞性、反自反性和反對(duì)稱性。二、實(shí)驗(yàn)環(huán)境(實(shí)驗(yàn)設(shè)備)硬件:PC機(jī)。軟件:Code:Blocks (C+ )三、實(shí)驗(yàn)原理及內(nèi)容 內(nèi)容:首先輸入要求二元關(guān)系的集合所對(duì)應(yīng)的全集中的元素個(gè)數(shù)以及各個(gè)元素,屏幕輸出該全集以便使用者觀看,然后輸入要求二元關(guān)系的集合中的各個(gè)元素,程序調(diào)用判斷各個(gè)
2、關(guān)系的函數(shù),最后在屏幕輸出是否具有各個(gè)二元關(guān)系,并且詢問是否繼續(xù)使用,若繼續(xù)使用則重復(fù)進(jìn)行上述過程。 原理:建立一個(gè)元素類,用來保存元素,根據(jù)各個(gè)二元關(guān)系的定義構(gòu)造判斷的函數(shù),在主函數(shù)中建立一個(gè)字符數(shù)組保存全集,建立一個(gè)對(duì)象數(shù)組保存要求二元關(guān)系的集合調(diào)用判斷的函數(shù)并輸出。 程序:#include #include using namespace std;class elementprivate: string left; string right;public: element(); element(string a,string b); element() ; string Getleft(
3、); string Getright();element:element() left=; right=;element:element(string a,string b) left=a; right=b;string element:Getleft() return left;string element:Getright() return right;bool Zifan_or_not(string a,int m,element c,int n)/自反性的判斷 int i,j; for(i=0;im;i+) for(j=0;jn;j+) if(cj.Getleft()=ai&cj.Ge
4、tright()=ai) break; else continue; if(j=n) return false; return true;bool Duichen_or_not(element c,int n)/對(duì)稱性的判斷 int i,j; for(i=0;in;i+) for(j=0;jn;j+) if(cj.Getleft()=ci.Getright()&cj.Getright()=ci.Getleft() break; else continue; if(j=n) return false; return true;bool Chuandi_or_not(element c,int n
5、)/傳遞性的判斷 int i,j,k; for(i=0;in;i+) for(j=0;jn;j+) if(i=j) continue; else if(cj.Getleft()=ci.Getright() for(k=0;kn;k+) if(ck.Getleft()=ci.Getleft()&ck.Getright()=cj.Getright() break; else continue; if(k=n) return false; else continue; return true;bool Fanzifan_or_not(string a,int m,element c,int n)/反
6、自反性的判斷 int i,j; for(i=0;im;i+) for(j=0;jn;j+) if(cj.Getleft()=ai)&(cj.Getright()=ai) return false; return true;bool Fanduichen_or_not(element c,int n)/反對(duì)稱性的判斷 int i,j; for(i=0;in;i+) for(j=0;jn;j+) if(cj.Getleft()=ci.Getright()&cj.Getright()=ci.Getleft() if(i=j) break; else return false; else contin
7、ue; return true;int main() int flag=1; while(flag=1) system(cls); cout歡迎使用集合上的二元關(guān)系性質(zhì)判斷的工具!endlendl; int number_1; coutnumber_1; string *all=new stringnumber_1; cout請(qǐng)輸入全集中的各個(gè)元素:; for(int i=0;ialli; cout你輸入的全集為:; for(int i=0;inumber_1;i+) coutalli; if(i!=number_1-1) cout,; coutendl; int number_2; cout
8、endlnumber_2; element *collection=new elementnumber_2; cout請(qǐng)輸入要求二元關(guān)系的集合中的每個(gè)元素:endlendl; for(int i=0;iab; collectioni=element(a,b); coutendl你輸入的集合為:; for(int i=0;inumber_2;i+) coutcollectioni.Getleft(),collectioni.Getright(); if(i!=number_2-1) cout,; coutendl; cout自反性:; if(Zifan_or_not(all,number_1,c
9、ollection,number_2) coutYesendl; else coutNoendl; cout反自反性:; if(Fanzifan_or_not(all,number_1,collection,number_2) coutYesendl; else coutNoendl; cout對(duì)稱性:; if(Duichen_or_not(collection,number_2) coutYesendl; else coutNoendl; cout反對(duì)稱性:; if(Fanduichen_or_not(collection,number_2) coutYesendl; else coutNo
10、endl; cout傳遞性:; if(Chuandi_or_not(collection,number_2) coutYesendl; else coutNoendl; coutendlflag; return 0;流程圖:開始輸入全集中元素的個(gè)數(shù)輸入全集中的各個(gè)元素輸出全集輸入要求關(guān)系的集合中元素個(gè)數(shù)輸入要求關(guān)系的集合中各個(gè)元素輸出要求二元關(guān)系的集合判斷是否具有各個(gè)二元關(guān)系并輸出Y是否繼續(xù)使用(Y/N) N退出程序舉例使用:全集為整數(shù):2、全集為整數(shù)和字母的混合:四、實(shí)驗(yàn)小結(jié)(包括問題和解決方法、心得體會(huì)、意見與建議等) 剛做這個(gè)實(shí)驗(yàn)的時(shí)候,我有兩個(gè)思路,一個(gè)是用二維數(shù)組保存集合中的每個(gè)元素,判斷性質(zhì)時(shí)采用列出關(guān)系矩陣的方式來判斷,另一個(gè)是建立一個(gè)元素類,用對(duì)象數(shù)組保存每個(gè)元素,判斷的時(shí)候直接調(diào)用對(duì)象利用定義直接判斷??紤]到對(duì)象調(diào)用的靈活性以及可以靈活地設(shè)置成員函數(shù),使用后者判斷二元關(guān)系時(shí)只需要幾個(gè)循環(huán)即可,最終我選擇了第二套方案。在編寫程序的過程中,判斷自反性、反自反性、對(duì)稱性、反對(duì)稱性的函數(shù)都比較簡(jiǎn)單,但是判斷傳遞性的函數(shù)需要三個(gè)循環(huán)卻不簡(jiǎn)單,但在我不斷理清邏輯調(diào)整代碼之后,終于讓這個(gè)函數(shù)既簡(jiǎn)便又正確了。剛完成時(shí)程序只支持全集為整數(shù),為了使程序的應(yīng)用性更廣,我便做了相關(guān)調(diào)整,使得程序也可支持全集字母以及字母和數(shù)字混合的形式。這次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 溫室施工方案
- 現(xiàn)場(chǎng)實(shí)行豬舍施工方案
- 明渠導(dǎo)流施工方案
- 機(jī)場(chǎng)塔臺(tái)結(jié)構(gòu)施工方案
- 斜槽帆布更換施工方案
- 2025年度特色輔導(dǎo)班家長(zhǎng)責(zé)任協(xié)議
- 二零二五年度歷年合同法司考備考資料定制合同
- 2025年度車輛抵押消費(fèi)貸款合同范本
- 2025年度租賃合同解除與合同解除解除爭(zhēng)議訴訟起訴狀
- 二零二五年度農(nóng)家樂房屋租賃與鄉(xiāng)村旅游生態(tài)保護(hù)合同
- 2025年臨床醫(yī)師定期考核試題中醫(yī)知識(shí)復(fù)習(xí)題庫(kù)及答案(280題)
- 港珠澳大橋及背后的故事中國(guó)建造課程組30課件講解
- 2025年吉林長(zhǎng)白朝鮮族自治縣事業(yè)單位招聘16人歷年高頻重點(diǎn)提升(共500題)附帶答案詳解
- 初中歷史七年級(jí)上冊(cè)第8課 百家爭(zhēng)鳴
- 中國(guó)教育史課件
- 第18課排序計(jì)算有方法(教案)四年級(jí)全一冊(cè)信息技術(shù)人教版
- 規(guī)?;i場(chǎng)生物安全
- 2025年春節(jié)后復(fù)產(chǎn)復(fù)工方案及安全技術(shù)措施
- 維修基金使用合同范例
- 幼兒園小班美術(shù)欣賞《漂亮的糖紙》課件
- 互聯(lián)網(wǎng)接入服務(wù)提供商服務(wù)承諾
評(píng)論
0/150
提交評(píng)論