饮料自动售货机系统设计说明书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
饮料自动售货机系统设计
摘要:设计一个饮料机,实现计算应找钱数,找币,以及销售量统计等多种功能。1. 引言
自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。
2. 问题描述
该设计模拟自动售货机的工作原理和方式,完成出售商品、接收钱币、找零钱等功能。
与系统交涉的人有两类:送货员和顾客。
送货员在每周固定时间查看售货机中的饮料数量和钱币数量情况,并根据计划适当添加饮料。同时,送货员也可以根据需要通过重新初始化增加饮料的种类, 或修改饮料的价格。
顾客根据需要选择饮料,投入钱币,并等待售货机的响应。售货机(所设计的系统)所做的响应:如果售货机中没有该种饮料,则退回上一步,交易失败。否则,如果售货机中有该种饮料,则判断顾客所投钱币是否足够,如果不够,则提示顾客交易失败,并退回上一步。如果顾客所投的钱币够所购买的饮料,则售出饮料并询问是否继续购买。如果不需购买则进行找币,返回初始界面。
当然,实际生活中的售货机可能有更加强大的功能和更完善的处理,这里只模拟一个售货机系统,所以只实现其核心原理,并练习和提高分析问题能力和编程能力。
问题模型如图所示
3. 数据结构设计
3.1 类结构体说明
采用了
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< { 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<<" 进行饮料机初始化,请输入有几种饮料"< cin>>n; a=new ylj[n]; // 分配空间