饮料自动售货机系统设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

饮料自动售货机系统设计

摘要:设计一个饮料机,实现计算应找钱数,找币,以及销售量统计等多种功能。

1.引言

自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。

2.问题描述

该设计模拟自动售货机的工作原理和方式,完成出售商品、接收钱币、找零钱等功能。

与系统交涉的人有两类:送货员和顾客。

送货员在每周固定时间查看售货机中的饮料数量和钱币数量情况,并根据计划适当添加饮料。同时,送货员也可以根据需要通过重新初始化增加饮料的种类,或修改饮料的价格。

顾客根据需要选择饮料,投入钱币,并等待售货机的响应。售货机(所设计的系统)所做的响应:如果售货机中没有该种饮料,则退回上一步,交易失败。否则,如果售货机中有该种饮料,则判断顾客所投钱币是否足够,如果不够,则提示顾客交易失败,并退回上一步。如果顾客所投的钱币够所购买的饮料,则售出饮料并询问是否继续购买。如果不需购买则进行找币,返回初始界面。

当然,实际生活中的售货机可能有更加强大的功能和更完善的处理,这里只模拟一个售货机系统,所以只实现其核心原理,并练习和提高分析问题能力和编程能力。

问题模型如图所示

3.数据结构设计

3.1类结构体说明

采用了

建立了一个饮料机类

class ylj

{

public:

ylj(){count=0;}

ylj(string a,double b){name=a;price=b;count=0;}

void disp();

void goumai();

void gm();

int count;

string name;

double price;

int stock;

};

Count为销售量计数器,name为饮料名称,price为饮料价格,stock为饮料存货量。

3.2函数说明

disp()函数用于输出对象。

goumai();函数用于购买时的统计。

gm();函数用于当购买失败时的返回处理。

zhaobi(int a)用于对元的找币。

zhaobj(int a)用于对角的找币。

4.算法设计

#include

#include

using namespace std;

double sum;

#define password 123456

class ylj

{

public:

ylj(){count=0;}

ylj(string a,double b){name=a;price=b;count=0;}

void disp();

void goumai();

void gm();

int count;

string name;

double price;

int stock;

};

void ylj::disp() //输出函数

{cout<<"饮料:"<

void zhaobi(int a) //找币函数(元)

{

int b,c;

cout<<"找币为"<

b=a/50;

c=a%50;

if(b)

cout<

b=c/20;

c=c%20;

if(b)

cout<

b=c/10;

c=c%10;

if(b)

cout<

b=c/5;

c=c%5;

if(b)

cout<

cout<

}

void zhaobij(int a) //找币函数(角)

{

int b,c;

b=a/5;

c=a%5;

if(b)

cout<

cout<

}

void ylj::goumai() //购买函数

{

sum+=price;

count++;

stock--;

}

void ylj::gm() //购买失败函数

{

sum-=price;

count--;

stock++;

}

void main() //主函数

{

int pw,i,n,choice,c,xz,x,xx,pd,yuan,b,jiao;

double money=0;

choice=0;

xz=0;

pd=0;

ylj *a; //定义饮料机对象数组

cout<<"进行饮料机初始化,请输入有几种饮料"<>n; a=new ylj[n]; //分配空间

for(i=0;i

{

cout<<"请输入第"<

cin>>a[i].name;

cout<<"请输入第"<

cin>>a[i].price;

cout<<"请输入第"<

cin>>a[i].stock;

if(i==(n-1))

cout<<"输入完毕"<

cout<<"目前已有饮料明细为"<

for(i=0;i

a[i].disp();

相关文档
最新文档