




免費預覽已結束,剩余34頁可下載查看
下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
江 蘇 師 范 大 學 科 文 學 院本 科 生 課 程 設 計課 程 名 稱: C+課程設計 題 目: 小型超市管理系統(tǒng) 專 業(yè) 班 級: 14電信1班 學 生 姓 名: 楊順順 學 生 學 號: 148326141 日 期: 2016.12.10 指 導 教 師: 袁博宇 科文學院教務部印制一、課程設計目的、任務和內(nèi)容要求: 設計一個簡單的超市管理系統(tǒng)。1.暫定有三個貨架,分別放著日常用品、食品和家電。2.可以實貨架商品的增加和出售。3.設計查詢功能,可以查找商品的現(xiàn)狀。4.不同商品有不同屬性:食品類,保質期,家電,顏色。5.重載運算符。設計要求:要求利用面向對象的方法以及C+的編程思想來完成系統(tǒng)的設計; 要求在設計的過程中,建立清晰的類層次; 在系統(tǒng)的設計中,至少要用到面向對象的一種機制。 二、進度安排:第3天: 查找資料,熟悉小型超市管理系統(tǒng)的設計原理,給出設計總體方案;第46天: 各函數(shù)的詳細設計;第712天: 程序調試;第1314天:寫課程設計報告。三、主要參考文獻:1c+語言程序設計(第四版)鄭莉 董淵 何江舟 編著 指導教師簽字: 年 月 日5目 錄 摘 要11概 述22 設計方案簡述32.1 設計內(nèi)容32.2 設計目的與要求32.3 系統(tǒng)分析與設計33 詳細設計123.1 系統(tǒng)總體設計123.2 源程序代碼134 運行結果285設計體會32第 1 頁 摘 要當代社會中伴隨著計算機技術在各行各業(yè)日益廣泛和深入的應用,超市對貨品于職員的管理不在像過去一樣靠手工去做,在一些超市管理中也開始信息化。信息化的管理可以為超市節(jié)省大量人力物力,提高其運行效率,從而為顧客提供更好的服務,實現(xiàn)超市的業(yè)務提升。本系統(tǒng)就是為了適應這種要求而設計的。集信息的顯示、輸入、修改、刪除、查詢等各種處理為一體,信息維護起來非常方便。大大減少了超市的人力和物力。本系統(tǒng)大致要做到以下幾點:(1)操作簡便,節(jié)省大量人力;(2) 可以方便的進行貨品管理,安全、高效;(3)可以迅速計算銷售額和所買賣貨品;(4)可以迅速查到所需信息,便于管理1 概 述1.1任務:超市管理系統(tǒng)對職員商品信息進行高效簡潔的管理,使之能正常高效的進行售賣活動。系統(tǒng)充分考慮到超市管理系統(tǒng)對貨物資料進行登記并處理??紤]到進貨、退貨、庫存預警、年月日銷售額結算等多種特殊情況,同時可將相關資料進行有效處理。1.2目標:當代社會中伴隨著計算機技術在各行各業(yè)日益廣泛和深入的應用,超市對貨品于職員的管理不在像過去一樣靠手工去做,在一些超市管理中也開始信息化。信息化的管理可以為超市節(jié)省大量人力物力,提高其運行效率,從而為顧客提供更好的服務,實現(xiàn)超市的業(yè)務提升。本系統(tǒng)就是為了適應這種要求而設計的。集信息的顯示、輸入、修改、刪除、查詢等各種處理為一體,信息維護起來非常方便。大大減少了超市的人力和物力。本系統(tǒng)大致要做到以下幾點:(1)操作簡便,節(jié)省大量人力;(2)可以方便的進行貨品管理,安全、高效;(3)可以迅速計算銷售額和所買賣貨品;(4)可以迅速查到所需信息,便于管理。2.設計方案簡述2.1設計內(nèi)容設計一個簡單的超市管理系統(tǒng)。1.暫定有三個貨架,分別放著日常用品、食品和家電。2.可以實貨架商品的增加和出售。3.設計查詢功能,可以查找商品的現(xiàn)狀。4.不同商品有不同屬性:食品類,保質期,家電,顏色。5.重載運算符。2.2設計目的與要求 2.2.1設計目的達到熟練掌握C+語言的基本知識和技能; 基本掌握面向對象程序設計的基本思路和方法; 能夠利用所學的基本知識和技能,解決簡單的面向對象程序設計問題。2.2.2 設計要求要求利用面向對象的方法以及C+的編程思想來完成系統(tǒng)的設計; 要求在設計的過程中,建立清晰的類層次; 在系統(tǒng)的設計中,至少要用到面向對象的一種機制。2.3系統(tǒng)分析與設計 2.3.1主要知識點 1)類,類內(nèi)包含構造函數(shù)、成員函數(shù)、私有數(shù)據(jù)成員和某些輸入輸出函數(shù); 2)運算符重載,定義一個重載運算符的函數(shù),在需要執(zhí)行被重載的運算符是,系統(tǒng)自動調用該函數(shù);3)繼承與派生:1.基類即父類,被繼承的已有類;2.派生類即子類,新建立的類;3.這些類的定義和聲明同類; 4.虛函數(shù)的作用是允許在派生類中重新定義與基類同名的函數(shù),并且可以通過基類指針或引用來訪問基類和派生類中的同名函數(shù)。 2.3.2關鍵技術1)程序共有四個頭文件和四個源文件。頭文件Supermarket,包含增加Add,出售Sale和查詢Search三個公有成員函數(shù);源文件Supermarket,增加函數(shù),出售函數(shù)和查詢函數(shù)的功能相似,選擇功能,輸出商品類型列表。頭文件Goods,在這個頭文件中有四個類,一個基類和三個派生類。基類Goods中設置增加AddGoods,出售SaleGoods,顯示函數(shù)virtual ShowMe。同時定義統(tǒng)一的出售函數(shù)Sale。保護成員包括,商品名稱name,商品數(shù)量number和商品分類的數(shù)量count。 派生類,日常用品類DailyGoods,食物Food和家電ElectricalAppliance,除了自身的無參構造函數(shù),均從基類中繼承增加AddGoods,出售SaleGoods,顯示函數(shù)virtual ShowMe,并根據(jù)課題要求加入運算符重載函數(shù)istream operator (istream &in,DailyGoods &d)。同時借助函數(shù)Input_file和函數(shù)Save_file將商品信息輸出并保存到文件中。 源文件Goods,實現(xiàn)各函數(shù)功能。 頭文件diaplay,保存了小系統(tǒng)的基本頁面和選擇頁面。登錄界面Loading,功能選擇界面SelectMenu,商品功能列表GoodList和結束頁面End。 源文件display,進行頭文件的各項函數(shù)的功能實現(xiàn)。 頭文件file,是關于文件的存儲,打開和關閉的功能。 源文件main,實現(xiàn)功能的匯總和實現(xiàn)方式。2)部分函數(shù)的實現(xiàn)/Supermaket*Add函數(shù)int Supermarket:Add()int Good_num;system(cls);GoodList(); /調用GoodList()函數(shù)語言coutGood_num;return Good_num;*Sale函數(shù)int Supermarket:Sale()int Good_num;system(cls);GoodList(); /調用GoodList()函數(shù)語言coutGood_num;return Good_num;*Search函數(shù)int Supermarket:Search()int Good_num;system(cls);GoodList(); /調用GoodList()函數(shù)語言coutGood_num;return Good_num; /Goods*Sale函數(shù)void Goods:Sale()/統(tǒng)一定義商品出售函數(shù)功能模塊 int flag=0; string goods_name; int goods_number; coutgoods_name; coutgoods_number; for(int i=0;icount;i+) /count 在Goods.h中定義的保護成員 if(namei=goods_name) if(numberigoods_number) flag=1; coutendlttendl; coutttt ! 貨存不足!endl; else flag=1; numberi-=goods_number; coutendlttendl; coutttt !出售成功!endl; if(flag=0) getchar();coutendlttendl; coutttt 沒有該物品! endl; getchar(); *AddGoods函數(shù)void DailyGoods:AddGoods()/增加日常用品 system(cls); int flag=1; ShowMe(); coutendl請輸入要增加日常用品的信息endlendl; coutnamecount; coutnumbercount; for(int i=0;icount;i+) if(namei=namecount)/判斷該物品是否已經(jīng)存在 numberi+=numbercount; flag=0; if(flag) count+;/用于新增物品coutendlendlttendl;coutttt ! 添加商品成功!endl; coutttendl; void Food:AddGoods()/增加食品system(cls);int flag=1;ShowMe();coutendl請輸入需要增加的食品信息endl;coutnumbercount;for(int i=0;icount;i+)if(namei=namecount)/判斷該物品是否存在numberi += numbercount;flag=0;if(flag)coutnumbercount;coutSaveTimecount;count+; /用于新增物品coutendlendlendlttendlendl;coutttt 添加商品成功! endl;coutendlendlendlendl;coutendlttendlendl;void ElectricalAppliance:AddGoods()/增加家電 system(cls); int flag=1; ShowMe(); coutendl請輸入要增加的家電的信息endlendl; coutnamecount; for(int i=0;icount;i+) if(namei=namecount)/判斷該物品是否已經(jīng)存在 coutnumbercount; numberi+=numbercount; flag=0; if(flag) coutnumbercount; coutcolorcount; count+;/用于新增物品 coutendlendltt*endl; couttt ! 添加商品成功!!endl; couttt*endl; *SaleGoods函數(shù)void DailyGoods:SaleGoods()/出售日常用品 system(cls); ShowMe(); coutendl請輸入要出售的日常用品信息endlendl; Sale();/調用基類Goods里的Sale()函數(shù) void Food:SaleGoods()/出售食品system(cls);ShowMe();coutendl請輸入要出售的食品信息endlendl;Sale(); /調用基類Goods里的Sale函數(shù)void ElectricalAppliance:SaleGoods() /賣出家電system(cls); ShowMe(); coutendl請輸入要出售的家電信息endlendl; Sale();/調用基類Goods里的Sale()函數(shù) *ShowMe函數(shù)void DailyGoods:ShowMe() /顯示日常用品 coutendl 超市商品管理系統(tǒng)*日常用品區(qū) endlendl; coutendl現(xiàn)有日常用品類商品庫存:endlendl; for(int i=0;icount;i+) cout 【i+1】日常用品名稱:setiosflags(ios:left)setw(15)namei; cout現(xiàn)存數(shù)量:numberi個endl; cout -endl; void Food:ShowMe() /顯示食品信息 coutendl 超市商品管理系統(tǒng)*食品區(qū) endlendl; coutendl現(xiàn)有食品類商品庫存:endlendl; for(int i=0;icount;i+) cout 【i+1】食品名稱:setiosflags(ios:left)setw(15)namei; /執(zhí)行由有參數(shù)指定區(qū)域內(nèi)的動作cout現(xiàn)存數(shù)量:setw(4)numberisetw(8)千克; / setw( n ) 設域寬為n個字符cout保質期:setw(3)SaveTimei天endl; cout -endl; void ElectricalAppliance:ShowMe() /顯示家電信息 coutendl 超市商品管理系統(tǒng)*家電區(qū) endlendl; coutendl現(xiàn)有家電類商品庫存:endlendl; for(int i=0;icount;i+) cout 【i+1】家電名稱:setiosflags(ios:left)setw(15)namei; cout現(xiàn)存數(shù)量:numberisetw(6)臺; cout顏色:coloriendl; cout -endl; *文件的輸入和保存函數(shù)void DailyGoods:Input_file(ostream&outfile)/將DailyGoods類商品信息打印到文件中 outfileendl現(xiàn)有日常用品類商品庫存:endlendl; for(int i=0;icount;i+) outfile【i+1】日常用品名稱:setiosflags(ios:left)setw(15)namei; outfile現(xiàn)存數(shù)量:numberi個endl; outfileendlendlendlendlendl; void DailyGoods:Save_file(ostream&Write_DailyGoods)/用于將DailyGoods商品信息單獨保存到文件中 Write_DailyGoodscountendl; for(int i=0;icount;i+) Write_DailyGoodsnamei numberiendl; void Food:Input_file(ostream&outfile)/將Food類商品信息打印到文件中 outfileendl現(xiàn)有食品類商品庫存:endlendl; for(int i=0;icount;i+) outfile【i+1】食品名稱:setiosflags(ios:left)setw(15)namei; outfile現(xiàn)存數(shù)量:setw(4)numberisetw(8)千克; outfile保質期:setw(3)SaveTimei天endl; outfileendlendlendlendlendl; void Food:Save_file(ostream&Write_Food)/用于將Food商品信息保存到文件中 Write_Foodcountendl; for(int i=0;icount;i+) Write_Foodnamei numberi SaveTimeiendl; void ElectricalAppliance: Input_file(ostream&outfile)/將ElectricalAppliance類商品信息打印到文件中 outfileendl現(xiàn)有家電類(ElectricalAppliance)商品庫存:endlendl; for(int i=0;icount;i+) outfile【i+1】家電名稱:setiosflags(ios:left)setw(15)namei; outfile現(xiàn)存數(shù)量:numberisetw(6)臺; outfile顏色:coloriendl; outfileendlendlendlendlendl; void ElectricalAppliance:Save_file(ostream&Write_ElectricalAppliance)/用于將ElectricalAppliance商品信息保存到文件中 Write_ElectricalAppliancecountendl; for(int i=0;icount;i+) Write_ElectricalAppliancenamei numberi coloriendl; /Display函數(shù)void SelectMenu()/實現(xiàn)商品操作的列表 coutendl 超 市 商 品 管 理 系 統(tǒng) endlendl; coutt 可操作選項:endlendl; coutendlendl;coutttt 1 增加商品endl; coutttt 2 出售商品endl; coutttt 3 查詢商品endl; coutttt endlendl; coutt您要進行的操作是:; void GoodList()/商品類別列表 coutendl 超 市 商 品 管 理 系 統(tǒng)endlendl; coutt 我們提供的商品有:endl; coutendlendl;coutttt 1 日常用品類endl; coutttt 2 食品類endl; coutttt 3 家電類endl; couttt endlendl; 3 詳細設計3.1系統(tǒng)總體設計一個簡單的超市管理系統(tǒng)增加商品出售商品查詢商品日常用品,食品,家電日常用品,食品,家電日常用品,食品,家電3.2源程序代碼/Supermarket.h#pragma once /保證頭文件只被編譯一次#includeusing namespace std;class Supermarket /要求(1)超市類,描述函數(shù)Add,Sale,Searchpublic:int Add(); /增加商品函數(shù),可以增加新商品,也可以增加已有商品int Sale(); /按照商品名稱賣出商品函數(shù)(如果商品現(xiàn)有數(shù)量小于賣出數(shù)量,則不能繼續(xù)賣出,并給出提示信息)int Search(); /按照商品類別查詢商品情況的函數(shù),查詢結果:每類商品中有哪些商品,每種花商品的名稱和現(xiàn)有數(shù)量int Good_num;/Supermarket.cpp#pragma once #includeGoods.h#includeSupermarket.h#includeDisplay.husing namespace std;/增加商品的函數(shù)int Supermarket:Add()int Good_num;system(cls);GoodList(); /調用GoodList()函數(shù)語言coutGood_num;return Good_num;/按照商品名稱賣出商品的函數(shù)int Supermarket:Sale()int Good_num;system(cls);GoodList(); /調用GoodList()函數(shù)語言coutGood_num;return Good_num;/按照商品類別查詢商品情況的函數(shù)int Supermarket:Search()int Good_num;system(cls);GoodList(); /調用GoodList()函數(shù)語言coutGood_num;return Good_num; /Goods.h#pragma once #include#include#includeusing namespace std;/商品類Goodsclass Goodspublic:virtual void AddGoods()=0; /增加商品virtual void SaleGoods()=0; /出售商品virtual void ShowMe()=0; /顯示商品名稱、現(xiàn)有數(shù)量、和食品類的保質期、以及家電的顏色void Sale(); /統(tǒng)一定義商品出售函數(shù)功能模塊protected:string name100; /記錄商品名稱int number100; /記錄商品數(shù)量int count; /記錄各類商品的各自的商品種數(shù);/派生類:日常用品類DailyGoodsclass DailyGoods:public Goodspublic:DailyGoods(); /無參構造函數(shù)void AddGoods(); /增加商品void SaleGoods();/出售商品friend istream operator (istream &in,DailyGoods &d);/對DailyGoods類重載運算符,用于文件中讀取日常用品類的信息void ShowMe(); /顯示商品屬性void Input_file(ostream&outfile); /用于將商品信息輸出到文件中void Save_file(ostream&Write_DailyGoods); /用于將商品信息單獨保存到文件中;/派生類:食品類Foodclass Food:public Goodspublic:Food(); /無參構造函數(shù)void AddGoods(); /增加商品void SaleGoods();/出售商品/friend istream operator (istream &in,Food &f);/對Food類重載運算符,用于文件中讀取日常用品類的信息void ShowMe(); /顯示商品屬性void Input_file(ostream&outfile); /用于將商品信息輸出到文件中void Save_file(ostream&Write_Food); /用于將商品信息單獨保存到文件中private:int SaveTime100; /保質期;/派生類:家電類ElectricalApplianceclass ElectricalAppliance:public Goodspublic:ElectricalAppliance();/無參構造函數(shù)void AddGoods(); /增加商品void SaleGoods(); /出售商品/friend istream operator (istream &in,ElectricalAppliance &e);/對ElectricalAppliance類重載運算符,用于文件中讀取日常用品類的信息void ShowMe(); /顯示商品屬性void Input_file(ostream&outfile); /用于將商品信息輸出到文件中void Save_file(ostream&Write_ElectricalAppliance); /用于將商品信息單獨保存到文件中private:string color100; /顏色屬性;/Goods.cpp#pragma once #includeGoods.h #includeSupermarket.h #includeDisplay.h #include #include using namespace std; void Goods:Sale()/統(tǒng)一定義商品出售函數(shù)功能模塊 int flag=0; string goods_name; int goods_number; coutgoods_name; coutgoods_number; for(int i=0;icount;i+) /count 在Goods.h中定義的保護成員 if(namei=goods_name) if(numberigoods_number) flag=1; coutendlttendl; coutttt ! 貨存不足!endl; else flag=1; numberi-=goods_number; coutendlttendl; coutttt !出售成功!endl; if(flag=0) getchar();coutendlttendl; coutttt 沒有該物品! endl; /日常用品類函數(shù)定義DailyGoods:DailyGoods()/類外定義構造函數(shù),初始化貨存日常用品信息 count=4; name0=臺燈;number0=76; name1=毛巾;number1=68; name2=杯子;number2=53; name3=水壺;number3=48; void DailyGoods:AddGoods()/增加日常用品 system(cls); int flag=1; ShowMe(); coutendl請輸入要增加日常用品的信息endlendl; coutnamecount; coutnumbercount; for(int i=0;icount;i+) if(namei=namecount)/判斷該物品是否已經(jīng)存在 numberi+=numbercount; flag=0; if(flag) count+;/用于新增物品coutendlendlttendl;coutttt ! 添加商品成功!endl; coutttendl; void DailyGoods:SaleGoods() system(cls); ShowMe(); coutendl請輸入要出售的日常用品信息endlendl; Sale();/調用基類Goods里的Sale()函數(shù) void DailyGoods:ShowMe() coutendl 超市商品管理系統(tǒng)*日常用品區(qū) endlendl; coutendl現(xiàn)有日常用品類商品庫存:endlendl; for(int i=0;icount;i+) cout 【i+1】日常用品名稱:setiosflags(ios:left)setw(15)namei; cout現(xiàn)存數(shù)量:numberi個endl; cout -endl; void DailyGoods:Input_file(ostream&outfile)/將DailyGoods類商品信息打印到文件中 outfileendl現(xiàn)有日常用品類商品庫存:endlendl; for(int i=0;icount;i+) outfile【i+1】日常用品名稱:setiosflags(ios:left)setw(15)namei; outfile現(xiàn)存數(shù)量:numberi個endl; outfileendlendlendlendlendl; void DailyGoods:Save_file(ostream&Write_DailyGoods)/用于將DailyGoods商品信息單獨保存到文件中 Write_DailyGoodscountendl; for(int i=0;icount;i+) Write_DailyGoodsnamei numberiendl; /食品類Food的函數(shù)定義Food:Food() /類外定義構造函數(shù),初始化火車食品信息count=6;name0=蘋果; number0=360; SaveTime0=15;name1=香蕉; number1=500; SaveTime1=5;name2=李子; number2=450; SaveTime2=2;name3=西瓜; number3=350; SaveTime3=8;name4=楊梅; number4=400; SaveTime4=7;name5=芒果; number5=300; SaveTime5=21;void Food:AddGoods()system(cls);int flag=1;ShowMe();coutendl請輸入需要增加的食品信息endl;cout namecount;for(int i=0;icount;i+)if(namei=namecount)/判斷該物品是否存在numberi += numbercount;flag=0;if(flag)coutnumbercount;coutSaveTimecount;count+; /用于新增物品co
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 高中提前考試數(shù)學試卷
- 福建省質檢卷數(shù)學試卷
- 高一年泉州統(tǒng)考數(shù)學試卷
- 福州初中五月數(shù)學試卷
- 甘肅15高考數(shù)學試卷
- 教師課件的制作培訓
- 2025年浙江醫(yī)療衛(wèi)生招聘金華義烏市中醫(yī)醫(yī)院招聘4人筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 2025年年唐都醫(yī)院住培醫(yī)師招錄筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 2025至2030城市建設規(guī)劃發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 二一年高考數(shù)學試卷
- 醫(yī)療器械行業(yè)市場部人員崗位職責
- 旅行社導游帶團操作流程
- 部編版小學道德與法治三年級下冊期末質量檢測試卷【含答案】5套
- 怎樣當好一名師長
- DB21T 3354-2020 遼寧省綠色建筑設計標準
- 新生兒復蘇解析課件
- (完整版)重大危險源清單及辨識表
- ABI7500熒光定量PCR儀標準操作規(guī)程
- 語言領域核心經(jīng)驗《學前兒童語言學習與發(fā)展核心經(jīng)驗》
- DB51T 5036-2017 四川省屋面工程施工工藝規(guī)程
- 11級設計題目寶豐紅四煤礦
評論
0/150
提交評論