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

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)科學(xué)與技術(shù)教研室課程設(shè)計(jì)說明書(2015-2016學(xué)年第二學(xué)期)課程名稱程序設(shè)計(jì)基礎(chǔ)課程設(shè)計(jì)設(shè)計(jì)題目校園超巾商品信息管理系統(tǒng)學(xué)號(hào)*姓名*小組成員*起止時(shí)問:*年*月*日至*年*月*日課程設(shè)計(jì)評(píng)語平時(shí)表現(xiàn)比較積極,紀(jì)律良好,沒有缺勤得情況,在演示過程中,表達(dá)流暢,做出來得作品也有很強(qiáng)得使用價(jià)值,設(shè)計(jì)報(bào)告寫得也比較全面,比較細(xì)致,深入人心,老師在提問得過程中,回答問題也頭頭就是道,沒有磕磕絆絆得情況發(fā)生,對(duì)于問題得解答也比較透徹.平時(shí)成績報(bào)告成績演示與答辯成績成績總評(píng)指導(dǎo)教師(簽字)年月日注:成績均用百分制。總成績=平時(shí)成績*20%+報(bào)告成績*40%+演示與答辯成績*40%設(shè)計(jì)題目:校園超市

2、商品信息管理系統(tǒng)1、課程設(shè)計(jì)目得本系統(tǒng)得目得在于,可以很好得管理超市商品與銷售員之間得關(guān)系,使得系統(tǒng)得功能與用途更加得全面與實(shí)用,這樣兩個(gè)與在一起可以避免用戶使用起來得麻煩,使得可以更好得方便于使用者。本課程設(shè)計(jì)得目得就就是要通過一次集中得強(qiáng)化訓(xùn)練,能及時(shí)鞏固已學(xué)得知識(shí),補(bǔ)充未學(xué)得但又必要得內(nèi)容。進(jìn)行課程設(shè)計(jì)目得在于加深對(duì)程序設(shè)計(jì)基礎(chǔ)理論與基本知識(shí)得理解,促進(jìn)理論與實(shí)踐得結(jié)合,進(jìn)一步提高程序設(shè)計(jì)能力.具體目得如下:(1)更深入地理解與掌握該課程中得有關(guān)基本概念,程序設(shè)計(jì)思想與方法。(2)培養(yǎng)綜合運(yùn)用所學(xué)知識(shí)獨(dú)立完成課程設(shè)計(jì)得能力。(3)培養(yǎng)勇于探索、嚴(yán)謹(jǐn)推理、實(shí)事求就是、有錯(cuò)必改、用實(shí)踐來檢驗(yàn)

3、理論,全方位考慮問題等科學(xué)技術(shù)人員應(yīng)具備得素質(zhì)。(4)可以運(yùn)用自己所學(xué)得知識(shí)在系統(tǒng)得實(shí)現(xiàn)。2、課程設(shè)計(jì)正文2、1系統(tǒng)分析2、1、1可行性分析從經(jīng)濟(jì)、技術(shù)、法律、操作四方面得分析可以瞧出,本系統(tǒng)得開發(fā)時(shí)機(jī)成熟。從多種角度考慮,都就是可行得,采用本系統(tǒng),能夠使整個(gè)超市內(nèi)部所有得信息工作簡(jiǎn)化、提高工作效益。由于采用統(tǒng)一得數(shù)據(jù)信息,使相關(guān)資料能夠查詢所需要得數(shù)據(jù)、資料及其它信息,使信息快速高效運(yùn)行。2、1、2需求分析該設(shè)計(jì)就是通過計(jì)算機(jī)設(shè)計(jì)程序軟件來實(shí)現(xiàn)校園超市商品信息管理系統(tǒng)得基本業(yè)務(wù),商品共包含以下信息項(xiàng):商品編號(hào)、商品名稱、商品進(jìn)貨數(shù)目、商品銷售數(shù)目、商品剩余庫存數(shù)目、商品單價(jià)、商品產(chǎn)地、商品銷

4、售額等;主要功能包括:創(chuàng)建商品信息文件,增加、刪除、修改商品信息,銷售商品、通過關(guān)鍵字、廠家名稱或者編號(hào)來查找商品,按照不同得條件對(duì)商品信息進(jìn)行統(tǒng)計(jì)工作。在該系統(tǒng)中利用通過類得方式來定義對(duì)象以及在類中定義各項(xiàng)得成員函數(shù)與數(shù)據(jù)成員來實(shí)現(xiàn)對(duì)商品信息得管理中小型超市采購得商品一般都成千上萬件。對(duì)這些商品進(jìn)行有效得管理必不可少。每件商品一般都需要記錄商品名、商品編號(hào)、產(chǎn)地、價(jià)格、出廠日期等商品得基本信息.除此之外,還需要記錄商品得其她相關(guān)信息,如生產(chǎn)廠家、進(jìn)貨數(shù)量、銷售數(shù)量、剩余庫存數(shù)量等。超市商品得相關(guān)信息需要存儲(chǔ)到磁盤文件中,一般都需要提供對(duì)商品信息得添加、編輯、刪除、查找等操作。超市管理員每天都

5、會(huì)記錄購進(jìn)得商品信息,核銷過期得商品等。為了鞏固我們所學(xué)得C+語言程序設(shè)計(jì)知識(shí),也為了滿足課程設(shè)計(jì)得要求,我們?cè)O(shè)計(jì)與實(shí)現(xiàn)一個(gè)小型得超市商品管理系統(tǒng),提供商品系統(tǒng)得添加、刪除、編輯、查找等功能。同類系統(tǒng)多數(shù)使用結(jié)構(gòu)體數(shù)組來操作數(shù)據(jù),本系統(tǒng)使用類定義對(duì)象,以及成員函數(shù)與數(shù)據(jù)成員來完成對(duì)增刪查改功能得實(shí)現(xiàn),利用鏈表結(jié)構(gòu)操作數(shù)據(jù),提高了數(shù)據(jù)處理得效率.2、 1、3功能分析(1)分別定義兩個(gè)類為Supermarket與Supermarketmassage來實(shí)現(xiàn)對(duì)價(jià)格信息、名稱信息、數(shù)量信息得存儲(chǔ)、更正、刪除與查詢以及其她功能得實(shí)現(xiàn)。( 2) 初始化功能當(dāng)系統(tǒng)第一次啟動(dòng)時(shí),系統(tǒng)中沒有關(guān)于商品得信息,所以要

6、根據(jù)商品得類型輸入關(guān)于商品得一系列信息,把這些信息放在磁盤文件中。例如:編號(hào)、名稱、進(jìn)貨總數(shù)、銷售數(shù)目、剩余庫存數(shù)目、單價(jià)、產(chǎn)地、銷售額以及生產(chǎn)日期與保質(zhì)期。( 3) 查詢功能此時(shí)每件商品所包含得信息已經(jīng)全部在磁盤文件中,所以就要通過一系列得函數(shù)來方便使用者查詢有關(guān)商品得信息,以便更及時(shí)地發(fā)現(xiàn)商品在銷售過程中存在得問題并及時(shí)改正或者更新。輸入需要查詢得商品名稱或者編號(hào),如果搜索到得信息與使用者輸入進(jìn)去得信息相同,則返回此件商品所在得位置,輸出商品得各項(xiàng)信息.反之,如果搜索不到此件商品,則輸出無此商品得信息。(4)修改功能先在磁盤文件中找出就是否有該商品,然后提示使用者要進(jìn)行修改操作得編號(hào),將修

7、改過得商品放到原來那個(gè)商品所在得位置,將結(jié)果保存到原文件中,就提示使用者按任意字符繼續(xù)。(5)銷售功能提示使用者輸入要進(jìn)行銷售得商品得編號(hào)或者名稱,通過在函數(shù)中搜索,如果系統(tǒng)中有該商品彳#信息,則提示使用者輸入要銷售得數(shù)量,通過if語句,檢查一下輸入得數(shù)量就是否大于庫存數(shù)量,如果大于庫存數(shù)量,則提示使用者要重新輸入;如果小于庫存數(shù)量,就將該商品所對(duì)應(yīng)得庫存數(shù)量減去銷售數(shù)量,再把剩下得商品數(shù)量存入到磁盤文件中,完成了銷售功2、2系統(tǒng)設(shè)計(jì)2、2、1概要設(shè)計(jì)系統(tǒng)功能結(jié)構(gòu)圖如圖1所示。校園超市商品信息管理系統(tǒng)退出系統(tǒng)銷售功能替換功能查詢功能初始功能進(jìn)入系統(tǒng)系統(tǒng)功能結(jié)構(gòu)圖2、2、2詳細(xì)設(shè)計(jì)(1)增加函數(shù)

