初识Objective-C之[简单业务逻辑]

初识Objective-C之[简单业务逻辑],第1张

概述初识Objective-C之[简单业务逻辑]

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

////  main.m//  to ////  Created by  的MACPro on 14-8-25.//  copyright (c) 2014年  的MACPro. All rights reserved.//#import <Foundation/Foundation.h>#include <stdio.h>/**习题12: 自动售货机售货,机器检查纸币或者硬币的特点,有效的硬币是一元,五角,有效纸币是十元,五元,其它货币都认为是假币,将其从退币口退出。当机器接到有效的硬币后,把货币放入到储藏箱中  自动货机装有物品分配器,每个物品分配器,包含了零个或多个价格相同的物品,顾客通过选择物品分配器来选择 商品,如果物品分配其中有商品,而顾客支付的货币部小于该商品的价格,则商品将被分配到商品传送孔传送给顾客, 并将零钱返回到退币孔。如果分配器是空的或者机器内没有足够的硬币找零,则和顾客支付的货币值相等的硬币将被从 退币孔中退回。如果顾客支付的货币值小于所选择的分配器中的商品价格,机器将等待顾客投进更多的货币。如果顾客 决定不买选择的商品,则和顾客支付的货币值相等的硬币从退币孔退回。 *///对象 1.ATM 2.钱 3.商品//钱对象@interface Money : NSObject{@public    int five;    int ten;    int one;    float _50cents;@private    float total;}-(BOol) isIllegal;-(voID) setTotal:(float) fen;-(float) getTotal;@end//货物对象@interface Goods : NSObject {@public    Nsstring *_goods_name;    int _price;    int _amounts;}@end//自动售货机@interface ATM : NSObject{@public    Goods *_cococola;    Money *_money;    int temp;    BOol isDone;}-(voID) getMoney:(Money *) inCome;-(voID) transaction;-(voID) run:(Money *) m : (Goods *) g;@end//--------------ipm--------------@implementation Money : NSObject-(BOol) isIllegal{    BOol isright = YES;    //要求参数传一个浮点数 直接计算出是否能被4中货币整除 是则返回YES 否则返回NO    if (five%5!=0||ten%10!=0) {        isright = NO;    }    return isright;}-(float) getTotal{    return _50cents+five+ten+one;}-(voID) setTotal:(float)p1 {    total = p1;}@end@implementation Goods : NSObject@end@implementation ATM : NSObject// 收钱-(voID) getMoney:(Money *)inCome{    if([inCome isIllegal])        temp = [inCome getTotal];    else    NSLog(@"对不起 不支持您的货币类型 : 只能支付1元(硬币),5分(硬币),5元(纸币),10元(纸币)");}// 完成交易流程-(voID) transaction{    NSLog (@"请输入您要购买的商品类型 目前只有可乐 3块钱一瓶 爱买不买,哼~");    NSLog(@"要几瓶?");    int t = 0;    scanf("%d",&t);        if ((t * _cococola->_price) <= temp && _cococola->_amounts >= t) {        NSLog(@"本次交易收入%i元,购买可乐%i瓶,单价为[%i]元一瓶,开始出货.....",temp,t,_cococola->_price);        int leftMony = temp - (_cococola->_price * t);        temp = leftMony;        if(isDone) [_money setTotal:temp - leftMony];        _cococola->_amounts -= t;                NSLog(@"交易完成 实收[%i]元 ",t*_cococola->_price);        NSLog(@"找零[%i]元...",leftMony);            }else if (_cococola->_amounts < t){        NSLog(@"对不起,库存不足,请重新选择.....");        return;    }else if(temp < _cococola->_price * t){        NSLog(@"对不起 您的钱不够...");        NSLog(@"交易完成 找零[%i]元",temp);    }else        NSLog(@"输入错误....");        if (isDone) temp = 0;}-(voID) run:(Money *) m : (Goods *) g{    _cococola = g;        isDone = NO;    [self getMoney: m];    while( !isDone ){        printf("temp = %d\n",temp);        if( temp < _cococola->_price ) {            isDone = YES;            NSLog(@"交易结束 请走人");        }        if( _cococola->_amounts == 0 ) {            isDone = YES;            NSLog(@"不好意思卖光了 请走人");        }            [self transaction];        NSLog(@"\n\n\n-----------你好 欢迎来到 同学的ATM量贩机 请投币....-----------");    }}@end//-------------主函数----------------int main(int argc,const char * argv[]){    Money *m1 = [Money new];    printf("\n%p 顾客给的钱的地址\n",&m1);    m1->_50cents = 0.5;    m1->five = 20;    m1->ten = 0;    m1->one = 0;        Money *base = [Money new];    printf("\n%p ATM机找补本金的地址\n",&base);    base->_50cents = 20.0;    base->five = 100;    base->ten = 10;    base->one = 100;        Goods *g1 = [Goods new];    g1->_price = 3; //3元一瓶 屌丝福音...    g1->_amounts = 20;//放20瓶可乐进去...    g1->_goods_name = @"1.可口可乐";        ATM *atm = [ATM new];    atm->_money = base;    atm->isDone = NO;    printf("\n 事实上是这个地址:%p \n",&(atm->_money));        Nsstring *AboutATMClass = [atm description];    NSLog(@"ATM对象->[%@]",AboutATMClass);    NSLog(@"%@",atm->_money);    [atm run:m1 :g1]; //给2个对象到ATM机器 开始跑 一直出货到钱花完为止...    return 0;}

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的初识Objective-C之[简单业务逻辑]全部内容,希望文章能够帮你解决初识Objective-C之[简单业务逻辑]所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1106842.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存