freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο蟪绦蛟O(shè)計(jì)課程設(shè)計(jì)指導(dǎo)書-在線瀏覽

2024-08-03 13:12本頁面
  

【正文】 rectional)關(guān)聯(lián)。 在 UML中,表示雙向關(guān)聯(lián)關(guān)系的符號(hào)是一條不帶箭頭的實(shí)線。 有些設(shè)計(jì)人員習(xí)慣為關(guān)聯(lián)關(guān)系加上修飾,包括關(guān)聯(lián)的名稱、角色和重?cái)?shù)。一個(gè) Tire類對(duì)象與一個(gè)或 0個(gè) Vehicle類對(duì)象相關(guān)聯(lián);而一個(gè) Vehicle類對(duì)象與 4個(gè)或更多的 Tire類對(duì)象相關(guān)聯(lián)。如果關(guān)聯(lián)的雙方存在著“整體 部分”( wholepart)的關(guān)系,則稱這種關(guān)聯(lián)為聚集關(guān)系。因?yàn)楣荆ㄗ鳛橐粋€(gè)整體)是由員工(部分)構(gòu)成的,即公司由員工和雇工構(gòu)成。 組成( position)關(guān)系是一種比聚集關(guān)系更強(qiáng)的關(guān)聯(lián)關(guān)系,即聚集關(guān)系中的“部分”在某一個(gè)時(shí)間點(diǎn) 上只屬于一個(gè)“整體”。例如,一個(gè)輪胎在一定時(shí)間只屬于某一車輛,它們構(gòu)成組成關(guān)系;而一個(gè)員工則可以同時(shí)為兩家公司工作,不能構(gòu)成組成關(guān)系。如果覺得區(qū)分它們是有幫助的,則可以按照其含義使用它們。 實(shí)例:打印發(fā)票 在本章中,建議采用如下 5 個(gè)開發(fā)過程: CRC 卡片技術(shù)來找出類、類的職責(zé)及類之間的 協(xié)作關(guān)系; UML 類圖來描述類關(guān)系; ; 。在這個(gè)過程中并不需要學(xué)習(xí)大量的符號(hào)表示,也比較容易畫出類圖。當(dāng)然,如果實(shí)際遇到的項(xiàng)目很復(fù)雜,那么上述步驟就顯得不夠用了,此時(shí)讀者需要學(xué)習(xí)更多的正規(guī)設(shè)計(jì)方法。調(diào)用序列及程序的整體框架,等等,這些技術(shù)對(duì)于相對(duì)簡單的系統(tǒng)也是很有幫助的。在此 ,所給出的方法可能有大材小用之嫌,但這對(duì)于讓讀者更好地領(lǐng)會(huì)這些步驟中所用到的方法是非常有用的。 在進(jìn)一步簡介如何解決程序設(shè)計(jì)問題的方法時(shí),應(yīng)當(dāng)注意,在此所給出的解決方法只是眾多可供選擇的開發(fā)方法中的一種。 需求分析 下面程序的任務(wù)是打印發(fā)票。在此,不考慮實(shí)際發(fā)票中應(yīng)包含的日期、稅、發(fā)票和客戶編號(hào)等復(fù)雜項(xiàng)。其中項(xiàng)列表中每行包括產(chǎn)品的名稱、單價(jià)、數(shù)量以及小計(jì)。s Small Appliances ? 100 Main Street ? Anytown, CA 98765 ? ? Description Price Qty Total ? Toaster 3 ? Hair dryer 1 ? Car vacuum 2 ? ? AMOUNT DUE: $ 同時(shí)為了簡化問題,程序不提供相互用戶接口。 CRC 卡片 首先需要找出系統(tǒng)中存在哪些類。在本問題中,出現(xiàn)的名詞有: 發(fā)票( Invoice) 地址( Address) 產(chǎn)品項(xiàng)( Item) 產(chǎn)品( Product) 產(chǎn)品描述( Description) 單價(jià)( Price) 數(shù)量( Quantity) 小計(jì)( Total) 合計(jì)金額( Amount Due) (顯然, Toaster 這個(gè)名詞不能列入其中,因?yàn)?Toaster 是一個(gè)具體的產(chǎn)品描述,它是一個(gè)數(shù)據(jù)值,不可能構(gòu)成一個(gè)類。 小計(jì)和合計(jì)金額是由計(jì)算得到的,不能固定地存儲(chǔ)于某一個(gè)地方,所以它們不構(gòu)成類。下面將分析各個(gè)類的職責(zé)。發(fā)票要實(shí)現(xiàn)地址打印功能則需要借助 Address 類的幫助,所以在Address 類在 CRC 卡片上做如下記錄: 類似地,打印產(chǎn)品項(xiàng)應(yīng)該是類 Item 的職責(zé)。按照 CRC 卡片的使用要求,應(yīng)該將這種協(xié)作關(guān)系表現(xiàn)在卡片上。要得到該合計(jì)金額,需要提取每一個(gè)產(chǎn)品項(xiàng)的金額數(shù)據(jù)。這要求類 Product 具有提供產(chǎn)品價(jià)格的功能,同時(shí)該類又是產(chǎn)品項(xiàng)類 item 的一個(gè)協(xié)作者。因此,這也是類 Invoice 的一個(gè)職責(zé)。 UML 圖 從 CRC 卡片中的協(xié)作者一列,可以得到類之間的依賴關(guān)系,每個(gè)類依賴于與其有協(xié)作關(guān)系的類。而類 Item依賴于類 Product。一個(gè) Invoice 類對(duì)象是如何知道與其相關(guān)的地址、產(chǎn)品項(xiàng)以及產(chǎn)品對(duì)象的呢?首先,一個(gè) Invoice 類對(duì)象必須保存一個(gè)地址以及相關(guān)的產(chǎn)品項(xiàng),以便于打印 發(fā)票。 因此,類 Invoice 與類 Address 和類 Item 之間構(gòu)成關(guān)聯(lián)關(guān)系,但與類 Product 之間沒有關(guān)聯(lián)關(guān)系,即從一個(gè) Invoice 類對(duì)象無法直接操作類 Product 對(duì)象。從上面的分析中也可以看出,在類 Item 和類 Product 之間存在關(guān)聯(lián)關(guān)系。 類及其方法的注釋 設(shè)計(jì)階段的最后一步是對(duì)所發(fā)現(xiàn)的類及其相應(yīng)類的職責(zé)文檔化,即寫出類及其成員函數(shù)的注釋文檔。而對(duì)于類成員函數(shù),則需要做進(jìn)一步的工作。 下面是范例中發(fā)票類的注釋文檔: ? /** ? Describes an invoice for a set of purchased products. ? */ ? class Invoice ? { ? public: ? /** ? Adds a charge for a product to this invoice. ? param aProduct the product that the customer ordered ? param quantity the quantity of the product ? */ ? void add(Product p, int qunatity)。 ? }。 ? ? /** ? Prints this item ? */ ? void print() const。 ? ? // etc. 可以通過一個(gè)注釋提取程序從上述注釋文檔中獲得相應(yīng)的格式化 HTML 文檔??梢詤⒁娕c本書相應(yīng)的 web 網(wǎng)站來了解更多的信息。首先,可以在開發(fā)團(tuán)對(duì)中共享這份文檔;其次,文檔格式遵循了 C++類編寫的形式,所以很容易進(jìn)行編碼工作;最重要的是注釋文檔為類中的關(guān)鍵成員函數(shù)提供了注釋,而這項(xiàng)工作通常由程序員在實(shí)現(xiàn)階段完成,但往往由于太忙而忽略了這項(xiàng)工作。 上面的步驟已經(jīng)得到成員函數(shù)名及其注釋,現(xiàn)在需要參照 UML 圖來為各個(gè)類添加數(shù)據(jù)成員。為了存儲(chǔ)多個(gè) Item 類對(duì)象,可以使用一個(gè)向量,下面是類 Invoice 的數(shù)據(jù)成員: ? class Invoice ? { ? ? ? private: ? Address billing_address。 ? }。因此,得到 Item 類的數(shù)據(jù)成員如下: ? class Item ? { ? ? ? private: ? Product prod。 ? }。例如,我們已經(jīng)知道類 Item 中的成員函數(shù) get_total_price 的功能,它通過產(chǎn)品單價(jià)和數(shù)量相乘來計(jì)算產(chǎn)品的小計(jì)金額。 ? }。 最后,還需要為每一個(gè)類提供構(gòu)造函數(shù)。建議讀者從頭到尾完整地對(duì)照 CRC 卡片和 UML 類圖了解類及其成員設(shè)計(jì)的方法。 006: 007: /** 008: Describes a product with a description and a price. 009: */ 010: class Product 011: { 012: public: 013: Product()。 015: /** 016: Gets the product description. 017: return the description 018: */ 019: string get_description() const。 026: 027: private: 028: string description。 030: }。 035: } 036: 037: Product::Product(string d, double p) 038: { 039: description = d。 041: } 042: 043: string Product::get_description() const 044: { 045: return description。 051: } 052: 053: /** 054: Describes a quantity of an article to purchase and its price. 055: */ 056: class Item 057: { 058: public: 059: Item()。 061: /** 062: Computes the total cost of this item. 063: return the total price 064: */ 065: double get_total_price() const。 071: private: 072: Product prod。 074: }。 080: } 081: 082: Item::Item(Product p, int q) 083: { 084: prod = p。 086: } 087: 088: double Item::get_total_price() const 089: { 090: return () * quantity。 096: string description = ()。 099: 100: // pad with spaces to fill column 101: 102: int pad = COLUMN_WIDTH ()。 i = pad。 105: 106: cout () 107: quantity 108: get_total_price() \n。 118: Address(string n, string s, 119: string c, string st, string z)。 124: private: 125: string name。 127: string city。 129: string zip。 131: 132: Address::Address() {} 133: 134: Address::Address(string n, string s, 135: string c, string st, string z) 136: { 137: name = n。 139: city = c。 141: zip = z。 148: } 149: 150: /** 151: Describes an invoice for a set of purchased products. 152: */ 153: class Invoice 154: { 155: public: 156: Invoice(Address a)。 163: /** 164: Prints the invoice. 165: */ 166: void print() const。 169: vectorItem items。 171: 172: Invoice::Invoice(Address a) 173: { 174: billing_address = a。 180: (it)。 186: ()。 189: for (int i = 0。 i++) 190: items[i].print()。 193: for (int i = 0。 i++) 194: amount_due = amount_due + items[i].get_total_price()。 197: } 198: 199: int main() 200: { 201: Address sams_address(Sam39。 203: 204: Invoice sams_invoice(sams_address)。 206: (Product(Hair dryer, ), 1)。 208: 209: ()。 211: 第三章 課程設(shè)計(jì)題目 菜單選擇趣味程序 菜單是應(yīng)用程序的界面,控制語句用來改變程序執(zhí)行的順序,是實(shí) 現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)的基礎(chǔ)。 本章的設(shè)計(jì)分為兩步:首先設(shè)計(jì)一個(gè)含有多個(gè)菜單項(xiàng)的菜單演示程序,然后再為這些菜單配上相應(yīng)的功能。 1.解一元二次方程 2.出圈游戲之一 3.出圈游戲之二 4.退出程序 選擇 14:
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1