饮料自动售货机系统设计

上传人:bei****lei 文档编号:205767007 上传时间:2023-04-30 格式:DOC 页数:12 大小:473.50KB
收藏 版权申诉 举报 下载
饮料自动售货机系统设计_第1页
第1页 / 共12页
饮料自动售货机系统设计_第2页
第2页 / 共12页
饮料自动售货机系统设计_第3页
第3页 / 共12页
资源描述:

《饮料自动售货机系统设计》由会员分享,可在线阅读,更多相关《饮料自动售货机系统设计(12页珍藏版)》请在装配图网上搜索。

1、武汉理工大学数据结构课程设计说明书饮料自动售货机系统设计摘要:设计一个饮料机,实现计算应找钱数,找币,以及销售量统计等多种功能。1. 引言自动售货机像磁卡电话、银行柜员机一样,以方便、新颖、文明、昼夜服务等特点,成为发达国家不可缺少的便民配套设施。如今的自动售货机可以为顾客提供多种服务。顾客可以根据自己的需要选择商品并投入钱币,售货机接收钱币,售出商品。2. 问题描述该设计模拟自动售货机的工作原理和方式,完成出售商品、接收钱币、找零钱等功能。与系统交涉的人有两类:送货员和顾客。送货员在每周固定时间查看售货机中的饮料数量和钱币数量情况,并根据计划适当添加饮料。同时,送货员也可以根据需要通过重新初

2、始化增加饮料的种类,或修改饮料的价格。顾客根据需要选择饮料,投入钱币,并等待售货机的响应。售货机(所设计的系统)所做的响应:如果售货机中没有该种饮料,则退回上一步,交易失败。否则,如果售货机中有该种饮料,则判断顾客所投钱币是否足够,如果不够,则提示顾客交易失败,并退回上一步。如果顾客所投的钱币够所购买的饮料,则售出饮料并询问是否继续购买。如果不需购买则进行找币,返回初始界面。当然,实际生活中的售货机可能有更加强大的功能和更完善的处理,这里只模拟一个售货机系统,所以只实现其核心原理,并练习和提高分析问题能力和编程能力。问题模型如图所示 3. 数据结构设计3.1类结构体说明采用了和建立了一个饮料机

3、类class yljpublic: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、于对角的找币。4. 算法设计#include#includeusing namespace std;double sum;#define password 123456class yljpublic: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饮料:name 价格price 存货量stockendl;void zh

5、aobi(int a) /找币函数(元)int b,c;cout找币为endl;b=a/50;c=a%50;if(b)coutb张五十元endl;b=c/20;c=c%20;if(b)coutb张二十元endl;b=c/10;c=c%10;if(b)coutb张十元endl;b=c/5;c=c%5;if(b) coutb张五元endl;coutc张一元endl;void zhaobij(int a) /找币函数(角)int b,c;b=a/5;c=a%5;if(b)coutb枚五角endl;coutc枚一角endl;void ylj:goumai() /购买函数sum+=price;count

6、+;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 yljn; /分配空间for(i=0;in;i+) /对饮料机进行初始化cout请输入第i+1种饮料名称ai.name;cout请输入第i+1种饮料价格ai.price;cout请输入第i+1种

7、饮料现有量ai.stock;if(i=(n-1)cout输入完毕endl;cout目前已有饮料明细为endl;for(i=0;in;i+)ai.disp();while(x!=3) /界面系统cout请选择您的身份: 进货员-1 顾客-2 如果要终止系统请按3x; switch(x) case 1: /进货员系统 cout请输入密码pw; if(pw=password) while(xx!=3) cout目前已有饮料明细为endl; for(i=0;in;i+) ai.disp(); cout请输入要进行的操作:1-查询销售统计 2-补货 3-返回上一级 xx; switch(xx) case

8、 1:for (i=0;in;i+) coutai.name售出ai.count瓶endl;break; case 2:for (i=0;in;i+) coutai.name补货多少瓶b; ai.stock+=b;break; case 3:break; break; else cout密码错误endl;break; case 2:while(xz!=4) /顾客系统 cout目前已有饮料明细为endl; for(i=0;in;i+) ai.disp(); cout当前饮料机中共有余额moneyendl; cout请输入要进行的操作:1-购买 2-找币 3-查询销售统计 4-退出系统xz; s

9、witch(xz) case 1:cout是否已投币 是-1,否-2pd; if(pd=2) cout请投币money; while(choicen) cout请选择购买第几种饮料choice; if(choicen) cout输入错误,请重新输入endl; c=choice-1; cout您所购买的是endl; ac.disp(); ac.goumai(); money-=ac.price; if(money0) cout钱不够啦买不起,请继续投币endl; money+=ac.price; ac.gm(); else if(ac.stock0) cout抱歉没货啦请选择别的饮料endl;

10、money+=ac.price; ac.gm(); choice=0;break; case 2:cout应找money元endl; yuan=money; jiao=(money-yuan)*10; zhaobi(yuan); zhaobij(jiao); money=0;break; case 3:for (i=0;in;i+) coutai.name售出ai.count瓶endl; cout总计销售额为sum元endl; case 4:break; break; case 3:break; 5. 程序运行的结果5.1饮料机初始化5.2身份选择5.2.1 顾客界面5.2.2进货员界面6 实

11、现技术讨论 运用了类进行饮料的存储。并通过数组存储了对象,便于管理以及增删。通过while语句以及switch语句实现了各种操作界面以及操作界面之间层次的切换。7 设计的特点、不足及体会7.1 设计的特点 将自动售货机用程序模拟,完成了其基本功能,如补货、查询销量统计和购买饮料。而且设计中可以流通面值大于饮料价格的钱币(如10元、5元的钱币),这样设计比较适合以后售货机的发展趋势,即可以找零。送货员可以查看已有饮料和钱币信息,这样可以知道一周之内各种饮料的售出情况,从而可以适当调整各种饮料的供应量,以追求最大化的利润。在需要找零时,系统自动计算组合进行找零。启用系统时,只需第一次初始化系统,之

12、后便可长期保持在初始操作界面,系统具有长期运行性。7.2 设计的不足 由于界面的各种操作基于已建立好的对象。所以导致界面操作均在主函数中,导致主函数过于冗长。7.3 收获和体会 通过对饮料自动售货机系统的设计与实现,从最开始搜集需求、系统分析、详细设计再到实现,对软件开发的整个过程有了更清晰的认识和了解。通过这次课程设计,我了解到我在数据结构这门课上还有十分大的不足,许多语句的用法模棱两可,不清楚语句的准确用途。通过和同学及老师的交流,才成功的写出了可行的程序。我了解到了编程是需要合作以及互相帮助的。了解了c+与c的不同,类是数据更安全,数据与对应数据的特定的操作关系更紧密、多态性是编译器为程序员分担了很多工作,程序员再不必仅为不同的数据类型浪费精力写冗余的代码、错误处理机制使程序在出错时得到更适当的处理,而不是程序崩溃甚至是粗暴地结束程序C+对现实的模拟比C进了一大步。8.运行环境(软、硬件环境)软件环境:Vc6.0编程软件运行平台: Win64 硬 件: 普通个人pc机

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!