ONLINE COMPILERS
LIBRARY
MANUAL PAGES & DOCS
CONTACT
Latest Users' Questions
User Submitted Source Code!
Description:
calculator
Language: C/C++
Code:
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();
}}
#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: