2022年面向对象程序设计A课程设计 .pdf
《2022年面向对象程序设计A课程设计 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象程序设计A课程设计 .pdf(33页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、面向对象程序课程设计(2017/2018 学年第二学期第17 周)指导教师:XXX 班级: XXX 学号: XXXX 姓名: XXX 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 33 页 - - - - - - - - - 面向对象程序课程设计任务书【题目】 自助点餐系统【目的】通过设计一个小型的自助点餐系统,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,使自己的程序设计与调试水平有一个明显的提高。【要求】1、每个学生必须独立完成;2、课程设计时
2、间为1 周;3、设计语言采用 C+;4、学生有事离校必须请假。课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,未按规定上交实验报告的学生,其成绩按不及格处理。【内容简介】有一个小型餐厅,现在这个餐厅打算使用自助点餐系统,方便顾客自己点餐,并提供对餐厅销售情况的统计和管理功能。【考核标准】该系统为两种角色的用户提供服务,一种是餐厅管理员,一种是顾客。餐厅管理员根据账号、密码登录系统。顾客无需登录即可使用系统。1、 顾客通过该餐厅在系统中提供的菜单为自己点餐,菜单以文件形式保存。系统能够根据顾客的要求正确打出订单,订单内容包括订单编号、菜品名称、每个菜品的价格、份数、折扣等;订单分两种
3、,一种是在店消费,在店消费要求包括餐桌号,是否有包厢费,另一种是外卖,外卖要求包括送餐时间,送餐地点,客户手机号,外卖服务费。(要求用继承和多态实现) ,成绩 60;2、 系统退出后能保存当天的订单信息,要求每天一个文档,文档名按照日期命名。餐厅管理员可以根据订单编号查找删除修改某个订单,订单可以按照下单时间先后排序,成名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 33 页 - - - - - - - - - 绩70;3、 能够实现对餐厅菜式和价格的管理,包括对菜品和对
4、应价格的增加、修改、删除、查找,折扣的设置,成绩80;4、 系统可根据历史记录对销售情况进行统计,根据餐厅管理员的输入日期统计某天的销售情况并显示(包括一共接了多少单,销售额是多少,各个菜品的销售情况,外卖和在店销售的占比),成绩 90;要求:用面向对象的程序设计方法设计该系统。本系统涉及的基本对象有订单对象(包括外卖订单和在店消费订单) 、订单管理对象、菜单对象、菜品对象、菜品管理对象、系统界面。实现对这些对象的合理抽象和封装,正确定义类之间的关系。界面合理,代码文件组织清晰,命名符合规范,代码注释清楚,课程设计报告质量高。名师资料总结 - - -精品资料欢迎下载 - - - - - - -
5、 - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 33 页 - - - - - - - - - 面向对象程序课程设计目录一、 题目有一个小型餐厅,现在这个餐厅打算使用自助点餐系统,方便顾客自己点餐,并提供对餐厅销售情况的统计和管理功能。二、 需求分析有一个小型餐厅,该餐厅提供即时就餐和外卖服务。方便顾客自己点餐,并提供对餐厅销售情况的统计和管理功能。1、根据顾客的选择正确打出订单。2、统计出每一天的订单并将之保存在文件中。3、可以通过管理员功能对订单,菜品等进行操作。三、 系统结构图名师资料总结 - - -精品资料欢迎下载 - - - -
6、- - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 33 页 - - - - - - - - - 四、 类的设计名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 33 页 - - - - - - - - - 五、 程序代码与说明Face.h #ifndef Face_h #defineFace_h#includeOrderMana.hclassFace private: OrderMana shard; publ
7、ic : void start(); / 定义开始界面void Adm(); / 定义管理员登入界面void Adm1(); / 定义管理员界面void AdmOrder(); / 查找修改删除订单void AdmVege(); / 菜式和价格的管理void AdmSell(); / 查看销售情况void client(); / 定义客户界面void AdmVegeI(); / 添加菜品void AdmVegeII(); / 修改菜品void AdmVegeIII(); / 删除菜品名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
8、 名师精心整理 - - - - - - - 第 6 页,共 33 页 - - - - - - - - - void AdmVegeV(); / 查找菜品void AdmVegeVI(); / 设置折扣void AdmOrderI(); / 查找订单void AdmOrderII(); / 修改订单void AdmOrderIII(); / 删除订单; #endif Mana.h #ifndef Mana_h #defineMana_h#includemenu.h#include#includeusingnamespace std; classMana : publicMenu private:
9、 string kind; / 订单种类string tim, address, phone; / 送餐时间,送餐地点,客户手机号int table, Allmoney; / 座位号,总价bool a; / 是否有包厢费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); stri
10、ng getKind() return kind; ; string getTim() return tim; ; string getAddress() return address; ; string getphone() return phone; ; int getTable() return table; ; int getAllmoney() return Allmoney; ; bool getA() return a; ; string getNumble() return Numble; ; void insert(string Vege, double money, int
11、 num, double discount); ; #endif menu.h #ifndef Menu_h #defineMenu_h#include#include#includevegetalbe.husingnamespace std; classMenu private: 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 33 页 - - - - - - - - - Vegetalbe *p; public : list members; list ord; vo
12、id insert(string Vege, int num); / 记录顾客挑选菜单virtualvoid insert(string Vege, double money, int num, double discount); void txtinsert(); / 记录原有菜单void printmembers(); / 输出原有菜单void printord(); / 输出顾客菜单void pushnew( Vegetalbe &b); / 添加菜单string number(); / 订单编码void dleinsert(string Vege); / 删除菜品Menu(); ; #
13、endif order.h #ifndef Order_h #defineOrder_h#includeusingnamespace std; classOrder private: string account; string code; public : Order( string account, string code); bool judge(); ; #endif OrderMana.h #ifndef OrderMana_h #defineOrderMana_h#includeMana.h#includemenu.h#include#includeusingnamespace s
14、td; classOrderMana private: double BossMoney = 0; / 销售额int Fre = 0; / 接了多少单double Spec; / 外卖和在店销售的占比double TakeOut=0; / 外卖次数名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 33 页 - - - - - - - - - double InShop=0; / 在店次数Mana *p; public : list members; list ord; do
15、uble getBossMoney(); / 输出相应日期的销售金额void txtinsertI(Menu *p, string tim, string address, string phone, 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
16、 dleinsertM(string numble); / 删除订单double getSpec() return TakeOut / InShop; ; double getTakeOut() return TakeOut; ; double getInShop() return InShop; ; int getFre() return Fre; ; ; #endif vegetalbe.h #ifndef Vegetalbe_h #defineVegetalbe_h#includeusingnamespace std; classVegetalbe private: string nam
17、e; double money; int num; double discount; public : Vegetalbe( stringname , doublemoney , doublediscount ) this -name = name ; this -money = money ; this -discount = discount ; ; Vegetalbe( stringname , doublemoney , intnum , doublediscount ) this -name = name ; this -money = money ; this -num = num
18、 ; this -discount = discount ; ; / 修改菜品voidSetVegetalbe( stringname , doublemoney , doublediscount ) this -name = name ; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 33 页 - - - - - - - - - this -money = money ; this -discount = discount ; ; string getname() r
19、eturn name; double getmoney() return money; void setnum( intx) this -num = x; int getnum() return num; double getdiscount() return discount; ; #endif interface.cpp #includeFace.h#includeorder.h#includemenu.h#include#include#include #include usingnamespace std; / 定义开始界面voidFace:start() cout endl; cou
20、t ttt欢迎使用自助点餐系统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(); 名师资料总结 - - -精品资料欢迎下载 - - -
21、 - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 33 页 - - - - - - - - - / 定义管理员登入界面voidFace:Adm() string account, code; while (1) cout _ endl; cout account; cout code; cout _ Adm1(); break ; else cout ttt输入的账户或密码错误 Adm(); / 定义管理员界面voidFace:Adm1() cout _ endl; cout ttt请输入操作: endl; cout tt
22、t1.查找修改删除订单 endl; cout ttt2.菜式和价格的管理 endl; cout ttt3.查看销售情况 endl; cout ttt4.退出 endl; cout _ i; switch (i) case 1:AdmOrder(); break ; case 2:AdmVege(); break ; case 3:AdmSell(); break ; case 4:start(); break ; start(); / 查找修改删除订单voidFace:AdmOrder() cout _ endl; cout ttt请输入操作: endl; cout ttt1.查找订单 end
23、l; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 33 页 - - - - - - - - - cout ttt2.修改订单 endl; cout ttt3.删除订单 endl; cout ttt4.退出 endl; cout _ i; switch (i) case 1:AdmOrderI(); break ; case 2:AdmOrderII(); break ; case 3:AdmOrderIII(); break ; case 4:Adm1(); bre
24、ak ; Adm1(); / 菜式和价格的管理voidFace:AdmVege() cout _ endl; cout ttt请输入操作: endl; cout ttt1.添加菜品 endl; cout ttt2.修改菜品 endl; cout ttt3.删除菜品 endl; cout ttt4.查找菜品 endl; cout ttt5.设置折扣 endl; cout ttt6.退出 endl; cout _ i; switch (i) case 1:AdmVegeI(); break ; case 2:AdmVegeII(); break ; case 3:AdmVegeIII(); bre
25、ak ; case 4:AdmVegeV(); break ; case 5:AdmVegeVI(); break ; case 6:Adm1(); break ; Adm1(); / 查看销售情况voidFace:AdmSell() cout _ endl; cout day; day = D: + day + .txt; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 33 页 - - - - - - - - - OrderMana pe; pe.txtinsert
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年面向对象程序设计A课程设计 2022 面向 对象 程序设计 课程设计
限制150内