Question: The client program is below, #include #include fraction.h #include #include #include using namespace std; using namespace cs _ fraction; void BasicTest ( ) ;

The client program is below, #include #include "fraction.h" #include #include #include using namespace std; using namespace cs_fraction; void BasicTest(); void RelationTest(); void BinaryMathTest(); void MathAssignTest(); bool eof(ifstream& in); string boolString(bool convertMe); int main(){ BasicTest(); RelationTest(); BinaryMathTest(); MathAssignTest(); } void BasicTest(){ cout "
----- Testing basic Fraction creation & printing
"; cout "(Fractions should be in reduced form, and as mixed numbers.)
"; const Fraction fr[]={Fraction(4,8), Fraction(-15,21), Fraction(10), Fraction(12,-3), Fraction(), Fraction(28,6), Fraction(0,12)}; for (int i =0; i 7; i++){ cout "Fraction [" i "]=" fr[i] endl; } cout "
----- Now reading Fractions from file
"; ifstream in("Fraction.txt"); assert(in); while (!eof(in)){ Fraction f; if (in.peek()=='#'){ in.ignore(128,'
'); //skip this line, it's a comment } else { in >> f; cout "Read Fraction =" f endl; }}} bool eof(ifstream& in){ char ch; in >> ch; in.putback(ch); return !in; } string boolString(bool convertMe){ if (convertMe){ return "true"; } else { return "false"; }} void RelationTest(){ cout "
----- Testing relational operators between Fractions
"; const Fraction fr[]={Fraction(3,6), Fraction(-15,30), Fraction(1,2), Fraction(1,10), Fraction(0,1), Fraction(0,2)}; for (int i =0; i 5; i++){ cout "Comparing " fr[i]" to " fr[i+1] endl; cout "\tIs left right? " boolString(fr[i] fr[i+1]) endl; cout "\tIs left = right? " boolString(fr[i]= fr[i+1]) endl; cout "\tIs left > right? " boolString(fr[i]> fr[i+1]) endl; cout "\tIs left >= right? " boolString(fr[i]>= fr[i+1]) endl; cout "\tDoes left == right? " boolString(fr[i]== fr[i+1]) endl; cout "\tDoes left != right ?" boolString(fr[i]!= fr[i+1]) endl; } cout "
----- Testing relations between Fractions and integers
"; Fraction f(-3,6); int num =2; cout "Comparing " f " to " num endl; cout "\tIs left right? " boolString(f num) endl; cout "\tIs left = right? " boolString(f = num) endl; cout "\tIs left > right? " boolString(f > num) endl; cout "\tIs left >= right? " boolString(f >= num) endl; cout "\tDoes left == right? " boolString(f == num) endl; cout "\tDoes left != right ?" boolString(f != num) endl; Fraction g(1,4); num =-3; cout "Comparing " num " to " g endl; cout "\tIs left right? " boolString(num g) endl; cout "\tIs left = right? " boolString(num = g) endl; cout "\tIs left > right? " boolString(num > g) endl; cout "\tIs left >= right? " boolString(num >= g) endl; cout "\tDoes left == right? " boolString(num == g) endl; cout "\tDoes left != right ?" boolString(num != g) endl; } void BinaryMathTest(){ cout "
----- Testing binary arithmetic between Fractions
"; const Fraction fr[]={Fraction(1,6), Fraction(1,3), Fraction(-2,3), Fraction(5), Fraction(-4,3)}; for (int i =0; i 4; i++){ cout fr[i]"+" fr[i+1]"=" fr[i]+ fr[i+1] endl; cout fr[i]"-" fr[i+1]"=" fr[i]- fr[i+1] endl; cout fr[i]"*" fr[i+1]"=" fr[i]* fr[i+1] endl; cout fr[i]"/" fr[i+1]"=" fr[i]/ fr[i+1] endl; } cout "
----- Testing arithmetic between Fractions and integers
"; Fraction f(-1,2); int num =4; cout f "+" num "=" f + num endl; cout f "-" num "=" f - num endl; cout f "*" num "=" f * num endl; cout f "/" num "=" f / num endl; Fraction g(-1,2); num =3; cout num "+" g "=" num + g endl; cout num "-" g "=" num - g endl; cout num "*" g "=" num * g endl; cout num "/" g "=" num / g endl; } void MathAssignTest(){
The client program is below, #include #include

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!