C# 之分数的 加 减 乘 除 取余数

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





  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值