in C++ DONT COPY AND PASTE YOU WONT GET ANY POINTS Write a program to model a si
ID: 3537853 • Letter: I
Question
in C++
DONT COPY AND PASTE YOU WONT GET ANY POINTS
Write a program to model a simple calculator. Each data line should consist of the next operation to be performed from the list below and the right operand. Assume the left operand is the accumulator value (initial value of 0). You need a function scan_data with two output parameters that returns the operator and right operand scanned from a data line. You need a function do_next_op that performs the required operation. do_nex_op has two input parameters (the operator and operand) and one input/output parameter (the accumulator). The valid operators are:
+ add
- subtract
* multiply
/ divide
^ power (raise left operand to power of right operand)
q quit
Your calculator should display the accumulator value after each operation. A sample run follows.
+ 5.0
result so far is 5.0
^2
result so far is 25.0
/ 2.0
result so far is 12.5
q 0
final result is 12.5
+be sure to write the indicated functions, even if you feel they are not really needed. Be sure you use value and reference parameters appropriately. Build your menu with a switch statement. Your test data is important for this problem. Be sure you test every operator and pay attention to validation+
Program Test Results:
(Repeat this section for each of your functions). Provide the function prototype here.
Function Preconditions and Post Conditions:
Explanation / Answer
#include <iostream>
#include <cmath>
using namespace std;
int main()
{double accum=0;
char op;
double num;
cin>>op;
while(op!='q')
{cin>>num;
switch(op)
{case '+': accum+=num;
break;
case '-': accum-=num;
break;
case '*':accum*=num;
break;
case '/': accum/=num;
break;
case '^': accum=pow(accum,num);
break;
}
cout<<"Result so far is "<<accum<<endl;
cin>>op;
}
cout<<"Final result is "<<accum<<endl;
system("pause");
return 0;
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.