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

//在.h文件里
{
    NSInteger _numerator;     //分子
    NSInteger _denominator;   //分母
   
}
 
//属性
@property (nonatomic) NSInteger numerator;
@property (nonatomic) NSInteger denominator;
//初始化
 
- (id)initwithNumerator:(NSInteger)numerator denominator:(NSInteger)denominator;
 
 
//加法
 
- (void)sumNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2;
 
 
//减法
- (void)subNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2;
 
 
//乘法
- (void) mulNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2;
 
 
//除法
- (void) divNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2;
 
 
//比较大小
- (void)compareNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2;
 
 
//约分
- (void)reduceNumerator:(NSInteger)numerator denominator:(NSInteger)denominator;
 
 
    return [NSStringstringWithFormat:@"%ld/%ld",_numerator,_denominator];
}
 
 
//初始化
 
- (id)initwithNumerator:(NSInteger)numerator denominator:(NSInteger)denominator
{
    self = [superinit];
    if (self) {
        _numerator = numerator;
        _denominator = denominator;
    }
    returnself;
}
 
 
//约分
- (void)reduceNumerator:(NSInteger)numerator denominator:(NSInteger)denominator
{
    NSInteger num = 0;
    for (NSInteger i = numerator; i > 0; i --) {
        for (NSInteger j = denominator; j > 0; j --) {
            if (numerator % i == 0 && denominator %j == 0&& i == j) {
                num =i;
            }
            if (num ==i) {
                break;
            }
        }
        if (num==i) {
            break;
        }
    }
    _numerator = numerator / num;
    _denominator = denominator / num;
}
 
 
 
//加法
 
- (void)sumNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2
{
   NSInteger _numerator1 = numerator1 * denominator2 + numerator2 *denominator1;
   NSInteger _denominator1 = denominator1 * denominator2;
    Fraction *sum = [[Fractionalloc] init];
[sum reduceNumerator:_numerator1 denominator:_denominator1];
    NSLog(@"%ld/%ld +%ld/%ld = %@",numerator1,denominator1,numerator2,denominator2,sum);
}
 
 
 
//减法
- (void)subNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2
{
    NSInteger _numerator1 = numerator1 * denominator2 - numerator2 *denominator1;
    NSInteger _denominator1 = denominator1 * denominator2;
    Fraction *sub = [[Fractionalloc] init];
    [sub reduceNumerator:_numerator1 denominator:_denominator1];
    NSLog(@"%ld/%ld +%ld/%ld = %@",numerator1,denominator1,numerator2,denominator2,sub);
    
}
 
 
//乘法
- (void) mulNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2
{
    NSInteger _numerator1 = numerator1 * numerator2 ;
    NSInteger _denominator1 = denominator1 * denominator2;
    Fraction *mul = [[Fractionalloc] init];
    [mul reduceNumerator:_numerator1 denominator:_denominator1];
    NSLog(@"%ld/%ld +%ld/%ld = %@",numerator1,denominator1,numerator2,denominator2,mul);
}
 
 
//除法
- (void) divNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2
{
    NSInteger _numerator1 = numerator1 * denominator2 ;
    NSInteger _denominator1 = denominator1 * numerator2;
    Fraction *div = [[Fractionalloc] init];
    [div reduceNumerator:_numerator1 denominator:_denominator1];
    NSLog(@"%ld/%ld +%ld/%ld = %@",numerator1,denominator1,numerator2,denominator2,div);
}
 
 
//比较大小
- (void)compareNumerator1:(NSInteger)numerator1denominator1:(NSInteger)denominator1 numerator2:(NSInteger)numerator2denominator2:(NSInteger)denominator2
{
    _numerator = numerator1 * denominator2;
    _denominator = numerator2 * denominator1;
    NSInteger num  = _numerator - _denominator;
    if (num > 0) {
        NSLog(@"%ld/%ld 比 %ld/%ld 大",numerator1,denominator1,numerator2,denominator2);
    } else {
        NSLog(@"%ld/%ld 比 %ld/%ld 小",numerator1,denominator1,numerator2,denominator2);
    }
}
 
