Project 2: Expression Evaluator
|Course||INFO-3140 Object-Oriented Analysis and Modeling|
|Professor||Garth Santor, Lynn Koudsi|
|Due||Friday, December 10th, 2021|
Complete the Visual C++ 2019/C++ 20 console application project that implements the Expression Evaluator base code (provided) that reads integers and outputs the result. On the existing code base, you must implement the infix to postfix algorithm (Shunting yard algorithm by Edsger Dijkstra), then implement a postfix to result algorithm (Postfix algorithm).
Advanced requirements are graded only if the base (shunting yard and postfix algorithm) is complete and all test cases are working. The advanced requirements are to implement:
- Real data type.
- Mixed integer and real expressions.
- Boolean data type along with its appropriate operators (AND, OR, NOT, XOR, NAND, NOR, XNOR) and real data types from the console and outputs the result.
- Errors in the expression should be reported to the users and the program should continue operation (so program does not crash).
- Stored Results (requires variable)
Note: Additional details, algorithms, design discussion will be provided in class.
- Add the Gregorian data type from Project 1.
- You’ll need to add the packaged day, month, and year objects (integer only)
- You’ll need operation objects to handle the day/month/year functions and the Gregorian constructor.
- Create a specialized Gregorian operand (called now) that initializes to the current date.
- You do not need to handle time of day.
- Your objective is to be able to process expressions such as:
Gregorian(2019,10,10) + months(2) – days(5)
now > Gregorian(2019,10,8)+days(20)
This project will be graded using the following criteria.
|Using this document: Highlight in Yellow the functional requirements which you have implemented. Put in BOLD AND ITALICS the RPN architecture that you have chosen to implement here. Big If Operand Polymorph Operator Polymorph Double Dispatch Lookup Table||-10% if missing|
|Empty & Unknown: 00 a-d||5%|
|Integer only: 01 a-e||5%|
|Integer & Unary: 02 a-f||10%|
|Integer & Binary: 03 a-q||20%|
|Integer & Binary & Named & Right: 04 a-c||5%|
|Integer & Binary & Parenthesis: 05 a-f||5%|
|Integer & Binary & Functions: 06 a-m||10%|
|Real: 07 aa-ch||10%|
|Mixed: 08 a-t||5%|
|Penalties from C & C++ Grading Guide v2.3.0||various|
|Late submission One to five days lateMore than five days late||-10%/day -100%|
- Submit entire Visual Studio project directory to Fanshawe Online
- Delete all debug and release directories.[i]
- Submit in a .ZIP, .7z archive file.
[i] Alternatively, you can ‘clean’ your project for submission by downloading ‘vsclean’ a Visual Studio Solution Cleaner from www.gats.ca .
- Assignment status: Already Solved By Our Experts
- (USA, AUS, UK & CA PhD. Writers)
- CLICK HERE TO GET A PROFESSIONAL WRITER TO WORK ON THIS PAPER AND OTHER SIMILAR PAPERS, GET A NON PLAGIARIZED PAPER FROM OUR EXPERTS