程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 簡易計算器

簡易計算器

編輯:C++入門知識

[cpp]  /**
 * 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<<"您的選擇有誤!\n"; 
        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; 

/**
 * 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<<"您的選擇有誤!\n";
        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;
}

運算結果:

\ 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved