成员变量可见度与方法

定义分数(Fraction)类:

1、成员变量:分子、分母


2、方法:
(1)自定义初始化方法(初始分子和分母)

(2)分子的赋值、取值方法

(3)分母的赋值取值方法

(4)打印分数信息

(5)约分

(6)加、减、乘、除运算方法,返回分数对象。


3、mian.m文件中创建分数对象,测试加、减、乘、除。



#import <Foundation/Foundation.h>


@interface Fraction : NSObject

{

    NSInteger _numerator;

    NSInteger _denominator;

}

/// 自定义初始化

- (id)initWithNumerator:(NSInteger)numerator denominator:(NSInteger)demoinator;

/// 分子的赋值

- (void)setNumerator:(NSInteger)numerator;

/// 分母的赋值

- (void)setDenominator:(NSInteger)denominator;

/// 分子的取值

- (NSInteger)getNumerator;

/// 分子的赋值

- (NSInteger)getDenominator;

/// 打印分数

- (void)outputFraction;

///约分

- (void)outputReduceNumerator;

//计算

- (Fraction *)calculate:(Fraction *)f type:(NSString *)type;


@end




@implementation Fraction

/// 自定义初始化

- (id)initWithNumerator:(NSInteger)numerator denominator:(NSInteger)demoinator

{

    _numerator = numerator;

    _denominator = demoinator;

    return self;

}

/// 分子的赋值

- (void)setNumerator:(NSInteger)numerator

{

    _numerator = numerator;

}

/// 分母的赋值

- (void)setDenominator:(NSInteger)denominator

{

    _denominator = denominator;

}

///  分子的取值

- (NSInteger)getNumerator

{

    return _numerator;

}

///  分母的取值

- (NSInteger)getDenominator

{

    return _denominator;

}

///  打印分数

- (void)outputFraction

{

    NSLog(@"分数为:%ld/%ld", _numerator, _denominator);

}

/// 约分

- (void)outputReduceNumerator

{

    NSInteger temp1 = 0, temp2 = 0, temp3 = 0;

    temp1 = _numerator;

    temp2 = _denominator;

    while (_denominator != 0)

    {

        temp3 = _numerator % _denominator;

        _numerator = _denominator;

        _denominator = temp3;

    }

    NSLog(@"约分后分数为%ld/%ld", temp1/_numerator, temp2/_numerator);

}

/// 计算

- (Fraction *)calculate:(Fraction *)f type:(NSString *)type;

{

    Fraction *result = [[Fraction alloc]init];

    if ([type isEqualTo:@"+"]) {

        result->_numerator = f->_numerator *_denominator + f->_denominator *_numerator;

        result->_denominator = f->_denominator *_denominator;

        [result outputReduceNumerator];

    }

    if ([type isEqualTo:@"-"]) {

        result->_numerator = f->_numerator *_denominator - f->_denominator *_numerator;

        result->_denominator = f->_denominator *_denominator;

        [result outputReduceNumerator];

    }

    if ([type isEqualTo:@"*"]) {

        result->_numerator = f->_numerator * _numerator;

        result->_denominator = f->_denominator *_denominator;

        [result outputReduceNumerator];

    }

    if ([type isEqualTo:@"/"]) {

        result->_numerator = f->_denominator* _numerator;

        result->_denominator = f->_numerator * _denominator;

        [result outputReduceNumerator];

    }

    return result;

}



@end


#import <Foundation/Foundation.h>

#import "Fraction.h"


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

{


    @autoreleasepool {

        

        Fraction *f1 = [[Fraction alloc]initWithNumerator:1 denominator:2];

        [f1 outputFraction];

        [f1 setNumerator:6];

        [f1 setDenominator:9];

        [f1 outputReduceNumerator];

        Fraction *f2 = [[Fraction alloc]initWithNumerator:1 denominator:3];

        Fraction *f3 = [[Fraction alloc]initWithNumerator:6 denominator:5];

        Fraction *f4 = [[Fraction alloc]initWithNumerator:4 denominator:12];

        Fraction *f5 = [[Fraction alloc]initWithNumerator:1 denominator:8];

        [f2 calculate:f3 type:@"*"];

        [f4 calculate:f5 type:@"/"];


    }

    return 0;

}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值