// Steve Lagree // CSE 40872 // Problem 006 // This program takes a line of input in reveperse polish notation and calculates the answer // After all lines are calculated, the answers are printed in 7 segment display style #include #include #include #include #include #include using namespace std; void print(int num){ string numbers[3]; numbers[0] = " _ _ _ _ _ _ _ _ "; numbers[1] = "| | | _| _||_||_ |_ ||_||_|"; numbers[2] = "|_| ||_ _| | _||_| ||_| _|"; char intStr[33]; char temp[2]; temp[2]='\0'; int index; string line1="",line2="",line3=""; sprintf(intStr,"%d",num); for(int i=0;i numberStack; while(!cin.eof()){ cin >> firstNumber; numberStack.push_front(firstNumber); if(cin.fail()) return 0; while(cin.peek()!='\n'){ cin >> op; if(op=="+"){ secondNumber= numberStack.front(); numberStack.pop_front(); firstNumber= numberStack.front(); numberStack.pop_front(); firstNumber = firstNumber + secondNumber; numberStack.push_front(firstNumber); } else if(op=="-"){ secondNumber= numberStack.front(); numberStack.pop_front(); firstNumber= numberStack.front(); numberStack.pop_front(); firstNumber = firstNumber - secondNumber; numberStack.push_front(firstNumber); } else if(op=="*"){ secondNumber= numberStack.front(); numberStack.pop_front(); firstNumber= numberStack.front(); numberStack.pop_front(); firstNumber = firstNumber * secondNumber; numberStack.push_front(firstNumber); } else if(op=="/"){ secondNumber= numberStack.front(); numberStack.pop_front(); firstNumber= numberStack.front(); numberStack.pop_front(); firstNumber = firstNumber / secondNumber; numberStack.push_front(firstNumber); } else if(op=="^"){ secondNumber= numberStack.front(); numberStack.pop_front(); firstNumber= numberStack.front(); numberStack.pop_front(); firstNumber = (int)pow((double)firstNumber,(double)secondNumber); numberStack.push_front(firstNumber); } else{ secondNumber=atoi(op.c_str()); numberStack.push_front(secondNumber); } if (cin.eof()) break; } firstNumber = numberStack.front(); numberStack.pop_front(); print(firstNumber); if (cin.eof()) break; } }