zoukankan      html  css  js  c++  java
  • iOS开发zhiATM机的设计与实现

    //
    //  main.m
    //  ATM
    //
    
    
    #import <Foundation/Foundation.h>
    #import "ATM.h"
    #import "Money.h"
    #import "BankCard.h"
    
    int main(int argc, const char * argv[])
    {
        ATM * atm = [[ATM alloc]init];
        //atm->_saveMoneyCount = 1000;
        BankCard * card = [BankCard alloc];
    //    [card set_cardNumber:@"12345678"];
    //    [card set_userName:@"张三"];
        
        [atm tellMoney:TypeOfMoneyFake];
        
        [card showCardNumber:@"12345678"];
        [card showUserName:@"李四"];
        NSLog(@"%@",card);
        [atm saveMoney:10000];
         NSLog(@"%@",atm);
        [atm getMoney:5000];
         NSLog(@"%@",atm);
        
        return 0;
    }
    
    #import <Foundation/Foundation.h>
    #import "BankCard.h"
    #import "Money.h"
    
    @interface ATM : NSObject
    {
        //用来记录钱的总数
        int _countOfMoney;
        
        //存钱数目
        int _saveMoneyCount;
        
        //取钱数目
        int _getMoneyCount;
    }
    @property int _countOfMoney;
    @property int _saveMoneyCount;
    @property int _getMoneyCount;
    
    -(void)saveMoney:(int)saveMoney;
    
    -(void)getMoney:(int)getMoney;
    
    -(void)tellMoney:(TypeOfMoney)typeOfMoney;
    @end
    

    #import "ATM.h"
    
    @implementation ATM
    @synthesize  _countOfMoney = countOfMoney;
    @synthesize  _saveMoneyCount = saveMoneyCount;
    @synthesize  _getMoneyCount = getMoneyCount;
    
    -(void)saveMoney:(int)saveMoney
    {
        //这里參数名称的命名最好不好和实例变量的名称同样
        //假设这样做会发生将实例变量隐藏 不影响执行,可是会有警告
        _saveMoneyCount = saveMoney;
        _countOfMoney = _saveMoneyCount;
        NSLog(@"%d",_saveMoneyCount);
    }
    
    -(void)getMoney:(int)getMoney
    {
        _getMoneyCount = getMoney;
        _saveMoneyCount -= getMoneyCount;
        
        NSLog(@"%d",_getMoneyCount);
    }
    
    -(void)tellMoney:(TypeOfMoney)typeOfMoney
    {
        switch (typeOfMoney) {
            case TypeOfMoneyReal:
                NSLog(@"真币");
                break;
            case TypeOfMoneyFake:
                NSLog(@"假币");
                break;
            default:
                break;
        }
    }
    
    -(NSString *)description
    {
        return [NSString stringWithFormat:@"银行卡结余=%d 存入钱数=%d 取出钱数=%d ",_countOfMoney,_saveMoneyCount,_getMoneyCount];
    }
    @end
    

    #import <Foundation/Foundation.h>
    enum TypeOfMoney
    {
        TypeOfMoneyReal,//真币
        
        TypeOfMoneyFake//假币
    };
    
    typedef enum TypeOfMoney TypeOfMoney;
    
    @interface Money : NSObject
    
    @end
    

    #import "Money.h"
    @implementation Money
    {
        
    }
    
    @end
    

    #import <Foundation/Foundation.h>
    
    @interface BankCard : NSObject
    {
        /**用来存储银行卡账号*/
        NSString * _cardNumber;
        
        /**用来存储银行卡使用者姓名*/
        NSString * _userName;
    
    }
    -(void)showCardNumber:(NSString *)number;
    -(void)showUserName:(NSString *)name;
    @property NSString * _cardNumber;
    @property NSString * _userName;
    @end
    

    #import "BankCard.h"
    
    @implementation BankCard
    
    @synthesize _cardNumber = carNumber;
    @synthesize _userName = userName;
    -(void)showCardNumber:(NSString *)number
    {
        //这里忘记了传參数!!!
        _cardNumber = number;
        NSLog(@"%@",_cardNumber);
    }
    -(void)showUserName:(NSString *)name
    {
        _userName = name;
        NSLog(@"%@",_userName);
    }
    -(NSString *)description
    {
        return [NSString stringWithFormat:@"账号:%@ username:%@",_cardNumber,_userName];
    }
    @end
    


  • 相关阅读:
    python __builtins__ credits类 (15)
    python __builtins__ copyright类 (14)
    python __builtins__ complex类 (13)
    Map 遍历
    Java后台JSON数据的使用
    oracle增加表空间的四种方法
    Oracle ORA-12541:TNS:无监听程序
    Exception
    Spring 配置数据源
    在web.xml中classpath和classpath*的区别
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/5284583.html
Copyright © 2011-2022 走看看