ios开发之自动售货机的设计与实现

//
//  main.m
//  自动售货机
//
/*
 自动售货机系统是一个无人售货系统。售货时,顾客把钱投入机器的投币口中,
 1.机器检查纸币或者硬币的特点,有效的硬币是一元,五角,有效纸币是十元,五元,其它货币都认为是假币,将其从退币口退出。

 2.当机器接到有效的硬币后,把货币放入到储藏箱中,顾客支付的货币根据货币的面值进行累加。

 3.自动货机装有物品分配器,每个物品分配器,包含了零个或多个价格相同的物品,顾客通过选择物品分配器来选择商品,如果物品分配其中有商品,而顾客支付的货币部大于该商品的价格,则商品将被分配到商品传送孔传送给顾客,并将零钱返回到退币孔。
 4.如果分配器是空的或者机器内没有足够的硬币找零,则和顾客支付的货币值相等的硬币将被从退币孔中退回。如果顾客支付的货币值小于所选择的分配器中的商品价格,机器将等待顾客投进更多的货币。
 5.如果顾客决定不买选择的商品,则和顾客支付的货币值相等的硬币从退币孔退回。

 流程 : 顾客投币 --- 机器检查钱币 --- 假币 ---退币
                        |
                         --- 真币 --- 放入存储箱 +累加顾客所投货币
                                        |
    分析:
    对象:顾客  机器  钱币  物品
    功能:机器
 */
#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{

    @autoreleasepool {

        // insert code here...
        NSLog(@"Hello, World!");

    }
    return 0;
}
//
//  Money.h
//  自动售货机

#import <Foundation/Foundation.h>

enum KindOfMoney
{
    /**用来记录硬币5角*/
    CoinMoneyRmbZeroPoint5Yuan,

    /**用来记录硬币1员*/
    CoinMoneyRmbOneYuan,

    /**用来记录纸币5元*/
    PaperMoneyRmb5Yuan,

    /**用来记录纸币10元*/
    PaperMoneyRmb10Yuan
};

typedef enum KindOfMoney KindOfMoney;

@interface Money : NSObject

{
    /**用来记录钱币*/
    KindOfMoney _money;
}
@end
//
//  Money.m
//  自动售货机
//

#import "Money.h"

@implementation Money

@end
//
//  Product.h
//  自动售货机
//

#import <Foundation/Foundation.h>

@interface Product : NSObject
{
    /**用来记录商品名称*/
    NSString * _productName;

    /**用来记录商品的价格*/
    int _productPrice;

}

@property NSString * productName;
@property int productPrice;

@end
//
//  Product.m
//  自动售货机
//

#import "Product.h"

@implementation Product

@synthesize productName = _productName;
@synthesize productPrice = _productPrice;

-(NSString *)description
{
    return [NSString stringWithFormat:@"商品名称:%@ 商品价格 %d",_productName,_productPrice];
}
@end

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-09 10:29:18

ios开发之自动售货机的设计与实现的相关文章

基于迅为4418开发板|触控一体机在自动售货机的应用

近几年,随着移动支付在我国发展的越来越迅速,越来越多的无人商店,无人售卖机越来越多,对移动终端的要求也越来越高,如何降低这些设备的开发门槛,让越来越多的人在日常生活中可以更多的接触到这类产品,因此对终端的性能和降低开发门槛提出了更高的要求. 1.自动售货机(Vending Machine,VEM)是能根据投入的钱币自动付货的机器.自动售货机是商业自动化的常用设备,它不受时间.地点的限制,能节省人力.方便交易.是一种全新的商业零售形式,又被称为24小时营业的微型超市. 2.自动售货系统概念及系统原

设计模式 状态模式 以自动售货机为例

