On line 59, you declare int total inside of case 1: of your switch. This isn't allowed as it is destructed at line 107; if you go directly to case 2, you'll be destructing an int that was never constructed. You can use a pair of curly braces to force a scope inside your case 1: to avoid the issue.
#include <iostream> // declare all of the libraries
#include <cstdlib>
#include <cmath>
usingnamespace std; // this is for cout and cin
// declare the variables
double num;
int operation;
int howmany = 0;
int howmanynum;
int restart;
int menuchoice;
class setup
{
public:
void menu()
{
cout << endl << "Enter 1 to use the calculater." << endl << "Enter 2 for important rules you need to know: ";
cin >> menuchoice;
if(menuchoice==2)
{
rules();
}
}
void rules()
{
cout << "Rule 1 - The calculator doesnt know order of operations so you have to enter the numbers in the correct order." << endl;
cout << "Rule 2 - The calcualtor doesnt understand parenthesis so dont use them." << endl;
}
void operations()
{
cout << endl << endl << "Here are your options for operations" << endl << endl; // give the user the operation choices
cout << "Now enter the operation" << endl;
cout << "Enter 1 for addition" << endl;
cout << "Enter 2 for subtraction" << endl;
cout << "Enter 3 for multiplication" << endl;
cout << "Enter 4 for division " << endl;
cout << endl << endl;
}
};
int main()
{
do{ // begining of do while loop to restart the program
setup callfunctions;
callfunctions.menu();
switch(menuchoice)
{
case 1:
int total = 0;
cout << "How many numbers are in the math problem: "; // asks the user how many numbers are in their math problem
cin >> howmanynum;
howmany = howmany + howmanynum;
cout << endl << "Enter the first number: ";
cin >> num;
total = total + num; // adds the first number to the total, otherwise the answer would be incorect
for(int i = 1; i < howmanynum; i++){ //loop
callfunctions.operations();
cout << endl << "Enter the number for the operation: "; // gets the operation from the user
cin >> operation;
cout << endl;
cout << "Enter the next number: "; // gets the number from the user
cin >> num;
cout << endl;
switch(operation){ // does all the math stuff
case 1:
total = total + num;
break;
case 2:
total = total - num;
break;
case 3:
total = total * num;
break;
case 4:
total = total / num;
break;
default:
cout << "Invalid input" << endl;
callfunctions.rules();
break;// tells the user if he/she entered an invalid operation number
}
}
cout << endl << "The answer is " << total << endl; // outputs the answer
//break;
//case 2:
//break;
}
cout << "Enter 1 to restart or 2 to quit: "; // asks the user to restart or exit
cin >> restart;
}while(restart == 1); // ending of do while loop to restart program
cin.ignore();
cout<<"PRESS ENTER KEY TO EXIT..."<<endl;
cin.get(); // pauses the program.Dont use system("pause")!!
return 0; // termanates the program
}