Objective c 分数之间的加减乘除 …

来源:互联网 发布:网络调教女m的任务详细 编辑:程序博客网 时间:2024/05/16 06:30
1.h

//

// Fenshu.h

// Oc_Eop

//@IOS荣天

//  Createdby Ibokan on 12-7-28.

// Copyright (c) 2012 __MyCompanyName__. Allrights 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) newFenziFenmu:(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 on12-7-28.

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

//


#import "Fenshu.h"


@implementation Fenshu

@synthesizefenzi=_fenzi, fenmu=_fenmu;

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

{

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

                 return fenshu;

}

- (id)initWithFenzi:(int) newFenziFenmu:(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=[num1yuefen: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(inti=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 on12-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=[[Fenshualloc]initWithFenzi:1 Fenmu:3];

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

   

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

   //jiafa jianfa  chengfa   chufa

    fenshu3=[fenshuchufa:fenshu7];

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


   //[fenshu3 release];

    [pooldrain];

    return 0;

}


原创粉丝点击