Question
a. You have been developing a Fraction class for Teachers Pet Software that contains several fields and functions. Add two constructors to the class. The
a. You have been developing a Fraction class for Teachers Pet Software that contains
several fields and functions.
Add two constructors to the class. The first accepts two integer values representing the
numerator and denominator. If a single integer is passed to the constructor, use it as the
numerator, and use a default value of 1 for the denominator. If no values are passed to
the constructor, use a default value of 0 for the numerator and 1 for the denominator.
When any Fraction is constructed with a 0 argument for the denominator, force the
denominator value to 1.
The second constructor requires three arguments: a whole number portion for a Fraction,
a numerator, and a denominator. This constructor executes when any Fraction object
is instantiated using three integer arguments. As with the other constructor, when any
Fraction is constructed with a 0 argument for the denominator, force the denominator
value to 1.
Whenever a Fraction object is constructed, automatically reduce the Fraction to the
proper format. For example, a Fraction created using 0, 2, and 4 as arguments should
be reduced to 1/2, and a Fraction created as 3 10/2 should be reduced to 8 0/1.
Write a main()function that declares several Fraction objects, and confirm that the
class works correctly.
Save the file as Fraction.cpp.
b. Create a MathProblem class that contains four Fraction objects: the first Fraction
operand in a problem, the second Fraction operand in a problem, the users Fraction
answer to a problem, and the correct Fraction answer to a problem. The MathProblem
class also contains a character field that stores an operator (for now, assume the operatorwill be either + or *) and contains an integer or bool field named isAnswerCorrect,indicating whether the user correctly answered the problem. For example, a MathProblem
object containing 1/2, 1/4, and + for the operands and operators, 3/4 for the correct answer,
and 3/8 for the users answer would contain a 0 or false in the isAnswerCorrect field
because the correct answer and users answer do not match. Set the isAnswerCorrect
field to true if the users answer is equivalent to the correct answer; for example, if 3/4 is
the correct answer, then 3/4, 6/8, and 9/12 are all correct.
Include a function named setProblem()that sets a MathProblems values with arguments
that include two Fraction operands and an operation. This function calculates and stores
the correct answer, assigns 0 to the users answer, and sets isAnswerCorrect to 0 or false.
Include a displayProblem()function that displays the math problem as a question, and an
askUserForAnswer()function that accepts the users answer from the keyboard and
assigns an appropriate value to isAnswerCorrect.
Include any other MathProblem functions you feel are useful and appropriate.
Write a main()function that declares five MathProblem objects you can use to test a students
fraction arithmetic skills. Assign values to the MathProblems. Display the problems and
accept the answers. When the five problems are completed, display each of the problems,
along with the students answer, the correct answer, and a message indicating whether the
student is right or wrong. Finally, show the student a score indicating the percentage of
problems answered correctly.
Save the file as MathProblem.cpp.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started