c++校園超市商品信息管理系統(tǒng)課程設(shè)計說明書(含源代碼)_第1頁
c++校園超市商品信息管理系統(tǒng)課程設(shè)計說明書(含源代碼)_第2頁
c++校園超市商品信息管理系統(tǒng)課程設(shè)計說明書(含源代碼)_第3頁
c++校園超市商品信息管理系統(tǒng)課程設(shè)計說明書(含源代碼)_第4頁
c++校園超市商品信息管理系統(tǒng)課程設(shè)計說明書(含源代碼)_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

計算機(jī)科學(xué)與技術(shù)教研室課程設(shè)計說明書(2015-2016學(xué)年 第二學(xué)期)課程名稱 程序設(shè)計基礎(chǔ)課程設(shè)計設(shè)計題目 校園超市商品信息管理系統(tǒng)學(xué)號 ********** 姓名 ***小組成員 ***,**,**起止時間: **** 年**月**日 至 **** 年**月** 日平時表現(xiàn)比較積極,紀(jì)律良好,沒有缺勤得情況 ,在演示過程中,表達(dá)流暢,做出來得作品也有很強(qiáng)得使用價值 ,設(shè)計報告寫得也比較全面,比較細(xì)致,深入人心,老師在提問得過程中,回答問題也頭頭就是道,沒有磕磕課程設(shè)絆絆得情況發(fā)生,對于問題得解答也比較透徹 .計評語演示與答辯平時成績 報告成績成績指導(dǎo)教師成績總評 年 月 日(簽字)注:成績均用百分制 ??偝煽?平時成績*20%+報告成績*40%+演示與答辯成績 *40%設(shè)計題目:校園超市商品信息管理系統(tǒng)1、課程設(shè)計目得本系統(tǒng)得目得在于,可以很好得管理超市商品與銷售員之間得關(guān)系,使得系統(tǒng)得功能與用途更加得全面與實(shí)用,這樣兩個與在一起可以避免用戶使用起來得麻煩,使得可以更好得方便于使用者。本課程設(shè)計得目得就就是要通過一次集中得強(qiáng)化訓(xùn)練,能及時鞏固已學(xué)得知識,補(bǔ)充未學(xué)得但又必要得內(nèi)容。進(jìn)行課程設(shè)計目得在于加深對程序設(shè)計基礎(chǔ)理論與基本知識得理解,促進(jìn)理論與實(shí)踐得結(jié)合,進(jìn)一步提高程序設(shè)計能力.具體目得如下:1)更深入地理解與掌握該課程中得有關(guān)基本概念,程序設(shè)計思想與方法。2)培養(yǎng)綜合運(yùn)用所學(xué)知識獨(dú)立完成課程設(shè)計得能力。3)培養(yǎng)勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求就是、有錯必改、用實(shí)踐來檢驗(yàn)理論,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具備得素質(zhì)。(4) 可以運(yùn)用自己所學(xué)得知識在系統(tǒng)得實(shí)現(xiàn)。2、課程設(shè)計正文2、1系統(tǒng)分析2、1、1可行性分析從經(jīng)濟(jì)、技術(shù)、法律、操作四方面得分析可以瞧出,本系統(tǒng)得開發(fā)時機(jī)成熟。從多種角度考慮,都就是可行得,采用本系統(tǒng) ,能夠使整個超市內(nèi)部所有得信息工作簡化、提高工作效益。由于采用統(tǒng)一得數(shù)據(jù)信息,使相關(guān)資料能夠查詢所需要得數(shù)據(jù)、 資料及其它信息,使信息快速高效運(yùn)行。2、1、2 需求分析該設(shè)計就是通過計算機(jī)設(shè)計程序軟件來實(shí)現(xiàn)校園超市商品信息管理系統(tǒng)得基本業(yè)務(wù),商品共包含以下信息項:商品編號、商品名稱、商品進(jìn)貨數(shù)目、商品銷售數(shù)目、商品剩余庫存數(shù)目、商品單價、商品產(chǎn)地、商品銷售額等 ;主要功能包括 :創(chuàng)建商品信息文件 ,增加、刪除、修改商品信息,銷售商品、通過關(guān)鍵字、廠家名稱或者編號來查找商品,按照不同得條件對商品信息進(jìn)行統(tǒng)計工作。 在該系統(tǒng)中利用通過類得方式來定義對象以及在類中定義各項得成員函數(shù)與數(shù)據(jù)成員來實(shí)現(xiàn)對商品信息得管理 .中小型超市采購得商品一般都成千上萬件。 對這些商品進(jìn)行有效得管理必不可少。 每件商品一般都需要記錄商品名、商品編號、產(chǎn)地、價格、出廠日期等商品得基本信息 .除此之外,還需要記錄商品得其她相關(guān)信息,

