Create a class called 'Calculator' for infix expression calculation using the two-stack method as shown in class. This calculator should address the following:
- Use the stack template created in lab 2 for each of your stacks. Use the queue template of your lab 2b for any queue like functions that you may need.
- Perform the calculation by first changing the infix expression into post-fix expression. Output to the console the post-fix expression that was generated as well as the result of the expression.
- Then verify your result by repeating the process with converting to a pre-fix expression. Again, output the pre-fix expression to the console.
- Your main should allow the user to enter a mathematical expression of their choice.
- Assume the operands in the input expression will be any-size integer operands but successive operands/operators are separated spaces. Perform adequate expression verification to ensure that it is a well-formed expression before you perform the calculation. If it is mal-formed, inform the user accordingly.
- You should allow all binary arithmetic operators (+, -, *, /, %) and the parentheses.
- Unary operators (negation) in the input expression can be treated as illegal. Negative values calculated during the expression evaluation should be Ok.
- 5 pts - EXE works from command line on class/lab machines.
- 3 pts - complete and working MSVC17 solution and proper styling.
- 2 pts - Parsing the input expression to determine it is well-formed
- 4 pts - Infix to postfix conversion and calculation
- 4 pts - Infix to prefix conversion and calculation
- 2 pts - Adequate demonstration of Stack ADT use in main.
This lab is due before class one week from today. As already explained, this assignment should be done in Visual Studio or properly changed into a Visual Studio format before submitting. Include your entire VS folder structure zipped as attachment to this question. The exe should work on its own before the coding will be graded. Also, include screenshots of the output. Remember to name your project and zip file name as ExpCalc_initial1_initial2. Put adequate documentation in code, including name blocks. Add the team member names in the response box of the question for the answer to be accepted.