定义分数(Fraction)类:
1)、成员变量
私有字段以及可读可写属性:分子、分母
2)、成员方法:
* 打印分数信息(例如: 1 / 3)
PrintFraction()
* 约分
Reduction()
* 创建一个方法交换分子和分母的值
Exchange()
* 创建一个方法能同时得到加、减、乘、除、求余运算;
Add(Fraction fra) ///加法
Sub(Fraction fra) ///减法
Mult(Fraction fra) ///乘法
Division(Fraction fra) ///除法
Ramind(Fracton fra) ///取余数
Fraction类
using System;
namespace MathFraction
{
public class Fraction
{
private int member;
private int denominator;
//分子属性
public int Member {
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.denominator= this.member;
NewFra.member = this.denominator;
return NewFra;
}
//加法
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 Ramind(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;
}
}
}
程序入口 Main(string[] args)
//定义第一个自己的分数
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 = 34; Fraction sum = fra_1.Division(fra_2); sum.PrintFraction(); //加减乘除取余 Fraction[] Outall = new Fraction[5]; Outall[0] = fra_1.Add(fra_2); Outall[1] = fra_1.Sub(fra_2); Outall[2] = fra_1.Mult(fra_2); Outall[3] = fra_1.Division(fra_2); Outall[4] = fra_1.Ramind(fra_2); foreach (Fraction all in Outall) { all.PrintFraction(); }