转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/26350617 状态模式给了我眼前一亮的感觉啊,值得学习~ 先看定义:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类.定义又开始模糊了,理一下,当对象的内部状态改变时,它的行为跟随状态的改变而改变了,看起来好像重新初始化了一个类似的. 下面使用个例子来说明状态模式的用法,现在有个自动售货机的代码需要我们来写,状态图如下: 分析一个这个状态图: a.包含4个状态(

查询自动售货机中的商品价格

问题描述:假设自动售货机出售四种商品,在屏幕上显示以下菜单(编号和选项),用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询:不到5次时,用户可以选择退出.当用户输入编号1~4,显示相应的商品价格(保留1位小数):输入0,退出查询:输入其他编号,显示价格为0. int choice,i; double price; for(i=1;i<=5;i++){ //以下5行显示菜单 printf("[1]Select crisps\n"); //查询薯片价格 printf(&

iOS开发项目篇—41cell的frame设计

iOS开发项目篇—41cell的frame设计 一.简单说明 1.分层设计 在进行设计的时候,建议先分析整个cell的结构,确定了cell由哪些模块构成之后,再进一步确定每个模块中包含的子控件. 在这个微博的cell中,把这个cell分成两个大的模块.分解结构如下: 1.微博完整内容模块View (1)原创微博view 1)头像imageView 2)自己的昵称label 3)发布的时间label 4)微博来源label 5)微博的正文 (2)转发微博 1)原作者的昵称label 2)转发的微博

使用NewLife网络库构建可靠的自动售货机Socket服务端(一)

最近有个基于tcp socket 协议和设备交互需求,想到了新生命团队的各种组件,所以决定用NewLife网络库作为服务端来完成一系列的信息交互. 第一,首先说一下我们需要实现的功能需求吧 1,首先客户有一堆自动售货机的设备,设备连接socket服务端后 定时发送设备实时状态作为心跳信息,并且服务端需要下发信息予以确认. 2,需要知道设备的实时在线状态 3,设备需要实现微信,支付宝扫码支付需求,当客户买东西的时候选择扫码支付时,设备上报产品价格信息,支付方式,服务器下发微信或者支付宝的当面付二维

自动售货机是怎么赚钱的

自动售货是算是一种全新的新零售业态,它有投资小,回报快,管理模式简单等特点.从自动售货机进入中国市场发展以来,它的便捷性有效的提升了人们生活的质量.但是,从初期的各方压力与技术需求没有达到市场所需,所以国内的自动售货机一直不温不火. 随着时间推移.国内经济的发展,人工成本,店铺租金的增长,许多地区的商业配套设施无法再满足人们的需求时,更多的人开始追求即时随性,便捷性的消费方式.再加上互联网的覆盖,移动式支付技术提升之下,迅速的引领中国的零售市场.24小时营业服务,低成本,智能化等优势打开了无人零

7-6 自动售货机 (30分)

如图所示的简易自动售货机,物品架1.2上共有10样商品,按顺序进行编号分别为1-10,标有价格与名称,一个编号对应一个可操作按钮,供选择商品使用.如果物架上的商品被用户买走,储物柜中会自动取出商品送到物架上,保证物品架上一定会有商品.用户可以一次投入较多钱币,并可以选择多样商品,售货机可以一次性将商品输出并找零钱. 用户购买商品的操作方法是: (1)从“钱币入口”放入钱币,依次放入多个硬币或纸币.钱币可支持1元(纸币.硬币).2元(纸币).5元(纸币).10元(纸币),放入钱币时,控制器会先对钱

【华为云技术分享】基于小熊派STM32芯片的通过MQTT上报JSON数据到华为物联网平台的自动售货机Demo解析

[摘要] STM32的工程在文章末尾,可自行下载. 一.工程配置 1.MCU类型选择STM32L431RC 2.烧录器选择OpenOCD,参数 -f interface/stlink-v2-1.cfg -f target/stm32l4x.cfg 3.输出目录选择 LiteOS_Lab_STM32\targets\STM32L431_BearPi\GCC\appbuild 4.编译器Makefile选择 targets\STM32L431_BearPi\GCC\Makefile 5.平台参数配置

菜鸟贴;在DE1-S0C上实现了一个FPGA的自动售货机

存在问题:1,代码很丑!!!2,功能简单 遇到的问题:1,逻辑问题,在一个售货机中也会体现的十分突出.FPGA逻辑和时序是必须关心切着重关心的!! 2,按键和开关存在抖动!但不是逻辑混乱的源头!混乱的源头是逻辑的混乱,过程中出现了无数次逻辑的恼人混乱,其实回想起来大多是由于编写代码是没有很好的考虑时钟和逻辑关系,状态机设计不够熟练,各个状态间的传递关系不清晰! 3,没有经验和做事缺少专注和逻辑:1)对设计过程不应该一口气写到地,应该每写一条代码就清楚它会出现什么现象,没写一个分支就应该考虑清楚它