如生產(chǎn)廠家、進(jìn)貨數(shù)量、銷售數(shù)量、剩余庫存數(shù)量等。超市商品得相關(guān)信息需要存儲到磁盤文件中,

一般都需要提供對商品信息得添加、

編輯、刪除、查找等操作。超市管理員每天都會記錄購進(jìn)得商品信息 ,核銷過期得商品等。為了鞏固我們所學(xué)得 C++語言程序設(shè)計知識 ,也為了滿足課程設(shè)計得要求 ,我們設(shè)計與實(shí)現(xiàn)一個小型得超市商品管理系統(tǒng),提供商品系統(tǒng)得添加、刪除、編輯、查找等功能。同類系統(tǒng)多數(shù)使用結(jié)構(gòu)體數(shù)組來操作數(shù)據(jù) ,本系統(tǒng)使用類定義對象,以及成員函數(shù)與數(shù)據(jù)成員來完成對增刪查改功能得實(shí)現(xiàn),利用鏈表結(jié)構(gòu)操作數(shù)據(jù),提高了數(shù)據(jù)處理得效率 .2、1、3功能分析(1)分別定義兩個類為 Supermarket與Supermarketmassage來實(shí)現(xiàn)對價格信息、名稱信息、數(shù)量信息得存儲、更正、刪除與查詢以及其她功能得實(shí)現(xiàn)。(2)初始化功能當(dāng)系統(tǒng)第一次啟動時 ,系統(tǒng)中沒有關(guān)于商品得信息 ,所以要根據(jù)商品得類型輸入關(guān)于商品得一系列信息,把這些信息放在磁盤文件中。例如:編號、名稱、進(jìn)貨總數(shù)、銷售數(shù)目、剩余庫存數(shù)目、單價、產(chǎn)地、銷售額以及生產(chǎn)日期與保質(zhì)期。(3)查詢功能此時每件商品所包含得信息已經(jīng)全部在磁盤文件中 ,所以就要通過一系列得函數(shù)來方便使用者查詢有關(guān)商品得信息, 以便更及時地發(fā)現(xiàn)商品在銷售過程中存在得問題并及時改正或者更新。輸入需要查詢得商品名稱或者編號, 如果搜索到得信息與使用者輸入進(jìn)去得信息相同,則返回此件商品所在得位置,輸出商品得各項信息.反之,如果搜索不到此件商品,則輸出無此商品得信息。(4)修改功能先在磁盤文件中找出就是否有該商品 ,然后提示使用者要進(jìn)行修改操作得編號 ,將修改過得商品放到原來那個商品所在得位置, 將結(jié)果保存到原文件中, 就提示使用者按任意字符繼續(xù)。(5)銷售功能提示使用者輸入要進(jìn)行銷售得商品得編號或者名稱 ,通過在函數(shù)中搜索,如果系統(tǒng)中有該商品得信息,則提示使用者輸入要銷售得數(shù)量, 通過if語句,檢查一下輸入得數(shù)量就是否大于庫存數(shù)量,如果大于庫存數(shù)量 ,則提示使用者要重新輸入 ;如果小于庫存數(shù)量 ,就將該商品所對應(yīng)得庫存數(shù)量減去銷售數(shù)量, 再把剩下得商品數(shù)量存入到磁盤文件中, 完成了銷售功能.2、2系統(tǒng)設(shè)計2、2、1概要設(shè)計系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。校園超市商品信息管理系統(tǒng)進(jìn)初查替銷退入始詢換售出系功功功功系統(tǒng)能能能能統(tǒng)圖1 系統(tǒng)功能結(jié)構(gòu)圖2、2、2詳細(xì)設(shè)計(1)增加函數(shù)得設(shè)計該函數(shù)實(shí)現(xiàn)了對超市商品得增加功能,輸入商品得信息,此時磁盤文件中就已經(jīng)存入了這件商品得信息。增加函數(shù)流程圖如圖2所示。開始調(diào)用輸入函數(shù)創(chuàng)建新的結(jié)點(diǎn)輸入數(shù)據(jù),將結(jié)點(diǎn)加入鏈表添加成功圖2 增加函數(shù)流程圖(2)刪除函數(shù)得設(shè)計該函數(shù)實(shí)現(xiàn)了對超市商品得刪除功能 ,輸入商品得生產(chǎn)日期與截止日期 ,判斷就是否過期,如果過期就輸入這件商品得編號或名稱,最后就刪除成功。刪除函數(shù)流程圖如圖 3所示。開始輸入商品生產(chǎn)日期輸入商品截止日期少于30天?否是輸入要刪除的處于安全期,商品名不用處理結(jié)點(diǎn)存在?否是鏈表刪除員工沒有找到結(jié)點(diǎn)刪除結(jié)束圖3 刪除函數(shù)流程圖(3)查找函數(shù)得設(shè)計該函數(shù)實(shí)現(xiàn)了對超市商品得查找功能,輸入想要查找到商品得編號或名稱,如果找到了就顯示出來,否則就顯示找不到該商品。查找函數(shù)流程圖如圖 4所示。開始輸入要查詢的商品的編號或名稱查找商品的結(jié)點(diǎn)結(jié)點(diǎn)存在?否是調(diào)用顯示函數(shù)沒有找到該商顯示出商品信品信息息查找結(jié)束圖4 查找函數(shù)流程圖(4)修改函數(shù)得設(shè)計該函數(shù)實(shí)現(xiàn)了對超市商品信息得修改功能,輸入想要修改得商品信息 ,如果在系統(tǒng)中找到了該商品,則輸入該商品修改過得信息,再存入到磁盤文件中去 ,修改成功。修改函數(shù)流程圖如圖5所示 .開始輸入要修改的商品名稱在鏈表中查找商品結(jié)點(diǎn)存在?是 否輸入新的商品信息 沒有找到修改結(jié)束圖5 修改函數(shù)流程圖(5)銷售函數(shù)得設(shè)計該函數(shù)實(shí)現(xiàn)了對超市商品得銷售功能, 輸入要銷售得商品得編號或名稱, 如果系統(tǒng)中存在該商品信息,則輸入要銷售得數(shù)量,如果小于庫存量 ,則輸出銷售成功 ,并將銷售過后得剩余庫存量存入到磁盤文件中去。銷售函數(shù)流程圖如圖6所示。開始輸入要銷售的商品名稱或編號在鏈表中查找商品否結(jié)點(diǎn)存在?是輸入要銷售的數(shù)量

