Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  calculator
Language: C/C++
Code:
     //calculator
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
class menu
{public:
void selectmenu(int d)
{cout<<"select mode of calculator "<<endl;
cout<<"1---operation + - * / ---"<<endl;
cout<<"2----advance mode---- "<<endl;}};
class Calculator
{
public:
double Ccalculate(double x, char oper, double y);
    double Calculate(double x, char oper, double result);
double calc(char op[ ] ,double f);
};
double Calculator::Ccalculate(double x, char oper, double y)
{
    switch(oper)
    {
        case '+':
            return x + y;
        case '-':
            return x - y;
        case '*':
            return x * y;
        case '/':
            return x / y;
        default:
            return 0;
    }
}
double Calculator::Calculate(double x, char oper, double result)
{
    switch(oper)
    {
        case '+':
 return result+=x ;
        case '-':
return result-=x ;
        case '*':
return result*=x ;
        case '/':
return result/=x ;
        default:
            return 0;
    }}

double Calculator::calc(char op[ ],double f)
{
double r;
cout<<"enter function and number (like : sin 0.5 : sqrt 16 : log 20) :"<<endl;
cin >>op >>f;
if (strcmp(op,"sin")==0)r=sin(f);
else if(strcmp(op,"cos")==0)r=cos(f);
else if(strcmp(op,"tan")==0)r=tan(f);
else if(strcmp(op,"exp")==0)r=exp(f);
else if(strcmp(op,"sqrt")==0)r=sqrt(f);
else if(strcmp(op,"log10")==0)r=log10(f);
else if(strcmp(op,"log")==0)r=log(f);
else if(strcmp(op,"ceil")==0)r=ceil(f);
else if(strcmp(op,"floor")==0)r=floor(f);
else r=0;
cout << op <<"("<<f<<")="<<r<<endl;
return(r);}
  int main()  
{  
    double x = 0.0;
    double y = 0.0;
    double result = 0.0;
    char oper = '*';
   char op[6];
double f;
int d;
Calculator c;
menu m;
label:
m.selectmenu(d);
cin>>d;
switch(d)
    {case 1:
cout << "Calculator Console Application" << endl << endl;   
    cout << "Please enter the operation to perform. Format: x+y | x-y| x*y | x/y"  << endl;
    cin >>x>>oper>>y;
result=c.Ccalculate(x,oper,y);
cout<<x<<oper<<y<<"="<<result<<endl;
    while (true)
    {
        cin>>oper>>x;
cout<<result<<oper<<x;
result = c.Calculate(x, oper,result);
        cout << "=" << result << endl;
    }
break;
case 2:
c.calc(op,f);
goto label;
break;
    return 0;
cin.get();
}}
Comments: