The do-while loop is not functioning.
Try commenting-out (using //) lines 11 and 24. The behaviour of the program is unchanged.
The if statement at line 25 is non-functioning. Again, comment it out and the behaviour of the program is unchanged.
The above problems should be corrected, or that code deleted.
A general comment, there is a lot of repeated code within the switch-case. You might consider ways of having the identical code appear just once. In this case it isn't too important, but it is an interesting exercise.
while( true ) {
char choice ;
std::cout << "\n""-----------------------------\n""| Calculator v. 1.6 |\n""| + for plus |\n""| - for minus |\n""| / for divide |\n""| * for multiply |\n""| q to quit |\n""-----------------------------\n" ;
std::cin >> choice;
if (choice == QUIT)
break;
elseif (choice != PLUS && choice != MINUS && choice != DIVIDE && choice != MULTIPLY) {
std::cout << "invalid option" << endl;
continue; //takes you back to the start of the while loop
}