如图所示的简易自动售货机,物品架1、2上共有10样商品,按顺序进行编号分别为1-10,标有价格与名称,一个编号对应一个可操作按钮,供选择商品使用。如果物架上的商品被用户买走,储物柜中会自动取出商品送到物架上,保证物品架上一定会有商品。用户可以一次投入较多钱币,并可以选择多样商品,售货机可以一次性将商品输出并找零钱。

用户购买商品的操作方法是:

(1)从“钱币入口”放入钱币,依次放入多个硬币或纸币。钱币可支持1元(纸币、硬币)、2元(纸币)、5元(纸币)、10元(纸币),放入钱币时,控制器会先对钱币进行检验识别出币值,并统计币值总额,显示在控制器显示屏中,提示用户确认钱币放入完毕;

(2)用户确认钱币放入完毕,便可选择商品,只要用手指按对应商品外面的编号按钮即可。每选中一样商品,售货机控制器会判断钱币是否足够购买,如果钱币足够,自动根据编号将物品进行计数和计算所需钱币值,并提示余额。如果钱币不足,控制器则提示“Insufficient money”。用户可以取消购买,将会把所有放入钱币退回给用户。

输入格式:
先输入钱币值序列,以 -1 作为结束,再依次输入多个购买商品编号,以 -1 结束。

输出格式:
输出钱币总额与找回零钱,以及所购买商品名称及数量。

题目思路:
主要考察结构体的使用。

#include<iostream>
#include<string>
using namespace std;bool find(int a[], int len, int x);
struct Commodity {int num;string name;int price;int amount;
};
Commodity commodity[11] = { {}, {1,"Table-water", 1,0}, {2,"Table-water", 1,0},{3,"Table-water", 1,0},{4,"Coca-Cola", 2,0},{5,"Milk", 2,0},{6,"Beer", 3,0},{7,"Orange-Juice", 3,0},{8,"Sprite", 3,0},{9,"Oolong-Tea", 4,0},{10,"Green-Tea", 4,0} };int main()
{int k = 0;int obj[100], sum1 = 0, sum2 = 0;int x;cin >> x;while (x != -1){if (x == 1 || x == 2 || x == 5 || x == 10)sum1 += x;else{continue;}cin >> x;}int y;cin >> y;while (y != -1){if (y >= 1 && y <= 10){sum2 += commodity[y].price;if (!find(obj, k, y))   //关键这句,防止准备输出的数组出现重复商品obj[k++] = y;commodity[y].amount++;}else{continue;}cin >> y;}if (sum1 >= sum2){printf("Total:%dyuan,change:%dyuan\n", sum1, sum1 - sum2);for (int i = 0; i < k; i++){cout << commodity[obj[i]].name << ":" << commodity[obj[i]].amount << ";";}}else if(sum1 < sum2)cout << "Insufficient money" << endl;return 0;
}
bool find(int a[], int len, int x)
{for (int i = 0; i < len; i++){if (a[i] == x)return true;}return false;
}

7-110 自动售货机 (30 分)相关推荐

  1. 7-3 自动售货机 (30分)

    如图所示的简易自动售货机,物品架1.2上共有10样商品,按顺序进行编号分别为1-10,标有价格与名称,一个编号对应一个可操作按钮,供选择商品使用.如果物架上的商品被用户买走,储物柜中会自动取出商品送到 ...

  2. 自动售货机 (30 分)

    自动售货机 (30 分) 如图所示的简易自动售货机,物品架1.2上共有10样商品,按顺序进行编号分别为1-10,标有价格与名称,一个编号对应一个可操作按钮,供选择商品使用.如果物架上的商品被用户买走, ...

  3. JAVA模拟自动售货机

    版本说明 2015-07-02 第一版. 2015-07-04 修复余额变更错误问题(变量使用错误造成),增加修改商品数量功能,调整视图结构,修改Unicode为中文,增加功能提示. 下面的代码为最新 ...

  4. 【华为云技术分享】玩转华为物联网IoTDA服务系列三-自动售货机销售分析场景示例

    [摘要] 通过收集自动售货机系统的销售数据,EI数据分析售货销量状况. 场景简介 通过收集自动售货机系统的销售数据,EI数据分析售货销量状况. 该场景主要描述的是设备可以通过MQTT协议与物联网平台进 ...

  5. C语言编程题 自动售货机

    7-1 自动售货机 (30 分) 如图所示的简易自动售货机,物品架1.2上共有10样商品,按顺序进行编号分别为1-10,标有价格与名称,一个编号对应一个可操作按钮,供选择商品使用.如果物架上的商品被用 ...

  6. 基于AT89C51单片机的自动售货机系统设计(附仿真+C程序+原理图+论文等)

    注意:获取全套设计,请见文末说明- 概述 本文设计了一款以AT89C51单片机为核心的自动售货机系统,并且着重详细地介绍了自动售货机的整体系统设计方案.硬件选择基础.软件使用方法及技巧.以AT89C5 ...

  7. 基于FPGA的自动售货机

    一.自动售货机的功能 自动售货机中有价值为1元,3.5元,5元的三种饮料,能识别的金额为0.5元,1元,5元,10元.在购买饮料时,当输入金额小于饮料价值时,LED灯100ms闪烁:输入金额与饮料价值 ...

  8. 自动售货机控制模块-Verilog HDL

    一. 问题描述 设计一个自动售货机控制模块,信息如下: 1. 售货机可提供8种可售商品,其中01号商品(代表第一种商品),价格为2元,02商品为4元,依次类推,08号商品售价为16元. 2. 售货机可 ...

  9. (96)自动售货机状态转移图,面试必问(二十)(第20天)

    (96)自动售货机状态转移图,面试必问(二十)(第20天) 1 文章目录 1)文章目录 2)FPGA初级课程介绍 3)FPGA初级课程架构 4)自动售货机状态转移图,面试必问(二十)(第20天) 5) ...

  10. FPGA入门学习记录(1)----自动售货机(VM_FSM)

    综述 在写一个自动售货机状态机并仿真,上板的过程中遇到了各种问题.在解决这些零碎的问题后,在防止自己忘记这些经验以及用电子介质取代纸质记录的目的下,写下此文. 这些零碎的经验主要分VeilogHDl语 ...

最新文章

  1. R语言聚类分析之基于划分的聚类KMeans实战:基于葡萄酒数据
  2. java 调用存储过程structdescriptor,Java调用oracle存储过程,集合入参的正确姿势
  3. 2010年暑假送给大学生30句话
  4. 词法分析是否需要处理负数
  5. 全球及中国磁性分离滑轮行业竞争战略及未来产销需求预测报告2022版
  6. FileBeats安装
  7. Nova: 虚机的块设备总结 [Nova Instance Block Device]
  8. 语音特征参数MFCC的提取过程
  9. VS2013开发Windows服务项目
  10. .xls和.xlsx 有什么区别?
  11. dataset 用法(1)
  12. 登录页面加密token和盐的作用
  13. 微信Android客户端后台保活经验分享
  14. 解决问题:Unable to connect to Redis
  15. 用树莓派实现宽带多次拨号,带宽叠加
  16. html meta标签使用总结(转)
  17. a java exception has occured java
  18. 金融错配程度/信贷错配程度/资本错配程度/资本资源错配程度(1998-2021年)
  19. 不推荐理财保险(分红险、投资连结险等)的几点理由---实际案例分析计算说明
  20. 81、前后端等上下游岗位配合的思考和参考工作方法,望文知意,约定优于沟通

热门文章

  1. AJAX问题:如果SESSION丢失,会直接报错。
  2. socket网络编程知识
  3. wxPython利用pytesser模块实现图片文字识别
  4. 递归求解汉诺塔问题(C++)
  5. spring cloud互联网分布式微服务云平台规划分析--spring cloud服务监控中心
  6. python+pytest单元测试框架之在Jenkins上生成Allure测试报告
  7. shell编程学习笔记之特殊变量($0、$1、$2、 $?、 $# 、$@、 $*)
  8. okhttp 源码解析 - 网络协议的实现 - HTTP 之 cookie 管理
  9. gcc g++ 参数
  10. linux、unix中的批量文件重命名