8、得設(shè)計(jì)該函數(shù)實(shí)現(xiàn)了對(duì)超市商品得增加功能,輸入商品得信息,此時(shí)磁盤文件中就已經(jīng)存入了這件商品得信息。增加函數(shù)流程圖如圖2所示。開始調(diào)用輸入函數(shù)創(chuàng)建新的結(jié)占八、輸入數(shù)據(jù),將結(jié)點(diǎn)加入鏈表添加成功增加函數(shù)流程圖(2)刪除函數(shù)得設(shè)計(jì)該函數(shù)實(shí)現(xiàn)了對(duì)超市商品得刪除功能,輸入商品得生產(chǎn)日期與截止日期,判斷就是否過期,如果過期就輸入這件商品得編號(hào)或名稱,最后就刪除成功。刪除函數(shù)流程圖如圖3所示。開始(刪除結(jié)束刪除函數(shù)流程圖(3)查找函數(shù)得設(shè)計(jì)該函數(shù)實(shí)現(xiàn)了對(duì)超市商品得查找功能,輸入想要查找到商品得編號(hào)或名稱,如果找到了就顯示出來,否則就顯示找不到該商品。查找函數(shù)流程圖如圖4所示。開始輸入要查詢的商品的編號(hào)或名稱查

9、找商品的結(jié)占八、圖4查找函數(shù)流程圖(4)修改函數(shù)得設(shè)計(jì)該函數(shù)實(shí)現(xiàn)了對(duì)超市商品信息得修改功能,輸入想要修改得商品信息,如果在系統(tǒng)中找到了該商品,則輸入該商品修改過得信息,再存入到磁盤文件中去,修改成功。修改函數(shù)流程圖如圖5所示開始圖5修改函數(shù)流程圖(5)銷售函數(shù)得設(shè)計(jì)該函數(shù)實(shí)現(xiàn)了對(duì)超市商品得銷售功能,輸入要銷售得商品得編號(hào)或名稱,如果系統(tǒng)中存在該商品信息,則輸入要銷售彳#數(shù)量,如果小于庫存量,則輸出銷售成功,并將銷售過后得剩余庫存量存入到磁盤文件中去。銷售函數(shù)流程圖如圖6所示。開始否圖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)增

10、加界增界面圖圖9所示。*.SgKKUAmi市商兄苣理系統(tǒng)l增加商星信息二十TTrrr/r丁十=*a.顯示商品信息口.排序疣計(jì)同品4.壹找育品信息寫.刪除高儲(chǔ)信息小修改盲品信包7鐺管超市商品8.安全退出蔡玩0二千十二丁丁丁丁丁TTtT圖9增加界面圖(3)查找界面查T丁丁T丁-丁一丁丁4公工二*-r*TT?rTTTT'A'':T干丁干-!-!"一3 .排序茹滸向品4 一亙技商品信息5求赫商品信息S*慘東商品信息九鋪售超市商品回.安生正出素猊1225目m:皎la督存CS的L=嚏序步古事善,羊口出西剪的品口科加;商R商商商育商擇人入人入入入人繼續(xù)找界面圖如圖10、圖1

11、1所示。找商11按編而品名通昌喘號(hào)式8況請(qǐng)圜已:|!(同,輯果摘睥.餐首餐餐及:;1忖網(wǎng)首帆算(有旨辯1翼一有彳餐鼻生L甚商品的名稱宜找荻Z恚商品編號(hào)直掛找商學(xué)落1轆螂:K2.按兩口口編號(hào)查找濡寅JfKMMKMWIXMNJIKB!KM!其莞StM衣幀JtKKMXM清就人要言找的曲品編號(hào):100210624)任意字符!銷售界面圖如圖12所示。4,查找卷品信息刪除音品信息青輸入相蘿銷售的請(qǐng)選擇:入修改商品信息九銷售超市商品加安全正出系統(tǒng)請(qǐng)湎人要查找的商品的編號(hào):1004人要錯(cuò)售的數(shù)1:2012界面(5)出系統(tǒng)退出系統(tǒng)界面圖如圖13所示。圖13退出系統(tǒng)界面圖2、4系統(tǒng)測(cè)試與維護(hù)2、4、1系統(tǒng)測(cè)試(1

12、) voidAddItem()/*添加商品信息*/例:input:(商品名稱):aoutput:商品名稱:ainput:(商品編號(hào)):1001output:商品編號(hào):10011 nput:(進(jìn)貨總數(shù)):10Output:進(jìn)貨總數(shù):10input:(銷售數(shù)目):20output:銷售數(shù)目:20input:(剩余庫存):10output:剩余庫存:10input:(產(chǎn)地):ssoutput:產(chǎn)地:ssinput:(單價(jià)):10output:單價(jià):10(2) voidSupermarketmassage::RemoveItem()/*刪除商品信息*/例:input:(刪除商品名稱):aoutput:

13、刪除成功(3) voidSupermarketmassage:ModifyItem()/*修改商品信息*/例:input:(商品名稱):aoutput:商品名稱:a1 nput:(商品編號(hào)):1001output:商品編號(hào):10012 nput:(進(jìn)貨總數(shù)):10output:進(jìn)貨總數(shù):10input:(銷售數(shù)目):20outpu t :銷售數(shù)目:20input :(剩余庫存):5 0output:剩余庫存:50inpu t :(產(chǎn)地):ssoutput:產(chǎn)地:ssi n p u t:(單價(jià)):1ou t p u t:單價(jià):1 0(4) void Sup ermarketm a ssag e:

14、 Find。/*查詢商品信息*/例:i np u t:(商品名稱):aoutpu t :商品名稱:查找商品名稱in p u t :(商品編號(hào)):10 0 1o u t put: 輸出商品信息系統(tǒng)測(cè)試圖如圖1 4、15所示。輸入界面圖TTTTTTT千TT千* >3邛,,挎花: 品%查找商品信息k刪炯品信息I傳武商品信總九楣售鋰市商品1 tt rT =*平干干T£7JtT t t T T T T蟲 /二士 千千千千千.干六育十老 去千千 千千統(tǒng)測(cè)試圖系統(tǒng)測(cè)試退出界面2、4、2 系經(jīng)過多系統(tǒng)得測(cè)保證系統(tǒng)準(zhǔn)得運(yùn)行,用WWW統(tǒng)維護(hù). |HH|I ip4Hl. . 4Hm 144 . .

15、Uv MW * .1vWi '"M. N"W.VW T V 4一,*.試,能夠放心使用。3、課程設(shè)計(jì)總結(jié).利在為期十天得課程設(shè)計(jì)中,通過完成這次老師布置得任務(wù),體會(huì)頗多,收獲也很多用設(shè)計(jì)這次校園超市商品信息管理系統(tǒng)得機(jī)會(huì)使我比較熟練得掌握了這學(xué)期所學(xué)習(xí)有關(guān)c、C+中得一些主要得知識(shí)點(diǎn)與應(yīng)用點(diǎn)。例如:類與對(duì)象得定義、類內(nèi)數(shù)據(jù)成員及成員函數(shù)得聲明與定義、類得實(shí)現(xiàn)、構(gòu)造函數(shù)與析構(gòu)函數(shù)得定義等等。不只就是死板得只知道書本上得知識(shí),能夠?qū)W以致用。在本次得課程設(shè)計(jì)中,我不僅僅只學(xué)到了利用C+語言來編寫程序,還學(xué)到了程序開發(fā)得一些比較重要得步驟,比如需求分析、總體設(shè)計(jì)、程序模塊設(shè)

16、計(jì)(包含功能需求、程序代碼設(shè)計(jì)與分析、運(yùn)行結(jié)果等卜對(duì)系統(tǒng)得檢測(cè)與維護(hù)等一些中重要得東西。為整個(gè)課程設(shè)計(jì)中得程序設(shè)計(jì)模塊提供主要思路以及實(shí)現(xiàn)功能得主要方法,這個(gè)工作說起來簡(jiǎn)單,卻不太容易實(shí)現(xiàn),整體得思路對(duì)于能否完成一個(gè)比較漂亮得程序就是至關(guān)重要得,如果最一開始得整體思路都沒有明確,或者說我們定下來得主題很難用我們學(xué)過得知識(shí)去實(shí)現(xiàn),這將會(huì)導(dǎo)致以后得一系列工作都無法開展.所以說,有一個(gè)明確得主題就是重中之重。由于我們得人力與所學(xué)得知識(shí)有限,導(dǎo)致我們此次工作中存在著許多得不足與缺點(diǎn)。比如,這個(gè)系統(tǒng)只能實(shí)現(xiàn)簡(jiǎn)單得增、刪、查、改,還有好多得功能不能去實(shí)現(xiàn),比如說打折活動(dòng)、員工與老板之間得聯(lián)系、顧客與售貨員

17、之間得聯(lián)系都沒有在這個(gè)系統(tǒng)中體現(xiàn)出來,這個(gè)系統(tǒng)只能體現(xiàn)出來商品與顧客之間得聯(lián)系,比較單一,純粹得就就是一個(gè)單鏈結(jié)構(gòu),沒有擴(kuò)散出來.再比如,這個(gè)系統(tǒng)幾乎沒有亮點(diǎn)可尋,只就是普普通通得,規(guī)規(guī)矩矩得按照學(xué)過得或者就是從別得書籍中得到得知識(shí)來編寫得程序,沒有讓人耳目一新得新穎得地方,創(chuàng)新得東西太少。其實(shí),我在本次得課程設(shè)計(jì)中也學(xué)到了不少東西,同時(shí)也運(yùn)用到了我們得系統(tǒng)中.例如:(1)對(duì)鏈表得靈活運(yùn)用.鏈表,就是存儲(chǔ)數(shù)據(jù)得一個(gè)很方便得工具,簡(jiǎn)而言之,就就是基于鏈?zhǔn)絻?chǔ)存結(jié)構(gòu)下得線性表。包括單向鏈表、雙向鏈表以及循環(huán)鏈表。鏈表得基本操作包括創(chuàng)建鏈表、在鏈表中插入結(jié)點(diǎn)、在鏈表中刪除結(jié)點(diǎn)、遍歷鏈表中得內(nèi)容以及銷毀

18、鏈表等.相對(duì)于順序表來說,它方便進(jìn)行插入、刪除操作,但就是,線性表得內(nèi)容遍歷與輸出需要從頭指針開始。在這個(gè)系統(tǒng)中我們用到了鏈表得遍歷,主要就是利用它來查詢我們要找得商品信息。(2)#includeconio、h頭文件得應(yīng)用。此頭文件包含了本程序中得按任意鍵繼續(xù)得函數(shù),就是庫函數(shù)。conio就是ConsoleInput/Output(控制臺(tái)輸入輸出)得簡(jiǎn)寫淇中定義了通過控制臺(tái)進(jìn)行數(shù)據(jù)輸入與數(shù)據(jù)輸出得函數(shù),主要就是一些用戶通過按鍵盤產(chǎn)生得對(duì)應(yīng)操作,比如getch()函數(shù)等等.(3)voidRead&in)函數(shù)。它得輸入?yún)?shù)就是標(biāo)準(zhǔn)輸入流,沒有輸出。函數(shù)完成得作用就是,依次將標(biāo)準(zhǔn)輸入流中得數(shù)

19、據(jù)讀入到變量中.通過頭次課程設(shè)計(jì),學(xué)到得也不只有這些新知識(shí),對(duì)于編程得思想與方法我也頗有感觸。如果想要編寫出來邏輯清晰,可讀性比較強(qiáng)得程序,應(yīng)該在編程之前先有一個(gè)對(duì)于程序設(shè)計(jì)得整體思路,并把它記錄下來,這樣就可以避免了直接編程序得手忙腳亂。還有就就是編程得思想,存儲(chǔ)數(shù)據(jù)最好得就就是用鏈表或者就是對(duì)象數(shù)組,在編寫稍微復(fù)雜一點(diǎn)得程序時(shí),盡量用類定義對(duì)象以及數(shù)據(jù)成員、成員函數(shù)等得方式來實(shí)現(xiàn)。還有就就是,我得能力也相應(yīng)得提高了一些,比如就就是比較淺顯得掌握與運(yùn)用鏈表結(jié)構(gòu),能夠比以前更加熟練得利用類以及成員函數(shù)來實(shí)現(xiàn)功能.既復(fù)習(xí)了以前得舊知識(shí),又學(xué)到了一些新得知識(shí);設(shè)計(jì)增強(qiáng)了我所用所學(xué)知識(shí)去解決具體問題

20、得能力,進(jìn)一步培養(yǎng)了我獨(dú)立思考問題與解決問題得能力.特別就是學(xué)會(huì)了在VisualC+6、。集成開發(fā)環(huán)境中如何調(diào)試程序得方法。本次實(shí)踐也鍛煉了我面對(duì)難題,自己思索,自己探索,自己查資料發(fā)現(xiàn)問題、解決問題得獨(dú)斷能力??偟脕碚f,收獲還就是比較多得。4、參考文獻(xiàn)1譚浩強(qiáng)、C+程序設(shè)計(jì)(第二版)M,北京:清華大學(xué)出版社,2004、2李云清,楊慶紅、數(shù)據(jù)結(jié)構(gòu)、人民郵電大學(xué)出版社,2004、63趙曉,王麗麗“C+面向?qū)ο蟪绦蛟O(shè)計(jì)”多樣實(shí)驗(yàn)探究J計(jì)算機(jī)時(shí)代20134袁素梅,付文成基于Visua1C+6、0得學(xué)生信息管理系統(tǒng)J電腦編程技巧與維護(hù)2012?答辯記錄答辯小組教師:*,*提問與答辯情況記錄如下:1、您

