#include <math.h>
#include <iostream>
using namespace std;
void instruction();
int calculator (char);
void divide_by_zero ();
float do_next_op (char, float, float);
int main()
{
//input
char input;
float accum,num;
// instructions ();
void intruction();
accum = 0 ;
do
{
//get input
cout<< " : " ;
cin >> input;
cin >> num;
cin.ignore();
// Do op
accum = do_next_op (input, num, accum);
//display result
cout << " Result so far : " << accum << endl;
cout << " "<< endl ;
} // end not quit
while (input != 'Q' && input != 'q' && input != '=');
cout << "Final result : " ;
system ("pause") ;
return 0 ;
}
//instruct user
void instruction()
{
cout <<" This program models a simple calculator which can add, subtract,multiply,divide, power" << endl;
cout << " the calculator accumulate value after each operation " << endl;
cout << " press Q to quit the program " << endl;
cout << " Have fun with my program " << endl<< endl;
}
float do_next_op (char op, float num, float total)
{
switch (op)
{
case '+' :
total += num;
break;
case '-':
total -= num;
break;
case '*':
total *= num;
break;
case '/':
total /= num;
break;
case '^':
total = pow (total,num);
break ;
default :
cout << " syntax error" << endl;
}
return total;
}
void divide_by_zero ()
{
}
I don't know how to write the divide by zero function, and I don't know why the void function to display the instruction does not run too,
The program now run well, but when I input something weird like a,b,c + c,+d... etc . It runs to the definite loop