面向对象程序设计A课程设计.docx

上传人:b****7 文档编号:23935857 上传时间:2023-05-22 格式:DOCX 页数:30 大小:680.51KB
下载 相关 举报
面向对象程序设计A课程设计.docx_第1页
第1页 / 共30页
面向对象程序设计A课程设计.docx_第2页
第2页 / 共30页
面向对象程序设计A课程设计.docx_第3页
第3页 / 共30页
面向对象程序设计A课程设计.docx_第4页
第4页 / 共30页
面向对象程序设计A课程设计.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

面向对象程序设计A课程设计.docx

《面向对象程序设计A课程设计.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计A课程设计.docx(30页珍藏版)》请在冰豆网上搜索。

面向对象程序设计A课程设计.docx

面向对象程序设计A课程设计

本页仅作为文档封面,使用时可以删除Thisdocumentisforreferenceonly-rar21year.March

 

面向对象程序设计A课程设计(总25页)

 

面向对象程序课程设计

(2017/2018学年第二学期第17周)

 

指导教师:

XXX

 

班级:

XXX

学号:

XXXX

姓名:

XXX

面向对象程序课程设计任务书

【题目】自助点餐系统

【目的】

通过设计一个小型的自助点餐系统,训练综合运用所学知识处理实际问题的能力,强化面向对象的程序设计理念,使自己的程序设计与调试水平有一个明显的提高。

【要求】

1、每个学生必须独立完成;

2、课程设计时间为1周;

3、设计语言采用C++;

4、学生有事离校必须请假。

课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,未按规定上交实验报告的学生,其成绩按不及格处理。

【内容简介】

有一个小型餐厅,现在这个餐厅打算使用自助点餐系统,方便顾客自己点餐,并提供对餐厅销售情况的统计和管理功能。

【考核标准】

该系统为两种角色的用户提供服务,一种是餐厅管理员,一种是顾客。

餐厅管理员根据账号、密码登录系统。

顾客无需登录即可使用系统。

1、顾客通过该餐厅在系统中提供的菜单为自己点餐,菜单以文件形式保存。

系统能够根据顾客的要求正确打出订单,订单内容包括订单编号、菜品名称、每个菜品的价格、份数、折扣等;订单分两种,一种是在店消费,在店消费要求包括餐桌号,是否有包厢费,另一种是外卖,外卖要求包括送餐时间,送餐地点,客户手机号,外卖服务费。

(要求用继承和多态实现),成绩≥60;

2、系统退出后能保存当天的订单信息,要求每天一个文档,文档名按照日期命名。

餐厅管理员可以根据订单编号查找删除修改某个订单,订单可以按照下单时间先后排序,成绩≥70;

3、能够实现对餐厅菜式和价格的管理,包括对菜品和对应价格的增加、修改、删除、查找,折扣的设置,成绩≥80;

4、系统可根据历史记录对销售情况进行统计,根据餐厅管理员的输入日期统计某天的销售情况并显示(包括一共接了多少单,销售额是多少,各个菜品的销售情况,外卖和在店销售的占比),成绩≥90;

要求:

用面向对象的程序设计方法设计该系统。

本系统涉及的基本对象有订单对象(包括外卖订单和在店消费订单)、订单管理对象、菜单对象、菜品对象、菜品管理对象、系统界面。

实现对这些对象的合理抽象和封装,正确定义类之间的关系。

界面合理,代码文件组织清晰,命名符合规范,代码注释清楚,课程设计报告质量高。

面向对象程序课程设计

一、题目

有一个小型餐厅,现在这个餐厅打算使用自助点餐系统,方便顾客自己点餐,并提供对餐厅销售情况的统计和管理功能。

二、需求分析

有一个小型餐厅,该餐厅提供即时就餐和外卖服务。

方便顾客自己点餐,并提供对餐厅销售情况的统计和管理功能。

1、根据顾客的选择正确打出订单。

2、统计出每一天的订单并将之保存在文件中。

3、可以通过管理员功能对订单,菜品等进行操作。

三、系统结构图

四、类的设计

五、程序代码与说明

#ifndefFace_h

#defineFace_h

#include""

classFace{

private:

OrderManashard;

public:

voidstart();理员\t\t\t"<

cout<<"\t\t\t2.顾客\t\t\t"<

cout<<"________________________________________________________________"<

intm;

cin>>m;

if(m==1){

Adm();

inti;

cin>>i;

switch(i){

case1:

AdmOrder();break;

case2:

AdmVege();break;

case3:

AdmSell();break;

case4:

break;

}

}

else{

client();

}

}

找修改删除订单"<

cout<<"\t\t\t2.菜式和价格的管理"<

cout<<"\t\t\t3.查看销售情况"<

cout<<"\t\t\t4.退出"<

