




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、實 驗 報 告( / 學年 第 一 學期)課程名稱離散數(shù)學實驗名稱集合上二元關(guān)系性質(zhì)判斷的實現(xiàn)實驗時間年月日指導單位指導教師學生姓名班級學號學院(系)專 業(yè) PAGE 22實 驗 報 告實驗名稱集合上二元關(guān)系性質(zhì)判斷的實現(xiàn)指導教師實驗類型上機實驗實驗學時4實驗時間實驗目的和要求能正確判定任意二元關(guān)系的自反性、對稱性、傳遞性、反自反性和反對稱性。二、實驗環(huán)境(實驗設備)硬件:PC機。軟件:Code:Blocks (C+ )三、實驗原理及內(nèi)容 內(nèi)容:首先輸入要求二元關(guān)系的集合所對應的全集中的元素個數(shù)以及各個元素,屏幕輸出該全集以便使用者觀看,然后輸入要求二元關(guān)系的集合中的各個元素,程序調(diào)用判斷各個
2、關(guān)系的函數(shù),最后在屏幕輸出是否具有各個二元關(guān)系,并且詢問是否繼續(xù)使用,若繼續(xù)使用則重復進行上述過程。 原理:建立一個元素類,用來保存元素,根據(jù)各個二元關(guān)系的定義構(gòu)造判斷的函數(shù),在主函數(shù)中建立一個字符數(shù)組保存全集,建立一個對象數(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)/對稱性的判斷 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)/反對稱性的判斷 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請輸入全集中的各個元素:; 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請輸入要求二元關(guān)系的集合中的每個元素: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對稱性:; if(Duichen_or_not(collection,number_2) coutYesendl; else coutNoendl; cout反對稱性:; 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;流程圖:開始輸入全集中元素的個數(shù)輸入全集中的各個元素輸出全集輸入要求關(guān)系的集合中元素個數(shù)輸入要求關(guān)系的集合中各個元素輸出要求二元關(guān)系的集合判斷是否具有各個二元關(guān)系并輸出Y是否繼續(xù)使用(Y/N) N退出程序舉例使用:全集為整數(shù):2、全集為整數(shù)和字母的混合:四、實驗小結(jié)(包括問題和解決方法、心得體會、意見與建議等) 剛做這個實驗的時候,我有兩個思路,一個是用二維數(shù)組保存集合中的每個元素,判斷性質(zhì)時采用列出關(guān)系矩陣的方式來判斷,另一個是建立一個元素類,用對象數(shù)組保存每個元素,判斷的時候直接調(diào)用對象利用定義直接判斷。考慮到對象調(diào)用的靈活性以及可以靈活地設置成員函數(shù),使用后者判斷二元關(guān)系時只需要幾個循環(huán)即可,最終我選擇了第二套方案。在編寫程序的過程中,判斷自反性、反自反性、對稱性、反對稱性的函數(shù)都比較簡單,但是判斷傳遞性的函數(shù)需要三個循環(huán)卻不簡單,但在我不斷理清邏輯調(diào)整代碼之后,終于讓這個函數(shù)既簡便又正確了。剛完成時程序只支持全集為整數(shù),為了使程序的應用性更廣,我便做了相關(guān)調(diào)整,使得程序也可支持全集字母以及字母和數(shù)字混合的形式。這次
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 福建省長汀、連城一中等六校聯(lián)考2024-2025學年高三5月份綜合模擬檢測試題英語試題含解析
- 2025年甘肅省天水市清水縣第六中學高三年級調(diào)研測試(英語試題)試題含解析
- 云南三鑫職業(yè)技術(shù)學院《土木工程施工設計》2023-2024學年第一學期期末試卷
- 松原市前郭爾羅斯蒙古族自治縣2024-2025學年數(shù)學五年級第二學期期末達標檢測模擬試題含答案
- 第11課 元朝的建立與統(tǒng)一 教案2024-2025學年七年級歷史下冊新課標
- 現(xiàn)階段在高中生中大規(guī)模推廣體育運動種類的調(diào)研
- 裝修鋼結(jié)構(gòu)施工方案
- 加固現(xiàn)澆閣樓施工方案
- 坡屋面保溫施工方案
- 外墻保溫膠泥施工方案
- GB/T 19326-2003鋼制承插焊、螺紋和對焊支管座
- GB/T 1220-2007不銹鋼棒
- 2023年陜西高職單招考試數(shù)學真題
- 普通話朗讀范文60篇(文本)
- 深圳市失業(yè)人員停止領(lǐng)取失業(yè)保險待遇申請表樣表
- 中醫(yī)養(yǎng)生之胃病治療
- 《工會基礎知識試題及答案》600題
- 桑樹栽培與管理課件
- qc小組成果報告課件
- 信用風險管理講義課件
- QMS審核知識試題附答案
評論
0/150
提交評論