您的位置:首页 > 其它

文章标题

2017-08-23 20:54 134 查看
定义分数(Fraction)类:

1)、成员变量

私有字段以及可读可写属性:分子、分母

2)、成员方法:

* 打印分数信息(例如: 1 / 3)

* 约分

* 创建一个方法交换分子和分母的值

* 创建一个方法能同时得到加、减、乘、除、求余运算;



public class Fraction
{
private int member;
private int denominator;
Fraction[] result = new Fraction[5];
{
get {
return member;
}
set {
member = value;
}
}

public int Denominator
{

get {
return denominator;
}
set {
if (value != 0)
{
denominator = value;
}
}

}

//打印分数信息
public void PrintFraction ()
{
Console.WriteLine (member + " / " + denominator);
}
//约分
public void Reduction ()
{
int gcd = GCD (this.Member, this.Denominator);
this.Member /= gcd;
this.Denominator /= gcd;
}

//先求最大公约数
private int GCD (int a, int b) {
int temp = 0;
while (b != 0) {
temp = a % b;
a = b;
b = temp;
}
return a;
}

public Fraction Exchange () {

Fraction newFra = new Fraction ();
newFra.member = this.denominator;
newFra.denominator = this.member;
return newFra;
}

//获取所有运算的值存入分数类型的数组
public Fraction[] AllOperation (Fraction fra)
{
result [0] = Add (fra);
result [1] = Sub (fra);
result [2] = Mult (fra);
result [3] = Division (fra);
result [4] = Remain (fra);

return result;
}
//输入运算符号求值
public Fraction Operation(char c)
{
switch (c)
{
case '+':
{
return result[0];

}
case '-':
{
return result[1];
}
case '*':
{
return result[2];
}
case '/':
{
return result[3];
}
case '%':
{
return result[4];
}

default:
return  null;
}
}

//加法
public Fraction Add (Fraction fra)
{
//存放加法结果
Fraction sum = new Fraction ();
sum.Member = this.member * fra.Denominator + fra.Member * this.denominator;
sum.Denominator = this.Denominator * fra.Denominator;
//约分
sum.Reduction ();

return sum;
}
//减法
public Fraction Sub (Fraction fra)
{
//存放加法结果
Fraction sum = new Fraction ();
sum.Member = this.member * fra.Denominator - fra.Member * this.denominator;
sum.Denominator = this.Denominator * fra.Denominator;
//约分
sum.Reduction ();

return sum;
}

//乘法
public Fraction Mult (Fraction fra)
{
//存放加法结果
Fraction sum = new Fraction ();
sum.Member = this.member * fra.Member;
sum.Denominator = this.Denominator * fra.Denominator;
//约分
sum.Reduction ();

return sum;
}

//除法
public Fraction Division (Fraction fra)
{
//存放加法结果
Fraction sum = new Fraction ();
//求倒数
Fraction newFra = fra.Exchange ();

sum.Member = this.member * newFra.member;
sum.Denominator = this.denominator * newFra.denominator;
//约分
sum.Reduction ();
return sum;
}

//求余
public Fraction Remain (Fraction fra)
{
//存放加法结果
Fraction sum = new Fraction ();
sum.Member = (this.member * fra.Denominator) % (fra.Member * this.denominator);
sum.Denominator = this.Denominator * fra.Denominator;
//约分
sum.Reduction ();
return sum;
}
}


主函数

Fraction fra_1 = new Fraction ();
fra_1.Member = 32;
fra_1.Denominator = 64;
fra_1.Reduction ();//约分
//fra_1.PrintFraction ();//打印
//3 / 6 + 4 / 6

Fraction fra_2 = new Fraction ();
fra_2.Member = 12;
fra_2.Denominator = 64;

fra_1.AllOperation (fra_2);//获得所有运算的值存入数组result中

char ch = char.Parse(Console.ReadLine());
Fraction r = new Fraction();
r= fra_1.Operation(ch);
r.PrintFraction();

//foreach (Fraction fra in res)
//{

//    fra.PrintFraction();

//}

//          Fraction sum = fra_1.Division (fra_2);
//          sum.PrintFraction ();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: