创建?个Fraction类(分数)实现分数的加减乘除,?较??、约 分等?法。要求:添加属性.

//  Fraction.h
#import <Foundation/Foundation.h>

@interface Fraction : NSObject
@property (nonatomic, assign)NSInteger above;//分子
@property (nonatomic, assign)NSInteger below;//分母
//初始化
- (id)initWithName:(NSInteger)above below:(NSInteger)below;
//最大公约数
- (NSInteger)maxGY:(NSInteger)above below:(NSInteger)below;
//约分
- (void)simply;
//相加
- (void)sumfraction:(Fraction *)fraction;
//相减
- (void)subfraction:(Fraction *)fraction;
//相乘
- (void)mulfraction:(Fraction *)fraction;
//相除
- (void)divfraction:(Fraction *)fraction;
//输出
- (NSString *)description;

@end

.m文件

//  Fraction.m

#import "Fraction.h"

@implementation Fraction
//初始化
- (id)initWithName:(NSInteger)above below:(NSInteger)below{
    self = [super init];
    if (self) {
        self.above = above;
        self.below = below;
    }
    return self;
}
//最大公约数
- (NSInteger)maxGY:(NSInteger)above below:(NSInteger)below{
    NSInteger a = above % below;
    while (a != 0){
        above = below;
        below = a;
        a = above % below;

    }
    return below;

}
//约分
- (void)simply{
    NSInteger b = [self maxGY:self.above below:self.below];
    self.above /= b;
    self.below /= b;

}
//相加
- (void)sumfraction:(Fraction *)fraction{
    self.above = self.above * fraction.below + fraction.above * self.below;
    self.below = self.below * fraction.below;
    [self simply];

}

- (void)subfraction:(Fraction *)fraction{
    self.above = self.above * fraction.below - fraction.above * self.below;
    self.below = self.below * fraction.below;
    [self simply];

}
- (void)mulfraction:(Fraction *)fraction{
    self.above = self.above * fraction.above ;
    self.below = self.below * fraction.below;
    [self simply];

}
- (void)divfraction:(Fraction *)fraction{

    self.above = self.above * fraction.below ;
    self.below = self.below * fraction.above;
    [self simply];
}

//输出
- (NSString *)description{
   return [NSString stringWithFormat:@"%lu / %lu", self.above, self.below];
}

@end

main.文件实现

//  main.m

#import <Foundation/Foundation.h>
#import "Fraction.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //创建?个Fraction类(分数)实现分数的加减乘除,?较??、约分等?法。要求:为类添加属性
    Fraction *fr1 = [[Fraction alloc]initWithName:2 below:4];
    Fraction *fr2 = [[Fraction alloc]initWithName:3 below:5];
        [fr1 sumfraction:fr2];
         NSLog(@"%@",fr1);
        [fr1 subfraction:fr2];
        NSLog(@"%@",fr1);
        [fr1 mulfraction:fr2];
        NSLog(@"%@", fr1);
        [fr1 divfraction:fr2];
        NSLog(@"%@", fr2);

    }
    return 0;
}

仅供参考

时间: 2024-10-24 20:50:28

创建?个Fraction类(分数)实现分数的加减乘除,?较??、约 分等?法。要求:添加属性.的相关文章

创建一个Fraction类(分数)实现分数的加减乘除,比较大小、约分等方法。要求:为类添加属性

//在.h文件里 {     NSInteger _numerator;     //分子     NSInteger _denominator;   //分母     }   //属性 @property (nonatomic) NSInteger numerator; @property (nonatomic) NSInteger denominator; //初始化   - (id)initwithNumerator:(NSInteger)numerator denominator:(NS

c++ Fraction类 操作符重载练习

#include <iostream> using namespace std; int GreatestCommonDivisor(int m,int n) //辗转相除法求最大公约数 { int r; do { r = m % n; m = n; n = r; } while ( r != 0 ); return m; } class Fraction; // ostream& operator<<(ostream& out,const Fraction &am

【OC复合题】之定义一个学生类,需要有姓名,年龄,考试成绩三个成员属性,创建5个对象,属性可以任意值。(Objective-C)

题目: 定义一个学生类,需要有姓名,年龄,考试成绩三个成员属性,创建5个对象,属性可以任意值.(Objective-C) 1)    不使用@property,手动编写他们的访问器方法(getter和setter),注意内存管理(手动管理内存) 2)    增加一个便利构造器(快速构造器) 3)    使用NSLog输出学生对象时,输出信息格式为:My Name Is XXX  Age Is XXX Score Is XXX 4)    对5个学生对象按照成绩->年龄->姓名优先级排序(成绩相

创建运行时类的对象,调用指定的属性方法构造器

1 使用newInstance(),实际上是调用运行时空参的构造器    注意构造器的权限修饰符要足够,同时必须有一个空参的构造器. 2 调用指定的属性方法构造器 package lianxi1; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Meth

创建一个羊类,使用static实现数羊,记录一共创建了几只羊

public class Test { public static void main(String[] args) { // TODO Auto-generated method stub //创建一个羊类,使用static实现数羊,记录一共创建了几只羊. Sheep.getCount(); Sheep s1=new Sheep("喜羊羊"); Sheep.getCount(); Sheep s2=new Sheep("懒羊羊"); Sheep.getCount(

创建一个三角形类并且通过成员函数计算三角形的周长和面积《1》

首先定义一个三角形类 class Triangle//三角形类 { public: double getA(void);//得到a的值 double getB(void);//得到b的值 double getC(void);//得到c的值 void setA(double x);//设置a的值 void setB(double y);//设置b的值 void setC(double z);//设置c的值 bool isTriangle(void);//取三边的值 double Perimeter

创建一个三角形类并且使用成员函数计算三角形的周长和面积《2》

首先创建一个三角形类 class Triangle//三角形类 { public: void Setabc(double x, double y, double z);//置三边的值,注意要能成三角形 void Getabc(double *x, double *y, double *z);//取三边的值 double Perimeter(void);//计算三角形的周长 double Area(void);//计算并返回三角形的面积 private: double a, b, c; //三边为

深入理解Java对象的创建过程:类的初始化与实例化

"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 深入理解Java对象的创建过程:类的初始化与实例化 - Rico's Blogs - 博客频道 - CSDN.NET Rico's Blogs 潜心修炼,成为一个更好的人. 目录视图 摘要视图 订阅 [活动]2017 CSDN博客专栏评选 &nbsp [5月书讯]流畅

创建单例类

Main.m /* 创建单例类 */ int main(int argc, const char * argv[]) { // NSBundle *bundle = [NSBundle mainBundle]; // NSFileManager *fileManager = [NSFileManager defaultManager]; SingletonClass *single1 = [SingletonClass defaultClass]; SingletonClass *single2