沒有找到該商品否小于庫存量?是將銷售過后的庫存不足,重剩余量存入磁新輸入盤文件銷售結(jié)束圖6 銷售功能流程圖2、3系統(tǒng)實(shí)現(xiàn)(1)進(jìn)入系統(tǒng)進(jìn)入系統(tǒng)圖如圖7、圖 8所示。圖7進(jìn)入系統(tǒng)界面圖圖8系統(tǒng)菜單圖(2)增加界

面增

加界面圖

如圖9所示。圖9增加界面圖(3)查找界面查找界面圖如圖

10、圖11所示。圖0按名稱查找商品界面圖圖11按編號查找商品界面圖()銷售界面銷售界面圖如圖12所示。圖12銷售界面圖(5)退出系統(tǒng)退出系統(tǒng)界面圖如圖1 3所示。圖13退出系統(tǒng)界面圖2、4系統(tǒng)測試與維護(hù)2、4、系統(tǒng)測試1)voidAddItem()/*添加商品信息*/例:input:(商品名稱):a

output:商品名稱

:ainput:(商品編號

):1001

output:商品編號

:1001inp

ut:(進(jìn)貨總數(shù)):10

outp

ut:進(jìn)貨總數(shù):

10input:(銷售數(shù)目

):20

output:銷售數(shù)目:

20input:(剩余庫存)

:10

output:剩余庫存

:10input:(產(chǎn)地):ss

output:產(chǎn)地

:ssinput:(單價):10

output:單價:

10(2)void Supermarketmassage::RemoveItem() /*刪除商品信息 */例:input:(刪除商品名稱 ):a output:刪除成功(3)voidSupermarketmassage::ModifyItem() /*修改商品信息* /例:input:(商品名稱):a

output:商品名稱:

ainput:(商品編號)

:1001

output:商品編號

:1001input:(進(jìn)貨總數(shù)

):10

output:進(jìn)貨總數(shù):

10input:(銷售數(shù)目):20

output:銷售數(shù)目:

20input:(剩余庫存)

:50

output:剩余庫存

:50input:(產(chǎn)地):ss

output:產(chǎn)地:

ssinput:(單價)

:10

outpu

t:單價:

10(4)

void

Sup

ermarketmassage::Find()

/*查詢商品信息

*/例:input:(商品名稱

):a

output:商品名稱:查找商品名稱input:(商品編號

):1001

output:輸出商品信息系統(tǒng)測試圖如圖1

4、15所示。圖14 系輸入界面圖

統(tǒng)測試圖圖15系統(tǒng)測試退出界面圖2、4、2系統(tǒng)維護(hù)經(jīng)過多次得對系統(tǒng)得測試,能夠保證系統(tǒng)準(zhǔn)確無誤得運(yùn)行,用戶可以放心使用。3、課程設(shè)計總結(jié)在為期十天得課程設(shè)計中,通過完成這次老師布置得任務(wù),體會頗多,收獲也很多.利用設(shè)計這次校園超市商品信息管理系統(tǒng)得機(jī)會使我比較熟練得掌握了這學(xué)期所學(xué)習(xí)有關(guān)c、c++中得一些主要得知識點(diǎn)與應(yīng)用點(diǎn)。例如:類與對象得定義、類內(nèi)數(shù)據(jù)成員及成員函數(shù)得聲明與定義、類得實(shí)現(xiàn)、構(gòu)造函數(shù)與析構(gòu)函數(shù)得定義等等。不只就是死板得只知道書本上得知識,能夠?qū)W以致用。在本次得課程設(shè)計中,我不僅僅只學(xué)到了利用c++語言來編寫程序,還學(xué)到了程序開發(fā)得一些比較重要得步驟,比如需求分析、總體設(shè)計、程序模塊設(shè)計(包含功能需求、程序代碼設(shè)計與分析、運(yùn)行結(jié)果等)、對系統(tǒng)得檢測與維護(hù)等一些中重要得東西。為整個課程設(shè)計中得程序設(shè)計模塊提供主要思路以及實(shí)現(xiàn)功能得主要方法,這個工作說起來簡單,卻不太容易實(shí)現(xiàn),整體得思路對于能否完成一個比較漂亮得程序就是至關(guān)重要得, 如果最一開始得整體思路都沒有明確,或者說我們定下來得主題很難用我們學(xué)過得知識去實(shí)現(xiàn) ,這將會導(dǎo)致以后得一系列工作都無法開展 .所以說,有一個明確得主題就是重中之重。由于我們得人力與所學(xué)得知識有限 ,導(dǎo)致我們此次工作中存在著許多得不足與缺點(diǎn)。比如,這個系統(tǒng)只能實(shí)現(xiàn)簡單得增、刪、查、

改,還有好多得功能不能去實(shí)現(xiàn)

,比如說打折活動、員工與老板之間得聯(lián)系、

顧客與售貨員之間得聯(lián)系都沒有在這個系統(tǒng)中體現(xiàn)出來,

這個系統(tǒng)只能體現(xiàn)出來商品與顧客之間得聯(lián)系,

比較單一

,純粹得就就是一個單鏈結(jié)構(gòu)

,沒有擴(kuò)散出來

.再比如

,這個系統(tǒng)幾乎沒有亮點(diǎn)可尋

,只就是普普通通得

,規(guī)規(guī)矩矩得按照學(xué)過得或者就是從別得書籍中得到得知識來編寫得程序

,沒有讓人耳目一新得新穎得地方,創(chuàng)新得東西太少。其實(shí),我在本次得課程設(shè)計中也學(xué)到了不少東西 ,同時也運(yùn)用到了我們得系統(tǒng)中 .例如:1)對鏈表得靈活運(yùn)用.鏈表,就是存儲數(shù)據(jù)得一個很方便得工具,簡而言之,就就是基于鏈?zhǔn)絻Υ娼Y(jié)構(gòu)下得線性表。包括單向鏈表、雙向鏈表以及循環(huán)鏈表。鏈表得基本操作包括創(chuàng)建鏈表、在鏈表中插入結(jié)點(diǎn)、在鏈表中刪除結(jié)點(diǎn)、遍歷鏈表中得內(nèi)容以及銷毀鏈表等 .相對于順序表來說,它方便進(jìn)行插入、 刪除操作,但就是, 線性表得內(nèi)容遍歷與輸出需要從頭指針開始。在這個系統(tǒng)中我們用到了鏈表得遍歷,主要就是利用它來查詢我們要找得商品信息。(2)#include〈conio、h>頭文件得應(yīng)用。此頭文件包含了本程序中得按任意鍵繼續(xù)得函數(shù),就是庫函數(shù)。conio就是ConsoleInput/Output(控制臺輸入輸出)得簡寫,其中定義了通過控制臺進(jìn)行數(shù)據(jù)輸入與數(shù)據(jù)輸出得函數(shù),主要就是一些用戶通過按鍵盤產(chǎn)生得對應(yīng)操作,比如getch()函數(shù)等等.(3)voidRead&in)函數(shù)。它得輸入?yún)?shù)就是標(biāo)準(zhǔn)輸入流,沒有輸出。函數(shù)完成得作用就是,依次將標(biāo)準(zhǔn)輸入流中得數(shù)據(jù)讀入到變量中.通過此次課程設(shè)計,學(xué)到得也不只有這些新知識,對于編程得思想與方法我也頗有感觸。如果想要編寫出來邏輯清晰,可讀性比較強(qiáng)得程序,應(yīng)該在編程之前先有一個對于程序設(shè)計得整體思路,并把它記錄下來,這樣就可以避免了直接編程序得手忙腳亂。還有就就是編程得思想,存儲數(shù)據(jù)最好得就就是用鏈表或者就是對象數(shù)組,在編寫稍微復(fù)雜一點(diǎn)得程序時,盡量用類定義對象以及數(shù)據(jù)成員、成員函數(shù)等得方式來實(shí)現(xiàn)。還有就就是,我得能力也相應(yīng)得提高了一些,比如就就是比較淺顯得掌握與運(yùn)用鏈表結(jié)構(gòu),能夠比以前更加熟練得利用類以及成員函數(shù)來實(shí)現(xiàn)功能.既復(fù)習(xí)了以前得舊知識,又學(xué)到了一些新得知識;設(shè)計增強(qiáng)了我所用所學(xué)知識去解決具體問題得能力,進(jìn)一步培養(yǎng)了我獨(dú)立思考問題與解決問題得能力.特別就是學(xué)會了在VisualC++6、0集成開發(fā)環(huán)境中如何調(diào)試程序得方法。本次實(shí)踐也鍛煉了我面對難題,自己思索,自己探索,自己查資料發(fā)現(xiàn)問題、解決問題得獨(dú)斷能力??偟脕碚f,收獲還就是比較多得。4、參考文獻(xiàn)[1]譚浩強(qiáng)、c++程序設(shè)計(第二版 )[M],北京:清華大學(xué)出版社, 2004、[2]李云清,楊慶紅、數(shù)據(jù)結(jié)構(gòu)[ M]、人民郵電大學(xué)出版社, 2004、6[3]趙曉,王麗麗 “C++面向?qū)ο蟪绦蛟O(shè)計”多樣實(shí)驗(yàn)探究[

