/** * 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; }
运算结果: