.h文件中的代码
#import <Foundation/Foundation.h>
@interface Fracton : NSObject
{
NSInteger molecule;//分子
NSInteger denominator;//分母
}
@property NSInteger molecule;
@property NSInteger denominator;
-(void)reductionOfFraction;//约分
- (void)add:(Fracton *)fenshu3;//加
- (Fracton *)sub:(Fracton *)fenshu3;//减
- (void)mult:(Fracton *)fenshu3;//乘法
- (void)division:(Fracton *)fenshu3;//除法
- (void)compare:(Fracton *)fenshu3;//比较
@end
.m文件中的代码
#import "Fracton.h"
@implementation Fracton
@synthesize molecule = _molecule;
@synthesize denominator = _denominator;
-(void)reductionOfFraction{
NSInteger a = self.molecule;
NSInteger b = self.denominator;
NSInteger c = 0;
while (b != 0) {
c = a % b;
a = b;
b = c;
}
NSLog(@"%ld/%ld",self .molecule/a,self. denominator/a);
}
- (void)add:(Fracton *)fenshu3{
Fracton *fenshu2 =[Fracton alloc];
fenshu2.molecule = (self.molecule * fenshu3.denominator) + (fenshu3.molecule * self.denominator);
fenshu2.denominator = self.denominator * fenshu3.denominator;
[fenshu2 reductionOfFraction];
}
- (Fracton *)sub:(Fracton *)fenshu3{
Fracton *fenshu2 =[Fracton alloc];
fenshu2.molecule = self.molecule * fenshu3.denominator - fenshu3.molecule * self.denominator;
fenshu2.denominator = self.denominator * fenshu3.denominator;
[fenshu2 reductionOfFraction];
return fenshu2;
}
- (void)mult:(Fracton *)fenshu3{
Fracton *fenshu2 =[Fracton alloc];
fenshu2.molecule = self.molecule * fenshu3.molecule;
fenshu2.denominator = self.denominator * fenshu3.denominator;
[fenshu2 reductionOfFraction];
}//乘法
- (void)division:(Fracton *)fenshu3{
Fracton *fenshu2 =[Fracton alloc];
fenshu2.molecule = self.molecule * fenshu3.denominator;
fenshu2.denominator = self.denominator * fenshu3.molecule;
[fenshu2 reductionOfFraction];
}//除法
- (void)compare:(Fracton *)fenshu3{
Fracton *fenshu2 =[Fracton alloc];
fenshu2 = [self sub:fenshu3];
if (fenshu2.molecule > 0) {
NSLog(@"分数1大于分数2");
}else if(fenshu2.molecule == 0)
{
NSLog(@"分数等于分数2");
}else{
NSLog(@"分数小于分数2");
}
}
@end
nt main(int argc, const char * argv[])
{
@autoreleasepool {
Fracton *fenshu1 = [Fracton alloc];
fenshu1.molecule = 4;
fenshu1.denominator = 6;
Fracton *fenshu2 = [Fracton alloc];
fenshu2.molecule = 2;
fenshu2.denominator = 5;
[fenshu1 add:fenshu2];
[fenshu1 sub:fenshu2];
[fenshu1 mult:fenshu2];
[fenshu1 compare:fenshu2];
[fenshu1 reductionOfFraction];
return 0;
}