• 课程设计__分数的计算


    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;
    }
  • 相关阅读:
    try-with-resources优先于try-finally
    创建和销毁对象——避免创建不必要的对象
    创建和销毁对象——用私有构造器或者枚举类型强化Singleton属性
    创建和销毁对象——遇到多个构造器参数时考虑使用构建器
    创建和销毁对象——用静态工厂方法代替构造器
    计算机网络物理层——数据通信的基础知识
    多线程——线程交互
    多线程——同步问题
    Percona Monitoring and Management (PMM)
    Docker
  • 原文地址:https://www.cnblogs.com/TreeDream/p/5247486.html
Copyright © 2020-2023  润新知