分数的运算

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Demo1
{
/// <summary>
/// 分数类
/// </summary>
class Fraction
{
//属性
private int fenzi;
private int fenmu;

//构造
/// <summary>
/// 创建一个初值为0的分数
/// </summary>
public Fraction()
{
this.fenzi = 0;
this.fenmu = 2;
}
/// <summary>
/// 创建一个具有分子和分母的分数
/// </summary>
/// <param name="a">分子</param>
/// <param name="b">分母</param>
public Fraction(int a, int b)
{
this.fenzi = a;
this.fenmu = b;
}

//功能
/// <summary>
/// 分数本身和另外一个分数的加法计算
/// </summary>
/// <param name="obj">另外一个分数</param>
/// <returns>结果:一个分数对象</returns>
public Fraction Add(Fraction obj)
{
//计算的结果是一个分数
Fraction result = new Fraction() ;
//经过计算........................
//this指当前类所创建的当前对象,可以当做加数
//obj指加谁,可以当做被加数

//结果的分母
result.fenmu = this.fenmu * obj.fenmu;

//结果的分子
result.fenzi = this.fenzi * obj.fenmu + this.fenmu * obj.fenzi;

//化简
Huajian(result);

//返回结果
return result;
}

/// <summary>
/// 返回这个分数
/// </summary>
/// <returns></returns>
public String Show()
{
return fenzi + "/" + fenmu;
}

private void Huajian(Fraction obj)
{
int max;
max = Max(obj.fenmu, obj.fenzi);
obj.fenmu /= max;
obj.fenzi /= max;
}

private int Max(int a, int b)
{
//找到a和b中谁最小
int min;
min = (a > b) ? b : a;

for (int i = min; i >= 2; i--)
{
if (a % i == 0 && b % i == 0)
{
return i;
}
}
return 1;

}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值