J]

《計算機(jī)時代》

2013[4]袁素梅,付文成

基于Visual

C++6、0得學(xué)生信息管理系統(tǒng)

[J]

《電腦編程技巧與維護(hù)》

2012?答辯記錄答辯小組教師:**,***提問與答辯情況記錄如下 :1、您得系統(tǒng)中得查找功能就是如何實(shí)現(xiàn)得 ?答:也就是利用鏈表結(jié)構(gòu),顯示遍歷鏈表,找到想要根據(jù)編號或者名稱查找得商品,如果找到了想要找到商品,就調(diào)用顯示函數(shù) ,將商品得信息顯示出來。2、您最后運(yùn)行界面得顏色就是如何顯示出來得?答:就是通過#include<windows、h>這個頭文件,這就是個可以調(diào)用庫函數(shù)得一個語言得頭文件。還用到了 system("color C”); 其中color 后面得C就是前景色代號 ,還可以在C之前加一些代碼作為背景色代號

,各顏色代碼如下

:0=黑色 1=藍(lán)色

2=綠色

3=湖藍(lán)色

4=紅色

5=紫色

6=黃色

7=白色

8=灰色9=淡藍(lán)色

A=淡綠色

B=淡淺綠色

C=淡紅色

D=淡紫色

E=淡黃色

F=亮白色3、“按任意鍵繼續(xù)”就是怎樣實(shí)現(xiàn)得?答:先就是定義了 #include〈conio、h>這個頭文件,然后調(diào)用這個庫函數(shù)中得 gtch()函數(shù),最后在自己想用到“按任意鍵繼續(xù)”這個功能得地方直接調(diào)用這個函數(shù)就可以了。4、您得系統(tǒng)中為什么選擇用鏈表結(jié)構(gòu)?答:由于本題目得數(shù)據(jù)元素得個數(shù)不可預(yù)知,所以使用鏈表。鏈表就是動態(tài)得,可以在需要得時候增長與減小其長度,而數(shù)組就是在編譯時分配內(nèi)存得,所以其大小就是不可改變得,而且會出現(xiàn)內(nèi)存浪費(fèi)得情況。我認(rèn)為單循環(huán)鏈表能較好得解決問題.在建立循環(huán)鏈表時,因?yàn)殒湵淼么笮∮奢斎霙Q定, 因此與其匹配得結(jié)點(diǎn)數(shù)也就是變化得, 所以要進(jìn)行動態(tài)內(nèi)存分配。附錄:程序源代碼#include <iostream〉#include 〈fstream〉include<windows、h>include<string、h>#include 〈conio、h>// 用getch()using namespacestd;intnu mber;classSupermarket{public:?char name[20];char Num[20];int Cnum;// 進(jìn)貨總數(shù)ntMnum;//銷售數(shù)目?intEnum;// 剩余庫存數(shù)目?double

Price

/

/單價?char

Add[20]

;

//產(chǎn)地do

ubleS

um;

//銷售額Su

permarket

