• 简易计算器


    /**
     * Copyright (c) 2012, 烟台大学计算机学院
     * All rights reserved.
     * 文件名称:text.cpp
     * 作    者:  胡颖
     * 完成日期:2013 年 6 月 28 日
     * 版 本 号:v1.0
     *
     * 输入描述:输入操作指令及计算的数字、符号
     * 问题描述:制作简易计算器
     * 程序输出:输出操作页面及计算结果
     * 问题分析:利用运算符重载实现数字的加减乘除
     * 算法设计:略
     */
    
    #include <iostream>
    #include <cstdlib>
    using namespace std;
    class Number
    {
    public:
        Number(double aa=0);
        //运算符重载
        Number operator+(Number &c);
        Number operator-(Number &c);
        Number operator*(Number &c);
        Number operator/(Number &c);
        friend istream&operator>>(istream&,Number&);
        friend ostream&operator<<(ostream&,Number&);
        void mainmenu();//主菜单
        double calculation();//计算
    private:
        double a;
    };
    Number::Number(double aa):a(aa) {}
    Number Number::operator+(Number &c)
    {
        Number n;
        n.a=a+c.a;
        return n;
    }
    Number Number::operator-(Number &c)
    {
        Number n;
        n.a=a-c.a;
        return n;
    }
    Number Number::operator*(Number &c)
    {
        Number n;
        n.a=a*c.a;
        return n;
    }
    Number Number::operator/(Number &c)
    {
        Number n;
        n.a=a/c.a;
        return n;
    }
    
    istream&operator>>(istream&input,Number &c)
    {
        input>>c.a;
        return input;
    }
    ostream&operator<<(ostream&output,Number&c)
    {
        output<<c.a;
        return output;
    }
    void Number::mainmenu()
    {
        int chooser;
        cout<<endl;
        cout<<"请输入操作类型:"<<endl;
        cout<<"****************"<<endl;
        cout<<"*---1.计算-----*"<<endl;
        cout<<"*---2.退出-----*"<<endl;
        cout<<"****************"<<endl;
        cin>>chooser;
        switch(chooser)
        {
        case 1:
            calculation();//计算
            break;
        case 2:
            exit(0);//退出
        default:
            cout<<"您的选择有误!
    ";
            cout<<"按任意键继续......";
            break;
        }
    }
    double Number::calculation()
    {
        Number n1,n2,a;
        char f;
        cin>>n1>>f>>n2;
        if(f=='+')
        {
            a=n1+n2;
            cout<<a;
        }
        if(f=='-')
        {
            a=n1-n2;
            cout<<a;
        }
        if(f=='*')
        {
            a=n1*n2;
            cout<<a;
        }
        if(f=='/')
        {
            a=n1/n2;
            cout<<a;
        }
        mainmenu();
        return 0;
    }
    int main()
    {
        Number n;
        n.mainmenu();
        return 0;
    }
    


    运算结果:

  • 相关阅读:
    HTML链接/实施CSS的三种方法
    XML之Well-Formed文档规则
    【摘】SVN提交与版本冲突
    Web开发之404小结
    TCP 连接的要点
    [转] Epoll 相对Poll和Select的优点
    [转] 剖析 epoll ET/LT 触发方式的性能差异误解(定性分析)
    GDB调试技巧
    [转] 关于c++的头文件依赖
    [转] Linux中gcc,g++常用编译选项
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3161586.html
Copyright © 2020-2023  润新知