C# 之分數的 加 減 乘 除 取餘數
阿新 • • 發佈:2019-01-04
定義分數(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(); }