现在的位置: 首页 > 综合 > 正文

实现分数的加减乘除

2014年01月29日 ⁄ 综合 ⁄ 共 1417字 ⁄ 字号 评论关闭
using System;
using System.Collections.Generic;
using System.Text;

namespace lession7
{
    class FenShu
    {
        public int fenzi;
        public int fenmu;
        public FenShu(int fenzi, int fenmu)
        {
            this.fenmu = fenmu;
            this.fenzi = fenzi;
        }
        public static FenShu operator +(FenShu a, FenShu b)
        {
            FenShu temp=new FenShu(0,0);
            temp.fenzi = a.fenzi * b.fenmu + a.fenmu * b.fenzi;
            temp.fenmu = a.fenmu * b.fenmu;
            HuaJian(temp);
            return temp;
        }
        public static FenShu operator -(FenShu a, FenShu b)
        {
            FenShu temp = new FenShu(0, 0);
            temp.fenzi = a.fenzi * b.fenmu - a.fenmu * b.fenzi;
            temp.fenmu = a.fenmu * b.fenmu;
            HuaJian(temp);
            return temp;
        }
        public static FenShu operator *(FenShu a, FenShu b)
        {
            FenShu temp = new FenShu(0, 0);
            temp.fenzi = a.fenzi *  b.fenzi;
            temp.fenmu = a.fenmu * b.fenmu;
            HuaJian(temp);
            return temp;
        }
        public static FenShu operator /(FenShu a, FenShu b)
        {
            FenShu temp = new FenShu(0, 0);
            temp.fenzi = a.fenzi * b.fenmu;
            temp.fenmu = a.fenmu * b.fenzi;
            HuaJian(temp);
            return temp;
        }
        //分数化简
        public static FenShu HuaJian(FenShu temp)
        {
            int m = temp.fenmu;
            int n = temp.fenzi;
            int k = m % n;
            while (k != 0)
            {
                m = n;
                n = k;
                k = m % n;
            }
            temp.fenzi /= n;
            temp.fenmu /= n;
            return temp;
        }
    }
}



using System;
using System.Collections.Generic;
using System.Text;

namespace lession7
{
   
    class Program
    {
        static void Main(string[] args)
        {
            FenShu f = new FenShu(2,4);
            FenShu f1 = new FenShu(2, 8);
            FenShu ff;
            ff = f + f1;
            Console.WriteLine("分数相加:{0}/{1}",ff.fenzi,ff.fenmu);
            ff = f - f1;
            Console.WriteLine("分数相减:{0}/{1}", ff.fenzi, ff.fenmu);
            ff = f * f1;
            Console.WriteLine("分数相乘:{0}/{1}", ff.fenzi, ff.fenmu);
            ff = f / f1;
            Console.WriteLine("分数相除:{0}/{1}", ff.fenzi, ff.fenmu);          
            Console.ReadLine();
        }
    }
}

抱歉!评论已关闭.