实验三:自动售货机

题目:

图所示为简易自动售货机,物品架1、2上共有10样商品,按顺序进行编号分别为1~10,标有价格与名称,如下图:
用户购买商品的操作方法如下。
1.售货机物品架上共有10样商品依次编号1-10,标有名称与价格。
2.售货机接受1/2/5/10面值的硬/纸币,用户可以一次性投入多个硬币并选择多种商品,售货机将一次性将商品输出并找零。
3.投入钱币和选择商品皆以-1作为结束,若输入商品编号超出范围或余额不足将自动结束购物,输出购买商品,钱币总额和找零。
输入不需要空格,10请输入’0’,-1请输入’-’

输入输出示例:

输入:
1 1 2 2 5 5 10 10 -1 /钱币序列/
1 2 3 5 1 6 9 10 -1 /商品编号/

输出:
Total:36yuan, change:19 yuan
Table-water1:2
Table-water2:1
Table-water3:1
Milk:1
Beer:1
Oolong-Tea:1
Green-Tea:1

注释:

主要是熟悉关于switch()函数的相关用法;

下面贴的代码并不是正确解,使用了个十分奇葩的方法(……)请注意看售货机的使用方法(233);

附录(瞎搞的解答):

#include <stdio.h>
#include <iostream>
#include <conio.h>
#include <bits/stdc++.h>
using namespace std;void jiemian(){printf("\n");printf("\n");printf("                     程序设计与实践        实验(三) 自动售货机\n");printf("\n");printf("      自动售货机使用方法\n");printf("     =============================                    \n");printf("\n     1.售货机物品架上共有10样商品依次编号1-10,标有名称与价格。\n");printf("     2.售货机接受1/2/5/10面值的硬/纸币,用户可以一次性投入多个硬币并选择多种商品,售货机将一次性将商品输出并找零。\n");printf("     3.投入钱币和选择商品皆以-1作为结束,若输入商品编号超出范围或余额不足将自动结束购物,输出购买商品,钱币总额和找零。\n"); printf("       (输入不需要空格,10请输入'0',-1请输入'-')\n");printf("\n");printf("       1---Table-water1     1 yuan       2---Table-water2   1 yuan\n");printf("       3---Table-water3    1 yuan       4---Coca-Cola      2 yuan\n");printf("       5---Milk        2 yuan       6---Beer       3 yuan\n");printf("       7---Orange-Juice    3 yuan       8---Sprite     3 yuan\n");printf("       9---Oolong-Tea      4 yuan      10---Green-Tea      4 yuan\n");\printf("\n");
}int main(){char *g[10]={"Table-water1",  "Table-water2",  "Table-water3",  "Coca-Cola",
"Milk","Beer", "Orange-Juice", "Sprite", "Oolong-Tea", "Green-Tea"};/*定义指针数组,其中每个元素都是
一个字符指针,分别指向各商品名称*/ int price[10]={1,1,1,2,2,3,3,3,4,4}; /*各商品对应的价格*/ static int countp[10]; int change=0,t=0,*p=price,i;char x,y;int a[100],b[100],k;jiemian(); printf(" Please enter a coin sequence:");while(x!='-'){x=getch();switch(x){case '1':t+=1;cout<<"1 ";break;case '2':t+=2;cout<<"2 ";break;case '5':t+=5;cout<<"5 ";break;case '0':t+=10;cout<<"10 ";break;case '-':cout<<"-1";break;default:break;}}cout<<endl<<endl<<" 总计投入金额:"<<t<<" yuan"<<endl;cout<<endl;change=t;printf(" Please enter a goods sequence:");while(y!='-'){y=getch();if(change<*(p+(y-49))){cout<<" 余额不足,结束购物。";break; }switch(y){case '1':cout<<"1 ";change-=*p;countp[0]++;break;case '2':cout<<"2 ";change-=*(p+1);countp[1]++;break;case '3':cout<<"3 ";change-=*(p+2);countp[2]++;break;case '4':cout<<"4 ";change-=*(p+3);countp[3]++;break;case '5':cout<<"5 ";change-=*(p+4);countp[4]++;break;case '6':cout<<"6 ";change-=*(p+5);countp[5]++;break;case '7':cout<<"7 ";change-=*(p+6);countp[6]++;break;case '8':cout<<"8 ";change-=*(p+7);countp[7]++;break;case '9':cout<<"9 ";change-=*(p+8);countp[8]++;break;case '0':cout<<"10 ";change-=*(p+9);countp[9]++;break;case '-':cout<<"-1";break;default:cout<<" 商品编号超出范围 ";y='-';break;}}/*输出总金额,应找回的金额*/ printf("\n\n Total: %d yuan , change: %d yuan\n",t,change);
/*输出物品名称与数量*/ for(i=0;i<10;i++) { if(countp[i]>0) printf(" %s : %d \n",g[i],countp[i]);}printf("\n");return 0;
}

