




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、目錄目錄退出退出目錄目錄案例十六 超市收銀系統(tǒng)本案例知識要點格式化輸出結(jié)構(gòu)體的使用類的設(shè)計和使用類指針的使用函數(shù)重載向量的使用虛函數(shù)1頁 共#頁目錄目錄退出退出目錄目錄一、案例需求案例描述模擬“美特好”超市收款過程,根據(jù)貨物清單,選定所購貨物種類和數(shù)量,實現(xiàn)收銀結(jié)賬。案例效果圖案例效果如圖所示。2頁 共#頁目錄目錄退出退出目錄目錄超市收銀系統(tǒng)案例效果圖1 3頁 共#頁目錄目錄退出退出目錄目錄超市收銀系統(tǒng)案例效果圖2 4頁 共#頁目錄目錄退出退出目錄目錄功能說明顯示超市庫存商品信息。顯示購物流程提示信息。實現(xiàn)收款過程,反復(fù)輸入所購各種商品的索引號和購買數(shù)量,直到輸入商品索引號“1”,結(jié)束購物流程
2、。實現(xiàn)收銀,根據(jù)顧客所交現(xiàn)金,自動找零。5頁 共#頁目錄目錄退出退出目錄目錄二、案例分析在本案例中,超市收銀系統(tǒng)應(yīng)具備四大基本功能:商品管理、貨架管理、購物籃管理和收銀管理。貨架管理實現(xiàn)庫中某種商品的入庫、出庫、查詢及顯示等功能。需要建立一個貨架類,通過調(diào)用相應(yīng)的函數(shù)來實現(xiàn)。每種商品有單價、條形碼、商品名稱等屬性。商品管理類實現(xiàn)了設(shè)置、獲取商品信息、復(fù)制商品信息等功能。購物籃管理就是一個小型的貨架管理,可以用貨架類來實現(xiàn)。收銀管理實現(xiàn)商品的結(jié)賬、找零等任務(wù)。需要建立一個收銀臺類,通過調(diào)用相應(yīng)的函數(shù)來實現(xiàn)。 6頁 共#頁目錄目錄退出退出目錄目錄其中,需要注意以下一些問題:從貨架拿貨時,應(yīng)該將商品
3、拿一部分出去,通過將商品“復(fù)制”一份出去來實現(xiàn)?!柏浖堋鄙嫌行涡紊纳唐罚虼?,這個類需要向量這個容器來容納這些商品。向量中僅存儲商品對象是不夠的,因為商品沒有量的概念,到底容器中包含多少件此類商品還需要用另外一個變量來表示,通過把商品對象和商品數(shù)量集成到一個結(jié)構(gòu)體中來實現(xiàn)。如何構(gòu)建購物籃對象?仔細(xì)想一下,“購物籃”就是一個小型的貨架,因此可以用“貨架”類模擬一個購物籃。7頁 共#頁目錄目錄退出退出目錄目錄三、案例設(shè)計1類的設(shè)計根據(jù)上述的設(shè)計思想,設(shè)計了“商品類”、“貨架類”和“收銀臺類”3個類,這3個類的聲明部分在文件“counter.h”中實現(xiàn),3個類的成員函數(shù)的實現(xiàn)部分在文件“coun
4、ter.cpp”中完成。其中商品類(CGoods類)負(fù)責(zé)完成商品信息的存儲、獲取、復(fù)制等任務(wù);貨架類(CStore類)負(fù)責(zé)完成庫中商品的入庫、出庫、查詢及顯示等任務(wù);收銀臺類(CCounter類)負(fù)責(zé)完成商品的結(jié)賬、找零等任務(wù)。另外在counter.h文件中還定義了一個表示貨架商品對象的結(jié)構(gòu)SStoreElement,它有兩個成員,一個是商品對象的指針,一個是此類商品的數(shù)量。貨架中的每個商品都是這個結(jié)構(gòu)類型的。8頁 共#頁目錄目錄退出退出目錄目錄9頁 共#頁目錄目錄退出退出目錄目錄CGoods類結(jié)構(gòu)圖 10頁 共#頁目錄目錄退出退出目錄目錄11頁 共#頁目錄目錄退出退出目錄目錄12頁 共#頁目
5、錄目錄退出退出目錄目錄結(jié)構(gòu)體tagStoreElement的結(jié)構(gòu) 13頁 共#頁目錄目錄退出退出目錄目錄(3)CStore類(貨架類)的設(shè)計 CStore類的結(jié)構(gòu)如圖所示。CStore類的結(jié)構(gòu) 14頁 共#頁目錄目錄退出退出目錄目錄15頁 共#頁目錄目錄退出退出目錄目錄16頁 共#頁目錄目錄退出退出目錄目錄17頁 共#頁目錄目錄退出退出目錄目錄18頁 共#頁目錄目錄退出退出目錄目錄(4)CCounter類(收銀臺類)的設(shè)計 CCounter類的結(jié)構(gòu)如圖所示。CCounter類的結(jié)構(gòu) 19頁 共#頁目錄目錄退出退出目錄目錄20頁 共#頁目錄目錄退出退出目錄目錄21頁 共#頁目錄目錄退出退出目錄目
6、錄22頁 共#頁目錄目錄退出退出目錄目錄2主程序設(shè)計開始顯示超市所有商品的信息輸入欲購買商品的索引號輸入欲購買商品的數(shù)量繼續(xù)購買商品嗎?去收銀臺結(jié)賬結(jié)束NY(1)函數(shù)設(shè)計 CStore* PrepareStore() 該函數(shù)用于最初“進(jìn)貨”,即向貨架中存入一批商品,包括這些商品的商品索引、商品名稱、數(shù)量及單價,即創(chuàng)建一個商店。 返回值: CStore *pStore為Cstore類的指針,代表一個貨架。 void usage() 該函數(shù)用于為用戶顯示操作提示,即告訴“客人”超市購物的購物流程。 返回值: 無。23頁 共#頁目錄目錄退出退出目錄目錄(2)主函數(shù)設(shè)計 在main()函數(shù)中,首先分別
7、對3個類定義一個超市、一個購物籃和一個收銀臺對象,然后定義了一個顧客交錢的變量,并初始化為0。利用上訴類的其他成員函數(shù)來實現(xiàn)購物過程。具體流程如圖所示。24頁 共#頁目錄目錄退出退出目錄目錄主程序調(diào)用流程圖 25頁 共#頁目錄目錄退出退出目錄目錄四、案例實現(xiàn)26頁 共#頁目錄目錄退出退出目錄目錄27頁 共#頁目錄目錄退出退出目錄目錄28頁 共#頁目錄目錄退出退出目錄目錄29頁 共#頁目錄目錄退出退出目錄目錄30頁 共#頁目錄目錄退出退出目錄目錄31頁 共#頁目錄目錄退出退出目錄目錄32頁 共#頁目錄目錄退出退出目錄目錄33頁 共#頁目錄目錄退出退出目錄目錄34頁 共#頁目錄目錄退出退出目錄目錄
8、35頁 共#頁目錄目錄退出退出目錄目錄36頁 共#頁目錄目錄退出退出目錄目錄37頁 共#頁目錄目錄退出退出目錄目錄38頁 共#頁目錄目錄退出退出目錄目錄39頁 共#頁目錄目錄退出退出目錄目錄40頁 共#頁目錄目錄退出退出目錄目錄41頁 共#頁目錄目錄退出退出目錄目錄42頁 共#頁目錄目錄退出退出目錄目錄43頁 共#頁目錄目錄退出退出目錄目錄44頁 共#頁目錄目錄退出退出目錄目錄45頁 共#頁目錄目錄退出退出目錄目錄46頁 共#頁目錄目錄退出退出目錄目錄47頁 共#頁目錄目錄退出退出目錄目錄48頁 共#頁目錄目錄退出退出目錄目錄49頁 共#頁目錄目錄退出退出目錄目錄50頁 共#頁目錄目錄退出退出
9、目錄目錄51頁 共#頁目錄目錄退出退出目錄目錄52頁 共#頁目錄目錄退出退出目錄目錄53頁 共#頁目錄目錄退出退出目錄目錄54頁 共#頁目錄目錄退出退出目錄目錄55頁 共#頁目錄目錄退出退出目錄目錄56頁 共#頁目錄目錄退出退出目錄目錄57頁 共#頁目錄目錄退出退出目錄目錄58頁 共#頁目錄目錄退出退出目錄目錄59頁 共#頁目錄目錄退出退出目錄目錄60頁 共#頁目錄目錄退出退出目錄目錄61頁 共#頁目錄目錄退出退出目錄目錄62頁 共#頁目錄目錄退出退出目錄目錄63頁 共#頁目錄目錄退出退出目錄目錄64頁 共#頁目錄目錄退出退出目錄目錄65頁 共#頁目錄目錄退出退出目錄目錄五、案例總結(jié)與提高案例
10、總結(jié)在本案例中,比較關(guān)鍵的一步是分析出超市貨架這個類,有些讀者可能會將“顧客”抽象為一個類,然后將購物籃放到顧客這個類中。這是不正確的,因為無法在顧客類中處理購買貨物和清理貨物的邏輯。實際上,在整個收銀系統(tǒng)設(shè)計中,顧客并沒有真正地參與進(jìn)來,收銀臺處理的只是一個又一個的購物籃。顧客真正參與的部分是在main函數(shù)中,通過交互,顧客可以購買商品,可以結(jié)賬等。另外一個難點是CGoods中的Clone()函數(shù),為了從貨架(超市)中選購一件商品,用戶需要從CStore類中復(fù)制一件商品出來,而CStore類中存儲的是各種商品的向量,因此,需要讓商品類(CGoods)具有自我復(fù)制的功能,而在復(fù)制的過程中,商品的數(shù)量應(yīng)該設(shè)為零,至于選購多少可以讓用戶調(diào)用CGoods類中的成員函數(shù)SetNum(int iNum)來確定。66頁 共#頁目錄目錄退出退出目錄目錄案例提高 這個案例只是簡單地模擬了一個顧客去超市購物的過程,可以提高的地方還有很多。本案例為了簡單起見,只是處理了一個購物籃,也就是說整個
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 深海探險起點:船舶租賃合同揭秘
- 飛行員培訓(xùn)合同合作意向范本
- 車險代理合同書樣本
- 企業(yè)員工培訓(xùn)合作協(xié)議合同
- 股權(quán)激勵實施合同協(xié)議
- 施工領(lǐng)域農(nóng)民工勞動合同模板
- 汽車購銷合同其一:條款解析
- 小學(xué)生心理課件
- 無線廣播電視傳輸中的信號傳輸信道分配考核試卷
- 天然氣儲層滲透性改善技術(shù)考核試卷
- 2024年甘肅天水麥積山石窟藝術(shù)研究所招聘工作人員考試真題
- 2025年山東省榮成市屬事業(yè)單位招聘崗位及歷年高頻重點模擬試卷提升(共500題附帶答案詳解)
- 火星表面材料分析-深度研究
- 《職業(yè)技能等級評價規(guī)范編制指南編制說明》
- 《教育強(qiáng)國建設(shè)規(guī)劃綱要(2024-2035年)》解讀講座
- 畜禽養(yǎng)殖場惡臭污染物排放及其處理技術(shù)研究進(jìn)展
- 超聲內(nèi)鏡引導(dǎo)下穿刺活檢術(shù)的配合及護(hù)理
- 新生兒常見的產(chǎn)傷及護(hù)理
- 代寫回憶錄合同
- 2024年10月自考00149國際貿(mào)易理論與實務(wù)試題及答案
- 天耀中華合唱簡譜大劇院版
評論
0/150
提交評論