//在main函数里调用方法
Fraction *fraction = [[Fractionalloc] initwithNumerator:5denominator:6];
        
        //加法
        [fraction sumNumerator1:4denominator1:5numerator2:3denominator2:5];
        
        
        //减法
        [fraction subNumerator1:2denominator1:5numerator2:1denominator2:3];
        
        
        //乘法
        [fraction mulNumerator1:3denominator1:8numerator2:5denominator2:6];
        
        
        //除法
        [fraction divNumerator1:11denominator1:15numerator2:11denominator2:20];
        [fraction reduceNumerator:fraction.numeratordenominator:fraction.denominator];
        
        
        //比较大小
        [fraction compareNumerator1:3denominator1:8numerator2:4denominator2:9];
        
        
        //约分
        [fraction reduceNumerator:6denominator:10];
        NSLog(@"约分后结果为%@",fraction);

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

时间: 2024-10-08 17:22:21

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

创建?个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; //最大

使用PHP创建一个REST API(译)

最近API在网络领域有些风靡,明确的说是REST的影响力.这实在没什么好惊讶的,因为在任何编程语言中,消费REST API都是非常的容易.构建它也非常的简单,因为本质上你不会用到任何那些已存在很久的HTTP细则.由于Rails对REST做出的深思熟虑的支持,包括提供和消费这些API(这已经被所有那些和我共事的Rails狂热者阐述过),我要赞美Rails,这样的事情并不常发生. 说真的,如果你从未使用过REST,但是使用过(或者更糟糕的,构建过)SOAP API,或仅仅开过一个WSDL并且将你报价

Photoshop脚本 &gt; 使用脚本创建一个新文档

源自:http://coolketang.com/tutorials/menu2lesson1.php 本节将演示如何使用脚本,创建一个空白文档.首先创建一个空白的脚本文档,并保存在硬盘上某个位置. 接着输入脚本代码: //定义一个变量[Width],表示新文档的宽度. var width = 560; //定义一个变量[height],表示新文档的高度. var height = 560; //定义一个变量[resolution],表示新文档的分辨率. var resolution = 72;

MFC和ATL共享的新类CImage为图像处理提供了许多相应的处理方法

CImage类 我们知道,Visual C++的CBitmap类和静态图片控件的功能是比较弱的,它只能显示出在资源中的图标.位图.光标以及图元文件的内容,而不像VB中的Image控件可 以显示出绝大多数的外部图像文件(BMP.GIF.JPEG等).因此,想要在对话框或其他窗口中显示外部图像文件则只能借助于第三方提供的控件或代码. 现在,MFC和ATL共享的新类CImage为图像处理提供了许多相应的方法,这使得Visual C++在图像方面的缺憾一去不复返了. CImage类概述 CImage是M

编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数。定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类。Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分;School 中计算平均分的方法是所有科目的分数之和除以总科目数。 要求:定义ComputerAv

题目: 编写一个ComputerAverage抽象类,类中有一个抽象方法求平均分average,可以有参数. 定义 Gymnastics 类和 School 类,它们都是 ComputerAverage 的子类. Gymnastics 类中计算选手的平均成绩的方法是去掉一个最低分,去掉一个最高分,然后求平均分: School 中计算平均分的方法是所有科目的分数之和除以总科目数. 要求:定义ComputerAverage的对象为上转型对象,并调用重写的方法averge. 题目用到:1.方法的多态

创建一个单例类

关于单例的概念此处不做表述,直接上代码演示如何创建一个单例类. 1 #import <Foundation/Foundation.h> 2 3 @interface MJDemo : NSObject 4 5 + (instancetype)sharedDemo; 6 7 @end 8 9 10 #import "MJDemo.h" 11 12 @implementation MJDemo 13 14 //在iOS中所有对象分配内存空间,最终都会调用allocWithZon

创建一个提供搜索功能的搜索类(可运行)

/* * 这段代码的主要功能是对于创建索引的后的文件, * 创建一个提供搜索功能的搜索类. * */ package ch2.lucenedemo.process; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; import java.util.Date; import java.util.Iterator; import jav

创建一个类

c++是一门面向对象的编程语言,而面向对象的基础就是类 使用C++创建一个Student类 class Student//学生类 { private://私有 //数据成员 char Name[10];//姓名 int Age;//年龄 int No;//学号 public://公有 //成员函数 //输入学生的信息 void InputStudent(char *name, int age, int no) { strcpy(Name, name); Age = age; No = no; }

创建一个羊类,使用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(