//
// 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

iOS开发zhiATM机的设计与实现的更多相关文章

  1. IOS开发之代理的设计小技巧

    1.关于代理对象的设计小技巧 在设计一个类,需要通过代理和协议来从外部获取需要的动态的数据.那么在这里设计使用代理会有两种方法. <第一种方法> 也是比较常见的: 在你设计的类中,声明一个 ...

  2. iOS开发-真机调试遇到“The executable was signed with invalid entitlements.

    https://www.jianshu.com/p/635574a8ab0e 如果是真机运行relase版 1.Edit Scheme中改成relase 2.更改签名为   自动签名

  3. iOS开发——真机调试证书—发布证书

    (最近准备考试,空闲整理成博客……)

  4. IOS开发之微博的设计与实现

    // // main.m // Microblog // #import <Foundation/Foundation.h> #import "Person.h" #i ...

  5. iOS开发之浅谈MVVM的架构设计与团队协作

    今天写这篇博客是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇博客的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

  6. iOS开发系列--IOS程序开发概览

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的IOS程序.但是这里我想强调一下,前面的 ...

  7. 浅谈iOS中MVVM的架构设计与团队协作

    说到架构设计和团队协作,这个对App的开发还是比较重要的.即使作为一个专业的搬砖者,前提是你这砖搬完放在哪?不只是Code有框架,其他的东西都是有框架的,比如桥梁等等神马的~在这儿就不往外扯了.一个好 ...

  8. IOS中 浅谈iOS中MVVM的架构设计与团队协作

    今天写这篇文章是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇文章的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦 ...

  9. iOS开发简单介绍

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的iOS程序.但是这里我想强调一下,前面的 ...

随机推荐

  1. SGU 143.Long Live the Queen(女王万岁)

    时间限制:0.25s 空间限制:4M 题意: 有n(n<=16000)个小镇,每两个小镇有且仅有一条路径相连.每个小镇有一个收益x(-1000<=x<=1000). 现在要求,选择一 ...

  2. Codeforces 193D Two Segments 解题报告

    先是在蓝桥杯的网站上看到一道题: 给出1~n的一个排列,求出区间内所有数是连续自然数的区间的个数.n<=50000. 由于数据较弱,即使用O(N^2)的算法也能拿到满分. 于是在CF上发现了这一 ...

  3. shell用if

    --------- shell用if出错了,Why? shell if 实例: site=github.com/fankcoder if [ $site == github.com/fankcoder ...

  4. vim操作命令-笔记

    显示行号:在vim命令行模式下输入 :set nu 或 :set number 取消显示行号:在vim命令行模式下输入 :set nonu 或 :set nonumber 查看文件编码格式: :set ...

  5. crf 分词(待)

    http://blog.csdn.net/marising/article/details/5769653

  6. 【转】JQUERY相关的几个网站

    作者:Terry li - GBin1.com 1. John Resig - http://ejohn.org 毫无疑问,jQuery 的缔造者的博客是你首先必须关注的. 2. Filmament ...

  7. BZOJ 1006 神奇的国度

    Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的.为了巩固三角关系,K国禁止四边关系,五边关系 ...

  8. JavaScript Maintainable

    1. Avoid conflict with Native Variable namespace

  9. CSS也可以改变图片幅面尺寸

    一般情况下,只有<img />标签中的图片,可以根据宽高设定来改变大小. 比如1024x768的图,我们设width="640",height="480&qu ...

  10. 【转】Android与JNI(二) -- 不错

    原文网址:http://www.cnblogs.com/eddy-he/archive/2012/08/09/2629974.html 软件版本: ubuntu10.04 java version & ...