Objective c 分数之间的加减乘除 约分,最大公约数

来源:互联网 发布:activex控件编程 编辑:程序博客网 时间:2024/05/02 00:01
1.h

//

//  Fenshu.h

//  Oc_Eop

//@IOS荣天

//  Created by Ibokan on 12-7-28.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//

#import <Foundation/Foundation.h>

@interface Fenshu : NSObject

{

    int _fenzi;

    int _fenmu;

}

@property (nonatomic,assign)int fenzi;

@property (nonatomic,assign)int fenmu;

//自定义类的初始化方法

+ (id)fenshuWithFenzi:(int) newFenzi Fenmu:(int) newFenmu;

- (id)initWithFenzi:(int) newFenzi Fenmu:(int) newFenmu;

//加法

- (Fenshu *)jiafa:(Fenshu *)num1;

//减法

- (Fenshu *)jianfa:(Fenshu *)num1;

//乘法

- (Fenshu *)chengfa:(Fenshu *)num1;

//除法、

- (Fenshu *)chufa:(Fenshu *)num1;

//约分方法

- (Fenshu *)yuefen:(Fenshu *)num1;

//最大公约数

- (int)shuMax:(Fenshu *)num1;

@end


2.

 

//

//  Fenshu.m

//  Oc_Eop

//

//  Created by Ibokan on 12-7-28.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import "Fenshu.h"


@implementation Fenshu

@synthesize fenzi=_fenzi, fenmu=_fenmu;

+ (id)fenshuWithFenzi:(int) newFenzi Fenmu:(int) newFenmu

{

    Fenshu *fenshu=[[Fenshu alloc]initWithFenzi:newFenzi Fenmu:newFenmu];

                    return fenshu;

}

- (id)initWithFenzi:(int) newFenzi Fenmu:(int) newFenmu

{

    self=[super init];

    if(self)

    {

        self.fenzi=newFenzi;

        self.fenmu=newFenmu;

    }

    return self;

}

                

//加法

- (Fenshu *)jiafa:(Fenshu *)num1

{

   

    

    num1.fenzi=(self.fenzi*num1.fenmu)+(num1.fenzi*self.fenmu);

    num1.fenmu=self.fenmu*num1.fenmu;

    num1=[self yuefen:num1];

    return num1;


}

//减法

- (Fenshu *)jianfa:(Fenshu *)num1

{

    num1.fenzi=(self.fenzi*num1.fenmu)-(num1.fenzi*self.fenmu);

    num1.fenmu=self.fenmu*num1.fenmu;

    num1=[self yuefen:num1];

    return num1;

}

//乘法

- (Fenshu *)chengfa:(Fenshu *)num1

{

    num1.fenzi=self.fenzi*num1.fenzi;

    num1.fenmu=self.fenmu*num1.fenmu;

   num1= [self yuefen: num1];

    return num1;

}

//除法、

- (Fenshu *)chufa:(Fenshu *)num1

{

    num1.fenzi=num1.fenzi*self.fenmu;

    num1.fenmu=num1.fenmu*self.fenzi;

    num1=[num1 yuefen:num1];

    return num1;

}

//约分方法

- (Fenshu *)yuefen:(Fenshu *)num1

{

    int i=[num1 shuMax:num1];

    num1.fenzi/=i;

    num1.fenmu/=i;

    return num1;    

}

//最大公约数

- (int)shuMax:(Fenshu *)num1

{

    int flag=num1.fenzi<num1.fenmu?num1.fenzi:num1.fenmu;

    for(int i=flag;i>=0;i--)

    {

        if(num1.fenzi%i==0&&num1.fenmu%i==0)

        {

            return i;

        }

    }

    return 1;

}

@end


3.

 

//

//  main.m

//  Oc_Eop

//@IOS荣天

//  Created by Ibokan on 12-7-28.

//  Copyright (c) 2012 __MyCompanyName__. All rights reserved.

//


#import <Foundation/Foundation.h>

#import "Fenshu.h"

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

{


  

    NSAutoreleasePool *pool=[[NSAutoreleasePool alloc]init];

     Fenshu *fenshu1=[[Fenshu alloc]initWithFenzi:1 Fenmu:2];

    Fenshu *fenshu=[[Fenshu alloc]initWithFenzi:1 Fenmu:3];

    Fenshu *fenshu7=[Fenshu fenshuWithFenzi:2 Fenmu:7];//类的初始化方法实现

   

    Fenshu *fenshu3=[[Fenshu alloc]initWithFenzi:0 Fenmu:0];

    //jiafa  jianfa  chengfa   chufa

    fenshu3=[fenshu chufa:fenshu7];

    NSLog(@"%d/%d",fenshu3.fenzi,fenshu3.fenmu);


    //[fenshu3 release];

    [pool drain];

    return 0;

}

0 0
原创粉丝点击