Create a new class called Calculator, which should be implemented in two files:
ID: 3595949 • Letter: C
Question
Create a new class called Calculator, which should be implemented in two files: Calculator.h and Calculator.cpp. header. A calculator should be able to add, subtract, multiply, divide and clear. Test your calculator by writing a main program incorporating the test code below: All of the implementation should be in the cpp file and only the declarations in the Calculator mycalc; mycalc.clear) mycalc.add (4.52); mycalc.add (3.789); mycalc.divide(2.6); mycalc.multiply(3.12) mycalc.subtract (2.678) coutExplanation / Answer
//Calculator.h
#include<iostream>
#include<stack>
using namespace std;
class Calculator
{
double number;
stack<double> st; //stack is required to undo results
public:
Calculator();
Calculator(double num);
void add(double num);
void subtract(double num);
void multiply(double num);
void divide(double num);
double display();
Calculator operator+(Calculator &obj);
void undo();
void clear();
};
--------------------------------------------
//Calculator.cpp
#include"Calculator.h"
Calculator::Calculator()
{
number = 0;
}
Calculator::Calculator(double num)
{
number = num;
}
void Calculator::add(double num)
{
number += num;
//push items onto stack
st.push(number);
}
void Calculator::subtract(double num)
{
number -= num;
//push items onto stack
st.push(number);
}
void Calculator::multiply(double num)
{
number *= num;
//push items onto stack
st.push(number);
}
void Calculator::divide(double num)
{
number /= num;
//push items onto stack
st.push(number);
}
double Calculator::display()
{
return number;
}
Calculator Calculator::operator+(Calculator &obj)
{
number += obj.number;
st.push(number);
return (*this);
}
void Calculator::clear()
{
number = 0;
}
void Calculator::undo()
{
number = st.top();
st.pop();
}
-------------------------------------------------------
//main driver.cpp
#include"Calculator.h"
#include<iostream>
using namespace std;
int main()
{
Calculator mycalc;
mycalc.clear();
mycalc.add(4.52);
mycalc.add(3.789);
mycalc.divide(2.6);
mycalc.multiply(3.12);
mycalc.subtract(2.678);
cout << mycalc.display() << endl;
mycalc.clear();
mycalc.add(5.0);
cout << mycalc.display() << endl;
Calculator calc1;
cout << calc1.display() << endl;
Calculator calc2(5);
cout << calc2.display() << endl;
Calculator calc3(7);
calc1 = calc2 + calc3;
cout << calc1.display() << endl;
mycalc.undo();
mycalc.undo();
cout << mycalc.display() << endl;
}
---------------------------------------------------------------------------------------------------------------------------------------------
/*output
7.2928
5
0
5
12
7.2928
*/
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.