zoukankan      html  css  js  c++  java
  • 课程设计__分数的计算

    1、操作符重载

    2、类的封装

    #include <stdio.h>
    #include <algorithm>
    #include <iostream>
    
    using namespace std;
    
    int gcd(int m,int n)///求最大公约数
    {
        if(n==0)
            return m;
        else return gcd(n,m%n);
    }
    
    class Fraction
    {
    public:
        Fraction();
        Fraction(int a,int b):molecule(a),denominator(b) {}
        void setdata();
        void display();
        Fraction operator *(Fraction &a)
        {
            Fraction c;
            int temp1;///分子
            int temp2;///分母
            int L;///最大公约数
            temp1=this->molecule*a.molecule;
            temp2=this->denominator*a.denominator;
            L=gcd(temp1,temp2);
            c.molecule=temp1/L;
            c.denominator=temp2/L;
            return c;
        }
        Fraction operator +(Fraction &a)
        {
            Fraction c;
            int temp1;///分子
            int temp2;///分母
            int L;///最大公约数
            temp1=this->molecule*a.denominator+this->denominator*a.molecule;
            temp2=this->denominator*a.denominator;
            L=gcd(temp1,temp2);
            c.molecule=temp1/L;
            c.denominator=temp2/L;
            return c;
        }
        Fraction operator -(Fraction &a)
        {
            Fraction c;
            int temp1;///分子
            int temp2;///分母
            int L;///最大公约数
            temp1=this->molecule*a.denominator-this->denominator*a.molecule;
            temp2=this->denominator*a.denominator;
            L=gcd(temp1,temp2);
            c.molecule=temp1/L;
            c.denominator=temp2/L;
            return c;
        }
        Fraction operator /(Fraction &a)
        {
            Fraction c;
            int temp1;///分子
            int temp2;///分母
            int L;///最大公约数
            temp1=this->molecule*a.denominator;
            temp2=this->denominator*a.molecule;
            L=gcd(temp1,temp2);
            c.molecule=temp1/L;
            c.denominator=temp2/L;
            return c;
        }
    private:
        int molecule;///分子
        int denominator;///分母
    };
    
    Fraction::Fraction()
    {
        molecule=0;
        denominator=1;
    }
    
    void Fraction::setdata()
    {
        cin>>molecule>>denominator;
    }
    
    void Fraction::display()
    {
        cout<<molecule<<"/"<<denominator<<endl;
    }
    
    int main()
    {
        Fraction a,b,c;
        printf("This is Fraction's operation
    ");
        printf("Please input your wants Fraction's operation
    ");
        char o;
        scanf("%c",&o);
        system("cls");
        switch (o)
        {
        case '+':
            printf("Please input two Fraction's molecule and imag
    ");
            a.setdata();
            b.setdata();
            c=a+b;
            c.display();
            break;
        case '-':
            printf("Please input two Fraction's molecule and imag
    ");
            a.setdata();
            b.setdata();
            c=a-b;
            c.display();
            break;
        case '*':
            printf("Please input two Fraction's molecule and imag
    ");
            a.setdata();
            b.setdata();
            c=a*b;
            c.display();
            break;
        case '/':
            printf("Please input two Fraction's molecule and imag
    ");
            a.setdata();
            b.setdata();
            c=a/b;
            c.display();
            break;
        }
        system("pause");
        return 0;
    }
  • 相关阅读:
    mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句
    架构设计文档提纲简描
    各大互联网公司架构演进之路汇总
    大数据安全规范
    生活启示
    mysql数据库分库分表(Sharding)
    大数据风控指标----查准率与查全率
    YARN和MapReduce的内存设置参考
    不要在linux上启用net.ipv4.tcp_tw_recycle参数
    [Spark经验一]Spark RDD计算使用的函数里尽量不要使用全局变量
  • 原文地址:https://www.cnblogs.com/TreeDream/p/5247486.html
Copyright © 2011-2022 走看看