动售货机.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序设计与实践 实验报告 实验二:自动售货机 姓名: 学号: 班级: 实验时间:2015/03/09 一:实验名称:自动售货机 二:实验环境: 一台安装有VC6.0程序的电脑。 三:实验目的 (1)培养和锻炼对具有一定复杂度和规模的问题的分析与求解能力。 (2)掌握程序设计的综合方法,能综合应用各种数据类型实现较复杂数据的存储。 (3)培养良好的C程序设计风格与代码规范意识。 四:实验内容: 下图所示为简易自动售货机,物品架1、2上共有10样商品,按顺序进行编号分别为1~10,标有价格与名称,一个编号对应一个可操作按钮,供选择商品使用。如果物品架上的商品被用户买走,储物柜中会自动取出商品送到物品架上,保证物品架上一定会有商品。用户可以一次投入较多钱币,并可以选择多样商品,售货机可以一次性将商品输出并找零钱。 用户购买商品的操作方法如下。 (1)从“钱币入口”放入钱币,依次放入多个硬币或纸币。钱币可支持1元(纸币、硬币)、2元(纸币)、5元(纸币)、10元(纸币),放入钱币时,控制器会先对钱币进行检验以识别出币值,并统计币值总额,显示在控制器显示屏中,提示用户确认钱币放入完毕。 (2)用户确认钱币放入完毕,便可选择商品,只要用手指按对应商品外面的编号按钮即可。每选中一样商品,售货机控制器会判断钱币是否足够购买,如果钱币足够,自动根据编号将物品进行计数和计算所需钱币值; 如果钱币不足,则结束购物。 请为自动售货机编程,输入钱币值序列,以-1作为结束,依次输入多个购买商品编号,若编号超出范围或余额不足则输入结束,输出钱币总额与找回零钱,以及所购买商品名称及数量。 五:实验步骤:(实验设计,关键代码。实验结果需截图) #includestdio.h #includestring.h struct shop{ char name[20]; int money; int number,su; }b[11]; int main(void) { int m,s=0,a=0,c=100,i,n,sum=0; void number(int n); strcpy(b[1].name,Table-water); strcpy(b[2].name,Table-water); strcpy(b[3].name,Table-water); strcpy(b[4].name,Coca-Cola); strcpy(b[5].name,Milk); strcpy(b[6].name,Bee); strcpy(b[7].name,Orange-Juice); strcpy(b[8].name,Sptite); strcpy(b[9].name,Oolong-Tea); strcpy(b[10].name,Green-Tea); for(i=1;i=10;i++) b[i].su=0; b[1].money=1; b[2].money=1; b[3].money=1; b[4].money=2; b[5].money=2; b[6].money=3; b[7].money=3; b[8].money=3; b[9].money=4; b[10].money=4; printf(put money:); do{ scanf(%d,m); if(m==1||m==2||m==5||m==10) s=s+m; printf(total:%dyuan,s);} while(m!=-1); printf(input number:); while(n=0||n=1) { scanf(%d,n); if(cb[n].money) break; if(n==-1) break; number(n); sum=sum+b[n].money; c=s-sum; printf(total:%dyuan\n,sum); } printf(Total:%dyuan,change:%dyuan,s,c); for(i=1;i=10;i++) { if(b[i].su!=0) printf(%s%d,b[i].name,b[i].su); } return 0; } void number(int n) { switch(n){ case 1:b[1].su++;break; case 2:b[2].su++;break; case 3:b[3].su++;break; case 4:b[

文档评论(0)

rovend + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档