OC第五讲

第一题

    在MRC模式下用属性语法和点语法模拟实现以下内容:

一个人工作挣钱,有一天终于攒够了钱,买了一个房子,然后找了一个对象结婚。后来婚姻出现了第三者,两人离婚后此人卖掉了房子,最终和第三者结婚。


房屋类:

特征:房东、地址、面积、每平米价格

    行为:估价、升值等


人类:

    特征;姓名、性别、钱、配偶

    行为:工作挣钱、买房子、结婚、卖房子、离婚等


// 房子类House

// House.h

#import <Foundation/Foundation.h>
@class Person;

@interface House : NSObject

@property(nonatomic, retain) Person *landlord;     // 房东
@property(nonatomic, retain) NSString *address;    // 地址
@property(nonatomic, assign) float area;           // 面积
@property(nonatomic, assign) float priceEvery;     // 每平米价格

/// 估价
- (float)assess;
/// 升值
- (float)appreciation:(int)year;

@end

// House.m

#import "House.h"

@implementation House
/// 估价
- (float)assess
{
    return _area * _priceEvery;
}
/// 升值
- (float)appreciation:(int)year
{
    _priceEvery += 1000 * year;
    return [self assess];
}
@end

// 人类Person

// Person.h

#import <Foundation/Foundation.h>
@class House;

@interface Person : NSObject

@property(nonatomic, retain) NSString *name;
@property(nonatomic, retain) NSString *sex;
@property(nonatomic, assign) float money;
@property(nonatomic, assign) int workTime;          // 工作时间
@property(nonatomic, retain) Person *mate;          // 配偶
@property(nonatomic, retain) House *isHouse;        // 房子


/// 工作挣钱
- (void)work;
/// 买房子
- (void)buyHouse:(House *)house;
/// 结婚
- (void)marry:(Person *)person;
/// 卖房子
- (void)sellHouse:(int)year;
/// 离婚
- (void)divorce:(Person *)person marry:(Person *)person2;

@end

// Person.m

#import "Person.h"

@implementation Person
/// 工作挣钱
- (void)work
{
    _money = _workTime * 600000;     // 年薪60万
    NSLog(@"%@努力工作赚钱,工作了3年,不吃不喝终于攒了%.2f RMB。",
          _name, _money);
}
/// 买房子
- (void)buyHouse:(House *)house
{
    if (_money >= [_isHouse assess]) {
        house.landlord = self;
        _isHouse = house;
        _money -= [_isHouse assess];      
        NSLog(@"房子在%@,估价是%.2f,买完房子之后还剩%.2f,房主变为%@",
              _isHouse.address, [_isHouse assess], _money, _isHouse.landlord.name);
    }
}
/// 结婚
- (void)marry:(Person *)person
{
    _mate = person;
    person.mate = self;
    static int flag = 0;
    if (flag == 0) {
        NSLog(@"%@找了个对象叫%@,两人已结婚,幸福地生活在一起!",
              _name, _mate.name);
        flag = 1;
    }
}
/// 卖房子
- (void)sellHouse:(int)year
{
    NSLog(@"两人离婚后,%@卖掉了在%@的升值为%.2f RMB的房子,最终和第三者%@结婚。。。",
          _isHouse.landlord.name, _isHouse.address, [_isHouse appreciation:year], _isHouse.landlord.mate.name);
    _isHouse = nil;
}
/// 离婚
- (void)divorce:(Person *)person marry:(Person *)person2
{
    _mate = nil;
    person.mate = nil;
    [self marry:person2];
    NSLog(@"8年后婚姻出现了第三者%@,%@与%@离婚!",
          _mate.name, person.name, _name);
}
@end

// 主函数main.m

#import <Foundation/Foundation.h>
#import "House.h"
#import "Person.h"

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

    @autoreleasepool {
        Person *wenzhang = [[Person alloc] init];
        House *house = [[House alloc] init];
        wenzhang.name = @"文章";
        wenzhang.sex = @"男";
        wenzhang.money = 0.0f;
        house.address = @"北京市五环外";
        house.area = 100.0f;
        house.priceEvery = 20000.0f;
        
        wenzhang.workTime = 4;
        [wenzhang work];
        [wenzhang buyHouse:house];
        
        Person *maYiLi = [[Person alloc] init];
        maYiLi.name = @"马伊俐";
        maYiLi.sex = @"女";
        [wenzhang marry:maYiLi];
        int year = 8;
        
        Person *yaoDi = [[Person alloc] init];
        yaoDi.name = @"姚笛";
        yaoDi.sex = @"女";
        [wenzhang divorce:maYiLi marry:yaoDi];
        [wenzhang sellHouse:year];         // 结婚year年后卖房
        
    }
    return 0;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值