* Next;oidInput(){??cout〈 t請輸入商品名 :”;cin〉〉name;?cout〈〈 t\t請輸入商品編號 :";cin>>Num;?cout<<”\t\t請輸入商品進(jìn)貨總數(shù) :”;?cin>>Cnum;cout<〈”\t\t請輸入商品銷售數(shù)目:";??cin〉〉Mnum;cout<<"\t\t請輸入商品剩余庫存數(shù)目:";??cin〉〉Enum;??cout<〈” t\t請輸入商品產(chǎn)地 :”;?cin>>Add;cout<<" t\t 請輸入商品單價 :";?cin>〉Price;Sum=Mnum*Price;?}voidRead &in) //文件指針{??in〉>name〉>Num〉>Cnum〉〉Mnum〉>Enum>>Add〉〉Price〉>Sum;}?voidShow(){?cout<〈”商品名 :"<〈name〈<endl? <〈”商品編號: "<<Num<<endl???<<"進(jìn)貨總數(shù):” <〈Cnum〈<endl<<"銷售數(shù)目:"<〈Mnum<<endl<”剩余庫存:”〈〈Enum<<endl??<<"產(chǎn)地:"〈<Add〈<endl? 〈<"單價:”〈< Price<<endl<"銷售額:"〈<Sum<〈endl? 〈〈endl;}voidShow1()?{? cout<〈"商品名:"<〈name<<endl?〈<"商品編號: "<<Num〈〈endl〈〈”進(jìn)貨總數(shù):”<<Cnum〈〈endl?〈〈”銷售數(shù)目: "〈<Mnum<<endl?<<”剩余庫存:"<〈Enum-number〈<endl?<〈"產(chǎn)地:”〈〈Add〈<endl? <〈"單價:"<〈 Price〈<endl?<〈"銷售額:"〈< Sum〈<endl?〈<endl;}};lassSupermarketmassage{public:?Supermarketmassage();Supermarketmassage();voidShowMenu();?voidFind( );? voidSave();voidModifyItem ();?void

RemoveIt

em();? voi

dsale(

);

//銷售函數(shù)voi

dS

*,Supermarke

*);voidS

ort()

;

//void

Unpass();?in

Lis

tCount();

//void

Average()

;voidDisplay( ){int i=1;??for(Supermarket* p=Head-〉Next;p?。紼nd;p=p->Next,i++){if(i==2)?p-〉Show1();??els

ep-〉S

how();? }?cout〈<"輸入任意字符!繼續(xù)??

";? getch();}oidAddItem(){?End->Input( );End-〉Next=newSupermarket;End=End->Next;? cout<<”添加成功!”< <endl;cout<<"輸入任意字符!繼續(xù)??”;getch();}privat(yī)e:?

