![面向?qū)ο蟪绦蛟O(shè)計A課程設(shè)計_第1頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/12/a9d96b70-3fe1-400e-bde0-f09af015c584/a9d96b70-3fe1-400e-bde0-f09af015c5841.gif)
![面向?qū)ο蟪绦蛟O(shè)計A課程設(shè)計_第2頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/12/a9d96b70-3fe1-400e-bde0-f09af015c584/a9d96b70-3fe1-400e-bde0-f09af015c5842.gif)
![面向?qū)ο蟪绦蛟O(shè)計A課程設(shè)計_第3頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/12/a9d96b70-3fe1-400e-bde0-f09af015c584/a9d96b70-3fe1-400e-bde0-f09af015c5843.gif)
![面向?qū)ο蟪绦蛟O(shè)計A課程設(shè)計_第4頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/12/a9d96b70-3fe1-400e-bde0-f09af015c584/a9d96b70-3fe1-400e-bde0-f09af015c5844.gif)
![面向?qū)ο蟪绦蛟O(shè)計A課程設(shè)計_第5頁](http://file1.renrendoc.com/fileroot_temp2/2020-11/12/a9d96b70-3fe1-400e-bde0-f09af015c584/a9d96b70-3fe1-400e-bde0-f09af015c5845.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、面向?qū)ο蟪绦蛘n程設(shè)計(2017/2018學年第二學期第17周)指導教師: XXX班級:XXX學號:XXXX姓名:XXX 面向?qū)ο蟪绦蛘n程設(shè)計任務(wù)書【題目】自助點餐系統(tǒng)【目的】通過設(shè)計一個小型的自助點餐系統(tǒng),訓練綜合運用所學知識處理實際問題的能力,強化面向?qū)ο蟮某绦蛟O(shè)計理念,使自己的程序設(shè)計與調(diào)試水平有一個明顯的提高?!疽蟆?、每個學生必須獨立完成;2、課程設(shè)計時間為1周;3、設(shè)計語言采用C+;4、學生有事離校必須請假。課程設(shè)計期間,無故缺席按曠課處理;缺席時間達四分之一以上者,未按規(guī)定上交實驗報告的學生,其成績按不及格處理?!緝?nèi)容簡介】 有一個小型餐廳,現(xiàn)在這個餐廳打算使用自助點餐系統(tǒng),方便
2、顧客自己點餐,并提供對餐廳銷售情況的統(tǒng)計和管理功能?!究己藰藴省吭撓到y(tǒng)為兩種角色的用戶提供服務(wù),一種是餐廳管理員,一種是顧客。餐廳管理員根據(jù)賬號、密碼登錄系統(tǒng)。顧客無需登錄即可使用系統(tǒng)。1、 顧客通過該餐廳在系統(tǒng)中提供的菜單為自己點餐,菜單以文件形式保存。系統(tǒng)能夠根據(jù)顧客的要求正確打出訂單,訂單內(nèi)容包括訂單編號、菜品名稱、每個菜品的價格、份數(shù)、折扣等;訂單分兩種,一種是在店消費,在店消費要求包括餐桌號,是否有包廂費,另一種是外賣,外賣要求包括送餐時間,送餐地點,客戶手機號,外賣服務(wù)費。(要求用繼承和多態(tài)實現(xiàn)),成績60;2、 系統(tǒng)退出后能保存當天的訂單信息,要求每天一個文檔,文檔名按照日期命名
3、。餐廳管理員可以根據(jù)訂單編號查找刪除修改某個訂單,訂單可以按照下單時間先后排序,成績70;3、 能夠?qū)崿F(xiàn)對餐廳菜式和價格的管理,包括對菜品和對應(yīng)價格的增加、修改、刪除、查找,折扣的設(shè)置,成績80;4、 系統(tǒng)可根據(jù)歷史記錄對銷售情況進行統(tǒng)計,根據(jù)餐廳管理員的輸入日期統(tǒng)計某天的銷售情況并顯示(包括一共接了多少單,銷售額是多少,各個菜品的銷售情況,外賣和在店銷售的占比),成績90;要求:用面向?qū)ο蟮某绦蛟O(shè)計方法設(shè)計該系統(tǒng)。本系統(tǒng)涉及的基本對象有訂單對象(包括外賣訂單和在店消費訂單)、訂單管理對象、菜單對象、菜品對象、菜品管理對象、系統(tǒng)界面。實現(xiàn)對這些對象的合理抽象和封裝,正確定義類之間的關(guān)系。界面合
4、理,代碼文件組織清晰,命名符合規(guī)范,代碼注釋清楚,課程設(shè)計報告質(zhì)量高。面向?qū)ο蟪绦蛘n程設(shè)計目 錄一、 題目有一個小型餐廳,現(xiàn)在這個餐廳打算使用自助點餐系統(tǒng),方便顧客自己點餐,并提供對餐廳銷售情況的統(tǒng)計和管理功能。二、 需求分析有一個小型餐廳,該餐廳提供即時就餐和外賣服務(wù)。方便顧客自己點餐,并提供對餐廳銷售情況的統(tǒng)計和管理功能。1、根據(jù)顧客的選擇正確打出訂單。2、統(tǒng)計出每一天的訂單并將之保存在文件中。3、可以通過管理員功能對訂單,菜品等進行操作。三、 系統(tǒng)結(jié)構(gòu)圖四、 類的設(shè)計五、 程序代碼與說明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();/菜式和價格的管理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;/送餐時間,送餐地點,客戶手機號int table, Allmoney;/座位號,總價bool a;/是否有包廂
7、費public:string Numble;/訂單編號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歡迎使用自助點餐系統(tǒng)ttt endl;cout _ endl;cout ttt請輸入操作模式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輸入的賬戶或密碼錯誤 Adm();/定義管理員界面void Face:Adm1()cout _ endl;cout ttt請輸入操作: endl;cout ttt1.查找修改刪除訂單 endl;cout ttt2.菜式和價格的管理 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請輸入操作: 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();/菜式和價格的管理void Face:AdmVege()cout _ endl;cout ttt請輸入操作: 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 價格tt 折扣 endl;Menu pe;string number;double money = 0;pe.txtinsert();pe.printmembers();cout 請輸入購買菜品和份數(shù): Vege;int num;cin num;pe.insert(Vege, num);cout c;if (c = 否) break;cout ttt請選擇消費模式 endl;cout ttt1.外賣 endl;cout ttt2.在店消費 i;if (i = 1)s
22、tring time, address, phone;cout 請輸入送餐時間: time;cout 請輸入送餐地點: address;cout 請輸入手機號: phone;number = pe.number();cout ttt外賣 endl;cout ttt編號: number endl;cout 送餐時間: time t送餐地點: address t客戶手機號: phone endl;cout 菜品tt價格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 總價: 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在店消費 endl;cout
24、ttt訂單編號: number endl;cout 包廂費: (int)r * 50 元 endl;cout 座位號: c endl;cout 菜品tt價格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 總價: 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價格: 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編號 getNumb
33、le() endl;outDate 送餐時間: getTim() t送餐地點: getAddress() t客戶手機號: getphone() endl;outDate 菜品tt價格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 總價: getAllmoney() 元 endl;elseoutDate ttt在店消費 endl;out
34、Date ttt訂單編號: getNumble() endl;outDate 包廂費: getA() * 50 元 endl;outDate 座位號: getTable() endl;outDate 菜品tt價格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 總價: 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等.壓縮文件請下載最新的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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- N-Ethyl-4-methoxyamphetamine-hydrochloride-生命科學試劑-MCE-8599
- 2025年度商業(yè)門面使用權(quán)轉(zhuǎn)讓合同
- 2025年度電梯應(yīng)急救援預(yù)案制定與演練合同
- 2025年度解除租賃合同解除條件爭議調(diào)解協(xié)議書
- 施工現(xiàn)場安全風險管控制度
- 科技發(fā)展趨勢宇宙生命探索與地球應(yīng)用
- 個人房屋租賃給企業(yè)合同范例
- 兩子女離婚財產(chǎn)分割合同范本
- 2025屆畢業(yè)生就業(yè)實習合同協(xié)議
- 個人委托代理合同書樣本
- 二零二五版電商企業(yè)兼職財務(wù)顧問雇用協(xié)議3篇
- 課題申報參考:流視角下社區(qū)生活圈的適老化評價與空間優(yōu)化研究-以沈陽市為例
- 《openEuler操作系統(tǒng)》考試復習題庫(含答案)
- FZ/T 54007-2019錦綸6彈力絲
- DB11-T 291-2022日光溫室建造規(guī)范
- 2021-2022學年山東省淄博市高二(下)期末英語試卷(附答案詳解)
- 北師大版高中數(shù)學選修4-6初等數(shù)論初步全套課件
- 紀檢知識答題測試題及答案
- 創(chuàng)傷急救-止血、包扎課件
- 大數(shù)據(jù)背景下網(wǎng)絡(luò)輿情成因及治理
- 道教系統(tǒng)諸神仙位寶誥全譜
評論
0/150
提交評論