cout<<"________________________________________________________________"<

inti;

cin>>i;

switch(i){

case1:

AdmOrder();break;

case2:

AdmVege();break;

case3:

AdmSell();break;

case4:

start();break;

}

start();

}

找订单"<

cout<<"\t\t\t2.修改订单"<

cout<<"\t\t\t3.删除订单"<

cout<<"\t\t\t4.退出"<

cout<<"________________________________________________________________"<

inti;

cin>>i;

switch(i){

case1:

AdmOrderI();break;

case2:

AdmOrderII();break;

case3:

AdmOrderIII();break;

case4:

Adm1();break;

}

Adm1();

}

加菜品"<

cout<<"\t\t\t2.修改菜品"<

cout<<"\t\t\t3.删除菜品"<

cout<<"\t\t\t4.查找菜品"<

cout<<"\t\t\t5.设置折扣"<

cout<<"\t\t\t6.退出"<

cout<<"________________________________________________________________"<

inti;

cin>>i;

switch(i){

case1:

AdmVegeI();break;

case2:

AdmVegeII();break;

case3:

AdmVegeIII();break;

case4:

AdmVegeV();break;

case5:

AdmVegeVI();break;

case6:

Adm1();break;

}

Adm1();

}

xt";

OrderManape;

(day);

cout<<"订单数:

"<<()<

cout<<"销售额:

"<<()<

cout<<"外卖和在店销售的占比:

"<<()<

Adm1();

}

卖"<

cout<<"\t\t\t2.在店消费"<

inti;

cin>>i;

if(i==1){

stringtime,address,phone;

cout<<"请输入送餐时间:

"<

cin>>time;

cout<<"请输入送餐地点:

"<

cin>>address;

cout<<"请输入手机号:

"<

cin>>phone;

number=();

cout<<"\t\t\t外卖"<

cout<<"\t\t\t编号:

"<

cout<<"送餐时间:

"<

"<

"<

cout<<"菜品\t\t价格\t\t份数\t\t折扣"<

();

list:

:

iteratorit;

for(it=it!

=it++)

{

money=(*it)->getmoney()*(*it)->getnum()*(*it)->getdiscount()*+money;

}

cout<<"总价:

"<

(&pe,time,address,phone,number);

}

elseif(i==2){

cout<<"请问是否选择包厢(是/否):

";

stringi;

cin>>i;

boolr=0;

if(i=="是"){

r=1;

}

intc;

srand((unsigned)time(NULL));

c=rand()%(50-1);

number=();

cout<<"\t\t\t在店消费"<

cout<<"\t\t\t订单编号:

"<

cout<<"包厢费:

"<<(int)r*50<<"元"<

cout<<"座位号:

"<

cout<<"菜品\t\t价格\t\t份数\t\t折扣"<

();

list:

:

iteratorit;

for(it=it!

=it++)

{

money=(*it)->getmoney()*(*it)->getnum()*(*it)->getdiscount()*+money;

}

cout<<"总价:

"<

(&pe,r,c,number);

}

start();

}

xt",ios:

:

trunc);

for(it=it!

=it++)

{

outDate<<(*it)->getname()<<"\t\t"<<(*it)->getmoney()<<"\t\t"<<(*it)->getdiscount()<

}

();

cout<<"添加成功"<

AdmVege();

}

xt",ios:

:

trunc);

for(it=it!

=it++)

{

outDate<<(*it)->getname()<<"\t\t"<<(*it)->getmoney()<<"\t\t"<<(*it)->getdiscount()<

}

();

cout<<"修改成功"<

AdmVege();

}

xt",ios:

:

trunc);

for(it=it!

=it++)

{

outDate<<(*it)->getname()<<"\t\t"<<(*it)->getmoney()<<"\t\t"<<(*it)->getdiscount()<

}

();

cout<<"删除成功"<

AdmVege();

}

 

xt",ios:

:

trunc);

for(it=it!

=it++)

{

outDate<<(*it)->getname()<<"\t\t"<<(*it)->getmoney()<<"\t\t"<<(*it)->getdiscount()<

}

();

cout<<"修改成功"<

AdmVege();

}

xt";

cout<<"输入查找订单编号:

";

stringnumble;

cin>>numble;

OrderManape;

(day);

(numble);

AdmOrder();

}

xt";

cout<<"输入查找订单编号:

";

stringnumble;

cin>>numble;

OrderManape;

(day);

}

xt";

cout<<"输入删除订单编号:

";

stringnumble;

cin>>numble;

OrderManape;

(day);

ofstreamoutDate(day,ios:

:

trunc);

list:

:

iteratorit;

for(it=it!

=it++)

{

if((*it)->getKind()=="外卖"){

outDate<<"\t\t\t外卖"<

outDate<<"\t\t\t编号"<<(*it)->getNumble()<

outDate<<"送餐时间:

"<<(*it)->getTim()<<"\t送餐地点:

"<<(*it)->getAddress()<<"\t客户手机号:

"<<(*it)->getphone()<

outDate<<"菜品\t\t价格\t\t份数\t\t折扣"<

list:

:

iteratorI;

for(I=(*it)->();I!

=(*it)->();it++)

{

outDate<<(*I)->getname()<<"\t\t"<<(*I)->getmoney()<<"\t\t"<<(*I)->getnum()<<"\t\t"<<(*I)->getdiscount()<

}

outDate<<"总价:

"<<(*it)->getAllmoney()<<"元"<

}

else{

outDate<<"\t\t\t在店消费"<

outDate<<"\t\t\t订单编号:

"<<(*it)->getNumble()<

outDate<<"包厢费:

"<<(int)(*it)->getA()*50<<"元"<

outDate<<"座位号:

"<<(*it)->getTable()<

outDate<<"菜品\t\t价格\t\t份数\t\t折扣"<

list:

:

iteratorI;

for(I=(*it)->();I!

=(*it)->();it++)

{

outDate<<(*I)->getname()<<"\t\t"<<(*I)->getmoney()<<"\t\t"<<(*I)->getnum()<<"\t\t"<<(*I)->getdiscount()<

}

outDate<<"总价:

"<<(*it)->getAllmoney()<<"元"<

}

}

();

cout<<"删除成功"<

}

 

#include""

#include""

#include""

#include""

#include

usingnamespacestd;

voidmain(){

Facere;

();

}

 

#include""

Mana:

:

Mana(stringnumble,stringkind,stringtim,stringaddress,stringphone){

this->Numble=numble;

this->kind=kind;

this->tim=tim;

this->address=address;

this->phone=phone;

}

Mana:

:

Mana(stringnumble,stringkind,inttable,boola){

this->Numble=numble;

this->kind=kind;

this->table=table;

this->a=a;

}

voidMana:

:

setAllmoney(intmoney){

Allmoney=money;

}

voidMana:

:

insert(stringVege,doublemoney,intnum,doublediscount){

list:

:

iteratorit;

*it=newVegetalbe(Vege,money,num,discount);

(*it);

}

 

#include""

#include

#include

#include

usingnamespacestd;

xt");

stringname;

doublemoney;

doublediscount;

infile>>name>>money>>discount;

p=newVegetalbe(name,money,discount);

while(!

()){

(p);

infile>>name>>money>>discount;

p=newVegetalbe(name,money,discount);

}

();

}

voidMenu:

:

pushnew(Vegetalbe&b){

p=&b;

(p);

}

stringMenu:

:

number(){

time_tt=time(0);

chartmp[32]={NULL};

strftime(tmp,sizeof(tmp),"%Y%m%d%H%M%S",localtime(&t));

returntmp;

}

voidMenu:

:

dleinsert(stringVege){

list:

:

iteratorit;

for(it=();it!

=();it++)

{

if((*it)->getname()!

=Vege){

(*it);

}

}

}

voidMenu:

:

insert(stringVege,doublemoney,intnum,doublediscount){

list:

:

iteratorit;

*it=newVegetalbe(Vege,money,num,discount);

(*it);

}

Menu:

:

~Menu(){

list:

:

iteratorit;

for(it=();it!

=();it++){

delete*it;

}

for(it=();it!

=();it++){

delete*it;

}

}

 

#include""

#include

usingnamespacestd;

Order:

:

Order(stringaccount,stringcode){

this->account=account;

this->code=code;

}

boolOrder:

:

judge(){

boolT=0;

ifstreaminfile("D:

\\管理员账号.txt");

stringAccount,Code;

while(!

()){

infile>>Account>>Code;

if((this->account==Account)||(this->code==Code)){

T=1;

break;

}

}

();

returnT;

}

 

#include""

#include

#include

#include<>

usingnamespacestd;

xt";

ofstreamoutDate(day,ios:

:

app);

doublemoney=0;

outDate<

outDate<<"\t\t\t订单编号"<

outDate<<"送餐时间"<

list:

:

iteratorit;

for(it=p->();it!

=p->();it++)

{

outDate<<(*it)->getname()<<"\t\t"<<(*it)->getmoney()<<"\t\t"<<(*it)->getnum()<<"\t\t"<<(*it)->getdiscount()<

money=(*it)->getmoney()*(*it)->getnum()*(*it)->getdiscount()*+money;

}

outDate<<"总价"<

();

}

xt";

ofstreamoutDate(day,ios:

:

app);

doublemoney=0;

outDate<

if(a==1){

outDate<<"\t\t\t订单编号"<

outDate<<"包厢费"<<(int)a*50

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1