Supermarket*Head,*End;ifst reamin;ofstreamout;Super market *FindItem(char

*name)?{or(Supermarket*p=Head;p—〉Next!=End;p=p->Next)//匹配成功則返回上一個指針,不成功就返回空? if(?。髏rcmp(p-〉Next->name,name))?returnp;? returnN ULL;}?Supermarket *FindNum(char * Num){??for(Supermarket * p=Head;p—〉Next!=End;p=p->Next)//匹配成功則返回上一個指針,不成功就返回空? if(!strcmp(p—>Next—>Num,Num))?returnp;? ret urnNULL;}Supermarket*FindAdd(char *Add){??for(Supermarket*p=Head;p->Next!=End;p=p->Next)// 匹配成功則返回上一個指針,不成功就返回空?if(!strcmp(p-〉Next—>Add,Add))??returnp;? returnN ULL;};Supermarketmassage::Supermarketmassage(){?Head=new Supermarket;?Head-〉Next=newSupermarket;?End=Head->Next;?in、open(”sort、txt");?if (!in)cout<〈”這就是一個新系統(tǒng),無商品信息。請先輸入。”<〈endl;else{hile(!in、eof()){End—>Read);if(End—〉name[0]==’\0')? ? break;End->Next=newSupermarket;? End=End-〉Next;}in、close();cout<〈"\t\t讀取商品信息成功!”<〈endl;}}Supermarketmassage::~Superm arketmassage(){? Save();for(Supermarket*tem p;Head-〉Next!=End;){?temp=Head—〉Next;Head->Next=Head->Next->Next;deletetemp;}deleteHead,End;}intEnum1=10 0;void Supermarketmassage::ShowMenu(){cout<<”〒〒〒〒〒〒〒〒〒〒 ☆ 超市商品 管 理 系 統(tǒng)☆ 〒〒〒〒〒〒〒〒〒〒”〈 <endl;cout <<"〒〒〒〒〒〒〒★★★★★ ★★★★★★★★★★★★★〒 〒〒〒〒〒〒"<〈endl;cout〈<”〒〒〒〒〒〒〒〒〒★

1、增加商品信息☆ ★〒〒〒

〒〒〒〒〒〒

"〈<endl

;cou

t<<"〒〒〒〒〒〒〒〒〒★

2、顯示商品信息☆ ★〒〒〒

〒〒〒〒〒〒”〈

<endl;c out<<"〒〒〒〒〒〒〒〒〒★

3

、排序統(tǒng)計商品☆ ★〒〒〒

〒〒〒〒〒〒”

<<endl;cout

〈〈"〒〒〒〒〒〒〒〒〒★

4、查找商品信息☆ ★〒〒〒〒〒〒〒〒〒”<〈en

dl;cout<<"〒〒〒〒〒〒〒〒〒★ ☆ 5、刪除商品信息★〒〒〒〒〒〒〒〒〒"<<endl;cout<〈”〒〒〒〒〒〒〒〒〒★ ☆ 6 、修改商品信息 ☆★〒〒〒 〒〒〒〒〒〒 "<〈endl;cout

〈<"〒〒〒〒〒〒〒〒〒★

7、銷售超市商品☆ ★〒〒〒

〒〒〒〒〒〒

"〈<endl

;cout〈<"〒〒〒〒〒〒〒〒〒★

0

、安全退出系統(tǒng)☆ ★〒〒〒?cout〈

〒〒〒〒〒〒"<〈en\t\tn\t\t

ndl;請選擇

:”;}void Supermarketmassage::Find(){?charnam

e[20]

,Num[10];?intx

;Supermarket

*p=NULL;?cout<<"\n\t \t****************** ***************n”;cout<<”\t\t ※1、按商品得名稱查找\ t\t※ 2、按商品編號查找”;?cout〈〈” t\t********* ************************\n請選擇:";cin>>x;?switch (x)? {case1 :??{cout<<"\t\t請輸入要查找得商品得名稱:";?cin>〉name;if(p=FindItem(name))??{?p-〉Next—>Show();???cout〈<”輸入任意字符!繼續(xù)??";? getch();}??else?{?

?

cout

〈〈

t\t

沒有找到該商品信息!

"<<’\n’<<endl;?? ?cout

〈〈”輸入任意字符!繼續(xù)??"

;?

?

getch

();}}break;case2

:{? cout〈〈"\ t請輸入要查找得商品編號 :”;???cin>>Num;if( p=FindNum(Num))?{???p-〉Next->Show();cout〈<”輸入任意字符 !繼續(xù)??";? getch();}else{??

cout<<"\t

\t

沒有找到該編號得商品!

"〈<'

\n'〈〈

endl;?

cou

t〈<"輸入任意字符

!繼續(xù)??”

;???getch(

);}}? break;}}void Supermarketmassage::ModifyI tem()//修改信息{harname[20];Supermarket*p=NULL;cout<〈" t\t請輸入要修改得商品名 :";?cin>>name;if(p=FindItem(name)){??cout<<”\t\t 已找到商品得信息 ,請輸入新得信息!”〈 <endl;p->Next—>Input();cout〈<"修改成功!”<<endl;?cout<〈”輸入任意字符!繼續(xù)?? ";getch();}else{out<〈”\t\t沒有找到!”〈<endl;cout〈<”輸入任意字符!繼續(xù)??”;??getch();}}voidSupermarketmassage::RemoveItem()/ / 刪除信息{intda

te(int

&,i

nt

&,int

&);int

year1,month1,day1,ye

ar2,month2

,day2,s

