




已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第7章結(jié)構(gòu)化系統(tǒng)設(shè)計(jì) 1 本章主要內(nèi)容 系統(tǒng)設(shè)計(jì)的任務(wù)總體設(shè)計(jì)結(jié)構(gòu)化設(shè)計(jì)的概念 基本原則從數(shù)據(jù)流圖導(dǎo)出結(jié)構(gòu)圖詳細(xì)設(shè)計(jì)代碼設(shè)計(jì)輸出設(shè)計(jì)輸入設(shè)計(jì)人機(jī)對話設(shè)計(jì)模塊詳細(xì)設(shè)計(jì)數(shù)據(jù)庫設(shè)計(jì) 網(wǎng)絡(luò)設(shè)計(jì)系統(tǒng)設(shè)計(jì)說明書 2 7 2 1模塊的概念 模塊 Module 一詞使用很廣泛 通常對應(yīng)于用一個(gè)名字就可以調(diào)用的一段程序語句 子程序或函數(shù) 模塊具有輸入和輸出 邏輯功能 運(yùn)行程序 內(nèi)部數(shù)據(jù)四種屬性 計(jì)算年齡 模塊的圖形表示方法 模塊的函數(shù)接口表示 intcomputeAge datebirthday 3 7 2 2模塊結(jié)構(gòu)圖 結(jié)構(gòu)圖 StructuredChart 描述系統(tǒng)的模塊結(jié)構(gòu)及模塊間的聯(lián)系結(jié)構(gòu)圖中的主要成分有 模塊 用長方形表示調(diào)用 從一個(gè)模塊指向另一模塊的箭頭表示前一個(gè)模塊調(diào)用后一個(gè)模塊 有循環(huán)調(diào)用和條件調(diào)用數(shù)據(jù) 用帶圓圈的小箭頭表示從一個(gè)模塊傳遞給另一模塊的數(shù)據(jù) 有實(shí)義 控制信息 帶涂黑圓圈的小箭頭表示一個(gè)模塊傳送給另一模塊的控制信息 4 主調(diào)模塊 被調(diào)模塊 被調(diào)模塊 主調(diào)模塊 被調(diào)模塊 被調(diào)模塊 循環(huán)調(diào)用 條件調(diào)用 1 結(jié)構(gòu)圖無嚴(yán)格的模塊調(diào)用順序 但一般習(xí)慣從左至右2 因?yàn)榧s定遵從從上向下的調(diào)用 調(diào)用關(guān)系也可以不使用箭頭 而直接使用直線3 模塊間傳遞的信息如果出現(xiàn)在數(shù)據(jù)字典中 則視為數(shù)據(jù) 否則為控制信息 結(jié)構(gòu)圖的畫法 5 一個(gè)完整的結(jié)構(gòu)圖 6 簡單的模塊結(jié)構(gòu)圖 憑證管理模塊的下層模塊 憑證輸入 憑證審核 憑證查詢打印 憑證匯總 記賬 7 模塊設(shè)計(jì)的度量標(biāo)準(zhǔn) 為了衡量模塊的相對獨(dú)立性 提出了模塊間的耦合 Coupling 與模塊的內(nèi)聚 Cohesion 兩個(gè)標(biāo)準(zhǔn)耦合 模塊和模塊之間的聯(lián)系程度內(nèi)聚 模塊內(nèi)部各元素之間的聯(lián)系程度設(shè)計(jì)目標(biāo) 模塊內(nèi)的聯(lián)系越緊越好模塊間的聯(lián)系越少越好為什么 8 7 2 3模塊的耦合 doubleCalculateAvg intn doubletotal average value scanf 輸入個(gè)數(shù) n 兩個(gè)模塊之間存在聯(lián)系 9 影響耦合度的因素 如果使用模塊A需要了解模塊B 那么A和B是耦合的 影響模塊間耦合程度有三方面的因素 聯(lián)系方式 模塊間通過什么方式聯(lián)系來往信息的作用 模塊間來往信息作什么用數(shù)量 模塊間來往信息的多少 混合控制數(shù)據(jù) 用過程直接引用語句調(diào)用 少 多 數(shù)量 方式 作用 0 離坐標(biāo)原點(diǎn)越遠(yuǎn) 耦合程度越高 10 模塊聯(lián)系方式 直接引用 一個(gè)模塊直接存取另一個(gè)模塊的某些信息 例如全程變量 FORTRAN的common量 語言的extern量 共享的通信區(qū)等 也稱為公共環(huán)境耦合 commonenvironmentcoupling 降低這種耦合程度的辦法是使數(shù)據(jù)局部化 即使用局部變量過程語句調(diào)用 一個(gè)模塊調(diào)用另一個(gè)模塊 所有數(shù)據(jù)來往都以參數(shù)或返回值方式傳遞并使用 11 來往信息的作用 模塊間的來往信息可以作數(shù)據(jù)用 也可以作控制信息用 A 取平均成績或最高成績 平均 最高B a 控制耦合 成績 取最高成績 取平均成績 A 平均成績 最高成績 b 數(shù)據(jù)耦合 12 來往信息的數(shù)量 模塊間傳遞的信息量越大 它們之間的耦合程度越高 一個(gè)模塊最好只了解它確實(shí)需要使用的數(shù)據(jù) 而完全不知道其他數(shù)據(jù)的存在 獨(dú)立性好 13 耦合的類型 根據(jù)以上因素 對耦合分類如下 數(shù)據(jù)耦合 采用子程序調(diào)用 調(diào)用模塊將需要進(jìn)行處理的數(shù)據(jù)傳遞給被調(diào)模塊 數(shù)據(jù)耦合是不可避免的 標(biāo)記耦合 如果調(diào)用模塊將整個(gè)數(shù)據(jù)記錄傳遞給被調(diào)模塊 而被調(diào)模塊只使用了部分?jǐn)?shù)據(jù)項(xiàng) 則稱為標(biāo)記耦合或特征耦合 控制耦合 一個(gè)模塊將控制信息傳遞給另一個(gè)模塊 以控制被調(diào)模塊的內(nèi)部處理邏輯 可以分解 公共環(huán)境耦合 如果兩個(gè)模塊共享同一全局?jǐn)?shù)據(jù) 稱為公共耦合 內(nèi)容耦合 兩個(gè)模塊之間的內(nèi)部屬性有直接關(guān)聯(lián) 也稱病態(tài)耦合 某些GOTO語句 14 減低耦合的設(shè)計(jì)原則 結(jié)構(gòu)化設(shè)計(jì)要求模塊間的耦合程度盡可能小 為此應(yīng) 用過程語句調(diào)用其它模塊模塊間的參數(shù)作數(shù)據(jù)用模塊間的參數(shù)盡可能少 15 7 2 4模塊的內(nèi)聚 doubleCalculateAvg intn doubletotal average value scanf inputvalue 模塊內(nèi)部各元素 變量 語句 之間存在聯(lián)系 16 內(nèi)聚的好處 模塊的內(nèi)聚反映模塊內(nèi)部聯(lián)系的緊密程度 一個(gè)模塊只需要做好一件事情 不要過分關(guān)心其它任務(wù) 高內(nèi)聚性的好處是可以提高程序的可靠性 有一個(gè)調(diào)查表明 50 的強(qiáng)內(nèi)聚性子程序是沒有錯(cuò)誤的 而只有18 的弱內(nèi)聚性子程序才是無錯(cuò)的 弱內(nèi)聚性子程序的出錯(cuò)機(jī)會要比強(qiáng)內(nèi)聚性出錯(cuò)機(jī)會高6倍 而修正成本則要高19倍 摘自 代碼大全 17 內(nèi)聚的類型 模塊的內(nèi)聚可以分以下七類 偶然內(nèi)聚 coincidentalcohesion 邏輯內(nèi)聚 Logicalcohesion 時(shí)間內(nèi)聚 temporalcohesion 步驟內(nèi)聚 proceduralcohesion 通信內(nèi)聚 communicationalcohesion 順序內(nèi)聚 Sequentialcohesion 功能內(nèi)聚 functional cohesion 18 當(dāng)同一個(gè)子程序中的操作之間無任何聯(lián)系時(shí) 為偶然內(nèi)聚性 也叫作 無內(nèi)聚性 比如只是為了將程序中某幾處湊巧相同的一些語句組合起來形成的一個(gè)模塊 P Q R S 1 偶然內(nèi)聚 B A read Cardfile D C T 19 將幾個(gè)邏輯上相似的功能放在一個(gè)模塊中 比如常見的出錯(cuò)處理模塊 工作模塊發(fā)現(xiàn)錯(cuò)誤后 調(diào)用錯(cuò)誤處理模塊 將錯(cuò)誤號作為控制參數(shù)傳入 然后出錯(cuò)處理模塊根據(jù)不同的錯(cuò)誤號執(zhí)行相應(yīng)的操作 2 邏輯內(nèi)聚 20 將在有限時(shí)間單元內(nèi)處理的成分組合為同一模塊比如在程序初始化時(shí)所作的處理 m Medirecno psPerson MedirecnotxtMedirecno psPerson MedirecnotxtTel psPerson TeltxtContact psPerson ContacttxtAddr psPerson AddrtxtMedirecno Enabled False 可視化程序設(shè)計(jì)中在窗口打開時(shí)初始化窗口中得控件內(nèi)容 如列表框的項(xiàng)目 文本框或單選鈕的缺省取值還比如 C 的構(gòu)造函數(shù) 析構(gòu)函數(shù) 3 時(shí)間內(nèi)聚 21 4 步驟內(nèi)聚 當(dāng)子程序中的操作是按某一特定過程結(jié)構(gòu)進(jìn)行的 就是步驟內(nèi)聚 例如 用戶想按一定的順序打印告 子程序設(shè)計(jì)成是用于按順序打印銷售收入 開支 雇員電話表的 步驟內(nèi)聚在時(shí)間內(nèi)聚的基礎(chǔ)上增加了次序的約束 22 模塊劃分示例 23 PREP PLANLOOP STMRO 主模塊 TYPDECID 準(zhǔn)備好的矩陣指示標(biāo)記 準(zhǔn)備好的矩陣指示標(biāo)記 矩陣指示標(biāo)記 部分結(jié)果 標(biāo)簽等 模塊PERP是一個(gè)初始化模塊 屬時(shí)間內(nèi)聚 模塊PLANLOOP和TYPDECID都屬于步驟內(nèi)聚 前者的元素用于控制主循環(huán) 后者的元素負(fù)責(zé)主循環(huán)的整個(gè)判定執(zhí)行過程 繪制劃分后的模塊圖 24 當(dāng)模塊內(nèi)的成分引用共同的數(shù)據(jù) 而不存在其他聯(lián)系時(shí) 稱為通信內(nèi)聚 修改庫存 購貨單 開發(fā)貨單 庫存 A 銷售模塊 B 產(chǎn)生留退名單模塊 期末不及格統(tǒng)計(jì) 累計(jì)不及格統(tǒng)計(jì) 5 通信內(nèi)聚 25 模塊中某個(gè)成分的輸出是另一成分的輸入 比如顯示期末成績通知 6 順序內(nèi)聚 26 6 順序內(nèi)聚 順序內(nèi)聚有較強(qiáng)的內(nèi)聚性是步驟內(nèi)聚和通信內(nèi)聚的結(jié)合例如 一個(gè)模塊用于計(jì)算高于平均分的人數(shù) 步驟是先循環(huán)累計(jì)總分 然后計(jì)算得到平均分 最后循環(huán)統(tǒng)計(jì)高于平均分的人數(shù)有步驟的先后 而且前一個(gè)步驟的結(jié)果要用于后一步驟的運(yùn)算中但仍然不是最高的內(nèi)聚類型 27 7 功能內(nèi)聚 一個(gè)模塊包括并且僅僅包括為完成一個(gè)具體任務(wù)所需要的所有成分 稱為功能內(nèi)聚 功能內(nèi)聚性是最強(qiáng)也是最好的一種內(nèi)聚例如 打印職工名單 PrintStaffList 例如 計(jì)算平均分 CalculateAvg 僅用一個(gè)動(dòng)賓詞組能明確指出這個(gè)模塊的所有功能 28 內(nèi)聚的評分 耦合和內(nèi)聚的概念是Stevens等人提出的 是測量一個(gè)模塊化系統(tǒng)好壞的標(biāo)志 按他們的觀點(diǎn) 給上述七種內(nèi)聚評分如下 功能內(nèi)聚 分順序內(nèi)聚 分通信內(nèi)聚 分步驟內(nèi)聚 分時(shí)間內(nèi)聚 分邏輯內(nèi)聚 分偶然內(nèi)聚 分可以給一個(gè)軟件的所有模塊打分 最后計(jì)算平均分 作為軟件結(jié)構(gòu)質(zhì)量評價(jià)的參考 29 耦合和內(nèi)聚的關(guān)系 二者就像連體兄弟 存在緊密相關(guān)的關(guān)系 模塊內(nèi)的高內(nèi)聚往往意味著模塊間的松耦合反之 低內(nèi)聚一般會帶來緊耦合 30 7 2 5作用范圍與控制范圍 一個(gè)判斷的作用范圍是所有這樣的模塊的集合 這些模塊內(nèi)含有依賴于這個(gè)判斷結(jié)果的處理 或稱影響范圍 一個(gè)模塊的控制范圍是指它本身及其所有下屬模塊的集合 D計(jì)算總工資 C計(jì)算職工工資 B計(jì)算臨時(shí)工工資 A計(jì)算工資 模塊A的控制范圍是 A B C D 假如判斷x出現(xiàn)在模塊A中 并且僅在A中使用了x 則該判斷的作用范圍是 A 而B C D不受影響 31 判斷的設(shè)計(jì)原則 一個(gè)設(shè)計(jì)原則 對于任何一個(gè)判斷 其作用范圍應(yīng)該是這個(gè)判斷所在模塊的控制范圍的一個(gè)子集該原則的目的 消除控制耦合 降低耦合度想象一下 假設(shè)某個(gè)控制標(biāo)志在系統(tǒng)的很多部分發(fā)揮作用 那么可能會產(chǎn)生這樣一種情況 錯(cuò)誤發(fā)作的位置離產(chǎn)生錯(cuò)誤的源頭很遠(yuǎn) 這給程序調(diào)試和維護(hù)帶來極大困難 32 a TOP X Y A B1 B2 b B X Y A B1 B2 TOP c X B A B1 B2 TOP d X Y A B1 B2 作用范圍和控制范圍圖示 33 期末成績查詢 34 Main stuNo 讀入學(xué)號模塊調(diào)用成績查詢模塊調(diào)用顯示模塊 主模塊 35 成績查詢模塊 調(diào)用查期末成績模塊如果有不及格科目則標(biāo)志1 True調(diào)用不及格處理模塊 不及格處理模塊 標(biāo)志2 確定留退模塊 如果標(biāo)志2 True則調(diào)用查補(bǔ)考安排模塊 顯示結(jié)果模塊 調(diào)用顯示成績模塊如果標(biāo)志1 True則調(diào)用不及格顯示模塊 顯示不及格處理模塊 如果標(biāo)志2 True則調(diào)用留退通知模塊否則調(diào)用補(bǔ)考通知模塊 子模塊 36 學(xué)生期末成績查詢 讀入學(xué)號 顯示成績 查詢成績 顯示成績 不及格處理 確定留退 顯示補(bǔ)考 顯示留退 改寫后的模塊圖 37 7 2 6模塊的扇入與扇出 模塊的扇入是指有多少個(gè)上級模塊調(diào)用它 模塊的扇出是指模塊的直屬下層模塊的個(gè)數(shù) 扇出系數(shù)不宜過大 A的扇出為2 A B C B1 C1 C2 C3 B的扇出為1 C的扇出為3 T T的扇入為2 38 總體設(shè)計(jì)原則 設(shè)計(jì)功能內(nèi)聚的模塊模塊使用過程語句調(diào)用其它模塊 傳遞的參數(shù)作數(shù)據(jù)用 并且盡可能少模塊內(nèi)語句數(shù)一般為50 100平均扇出系數(shù)最好是3 5高層模塊高扇出 最低層模塊高扇入一個(gè)判斷的作用范圍是判斷所在模塊的控制范圍的子集 39 7 2 7模塊總體設(shè)計(jì)舉例 問題描述 病人監(jiān)護(hù)系統(tǒng)中的實(shí)時(shí)監(jiān)測模塊 該模塊使用病床專用設(shè)備測量病人的若干生理參數(shù) 如體溫 脈搏 血壓等等 每個(gè)病人各種指標(biāo)的安全范圍由醫(yī)生預(yù)先指定 每經(jīng)過一定的時(shí)間間隔 監(jiān)測模塊從監(jiān)視設(shè)備讀入這些數(shù)據(jù) 并存入數(shù)據(jù)庫中 若發(fā)現(xiàn)某個(gè)指標(biāo)超出合理范圍 則向維修站發(fā)出設(shè)備故障通知 報(bào)告床號 若發(fā)現(xiàn)某個(gè)指標(biāo)越出安全范圍 則向護(hù)理站發(fā)出通知 報(bào)告病人號 40 分析產(chǎn)生的DFD 病歷 合理數(shù)據(jù) 數(shù)據(jù) 不安全因素 讀取數(shù)據(jù) 存儲數(shù)據(jù) 檢查數(shù)據(jù) 通報(bào)不安全因素 不合理數(shù)據(jù) 可以劃分哪些模塊呢 41 FS2 病人監(jiān)護(hù) 采集數(shù)據(jù) 檢查數(shù)據(jù) 處理數(shù)據(jù) 獲取下一個(gè)病人 PN FS EOF EF EOF FS EF USF EF USF FS PN EF USF PN FS PN FS EF PN EF PN FS FSSR 讀取數(shù)據(jù) 檢查不合理范圍 查詢安全范圍 判定病人是否安全 寫數(shù)據(jù)庫 通報(bào)設(shè)備故障 通報(bào)不安全因素 EF BN PN FS EF PN BN 初始結(jié)構(gòu)圖 PN 病人號 BN 床位號 SR 安全范圍 FS 各指標(biāo)數(shù)據(jù) EF 設(shè)備故障標(biāo)志 EOF 標(biāo)志已查過最后一個(gè)病人 FS2 標(biāo)志指標(biāo)是否合理 USF 標(biāo)志指標(biāo)不安全 42 第1次改進(jìn) 處理數(shù)據(jù) 模塊沒有實(shí)質(zhì)性的功能 所包含的三個(gè)子模塊相互之間沒有什么關(guān)聯(lián) 內(nèi)聚程度很低 該模塊只是充當(dāng)了 管道 改進(jìn)如下 廢除 處理數(shù)據(jù) 模塊 直接由主模塊調(diào)用 通報(bào)設(shè)備故障 通報(bào)不安全因素 和 寫數(shù)據(jù)庫 三個(gè)模塊 43 病人監(jiān)護(hù) 寫數(shù)據(jù)庫 通報(bào)不安全因素 通報(bào)設(shè)備故障 檢查數(shù)據(jù) 采集數(shù)據(jù) 第1次改進(jìn)結(jié)果 44 第2次改進(jìn) 通報(bào)設(shè)備故障時(shí)應(yīng)通報(bào)床位號而不應(yīng)是病人號 因此要傳遞床位號 床位號BN可由 采集數(shù)據(jù) 模塊傳給主模塊 再由主模塊傳遞給 通知設(shè)備故障 模塊 但這樣做增加了模塊間的聯(lián)系 改為由 采集數(shù)據(jù) 模塊直接調(diào)用 45 PN FS 病人監(jiān)護(hù) 采集數(shù)據(jù) 檢查數(shù)據(jù) 通報(bào)不安全因素 獲取下一個(gè)病人 PN FS EOF EF PN BN EOF FS EF USF USF PN FS2 PN EF PN FS FSSR SR 讀取數(shù)據(jù) 檢查不合理范圍 查詢安全范圍 判定病人是否安全 寫數(shù)據(jù)庫 通報(bào)設(shè)備故障 EF BN PN FS EF FS 第2次改進(jìn)結(jié)果 46 第3次改進(jìn) 若由 檢查數(shù)據(jù) 模塊直接調(diào)用 通報(bào)不安全因素 模塊 則可減少模塊間的聯(lián)系 即不用傳遞USF標(biāo)志 排除控制耦合 這樣的話 檢查數(shù)據(jù) 的名字改為 報(bào)告不安全因素 更為恰當(dāng) 47 第3次改進(jìn)結(jié)果 病人監(jiān)護(hù) 采集數(shù)據(jù) 報(bào)告不安全因素 寫數(shù)據(jù)庫 PN FS EOF EF EF USF PN SR FS EF PN FS 查詢安全范圍 通報(bào)不安全因素 PN FS 判定病人是否安全 48 第4次改進(jìn) 獲取下一個(gè)病人 模塊要返回病人號和床位號 接口比較復(fù)雜 如果使 讀取數(shù)據(jù) 模塊包括從病人號查床位號的功能 則 獲取下一個(gè)病人 模塊的接口可以簡化 49 第4次改進(jìn)結(jié)果 采集數(shù)據(jù) 獲取下一個(gè)病人 PN EOF FS EF PN BN FS 讀取數(shù)據(jù) 檢查不合理因素 從PN查BN PN 通報(bào)設(shè)備故障 FS2 BN 50 第5次改進(jìn) 通過床號讀取數(shù)據(jù) 功能很明確 但目前包含在 讀取數(shù)據(jù) 模塊中 這部分程序代碼如果抽取出來單獨(dú)成為一個(gè)模塊更好 名字為 從床號讀數(shù)據(jù) 該模塊可以成為一個(gè)公用模塊 很易于重用 51 第5次改進(jìn)結(jié)果 采集數(shù)據(jù) 獲取下一個(gè)病人 PN EOF FS EF PN BN FS EOF PN FS2 BN 從PN查BN 從床號讀數(shù)據(jù) 通報(bào)設(shè)備故障 檢查不合理因素 BN 采集病人數(shù)據(jù) 52 第6次改進(jìn) 從床號讀數(shù)據(jù) 應(yīng)該是功能單一 調(diào)用 通報(bào)設(shè)備故障 不應(yīng)屬于該模塊內(nèi)容 將 通報(bào)設(shè)備故障 改為上層模塊調(diào)用 使 從床號讀數(shù)據(jù) 模塊功能更明確 公用性也更好 53 第6次改進(jìn)結(jié)果 病人監(jiān)護(hù) 采集數(shù)據(jù) 報(bào)告不安全因素 寫數(shù)據(jù)庫 判定下一個(gè)病人 PN FS EOF EF PN EOF FS EF USF PN EF SR EF FS PN FS SR 采集病人數(shù)據(jù) 檢查安全范圍 判定病人是否安全 通報(bào)不安全因素 EF PN PN FS 從PN查BN 從床號讀數(shù)據(jù) 通報(bào)設(shè)備故障 檢查不合理因素 BN BN EF FS BN FS FS2 PN FS 54 第7次改進(jìn) 給護(hù)士站或維修站的通報(bào)消息可能采用了同一種方式或界面 因此可能會有公用的模塊 比如 寫一行 或者 發(fā)出警報(bào) 之類 因此再抽出一個(gè)模塊 寫一行 供兩個(gè)模塊調(diào)用 55 第7次改進(jìn)結(jié)果 病人監(jiān)護(hù) 采集數(shù)據(jù) 報(bào)告不安全因素 寫數(shù)據(jù)庫 判定下一個(gè)病人 PN FS EOF EF PN EOF FS EF USF PN EF SR EF FS PN FS FS SR 采集病人數(shù)據(jù) 檢查安全范圍 判定病人是否安全 通報(bào)不安全因素 EF PN PN FS 從PN查BN 從床號讀數(shù)據(jù) 通報(bào)設(shè)備故障 產(chǎn)生一行 寫一行 檢查不合理因素 BN BN EF EF FS BN FS FS2 PN FS 一行 一行 一行 56 結(jié)構(gòu)圖優(yōu)化方法 減少模塊間的聯(lián)系 減少參數(shù)傳遞 特別是控制信息的傳遞消除重復(fù)功能消除 管道 模塊考慮變化控制模塊大小整體考慮參照系統(tǒng)分析說明書 57 7 2 8對已有程序進(jìn)行重構(gòu) 重構(gòu) Refactoring 在不改變程序代碼功能的前提下 對程序結(jié)構(gòu)所進(jìn)行的改造因?yàn)椴皇强偰芴崆白龀鲎詈玫脑O(shè)計(jì) 或者對遺留系統(tǒng)的維護(hù)過程中提高品質(zhì)而做出的結(jié)構(gòu)變化參見 重構(gòu) 改善既有代碼的設(shè)計(jì) 58 VoidprintOwing Enumeratione orders elements doubleoutstanding 0 0System out println System out println CustomerOwes System out println While e hasMoreElements Ordereach Order e nextElement outstanding each getAmount System out println name name System out println amoutn outstanding 模塊重構(gòu)例1 59 重構(gòu)后的例1 voidpr
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘蔗產(chǎn)量預(yù)測模型與可視化趨勢分析
- 黑龍江鐵力市四中學(xué)2025屆七年級數(shù)學(xué)第一學(xué)期期末復(fù)習(xí)檢測模擬試題含解析
- 重慶十一中2025屆八上數(shù)學(xué)期末調(diào)研試題含解析
- 企業(yè)稅收優(yōu)惠政策解讀與應(yīng)用合同范本
- 學(xué)校學(xué)生自救自護(hù)的消防技能學(xué)習(xí)資料
- 《1+X網(wǎng)店運(yùn)營推廣考證》課件
- 大數(shù)據(jù)技術(shù)及其在各領(lǐng)域的應(yīng)用研究
- 2025至2030基于細(xì)胞的分析行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報(bào)告
- 游樂場及動(dòng)物園的排水優(yōu)化策略
- 2025至2030滌棉行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 歷史人教部編版八年級(上冊)第13課五四運(yùn)動(dòng)課件(23張)2024版新教材
- 美國技術(shù)服務(wù)合同英文翻譯
- 企業(yè)數(shù)字化生存指南
- 醫(yī)院醫(yī)療器械臨床試驗(yàn)項(xiàng)目資料備案清單
- YDT 5206-2023寬帶光纖接入工程技術(shù)規(guī)范
- 新疆警察學(xué)院面試問題及答案
- 小學(xué)三到六年級全冊單詞默寫(素材)-2023-2024學(xué)年譯林版(三起)小學(xué)英語
- 鐵嶺市高校畢業(yè)生“三支一扶”計(jì)劃招募筆試真題2022
- 天然氣泄漏事故演練方案及評估
- 《養(yǎng)老機(jī)構(gòu)認(rèn)知障礙照護(hù)專區(qū)設(shè)置與服務(wù)規(guī)范》
- 婦科炎癥健康教育課件
評論
0/150
提交評論