




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、面向?qū)ο蟪绦蛘n程設(shè)計(jì)(2017/2018學(xué)年第二學(xué)期第17周)指導(dǎo)教師: XXX班級(jí):XXX學(xué)號(hào):XXXX姓名:XXX 面向?qū)ο蟪绦蛘n程設(shè)計(jì)任務(wù)書【題目】自助點(diǎn)餐系統(tǒng)【目的】通過設(shè)計(jì)一個(gè)小型的自助點(diǎn)餐系統(tǒng),訓(xùn)練綜合運(yùn)用所學(xué)知識(shí)處理實(shí)際問題的能力,強(qiáng)化面向?qū)ο蟮某绦蛟O(shè)計(jì)理念,使自己的程序設(shè)計(jì)與調(diào)試水平有一個(gè)明顯的提高?!疽蟆?、每個(gè)學(xué)生必須獨(dú)立完成;2、課程設(shè)計(jì)時(shí)間為1周;3、設(shè)計(jì)語(yǔ)言采用C+;4、學(xué)生有事離校必須請(qǐng)假。課程設(shè)計(jì)期間,無故缺席按曠課處理;缺席時(shí)間達(dá)四分之一以上者,未按規(guī)定上交實(shí)驗(yàn)報(bào)告的學(xué)生,其成績(jī)按不及格處理?!緝?nèi)容簡(jiǎn)介】 有一個(gè)小型餐廳,現(xiàn)在這個(gè)餐廳打算使用自助點(diǎn)餐系統(tǒng),方便
2、顧客自己點(diǎn)餐,并提供對(duì)餐廳銷售情況的統(tǒng)計(jì)和管理功能。【考核標(biāo)準(zhǔn)】該系統(tǒng)為兩種角色的用戶提供服務(wù),一種是餐廳管理員,一種是顧客。餐廳管理員根據(jù)賬號(hào)、密碼登錄系統(tǒng)。顧客無需登錄即可使用系統(tǒng)。1、 顧客通過該餐廳在系統(tǒng)中提供的菜單為自己點(diǎn)餐,菜單以文件形式保存。系統(tǒng)能夠根據(jù)顧客的要求正確打出訂單,訂單內(nèi)容包括訂單編號(hào)、菜品名稱、每個(gè)菜品的價(jià)格、份數(shù)、折扣等;訂單分兩種,一種是在店消費(fèi),在店消費(fèi)要求包括餐桌號(hào),是否有包廂費(fèi),另一種是外賣,外賣要求包括送餐時(shí)間,送餐地點(diǎn),客戶手機(jī)號(hào),外賣服務(wù)費(fèi)。(要求用繼承和多態(tài)實(shí)現(xiàn)),成績(jī)60;2、 系統(tǒng)退出后能保存當(dāng)天的訂單信息,要求每天一個(gè)文檔,文檔名按照日期命名
3、。餐廳管理員可以根據(jù)訂單編號(hào)查找刪除修改某個(gè)訂單,訂單可以按照下單時(shí)間先后排序,成績(jī)70;3、 能夠?qū)崿F(xiàn)對(duì)餐廳菜式和價(jià)格的管理,包括對(duì)菜品和對(duì)應(yīng)價(jià)格的增加、修改、刪除、查找,折扣的設(shè)置,成績(jī)80;4、 系統(tǒng)可根據(jù)歷史記錄對(duì)銷售情況進(jìn)行統(tǒng)計(jì),根據(jù)餐廳管理員的輸入日期統(tǒng)計(jì)某天的銷售情況并顯示(包括一共接了多少單,銷售額是多少,各個(gè)菜品的銷售情況,外賣和在店銷售的占比),成績(jī)90;要求:用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法設(shè)計(jì)該系統(tǒng)。本系統(tǒng)涉及的基本對(duì)象有訂單對(duì)象(包括外賣訂單和在店消費(fèi)訂單)、訂單管理對(duì)象、菜單對(duì)象、菜品對(duì)象、菜品管理對(duì)象、系統(tǒng)界面。實(shí)現(xiàn)對(duì)這些對(duì)象的合理抽象和封裝,正確定義類之間的關(guān)系。界面合
4、理,代碼文件組織清晰,命名符合規(guī)范,代碼注釋清楚,課程設(shè)計(jì)報(bào)告質(zhì)量高。面向?qū)ο蟪绦蛘n程設(shè)計(jì)目 錄一、 題目有一個(gè)小型餐廳,現(xiàn)在這個(gè)餐廳打算使用自助點(diǎn)餐系統(tǒng),方便顧客自己點(diǎn)餐,并提供對(duì)餐廳銷售情況的統(tǒng)計(jì)和管理功能。二、 需求分析有一個(gè)小型餐廳,該餐廳提供即時(shí)就餐和外賣服務(wù)。方便顧客自己點(diǎn)餐,并提供對(duì)餐廳銷售情況的統(tǒng)計(jì)和管理功能。1、根據(jù)顧客的選擇正確打出訂單。2、統(tǒng)計(jì)出每一天的訂單并將之保存在文件中。3、可以通過管理員功能對(duì)訂單,菜品等進(jìn)行操作。三、 系統(tǒng)結(jié)構(gòu)圖四、 類的設(shè)計(jì)五、 程序代碼與說明Face.h#ifndef Face_h#define Face_h#include OrderMan
5、a.hclass Faceprivate:OrderMana shard;public:void start();/定義開始界面void Adm();/定義管理員登入界面void Adm1();/定義管理員界面void AdmOrder();/查找修改刪除訂單void AdmVege();/菜式和價(jià)格的管理void AdmSell();/查看銷售情況void client();/定義客戶界面void AdmVegeI();/添加菜品void AdmVegeII();/修改菜品void AdmVegeIII();/刪除菜品void AdmVegeV();/查找菜品void AdmVegeVI()
6、;/設(shè)置折扣void AdmOrderI();/查找訂單void AdmOrderII();/修改訂單void AdmOrderIII();/刪除訂單;#endifMana.h#ifndef Mana_h#define Mana_h#include menu.h#include #include using namespace std;class Mana :public Menuprivate:string kind;/訂單種類string tim, address, phone;/送餐時(shí)間,送餐地點(diǎn),客戶手機(jī)號(hào)int table, Allmoney;/座位號(hào),總價(jià)bool a;/是否有包廂
7、費(fèi)public:string Numble;/訂單編號(hào)Mana(string numble,string kind,string tim, string address, string phone);Mana(string numble, string kind,int table, bool a);void setAllmoney(int money);string getKind() return kind; ;string getTim() return tim; ;string getAddress() return address; ;string getphone() return
8、 phone; ;int getTable() return table; ;int getAllmoney() return Allmoney; ;bool getA() return a; ;string getNumble() return Numble; ;void insert(string Vege, double money, int num, double discount);#endifmenu.h#ifndef Menu_h#define Menu_h#include #include #include vegetalbe.husing namespace std;clas
9、s Menuprivate:Vegetalbe*p;public:list members;list ord;void insert(string Vege, int num);/記錄顧客挑選菜單virtual void insert(string Vege, double money, int num, double discount);void txtinsert();/記錄原有菜單void printmembers();/輸出原有菜單void printord();/輸出顧客菜單void pushnew(Vegetalbe &b);/添加菜單string number();/訂單編碼vo
10、id dleinsert(string Vege);/刪除菜品Menu();#endiforder.h#ifndef Order_h#define Order_h#include using namespace std;class Orderprivate:string account;string code;public:Order(string account, string code);bool judge();#endifOrderMana.h#ifndef OrderMana_h#define OrderMana_h#include Mana.h#include menu.h#inc
11、lude #include using namespace std;class OrderManaprivate:double BossMoney = 0;/銷售額int Fre = 0;/接了多少單double Spec;/外賣和在店銷售的占比double TakeOut=0;/外賣次數(shù)double InShop=0;/在店次數(shù)Mana *p;public:list members;list ord;double getBossMoney();/輸出相應(yīng)日期的銷售金額void txtinsertI(Menu *p, string tim, string address, string pho
12、ne, string number);/打印外賣訂單void txtinsertII(Menu *p, bool a, int x, string number);/打印在店訂單void txtinsertMana(string day);/獲取本地訂單void findMana(string numble);/查找訂單void pushit(Mana*re);/輸出訂單void dleinsertM(string numble);/刪除訂單double getSpec() return TakeOut / InShop; ;double getTakeOut() return TakeOut
13、; ;double getInShop() return InShop; ;int getFre() return Fre; ;#endifvegetalbe.h#ifndef Vegetalbe_h#define Vegetalbe_h#include using namespace std;class Vegetalbeprivate:string name;double money;int num;double discount;public:Vegetalbe(string name, double money, double discount)this-name = name;thi
14、s-money = money;this-discount = discount;Vegetalbe(string name, double money,int num, double discount)this-name = name;this-money = money;this-num = num;this-discount = discount;/修改菜品voidSetVegetalbe(string name, double money, double discount)this-name = name;this-money = money;this-discount = disco
15、unt;string getname() return name; double getmoney() return money; void setnum(int x) this-num = x; int getnum() return num; double getdiscount() return discount; ;#endifinterface.cpp#include Face.h#include order.h#include menu.h#include #include #include#includeusing namespace std;/定義開始界面void Face:s
16、tart()cout endl;cout ttt歡迎使用自助點(diǎn)餐系統(tǒng)ttt endl;cout _ endl;cout ttt請(qǐng)輸入操作模式ttt endl;cout ttt1.管理員ttt endl;cout ttt2.顧客ttt endl;cout _ m;if (m = 1)Adm();int i;cin i;switch (i)case 1:AdmOrder(); break;case 2:AdmVege(); break;case 3:AdmSell(); break;case 4:break;else client();/定義管理員登入界面void Face:Adm()string
17、 account, code;while (1)cout _ endl;cout account;cout code;cout _ Adm1();break;else cout ttt輸入的賬戶或密碼錯(cuò)誤 Adm();/定義管理員界面void Face:Adm1()cout _ endl;cout ttt請(qǐng)輸入操作: endl;cout ttt1.查找修改刪除訂單 endl;cout ttt2.菜式和價(jià)格的管理 endl;cout ttt3.查看銷售情況 endl;cout ttt4.退出 endl;cout _ i;switch (i)case 1:AdmOrder(); break;cas
18、e 2:AdmVege(); break;case 3:AdmSell(); break;case 4:start(); break;start();/查找修改刪除訂單void Face:AdmOrder()cout _ endl;cout ttt請(qǐng)輸入操作: endl;cout ttt1.查找訂單 endl;cout ttt2.修改訂單 endl;cout ttt3.刪除訂單 endl;cout ttt4.退出 endl;cout _ i;switch (i)case 1:AdmOrderI(); break;case 2:AdmOrderII(); break;case 3:AdmOrde
19、rIII(); break;case 4:Adm1(); break;Adm1();/菜式和價(jià)格的管理void Face:AdmVege()cout _ endl;cout ttt請(qǐng)輸入操作: endl;cout ttt1.添加菜品 endl;cout ttt2.修改菜品 endl;cout ttt3.刪除菜品 endl;cout ttt4.查找菜品 endl;cout ttt5.設(shè)置折扣 endl;cout ttt6.退出 endl;cout _ i;switch (i)case 1:AdmVegeI(); break;case 2:AdmVegeII(); break;case 3:Adm
20、VegeIII(); break;case 4:AdmVegeV(); break;case 5:AdmVegeVI(); break;case 6:Adm1(); break;Adm1();/查看銷售情況void Face:AdmSell()cout _ endl;cout day;day = D: + day + .txt;OrderMana pe;pe.txtinsertMana(day);cout 訂單數(shù): pe.getFre()endl;cout 銷售額: pe.getBossMoney() endl;cout 外賣和在店銷售的占比: pe.getSpec() endl;Adm1()
21、;/定義客戶界面void Face:client()cout _ endl;cout ttt菜單 endl;cout 菜品名稱t 價(jià)格tt 折扣 endl;Menu pe;string number;double money = 0;pe.txtinsert();pe.printmembers();cout 請(qǐng)輸入購(gòu)買菜品和份數(shù): Vege;int num;cin num;pe.insert(Vege, num);cout c;if (c = 否) break;cout ttt請(qǐng)選擇消費(fèi)模式 endl;cout ttt1.外賣 endl;cout ttt2.在店消費(fèi) i;if (i = 1)s
22、tring time, address, phone;cout 請(qǐng)輸入送餐時(shí)間: time;cout 請(qǐng)輸入送餐地點(diǎn): address;cout 請(qǐng)輸入手機(jī)號(hào): phone;number = pe.number();cout ttt外賣 endl;cout ttt編號(hào): number endl;cout 送餐時(shí)間: time t送餐地點(diǎn): address t客戶手機(jī)號(hào): phone endl;cout 菜品tt價(jià)格tt份數(shù)tt折扣 endl;pe.printord();list:iterator it;for (it = pe.ord.begin(); it != pe.ord.end();
23、it+)money = (*it)-getmoney()*(*it)-getnum()*(*it)-getdiscount()*0.1 + money;cout 總價(jià): money + 5 元 endl;shard.txtinsertI(&pe, time, address, phone,number);else if (i = 2)cout i;bool r = 0;if (i = 是)r = 1;int c;srand(unsigned)time(NULL);c = rand() % (50 - 1);number = pe.number();cout ttt在店消費(fèi) endl;cout
24、ttt訂單編號(hào): number endl;cout 包廂費(fèi): (int)r * 50 元 endl;cout 座位號(hào): c endl;cout 菜品tt價(jià)格tt份數(shù)tt折扣 endl;pe.printord();list:iterator it;for (it = pe.ord.begin(); it != pe.ord.end(); it+)money = (*it)-getmoney()*(*it)-getnum()*(*it)-getdiscount()*0.1 + money;cout 總價(jià): money + (int)r * 50 元 endl;shard.txtinsertII(&
25、pe, r, c, number);start();/添加菜品void Face:AdmVegeI()Menu pe;pe.txtinsert();string name;double money;double discount;cout name;cout money;cout discount;Vegetalbe b(name, money, discount);pe.pushnew(b);list:iterator it;ofstream outDate(D:菜單.txt, ios:trunc);for (it = pe.members.begin(); it != pe.members
26、.end(); it+)outDate getname() tt getmoney() tt getdiscount() endl;outDate.close();cout 添加成功 endl;AdmVege();/修改菜品void Face:AdmVegeII()Menu pe;pe.txtinsert();string name;double money;double discount;cout name;list:iterator it;for (it = pe.members.begin(); it != pe.members.end(); it+)if (*it)-getname()
27、 = name)cout money;cout discount;(*it)-SetVegetalbe(name, money, discount);break;ofstream outDate(D:菜單.txt, ios:trunc);for (it = pe.members.begin(); it != pe.members.end(); it+)outDate getname() tt getmoney() tt getdiscount() endl;outDate.close();cout 修改成功 endl;AdmVege();/刪除菜品void Face:AdmVegeIII()M
28、enu pe;pe.txtinsert();string name;cout name;pe.dleinsert(name);list:iterator it;ofstream outDate(D:菜單.txt, ios:trunc);for (it = pe.ord.begin(); it != pe.ord.end(); it+)outDate getname() tt getmoney() tt getdiscount() endl;outDate.close();cout 刪除成功 endl;AdmVege();/查找菜品void Face:AdmVegeV()Menu pe;pe.t
29、xtinsert();string name;cout name;list:iterator it;for (it = pe.members.begin(); it != pe.members.end(); it+)if (*it)-getname() = name)cout 菜品名稱: getname() t價(jià)格: getmoney() 元t getdiscount() 折 endl;break;AdmVege();/設(shè)置折扣void Face:AdmVegeVI()Menu pe;pe.txtinsert();double discount;double money;string name
30、;cout name;list:iterator it;for (it = pe.members.begin(); it != pe.members.end(); it+)if (*it)-getname() = name)cout discount;money = (*it)-getmoney();(*it)-SetVegetalbe(name, money, discount);break;ofstream outDate(D:菜單.txt, ios:trunc);for (it = pe.members.begin(); it != pe.members.end(); it+)outDa
31、te getname() tt getmoney() tt getdiscount() endl;outDate.close();cout 修改成功 endl;AdmVege();/查找訂單void Face:AdmOrderI()cout day;day = D: + day + .txt;cout numble;OrderMana pe;pe.txtinsertMana(day);pe.findMana(numble);AdmOrder();/修改訂單void Face:AdmOrderII()cout day;day = D: + day + .txt;cout numble;Order
32、Mana pe;pe.txtinsertMana(day);/刪除訂單void Face:AdmOrderIII()cout day;day = D: + day + .txt;cout numble;OrderMana pe;pe.txtinsertMana(day);ofstream outDate(day, ios:trunc);list:iterator it;for (it = pe.ord.begin(); it != pe.ord.end(); it+)if (*it)-getKind() = 外賣)outDate ttt外賣 endl;outDate ttt編號(hào) getNumb
33、le() endl;outDate 送餐時(shí)間: getTim() t送餐地點(diǎn): getAddress() t客戶手機(jī)號(hào): getphone() endl;outDate 菜品tt價(jià)格tt份數(shù)tt折扣 endl;list:iterator I;for (I = (*it)-ord.begin(); I != (*it)-ord.end(); it+)outDate getname() tt getmoney() tt getnum()ttgetdiscount() endl;outDate 總價(jià): getAllmoney() 元 endl;elseoutDate ttt在店消費(fèi) endl;out
34、Date ttt訂單編號(hào): getNumble() endl;outDate 包廂費(fèi): getA() * 50 元 endl;outDate 座位號(hào): getTable() endl;outDate 菜品tt價(jià)格tt份數(shù)tt折扣 endl;list:iterator I;for (I = (*it)-ord.begin(); I != (*it)-ord.end(); it+)outDate getname() tt getmoney() tt getnum() tt getdiscount() endl;outDate 總價(jià): getAllmoney() 元 endl;outDate.clo
35、se();cout 刪除成功 endl;main.cpp#include vegetalbe.h#include menu.h#include order.h#include Face.h#include using namespace std;void main()Face re;re.start();Mana.cpp#include Mana.hMana:Mana(string numble, string kind, string tim, string address, string phone)this-Numble = numble;this-kind = kind;this-ti
36、m = tim;this-address = address;this-phone = phone;Mana:Mana(string numble, string kind, int table, bool a)this-Numble = numble;this-kind = kind;this-table = table;this-a = a;void Mana:setAllmoney(int money)Allmoney = money;void Mana:insert(string Vege, double money, int num, double discount)list:ite
37、rator it;*it = new Vegetalbe(Vege, money, num, discount);ord.push_back(*it);menu.cpp#include menu.h#include #include #include using namespace std;/輸出原有菜單void Menu:printmembers()list:iterator it;for (it = members.begin(); it != members.end(); it+)cout getname() tt getmoney() 元tt getdiscount() 折 endl;
38、/輸出顧客菜單void Menu:printord()list:iterator it;for (it = ord.begin(); it != ord.end(); it+)cout getname() tt getmoney() 元tt getnum() 份tt getdiscount() 折 endl;/記錄顧客挑選菜單void Menu:insert(string Vege, int num)list:iterator it;for (it = members.begin(); it != members.end(); it+)if (*it)-getname() = Vege)(*i
39、t)-setnum(num);ord.push_back(*it);/記錄原有菜單void Menu:txtinsert()ifstream infile(D:菜單.txt);string name;double money;double discount;infile name money discount; p = new Vegetalbe(name, money, discount);while (!infile.eof()members.push_back(p);infile name money discount;p = new Vegetalbe(name, money, dis
40、count);infile.close();void Menu:pushnew(Vegetalbe &b)p = &b;members.push_back(p);string Menu:number()time_t t = time(0);char tmp32 = NULL ;strftime(tmp, sizeof(tmp), %Y%m%d%H%M%S, localtime(&t);return tmp;void Menu:dleinsert(string Vege)list:iterator it;for (it = members.begin(); it != members.end(); it+
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年碳化硅耐火材料制品行業(yè)深度研究分析報(bào)告
- 2025年4-羥基喹啉項(xiàng)目投資可行性研究分析報(bào)告
- 賀利氏模型基料行業(yè)市場(chǎng)發(fā)展及發(fā)展趨勢(shì)與投資戰(zhàn)略研究報(bào)告
- 女式花園鞋行業(yè)行業(yè)發(fā)展趨勢(shì)及投資戰(zhàn)略研究分析報(bào)告
- 曬圖服務(wù)行業(yè)深度研究報(bào)告
- 2025年中國(guó)中性藥用玻璃行業(yè)發(fā)展監(jiān)測(cè)及投資戰(zhàn)略研究報(bào)告
- 2025-2030年中國(guó)長(zhǎng)效除皺眼露行業(yè)深度研究分析報(bào)告
- 2025年邏輯芯片市場(chǎng)分析報(bào)告
- 鞋業(yè)項(xiàng)目環(huán)境影響評(píng)價(jià)報(bào)告表
- 2025年中國(guó)高轉(zhuǎn)化糖漿行業(yè)市場(chǎng)全景分析及投資戰(zhàn)略規(guī)劃報(bào)告
- 課件-DeepSeek從入門到精通
- 20級(jí)大學(xué)物理(下)A卷期終試卷及答案解析-南京理工大學(xué)
- 新北師大版(2022) 選擇性必修第三冊(cè) Unit 8 Literature Lesson 1 The Last Leaf 教案
- 地震應(yīng)急預(yù)案及應(yīng)急演練腳本
- 道教系統(tǒng)諸神仙位寶誥全譜
- 二十四節(jié)氣文化融入幼兒園食育的有效途徑
- 統(tǒng)計(jì)過程控制SPC培訓(xùn)資料
- 回字格+米字格練字模版(A4最大利用率)
- 食品經(jīng)營(yíng)操作流程圖
- 小學(xué)生必背古詩(shī)詞80首硬筆書法字帖
- 中風(fēng)(腦梗死恢復(fù)期)中醫(yī)護(hù)理方案(課堂PPT)
評(píng)論
0/150
提交評(píng)論