um1,sum2,SUM;cout<<" 請輸入商品得今天得日期:(年、月、日) ";cin>>year1>>month1>>day1;sum1=date(year1,month1,day1);cout〈<”請輸入商品得截止日期 :(年、月、日)” ;cin〉〉year2>〉month2>〉day2;sum2=date(year2,month2,day2);S UM=sum2—sum1;if (SUM>=30){? cout<〈"該商品處于安全期,不用處理~ "<<endl;}else{charname[20];Supermarket*p

=NULL,*t

emp=NULL;cout〈<"\t\t

請輸入要刪除得商品名:"

<〈endl

;ci n〉>name;f(p=FindItem(name)){te mp=p-〉Next;p—>Next=p—〉Next-〉Next;delete temp;out〈<"\t\t刪除成功!”<<endl;out<<"輸入任意字符!繼續(xù)??";getch();}el se{cout<<”\ t沒有找到!"<<endl;cout<<"輸入任意字符!繼續(xù)??”;getch();}}}?intdat e(int&day ,int&mont h,int& year) // 日期函數(shù){ints um,leap;switch( month) ? //先計算某月以前月份得總天數(shù){case1:sum=0;break;ase2:sum=31;break;case3:sum=59;break;case4:sum=90;break;ase5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case8:

sum=212;br

eak;case

9:sum=243;break;case10:sum=273

;br

eak;case

11:sum=304;break;case 12:sum=334;break;default:cout〈〈"data

erro

r";break;}sum=sum+day;// 再加上某天得天數(shù)if ((year %400==0)||(year%4==0&&year%100!=0))//判斷就是不就是閏年lea p=1;elseeap=0;if(leap==1&&month〉2) ??//如果就是閏年且月份大于 2,總天數(shù)應(yīng)該加一天su m++;return sum;}void Supermarketmassage::sale() // 銷售函數(shù){Supermarketa;Supermarket* p=NULL;?i ntm;?c harname[20],Num[10];cout<<"請輸入想要銷售得商品信息:"<<endl;cout<<”\n\t \t*********************************\n

";?cout<<" \cout〈

t※ 1、按商品得名稱查找t\t**********

n\t\t ※ 2、按商品編號查找”;*********************

n請選擇

:”;cin>〉m;switch( m){case1:{cout<<”\t\t請輸入要查找得商品得名稱 :";??cin>>name;if( p=FindItem(name))?{??cout<<"請輸入要銷售得數(shù)量 :”;??cin〉>number;???if(number<=Enum1)???{cout<<”銷售成功!”〈<endl;? cout〈<”輸入任意字符!繼續(xù)?? ";? ge tch();}? else{cout<<”庫存不足,請重新輸入!"〈〈endl;cout〈〈"輸入任意字符!繼續(xù)??";? get ch();}}??else{out<<”\t\t沒有找到?。ⅲ?lt;endl;cout〈〈”輸入任意字符!繼續(xù)??";getch();}}?break;?case2:? {cout<<"\t\t請輸入要查找得商品得編號 :";?cin>>Num;if (p=FindNum(Num)){? cout<<"請輸入要銷售得數(shù)量:";???cin>>number;if(number〈=Enum1){co ut〈〈”銷售成功 !"<<endl;cout<<”輸入任意字符!繼續(xù)??”;? get ch();}else? {?? ?cout〈<"庫存不足,請重新輸入 !"〈〈endl;cout<<”輸入任意字符!繼續(xù)?? ";getch( );}?}?else{?cout

〈<"\

t沒有找到!

"〈〈endl;cout<〈”輸入任意字符!繼續(xù)??

";getch

();}?}br

eak;}? }voidSupermarketmassage::S*p1,Supermarket*p2)//交換兩個box變量得數(shù)據(jù)域{Supermarket *temp=newSupermarket;strcpy (temp->name,p1->name);// 字符串name里面strcpy(t emp->Num,p1->Num);strcpy(temp->Add,p1->Add);temp—>Cnum=p1->Cnum;temp->Mnum=p1->Mnum;emp->Enum=p1->Enum;temp-〉Price=p1—〉Price;temp—〉Sum=p1—>Sum;strcpy(p1-〉name,p2—>name);strcpy(p1-〉Num,p2->Num);st rcpy(p1-〉A(chǔ)dd,p2-〉A(chǔ)dd);p1->Cnum=p2—〉Cnum;p1- 〉Mnum=p2-〉Mnum;p1-〉Enum=p2-〉Enum;1->Price=p2—>Price;p1->Sum=p2—〉Sum;strcpy(p2->name,temp—>name);strcpy(p2->Num,temp->Num);strcpy(p2->Add,temp-〉A(chǔ)dd);p2—>Cnum=temp->Cnum;p2->Mnum=temp—〉Mnum;p2->Enum=temp->Enum;2-〉Price=temp—>Price;p2->Sum=temp—>Sum;}intSuperma rketmassage::List Count()//統(tǒng)計當(dāng)前鏈表得記錄總數(shù),返回一個整數(shù){if(!Head)? return 0;int n=0;? for(Supermarket *p=Head->Next;p!=End;p=p—>Next){n++;}returnn;}voidSup ermarketmassage::Sort()//對當(dāng)前鏈表進(jìn)行排序{? cout 〈<"Sortin g、、、”〈〈 endl;?Supermarket *p=NULL,*p1=NULL,*k=NULL;? int n=Supermarketmassage::ListCount();if(n<2)eturn;or(p=Head—〉Next;p!=End;p=p-〉Next)for(k=p-〉Next;k!=End;k=k->Next){? if(p-〉A(chǔ)dd>k->Add)? {Supermarketmassage::S);}}cout<〈"排序完成!”〈〈endl;getch();return;}void Supermarketmassage::Save(){out、o

pen(”sort

、txt

");for(Super

mar

ket*p=He

ad—>Next;p!=

End;p=p—〉Next)?

?out<<p—〉name<<"\t〈<p—>Num〈〈"\t\t "

\t"〈<p—〉Cnum<〈"\t\t"〈<p->Mnum<<”\t\t"?? 〈<p-〉Enum<〈”\

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論