码迷,mamicode.com
首页 > 移动开发 > 详细

ios开发之公交卡系统的设计与实现

时间:2017-08-10 18:07:56      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:ons   format   硬币   case   cas   nmon   obj   多次   ios开发   

//
//  main.m
//  Bus-公交

/*
    公交一卡通充值系统。有两种功能选择。第一种投入硬币或者纸币
    选择购票,另外一种一卡通充值,充值面额是20,50。100
 */
#import <Foundation/Foundation.h>
#import "Card.h"
#import "ChargeMachine.h"
#import "Money.h"

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

    ChargeMachine * machine = [[ChargeMachine alloc]init];
    
    //[machine sellTicket];

    //[ChargeMachine recharge:KindOfMoney100];//这里赋值的时候赋值成为100,导致程序出错
    //[ChargeMachine recharge:KindOfMoney20];
    [ChargeMachine recharge:KindOfMoney50];
    [ChargeMachine recharge:KindOfMoneyCoinMoney2];
    //[machine recharge:KindOfMoneyCoinMoney2];
    NSLog(@"%@",machine);
    
    
    return 0;
}
#import <Foundation/Foundation.h>
#import "Money.h"


@interface Card : NSObject
{
    /*公交卡卡编号*/
    NSString * _numberOfCard;
    
    /**公交卡存放金额*/
    int MoneyOfCard;
    
}

@property NSString * numberOfCard;
@property int MoneyOfCard;
@end

#import "Card.h"

@implementation Card
@synthesize numberOfCard = _numberOfCard ;
@synthesize MoneyOfCard = _MoneyOfCard;




@end

#import <Foundation/Foundation.h>
#import "Money.h"
@interface ChargeMachine : NSObject
{
    /**用来记录销售总量*/
    int countOfMoney;
    
    KindOfMoney _money;
    
    
}


@property int countOfMoney;
/**打印票据*/
-(void)sellTicket;

/**充值*/
+(int)recharge:(KindOfMoney)kindOfMoney;

-(int)recordcounOfMony;

@end

#import "ChargeMachine.h"

@implementation ChargeMachine
@synthesize countOfMoney = _countOfMoney;
/**打印票据*/

-(void)sellTicket
{
    NSLog(@"卖出一张车票");
}

/**充值*/
-(void)recharge
{
    NSLog(@"充值成功");
}

-(int)recordcounOfMony
{
    _countOfMoney += _money;
    return _countOfMoney;
}

+(int)recharge:(KindOfMoney)kindOfMoney
{
    ChargeMachine * machine = [[ChargeMachine alloc]init];
    int moneyKind = 0;
    //int countOfMoney = 0;
    switch (kindOfMoney) {
        case KindOfMoney20:
            moneyKind = 20;
            //countOfMoney += money;
            NSLog(@"您充值的金额是20元");
            break;
        case KindOfMoney50:
            moneyKind = 50;
            NSLog(@"您充值的金额是50元");
            //countOfMoney += money;
            break;
        case KindOfMoney100:
            moneyKind = 100;
            NSLog(@"您充值的金额是100元");
            //countOfMoney += money;
            break;
        case KindOfMoneyCoinMoney2:
            moneyKind = 2;
            NSLog(@"您投的是硬币");
            [machine sellTicket];
            break;
        case KindOfMoneyPaperMoney2:
            moneyKind = 2;
            NSLog(@"您投的是纸币");
            [machine sellTicket];
            break;
        default:
            break;
    }
    return moneyKind;
}

-(NSString *)description
{
    //经过多次调用如何保存一个变量的值?
    
    //ChargeMachine * machine = [[ChargeMachine alloc]init];
    //int moneyKind = [ChargeMachine recharge:_money];
    //int countOf_Money = [ChargeMachine recharge:_money];
    return [NSString stringWithFormat:@"%d",_money];
}
@end

#import <Foundation/Foundation.h>
enum KindOfMoney
{
    /**用来存储充值面额为20的变量*/
    KindOfMoney20,
    
    /**用来存储充值面额为50的变量*/
    KindOfMoney50,
    
    /**用来存储充值面额为100的变量*/
    KindOfMoney100,
    
    KindOfMoneyCoinMoney2,
    
    KindOfMoneyPaperMoney2
};

typedef enum KindOfMoney KindOfMoney;

@interface Money : NSObject
{
    KindOfMoney _kindOfMoney;
}
-(Money*)initWithKindOfMoney:(KindOfMoney)kindOfMoney;
typedef enum KindOfMoney KindOfMoney;
@end

#import "Money.h"

@implementation Money
{
    
}
-(Money*)initWithKindOfMoney:(KindOfMoney)kindOfMoney
{
    self = [super init];
    if (self!=nil) {
        _kindOfMoney = kindOfMoney;
    }
    return self;
}
@end


ios开发之公交卡系统的设计与实现

标签:ons   format   硬币   case   cas   nmon   obj   多次   ios开发   

原文地址:http://www.cnblogs.com/mthoutai/p/7340359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!