21、得系統(tǒng)中得查找功能就是如何實(shí)現(xiàn)得?答:也就是利用鏈表結(jié)構(gòu),顯示遍歷鏈表,找到想要根據(jù)編號(hào)或者名稱查找得商品,如果找到了想要找到商品,就調(diào)用顯示函數(shù),將商品得信息顯示出來。2、您最后運(yùn)行界面得顏色就是如何顯示出來得?答:就是通過#includewindows、h這個(gè)頭文件,這就是個(gè)可以調(diào)用庫函數(shù)得一個(gè)c語言得頭文件。還用到了system("colorC');其中color后面得C就是前景色代號(hào),還可以在C之前加一些代碼作為背景色代號(hào),各顏色代碼如下:0=黑色1=藍(lán)色2=綠色3=湖藍(lán)色4=紅色5=紫色6=黃色7=白色8=灰色9=淡藍(lán)色A=淡綠色8=淡淺綠色C=淡紅色D曜紫色E=淡

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

23、nclude<iostream>#includefstream>#include<windows、h>#include<string、h>#includeconio、h>/用getch()usingnamespacestd;intnumber;classSupermarketpublic:£harname20;charNum20;intCnum;/進(jìn)貨總數(shù)intMnum;/銷售數(shù)目?ntEnum;剩余庫存數(shù)目?doublePrice;/單價(jià)£harAdd20;/產(chǎn)地doubleSum;/銷售額Supermarket*Next;

24、voidInput()?outt請(qǐng)輸入商品名:”;?cin>>name;化outtt請(qǐng)輸入商品編號(hào):“;?cin>>Num;?sou t «t t請(qǐng)輸入商品進(jìn)貨總數(shù)方n>>Cnum;?cout<”tt請(qǐng)輸入商品銷售數(shù)目:”;?in>>Mnum;?cout<<"tt請(qǐng)輸入商品剩余庫存數(shù)目:”;?in>>Enum;?outv”tt請(qǐng)輸入商品產(chǎn)地:”;?sin>>Add;cout«"tt請(qǐng)輸入商品單價(jià):";?din>>Price;?Sum=Mnum*

25、Price;voidRead&in)/文件指針?n>>name>>Num>Cnum>Mnum>Enum>塾dd>>Price>>Sum;?/oidShow()?soutv”商品名:"<name<endl?<”商品編號(hào):"vvNum<<endl?<"進(jìn)貨總數(shù):”<Cnumvendl?<<"銷售數(shù)目:"vMnum<vendl<“剩余庫存:"Enum<<endl?七<"

26、產(chǎn)地:"<<Addvendl?<"單價(jià):"vPrice<<endlv<"銷售額:"<<SunKendl?endl;voidShow1()?cout<<"商品名:"<<name<<end1?v"商品編號(hào):"v<Num<end1?”進(jìn)貨總數(shù):"<<Cnumendl?”銷售數(shù)目:"vMnum<<ndl?<<"剩余庫存:"<Enum-nu

