Here is the website for the assignment I am working on:
http://view.samurajdata.se/rsc/5c1dd0b4/
Here is the website for my header file (MixedExpression.h):
http://ideone.com/oJ6mI8
Here is the website for my library source file (MixedExpression.cpp):
http://ideone.com/inEyqe
Here is the website for my calculator client file (Calculator.cpp):
http://ideone.com/EDTWeS
The header file is correct. I got the entire calculator client file working correctly. In the library source file, the GCD() function and the default constructor is correct, and I got the normal constructor, ReadMixedExp(), and printData() working correctly. But I am having trouble with the reduce() function and the add(), subtract(), multiply(), and divide() methods. For these input lines:
1 2 3 4 5
|
( 1 + 2 / 6 ) + ( 3 + -3 / 9 )
( 3 + 5 / 9 ) + ( 2 + 3 / 7 )
( 7 + 5 / 25 ) + ( 4 + -6 / 14 )
( 3 + 5 / 9 ) - ( 2 + 3 / 7 )
( 7 + 5 / 25 ) * ( 4 + -6 / 14 )
|
I am supposed to be getting this expected output:
1 2 3 4 5
|
( 1 + 2 / 6 ) + ( 3 + -3 / 9 ) = ( 4 + 0 / 1 )
( 3 + 5 / 9 ) + ( 2 + 3 / 7 ) = ( 5 + 62 / 63 )
( 7 + 1 / 5 ) + ( 3 + 4 / 7 ) = ( 10 + 27 / 35 )
( 3 + 5 / 9 ) - ( 2 + 3 / 7 ) = ( 1 + 8 / 63 )
( 7 + 1 / 5 ) * ( 3 + 4 / 7 ) = ( 25 + 5 / 7 )
|
But now all I am getting is this output:
1 2 3 4 5 6
|
( 1 + 2 / 6 ) + ( 3 + -3 / 9 ) = ( 27 + 0 / 54 )
( 3 + 5 / 9 ) + ( 2 + 3 / 7 ) = ( 39 + 0 / 63 )
( 7 + 5 / 25 ) + ( 4 + -6 / 14 ) = ( 198 + 0 / 350 )
( 3 + 5 / 9 ) - ( 2 + 3 / 7 ) = ( 3 + 0 / 63 )
( 7 + 5 / 25 ) * ( 4 + -6 / 14 ) = ( 9800 + 0 / 350 )
( 7 + 5 / 25 ) * ( 4 + -6 / 14 ) = ( 9800 + 0 / 350 )
|
Also, I'm not sure if I am supposed to print an error code if I read this line:
( 1 + 0 / 1 ) / ( 0 + 0 / 1 )
But most importantly, I'm not sure how to convert the expressions to reduced form and do the calculations correctly, and why is the last line printing twice. Is there anything I need to fix/change in the reduce() function and the four methods and in the calculator client? These are only the last few parts I need help with.