100% found this document useful (1 vote)
2K views7 pages

Scientific Calculator Project Using C++

This document contains the code for a C++ scientific calculator project. It includes functions for arithmetic, trigonometric, logarithmic, power and factorial operations. The main function displays a menu and calls the appropriate function based on the user's selection, allowing them to perform different calculations. The project was developed by 4 students under the guidance of a professor to provide various mathematical computations.

Uploaded by

Gomatesh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
2K views7 pages

Scientific Calculator Project Using C++

This document contains the code for a C++ scientific calculator project. It includes functions for arithmetic, trigonometric, logarithmic, power and factorial operations. The main function displays a menu and calls the appropriate function based on the user's selection, allowing them to perform different calculations. The project was developed by 4 students under the guidance of a professor to provide various mathematical computations.

Uploaded by

Gomatesh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 7

/*

Scientific Calculator Project Using C++


Developed By:
1.
2.
3.
4.
Under the guidance Mrs. Mamatha A. M. of Padmajeet Infotech.
*/
#include<iostream>
#include<stdio.h>
#include<conio.h>
#include<string>
#include<sstream>
using namespace std;
class ScienntificCalculator{
/*Function to convert given double value to string*/
private:
string doubleToString(double i)
{
stringstream s;
s << i;
return s.str();
}
/*Function to convert given character value to string*/
string charToString(char i)
{
stringstream s;
s << i;
return s.str();
}
public:

/*Function to perform all Arithmetic operations*/


void arithmeticOperations() {
double operand1, operand2;
string str;
char op;
bool isFirst = true;
do {
if (isFirst) {//Ask for 2 operands only once for an Expression
cout << "\n\tArithmetic Operations\t" << endl;
cout << "Enter operand1: \t";
cin >> operand1;
isFirst = false;
str = doubleToString(operand1);
}
cout
cout
cout
cout
cout

<<
<<
<<
<<
<<

"\t
"\t
"\t
"\t
"\t

+: Addition" << endl;


-: Subtraction" << endl;
*: Multiplication" << endl;
/: Division" << endl;
=: Result" << endl;

cout << "\t C: Clear" << endl;


cout << "\t Q: Exit" << endl;
cout << "\nEnter the Operator \t";
op = _getche();
cout << endl;
if (op != '+' && op != '-' && op != '*' && op != '/' && op != 'C' && op != 'c'
&& op != '='&& op != 'Q' && op != 'q') {
cout << "Invalid Operator" << endl;
continue;
}
if (op != 'C' && op != 'c' && op != '=' && op != 'Q' && op != 'q') {//Skip
asking operand for Clear, Exit and =
cout << "Enter Operand: \t";
cin >> operand2;
str += charToString(op);
str += doubleToString(operand2);
}

switch (op) {
case '+':
operand1 = operand1 + operand2;
cout << str << "=" << operand1 << endl;
break;
case '-':
operand1 = operand1 - operand2;
cout << str << "=" << operand1 << endl;
break;
case '*':
operand1 = operand1*operand2;
cout << str << "=" << operand1 << endl;
break;
case '/':
operand1 = operand1 / operand2;
cout << str << "=" << operand1 << endl;
break;
case '=':
cout << str << "=" << operand1 << endl;
break;
case 'c':
case 'C':
str = "";//reset the string for next expression
isFirst = true;//reset the flag for next expression
break;
case 'Q':
case 'q':
return;
default:
cout << "Invalid Operator" << endl;
}
} while (true);

/*Function to perform all Trigonometric operations*/


void trigonometricOperations() {

char option;
double operand;
do {
cout << "Trigonometric Operations" << endl;
cout << "\t a) sine function" << endl;
cout << "\t b) cosine function" << endl;
cout << "\t c) tangent function" << endl;
cout << "\t d) sine inverse function" << endl;
cout << "\t e) cosine inverse function" << endl;
cout << "\t f) tangent inverse function" << endl;
cout << "\t g) sine hyperbolic function" << endl;
cout << "\t h) cosine hyperbolic function" << endl;
cout << "\t i) tangent hyperbolic function" << endl;
cout << "\t j) sine inverse hyperbolic function" << endl;
cout << "\t k) cosine inverse hyperbolic funtion" << endl;
cout << "\t l) tangent inverse hyperbolic funtion" << endl;
cout << "\t m) Exit" << endl;
cout << "Enter your choice\t:";
option=_getche();
cout << endl;
switch (option)
{
case 'a':
case 'A':
cout << "\nEnter the Angle in Radian: \t";
while (!(cin >> operand)) {
cout << "\nRe-Enter the Angle in Radian: \t";
cin.clear();
cin.ignore(1000, '\n');

endl;

}
cout << "sin(" << operand << ")=" << sin(operand) <<
break;
case 'b':
case 'B':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "cos(" << operand << ")=" << cos(operand) <<

endl;

endl;

break;
case 'c':
case 'C':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "tan(" << operand << ")=" << tan(operand) <<
break;
case 'd':
case 'D':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "asin(" << operand << ")=" << asin(operand) <<

endl;

break;
case 'e':
case 'E':

<< endl;

cout << "Enter the Angle in Radian: \t";


cin >> operand;
cout << "acos(" << operand << ")=" << acos(operand)
break;
case 'f':
case 'F':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "atan(" << operand << ")=" << atan(operand)

<< endl;

endl;

break;
case 'g':
case 'G':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "sinh(" << operand << ")=" << sinh(operand) <<
break;
case 'h':
case 'H':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "cosh(" << operand << ")=" << cosh(operand)

<< endl;

<< endl;

break;
case 'i':
case 'I':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "tanh(" << operand << ")=" << tanh(operand)

break;
case 'j':
case 'J':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "sineInverseHyperbolic(" << operand << ")=" <<
log(operand + sqrt(pow(operand, 2) + 1)) << endl;
break;
case 'k':
case 'K':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "cosineInverseHyperbolic(" << operand << ")="
<< log(operand + sqrt(pow(operand, 2) - 1)) << endl;
break;
case 'l':
case 'L':
cout << "Enter the Angle in Radian: \t";
cin >> operand;
cout << "tangentInverseHyperbolic(" << operand << ")="
<< (log(1 + operand) - log(1 - operand)) / 2 << endl;
break;
case 'm':
case 'M':
return;
default:

}
} while (true);

cout << "Invalid Choice" << endl;

/*Function to perform all Logarithmic operations*/


void logarithmicOperations()
{
double x;
char choice;
do {
cout << "\n \t Logarithmic Operations" << endl;
cout << "\t1) Natural log" << endl;
cout << "\t2) log with base 10" << endl;
cout << "\t3) Exit" << endl;
cout << "enter your choice :\t";
choice = _getche();
cout << endl;
switch (choice)
{
case '1':
cout << "Enter the operand :\t";
cin >> x;
cout << "log(" << x << ")=" << log(x) << endl;
break;
case '2':
cout << "Enter the operand :\t";
cin >> x;
cout << "log10(" << x << ")=" << log10(x) << endl;
break;
case '3':
return;
default:
cout << "Invalid Choice" << endl;
return;
}
} while (true);
}
/*Function to perform all Power related operations*/
void powerOperations() {
char choice;
double operand, power, root;
do {
cout << "\n \t Power Operations" << endl;
cout << "\t 1) Squre" << endl;
cout << "\t 2) Cube" << endl;
cout << "\t 3) Nth power" << endl;
cout << "\t 4) Squre Root" << endl;
cout << "\t 5) Cube Root" << endl;
cout << "\t 6) Nth Root" << endl;
cout << "\t 7) Exit" << endl;
cout << "Enter your choice:\t";
choice = _getche();
cout << endl;
switch (choice) {
case '1':

cout << "Enter the operand:\t";


cin >> operand;
cout << "sqr(" << operand << ")=" << operand * operand <<

endl;

operand << endl;

power) << endl;

break;
case '2':
cout << "Enter the operand:\t";
cin >> operand;
cout << "cube(" << operand << ")=" << operand * operand *
break;
case '3':
cout << "Enter the operand:\t";
cin >> operand;
cout << "Enter the power:\t";
cin >> power;
cout << operand << "^" << power << "=" << pow(operand,
break;
case '4':
cout << "Enter the operand:\t";
cin >> operand;
cout << "squareroot(" << operand << ")=" << sqrt(operand) <<

endl;

break;
case '5':
cout << "Enter the operand:\t";
cin >> operand;
cout << "cuberoot(" << operand << ")=" << pow(operand, (1.0 /

3)) << endl;

(1.0 / root)) << endl;

break;
case '6':
cout << "Enter the operand:\t";
cin >> operand;
cout << "Enter the root value:\t";
cin >> root;
cout << root << "root of " << operand << "=" << pow(operand,

break;
case '7':
return;
default:
cout << "Invalid Choice" << endl;
}
} while (true);

/*Function to find the Factorial of a given number*/


void factorialOperation() {
double operand;
double fact = 1.0;
cout << "\n Enter the Operand: \t";
cin >> operand;
if (operand < 0) {
cout << "Invalid operand" << endl;
}
else if (operand == 0) {

}
else {

}
};

cout << "fact(0)=1" << endl;


for (int i = operand; i >= 1; i--) {
fact = fact*i;
}
cout << "fact(" << operand << ")=" << fact << endl;

void main() {
char choice;
do {
cout << "\n------------------Scientific Calculator---------------------" << endl;
cout << "\t 1) Arithmetic Operations" << endl;
cout << "\t 2) Trigonometric Operations" << endl;
cout << "\t 3) Logorithemic Operations" << endl;
cout << "\t 4) Power Operations" << endl;
cout << "\t 5) Factorial Operation" << endl;
cout << "\t 6) Exit" << endl;
cout << "Enter your choice:\t";
choice = _getche();
cout << endl;
ScienntificCalculator sc;
switch (choice) {
case '1':
//cout<<"Airthemetic operations"<<endl;
sc.arithmeticOperations();
break;
case '2':
//cout<<"Trigonometric operations"<<endl;
sc.trigonometricOperations();
break;
case '3':
//cout << "Logorithemic operations" << endl;
sc.logarithmicOperations();
break;
case '4':
//cout << "Power operations" << endl;
sc.powerOperations();
break;
case '5':
//cout << "Factorial operations" << endl;
sc.factorialOperation();
break;
case '6':
cout << "Thank you for using Scientific Calculator!!!" << endl;
_getch();
return;
default:
cout << "Invalid Choice" << endl;
}
_getch();
} while (true);
}

You might also like