27、mber<end1?<"產(chǎn)地:"Add<endl?<"單價(jià):"vPricevendl?<<"銷售額:"VSum<<endl?vendl;;classSupermarketmassagepublic:?Supermarketmassage);Supermarketmassage();?voidShowMenu();?voidFind();?voidSave();voidModifyItem();?voidRemoveItem();?voidsale();/銷售函數(shù)voidS*,Superm

28、arket*);voidSort();/voidUnpass();?intListCount();/voidAverage();voidDisplay()inti=1;?for(Supermarket*p=Head->Next;p!=End;p=p->Next,i+)?if(i=2)?p->Showl();?eIsep>Show();?coutV”輸入任意字符!繼續(xù)";?getch();?voidAddItem()?End->Input();?End->Niext=newSupermarket;?End=End->Nlext;?cout<

29、;v"添加成功!"v<endl;?cout<"輸入任意字符!繼續(xù)”;?getch();private:Supermarket*Hcad,*End;ifstreamin;?ofstrcamout;Supermarket*FindItem(char*name)?for(Supermarket*p=Head;p>Next!=End;p=p>Next)/匹配成功則返回上一個(gè)指針,不成功就返回空?if(!strcmp(p>Niext->name,name)?returnp;?returnNULL;?Supermarket*FindNum(

30、char*Niumm?or(Supermarket*p=Head;p>Next!=End;p=p->Next)/匹配成功則返回上一個(gè)指針,不成功就返回空if(!strcmp(p>Next>Num,Num>)?returnp;?returnNULL;Supermarket*FindAdd(char*Add)?for(Supermarket*p=Head;p->Next!=End;p=p->Next)/匹配成功則返回上一個(gè)指針,不成功就返回空?if(!strcmp(pNext>Add,Add)?returnp;?returnNULL;?;Superm

31、arketmassage:Supermarketmassage。?Head=newSupermarket;?Head->Next=newSupermarket;?End=Head->Next;?in、open("sort、txt");?if(!in)?cout<”這就是一個(gè)新系統(tǒng),無商品信息。請(qǐng)先輸入。”<end1;else?while(!in、eof()End>Read);?if(End->name0='0')?break;End->Next=newSupermarket;?End=End->Next;?in

32、、c1ose();?cout<"tt讀取商品信息成功!”<endl)Supermarketmassage:-Supermarketmassagei?Save();for(Supermarket*temp;Head->Next!=?temp=Head>Next;Head->Next=Head>Next->Next;?de1etetemp;deleteHead,End;intEnum1=100;voidSupermarketmassage:ShowMenu()cout孑超亍“<endl;cout小 亍亍"vendl;cout(”*

33、 十亍"<endl;coutvv” 十亍“<endl;cout<<"3十亍"<<endl;cout”)End;)商品管理系統(tǒng)1、增加商品信息2、顯木商品信息、排序統(tǒng)計(jì)商品4、查找商品信息亍“Vendl;cout<<"5、刪除商品信息十“<<endl;cout<”、修改商品信息亍亍"vendl;cout“7、銷售超市商品*亍"vendl;coutV”、安全退出系統(tǒng)十亍"v<endl;?coutnttntt請(qǐng)選擇voidSupermarketmassage:

34、Find?charname20Num10?intx;permarke*p=NULL?coutvv"ntt*,n;coUtvv”ttX1、按商品得名稱查找ttX2、按商品編號(hào)查找”?cout”tt*n請(qǐng)選擇:"n>>x?switch(x)case1?cout<<"tt請(qǐng)輸入要查找得商品得名稱:"?cin>>name;if(p=FindItem(name)?&p>Next>Show();?coutV”輸入任意字符!繼續(xù)"?getch();?良1se?couttt沒有找到該商品信息!"

35、<<'n'<<endl;?cout”輸入任意字符!繼續(xù)"?getch();break;case2:?cout<<"t請(qǐng)輸入要查找得商品編號(hào):”;?in>>Num;if(p=FindNum(Nunrj)?p->Next->Show();coutV”輸入任意字符!繼續(xù)"?getch();else?cout<<"tt沒有找到該編號(hào)得商品!"<'十endl;?cout<“輸入任意字符!繼續(xù)”;?getch();?break;voidSuperma

36、rketmassage:Modifyltem()/修改信息charname20;?Supermarket*p=NULL;cout<<"tt請(qǐng)輸入要修改得商品名:”;?cin>>name;if(p=FindItem(nam®)?£out<v"tt已找到商品得信息,請(qǐng)輸入新得信息!"<endl;p->Next>Input();?cout<"修改成功!"<<end1;?cout<”輸入任意字符!繼續(xù)"getch();e1secout<”tt沒有

37、找到!"<endl;?cout<”輸入任意字符!繼續(xù)”;?jetch();voidSupermarketmassage::RemoveItem()/刪除信息intdate(int&,int&,int&);intyear1,month1,day1,year2,month2,day2,suml,sum2,SUM;cout<<"請(qǐng)輸入商品得今天得日期:(年、月、日)"cin>>year1>>month1>>day1;sum1=date(year1,month1,day1);cout<

38、;”請(qǐng)輸入商品彳#截止日期:(年、月、日)”;cin>>year2>>month2>>day2;sum2= d at e (ye a r2 ,mo n t h2, day2);UM=sum2suml;if(SUM>=3)?coutv”該商品處于安全期,不用處理"<<endl;elsecharname20;Supermarket*p=NIULL,*temp=NULL;cout<"皿請(qǐng)輸入要?jiǎng)h除得商品名:"<<endl;cin>>name;if(p=FindItem(name)temp

39、=p->Niext;?p>Next=p>Niext->Next;deletetemp;cout<"tt刪除成功!"«end1;coutv<"輸入任意字符!繼續(xù)";?getch();elsecoutv<"t沒有找到!"<<endl;?cout«"輸入任意字符!繼續(xù)”;getch();?ntdate(int&day,int&month,int&year)/日期函數(shù)intsum,leap;switch(month)?/先計(jì)算某月以前月

40、份得總天數(shù)case1:sum=0;break;case2:sum=31;break;case3:sum=59;break;case4:sum=90;break;case5:sum=120;break;case6:sum=151;break;case 7: sum=181;break;case 8: sum=212;break;case9:sum=243;break;case10:sum=273;break;case11:sum=304;break;case12:sum=334;break;default:cout<<"dataerror"break;sum=su

41、m+day;/再加上某天得天數(shù)if(year%400=0)|(ycar%4=0&&year%100!=0)/判斷就是不就是閏年leap=1;elseleap=0;if(leap=1&&month2)?/如果就是閏年且月份大于2,總天數(shù)應(yīng)該加一天sum+;returnsum;voidSupermarketmassage:sale()/銷售函數(shù)Supermarketa;Supermarket*p=NIULL;intm;charname20,Num10;? coutv<”請(qǐng)輸入想要銷售得商品信息:"<<end1;cout<<&q

42、uot; nt* * * * * * *n "?cout<<" t X 1、按商品得名稱查找n tt X 2、按商品編號(hào)查找”;cout 請(qǐng)選擇:”;t t* * * * * * *c i n >> m;switch( m)? c a se 1 :?cout <<" t t請(qǐng)輸入要查找得商品得名稱? c i n >> name;if( p = F ind I tem(name)? ?£。u t <V "請(qǐng)輸入要銷售得數(shù)量? cin > >n u mb)e r;?i f(n u m

43、ber < = Enu m 1 )? co u t< <” 銷售成功! " << endl ;?c o utV”輸入任意字符!繼續(xù)?ge t ch ();?el s e:": ,? cou t <v”庫存不足,請(qǐng)重新輸入!" e n dl;? c out"輸入任意字符!繼續(xù)"getch();?elsecout<<"tt沒有找到!"<<endl;?cout”輸入任意字符!繼續(xù)"?getch();?break;?case2:?cout<<"

44、;tt請(qǐng)輸入要查找得商品得編號(hào)?cin>>Num;if(p=FindNum(Num)?cout<<"請(qǐng)輸入要銷售得數(shù)量:";?Cin>>number;?if(number=Enum1)?cout”銷售成功!"<<endl;?coutv<"輸入任意字符!繼續(xù)”;?getch();?else?cout<"庫存不足,請(qǐng)重新輸入!"end1;cout<<"輸入任意字符!繼續(xù)getch();?else?cout<<"t沒有找到!"e

45、ndl;cout<”輸入任意字符!繼續(xù)";getch();?break;?voidSupermarketmassage:S*p1,Supermarket*p2)/交換兩個(gè)box變量得數(shù)據(jù)域Supcrmarket*temp=newSupermarket;strcpy(temp>name,pl->name);/字符串name里面strcpy(temp>Num,pl>Num);?strcpy(temp->Add,p1>Add);?temp>Cnum=p1->Cnum;?temp->Mnum干1->Mnurn;temp->

46、;Enum=pl>Enum;tempPrice=p1>Price;?temp>Sum=p1>Sum;?strcpy(p1>name,p2>nam*;strcpy(plNum,p2>Num);strcpy(p1Add,p2->Add);p1>Cnum=p2Cnum;p1->Mnum=p2>Mnun;?p1Enum=p2>Enum;p1->Price=p2>Price;?p1->Sum=p2>Sumi;?strcpy(p2->name,temp>name);?strcpy(p2->Nu

47、m,temp->Nuni);?strcpy(p2>Add,temp->Add);p2>Cnum=temp>Cnum;p2->Mnum=temp>Mnum;?p2->Enum=temp->Enum;p2>Price=temp>Price;p2->Sum=temp>Sum;intSupermarketmassage:ListCount()/統(tǒng)計(jì)當(dāng)前鏈表得記錄總數(shù),返回一個(gè)整數(shù)if!Head)?return0;intn=0;?for(Supermarket*p=Head->Niext;p!=End;p=p>Ne

48、xt)?n+;?returnn;voidSupermarketmassage:Sort)/對(duì)當(dāng)前鏈表進(jìn)行排序?cout<<"Sorting、"endl;?Supermarket*p=NULL*p1=NULL,*k=NULL?intn=Supermarketmassage::ListCount();?if(nv2)return;for(p=Head>Niext;p!=End;p=p->Next)?for(k=p->Next;k!=End;k=k->Next)if(p-Add>k>Add)?Supermarketmassage:S

49、);?cout<"排序完成!"endl;?getch();return;voidSupermarketmassagc:Save()?out、open("sort、txt");for(Supermarket*p=Head>Next;p!=End;p=pNiext)?outv<p>name«"tt"?<p>Num<"tt"<pCnum<"tt"<p->Mnum<<"tt"?VpEnum<"t"p->Add<t"?<<p>Price<t"?p>Sum<<'n

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論