【程序设计与实践】实验三:自动售货机相关推荐

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

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

  2. 【FPGA】自动售货机综合实现

    自动售货机综合实现 一.项目需求 1. 售货机模拟项目. 二.要求 三.售货机原理 1. 基本原理 2. 思路架构 3. RTL物理模型实现 四.项目分析解决 五.总结 参考 一.项目需求 1. 售货 ...

  3. plc是一台专用计算机对,PLC控制自动售货机设计 (2).doc

    . 页 自动售货机的PLC系统设计 摘要: 本文介绍了自动售货机的基本原理以及工作流程,然后以一次交易过程为例,把交易过程分为几个程序块,然后分别对程序块进行编程.具体说明了可编程序控制器在自动售货机 ...

  4. 软件工程大作业:自动售货机系统

    下载链接 实验题目 自动售货机系统 一.实验目的 分析自动售货机系统的整个开发过程,包括需求分析.数据流图.数据字典.结构图和详细设计,通过分析,明白整个过程需要实现哪些功能,对数据有哪些要求,明确本 ...

  5. 自动售货机软件工程课设_软件工程 自动售货机

    自动售货机分析 软件工程 信息学院 08级 通信工程二班 罗运俊 200800120134 作业题:面向对象分析实践 下面是自动售货机系统的需求陈述,试建立它的对象模型.动态模型和功能模型: 自动售货 ...

  6. 程序设计与实践 自动售货机 C语言

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

  7. 开发实践丨用小熊派STM32开发板模拟自动售货机

    摘要:本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代码,通过云端开发和设备终端开发,实现终端数据在的华为云平台显示. 本文内容是讲述用小熊派开发板模拟自动售货机,基于论坛提供的工程代 ...

  8. c语言自动售货机实验报告,c语言自动售货机实验报告(15页)-原创力文档

    课 程 设 计 课程名称C 语言高级程序设计 学院xxx 小组成员 1XXX 小组成员 2XXX 小组成员 3XXX 任课教师XXX 2016--2017学年第 1学期 所选题目与要求 自动售货机 问 ...

  9. verilog 自动售货机状态机实现_Verilog HDL自动售货机系统设计与仿真实验报告

    前言 随着电子技术和计算机技术的飞速发展,电子线路的设计工作也日益显得重要.经过人工设计.制作实验板.调试再修改的多次循环才定型的传统产品设计方法必然被计算机辅助设计所取代,因为这种费时费力又费资源的 ...

最新文章

  1. java socket监控_ZeroMQ(java)中监控Socket
  2. SD-WAN的出现对MPLS意味着什么?
  3. 我反对|李彦宏当选院士不合适:“名”不要再掺水了
  4. [python学习] 专题八.多线程编程之thread和threading
  5. pip install jupyter报错30ERROR
  6. python中functools_functools模块2个常用函数
  7. SVN本地代码未提交而被覆盖
  8. 乡村野生草药_官方野生蝇群流口水分数
  9. pojBuy Tickets2828线段树或者树状数组(队列中倒序插队)
  10. HTML5新特征、窍门和技术(16~20)
  11. Linux如何搭建Java部署环境
  12. 【easy】101. Symmetric Tree
  13. canvasnest 移动距离_GitHub - XiaoxinJiang/canvas-nest: 仿知乎登录页面canvas-nest
  14. Python数据结构与算法(2.7)——跳表
  15. spring教程笔记1
  16. cisco虚拟3a服务器,思科Cisco基于服务器的AAA实验详解
  17. CRC校验 与 模2运算
  18. Java Calendar,Date,DateFormat,TimeZone,Locale等时间相关内容的认知和使用(2) 自己封装的Calendar接口
  19. Teamcenter 与各种工具软件的集成解决方案
  20. py2exe安装使用

热门文章

  1. 【204期】图文并茂,Spring Boot Starter 万字详解!还有谁不会?
  2. 关于网页中的兼容性问题
  3. 【OLS回归_结果解读】
  4. 软件黑河测试的技巧ppt,07测试用例设计方法【黑盒—正交试验法】
  5. 利用badusb对用户进行木马远控
  6. App自动化(1)--Appium-Android环境搭建
  7. 【CSS】css如何让滚动条不显示(CSS隐藏滚动条)
  8. 几种网络通讯协议(WIFI,WAPI,GSM,GPRS,CDMA)概述
  9. ubuntu系统开启ssh用户名密码登录
  10. ashx返回图片_ashx中实现下载图片的方法?