版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、耦合數(shù)據(jù)耦合。若兩個(gè)模塊之間僅通過模塊參數(shù)交換信息,且交換的信息全部為簡單數(shù)據(jù), 則稱這種耦合為數(shù)據(jù)耦合。數(shù)據(jù)耦合的耦合性最低,通常軟件中都包含有數(shù)據(jù)耦合。數(shù)據(jù)耦合的例子:/*數(shù)據(jù)耦合*主函數(shù)main()和Multiply(int x, int y)之間為數(shù)據(jù)耦合關(guān)系*/#include int Multiply(int x, int y)return(x * y);void main()int x = 0;int y = 0;scanf(d%d,&x, &y);printf(x * y = %dn, Multiply(x,y);控制耦合。若模塊之間交換的信息中包含有控制信息(盡管有時(shí)控制信息
2、是以數(shù)據(jù)的形 式出現(xiàn)的),則稱這種耦合為控制耦合??刂岂詈鲜侵械瘸潭鹊鸟詈?,它會增加程序的復(fù)雜 性??刂岂詈系睦樱?* 控制耦合*根據(jù)年齡判斷是否大于歲,然后根據(jù)是否滿十八歲判斷是否到達(dá)法定飲酒年齡*/#include static bool Signal;void AdultOrNot(int age)if (age 18)Signal = 1;elseSignal = 0;void WineOrNot()if (Signal = 1)printf(%sn, 您已到達(dá)法定飲酒年齡!);elseprintf(sn,您未到達(dá)法定飲酒年齡!);int main()int Age = 0;prin
3、tf(s,請輸入您的年齡:);scanf(d, &Age);AdultOrNot(Age);WineOrNot();(3)公共耦合。若兩個(gè)或多個(gè)模塊通過引用公共數(shù)據(jù)相互聯(lián)系,則稱這種耦合為公共耦合。 公共耦合的例子:在程序中定義了全局變量,并在多個(gè)模塊中對全局變量進(jìn)行了引用,則引 用全局變量的多個(gè)模塊間就具有了公共耦合關(guān)系。(4)內(nèi)容耦合。若一個(gè)模塊對另一模塊中的內(nèi)容(包括數(shù)據(jù)和程序段)進(jìn)行了直接的引用甚 至修改,或通過非正常入口進(jìn)入到另一模塊內(nèi)部,或一個(gè)模塊具有多個(gè)入口,或兩個(gè)模塊共 享一部分代碼,則稱模塊間的這種耦合為內(nèi)容耦合。內(nèi)容耦合是所有耦合關(guān)系中程度最高的, 會使因模塊間的聯(lián)系過于緊
4、密而對后期的開發(fā)和維護(hù)工作帶來很大的麻煩。內(nèi)聚(1)偶然內(nèi)聚。若一個(gè)模塊由多個(gè)完成不同任務(wù)的語句段組成,各語句段之間的聯(lián)系十分 松散或根本沒有任何聯(lián)系,則稱此模塊的內(nèi)聚為偶然內(nèi)聚。偶然內(nèi)聚的例子:在模塊T有三條語句。至少從表面上看不出這三條語句之間有什么聯(lián)系, 只是由于P,Q,R,S四個(gè)模塊中都有這三條語句,為了節(jié)省空間才把它們作為一個(gè)模塊放 在一起。這完全是偶然性的。邏輯內(nèi)聚。這種模塊是把幾種功能組合在一起,每次調(diào)用時(shí),則由傳遞給模塊的判定 參數(shù)來確定該模塊應(yīng)執(zhí)行哪一種功能。邏輯內(nèi)聚的例子:一個(gè)子程序?qū)⒋蛴〖径乳_支報(bào)告、月份開支報(bào)告和日開支報(bào)告.具體打印 哪一個(gè),將由傳入的控制標(biāo)志決定,這個(gè)
5、子程序具有邏輯內(nèi)聚性,因?yàn)樗膬?nèi)部邏輯是由輸 進(jìn)去的外部控制標(biāo)志決定的。時(shí)間內(nèi)聚。若一個(gè)模塊包含了需要在同一時(shí)間段中執(zhí)行的多個(gè)任務(wù),則稱該模塊的內(nèi) 聚為時(shí)間內(nèi)聚。時(shí)間內(nèi)聚的例子:將多個(gè)變量的初始化放在同一個(gè)模塊中實(shí)現(xiàn),或?qū)⑿枰瑫r(shí)使用的多個(gè)庫 文件的打開操作放在同一個(gè)模塊中,都會產(chǎn)生時(shí)間內(nèi)聚的模塊。過程內(nèi)聚。若一個(gè)模塊中的各個(gè)部分相關(guān),并且必須按特定的次序執(zhí)行,則稱該模塊 的內(nèi)聚為過程內(nèi)聚。過程內(nèi)聚的例子:假設(shè)有一個(gè)子程序,它產(chǎn)生讀取雇員的名字,然后是地址,最后是它的電 話號碼。這種順序之所以重要,僅僅是因?yàn)樗嫌脩舻囊螅脩粝M催@種順序進(jìn)行屏 幕輸入。另外一個(gè)子程序?qū)⒆x取關(guān)于雇員的其它
6、信息。這個(gè)子程序是過程內(nèi)聚性,因?yàn)槭怯?一個(gè)特定順序而不是其它任何原因,把這些操作組合在一起的。通信內(nèi)聚。若一個(gè)模塊中的各個(gè)部分使用同一個(gè)輸入數(shù)據(jù)或產(chǎn)生同一個(gè)輸出數(shù)據(jù),則 稱該模塊的內(nèi)聚為通信內(nèi)聚。通信內(nèi)聚的例子:比如有一個(gè)打印總結(jié)報(bào)告,并在完成后重新初始化傳進(jìn)來的總結(jié)數(shù)據(jù)的子 程序,這個(gè)子程序具有通信內(nèi)聚性,因?yàn)檫@兩個(gè)操作僅僅是由于它們使用了相同的數(shù)據(jù)才聯(lián) 系在一起。順序內(nèi)聚。若一個(gè)模塊中的各個(gè)部分都與同一個(gè)功能密切相關(guān),并且必須按照先后順 序執(zhí)行(通常前一個(gè)部分的輸出數(shù)據(jù)就是后一個(gè)部分的輸入數(shù)據(jù)),則稱該模塊的內(nèi)聚為順序 內(nèi)聚。順序內(nèi)聚的例子:假設(shè)有一個(gè)按給出的生日計(jì)算雇員年齡、退休時(shí)間的
7、子程序,如果它是利 用所計(jì)算的年齡來確定雇員將要退休的時(shí)間,那么它就具有順序內(nèi)聚性。而如果它是分別計(jì) 算年齡和退休時(shí)間的,但使用相同生日數(shù)據(jù),那它就只具有通訊內(nèi)聚性。/*順序內(nèi)聚*根據(jù)出生年份得出年齡,根據(jù)年齡得到退休時(shí)間*/#include #include void GetRetireYear()/得出年齡int BirthYear = 0;int Age = 0;printf(s,請輸入出生年份:);scanf(%d, &BirthYear);time_t rawtime;struct tm * timeinfo;time ( &rawtime );timeinfo = localtim
8、e ( &rawtime );Age = timeinfo -tm_year + 1900 - BirthYear;/printf(您的年齡是:d 歲n,Age);/得出退休時(shí)間int RetireYear = 0;RetireYear = timeinfo -tm_year + 1900 + 60 - Age;printf(您的退休時(shí)間是:d 年n,RetireYear);void main ()GetRetireYear();功能內(nèi)聚。若一個(gè)模塊中各個(gè)組成部分構(gòu)成一個(gè)整體并共同完成一個(gè)單一的功能,則 稱該模塊的內(nèi)聚為功能內(nèi)聚。功能內(nèi)聚例子:比如計(jì)算雇員年齡并給出生日的子程序就是功能內(nèi)聚性的。/* 功能內(nèi)聚性例子*根據(jù)出生年份得出年齡*/#include #include void GetAge()int BirthYear = 0;int Age = 0;printf(s,請輸入出生年份:);scanf(%d, &BirthYear);time_t rawtime;struct tm * timeinfo;time ( &rawtime );timeinfo = loca
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 30137-2024電能質(zhì)量電壓暫升、電壓暫降與短時(shí)中斷
- 2024版泥水作業(yè)班組承包協(xié)議書
- 二零二五年度股權(quán)收益權(quán)轉(zhuǎn)讓合同范本與收益分配3篇
- 二零二五年航空航天零部件制造合同協(xié)議模板2025版3篇
- 二零二五年金融產(chǎn)品居間服務(wù)協(xié)議范本3篇
- 二零二五年度智能化設(shè)備技術(shù)入股合作協(xié)議范本3篇
- GRC材質(zhì)2024裝飾構(gòu)件定制合作協(xié)議版B版
- 二零二五版汽車租賃轉(zhuǎn)讓與保險(xiǎn)責(zé)任合同2篇
- 2024混凝土施工勞務(wù)分包合同
- 2024年跨區(qū)域生態(tài)環(huán)境保護(hù)合作協(xié)議
- 2020小升初復(fù)習(xí)-小升初英語總復(fù)習(xí)題型專題訓(xùn)練-完形填空15篇
- 2023年浙江省公務(wù)員考試面試真題解析
- GB/T 5796.3-2022梯形螺紋第3部分:基本尺寸
- GB/T 16407-2006聲學(xué)醫(yī)用體外壓力脈沖碎石機(jī)的聲場特性和測量
- 簡潔藍(lán)色科技商業(yè)PPT模板
- 錢素云先進(jìn)事跡學(xué)習(xí)心得體會
- 道路客運(yùn)車輛安全檢查表
- 宋曉峰辣目洋子小品《來啦老妹兒》劇本臺詞手稿
- 附錄C(資料性)消防安全評估記錄表示例
- 噪音檢測記錄表
- 推薦系統(tǒng)之協(xié)同過濾算法
評論
0/150
提交評論