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;
}
}
}