定义分数(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 ();