All,

I have the code below for the following problem:

Create a Fraction class with fields that hold a whole number, a numerator, and a denominator. In addition:

» Create properties for each field. The set accessor for the denominator should not allow a 0 value; the value defaults to 1.

» Add three constructors. One takes three parameters for a whole number, numerator, and denominator. Another accepts two parameters for the numerator and denominator; when this constructor is used, the whole number value is 0. The last constructor is parameter-less; it sets the whole number and numerator to 0 and the denominator to 1. (After construction, Fractions do not have to be reduced to proper form. For example, even though 3/9 could be reduced to 1/3, your constructors do not have to perform this task.)

» Add a Reduce()method that reduces a Fraction if it is in improper form. For example, 2/4 should be reduced to 1/2.

» Add an operator+()method that adds two Fractions. To add two fractions, first eliminate any whole number part of the value. For example, 2 1/4 becomes 9/4 and 1 3/5 becomes 8/5. Find a common denominator and convert the fractions to it. For example, when adding 9/4 and 8/5, you can convert them to 45/20 and 32/20. Then you can add the numerators, giving 77/20. Finally, call the Reduce()method to reduce the result, restoring any whole number value so the fractional part of the number is less than 1. For example, 77/20 becomes 3 17/20.

» Include a function that returns a string that contains a Fraction in the usual display format—the whole number, a space, the numerator, a slash (/), and a denominator. When the whole number is 0, just the Fraction part of the value should be displayed (for example, 1/2 instead of 0 1/2). If the numerator is 0, just the whole number should display (for example, 2 instead of 2 0/3). Write a Main()method that instantiates several Fractions and demonstrate that all the methods work correctly. Save the program as FractionDemo.cs.I'm getting a number of errors, but I can't figure out exactly what's causing it. I think it may be the Reduce or operator+ method, but I'm not sure how to re-write it. I would greatly appreciate your prompt response. Thanks!Code:using System; public class FractionDemo { public static void Main() { Fraction fractionComplete = new Fraction(10, 1, 4); Fraction fractionNumDen = new Fraction(2, 10); Fraction fractionNumDen2 = new Fraction(3, 10); Fraction fractionNone = new Fraction(); Fraction fractionCombined; fractionCombined = fractionNumDen + fractionNumDen2; Display(fractionComplete); Display(fractionNumDen); Display(fractionNone); Display(fractionCombined); Console.ReadLine(); } public static void Display(Fraction incNumbers) { string fractionString; if (incNumbers.Whole >= 1 && incNumbers.Numerator == 0) { fractionString = ("The fraction is " + incNumbers.Whole + "."); Console.WriteLine(fractionString); } else if (incNumbers.Whole == 0 && incNumbers.Numerator >= 1) { fractionString = ("The fraction is " + incNumbers.Numerator + "/" + incNumbers.Denominator + "."); Console.WriteLine(fractionString); } else if (incNumbers.Whole >= 1) { fractionString = ("The fraction is " + incNumbers.Whole + " " + incNumbers.Numerator + "/" + incNumbers.Denominator + "."); Console.WriteLine(fractionString); } } } public class Fraction { private int whole; private int numerator; private int denominator; public int Whole { get { return whole; } set { whole = value; } } public int Numerator { get { return numerator; } set { numerator = value; } } public int Denominator { get { return denominator; } set { if (value >= 1) denominator = value; else denominator = 1; } } public Fraction (int incWhole, int incNumerator, int incDenominator) { Whole = incWhole; Numerator = incNumerator; Denominator = incDenominator; } public Fraction (int incNumerator, int incDenominator) { Whole = 0; Reduce(incNumerator, incDenominator); Numerator = incNumerator; Denominator = incDenominator; } public Fraction() { Whole = 0; Numerator = 0; Denominator = 1; } public static Fraction operator+ (Fraction a, Fraction b) { int r1 = a.Numerator * b.Denominator + b.Numerator * a.Denominator; int r2 = a.Denominator * b.Denominator; return new Fraction(r1, r2); } public static int Reduce(int incNum, int incDen) { if (incNum == 0) { return incDen; } while (incDen != 0) { if (incNum > incDen) { incNum -= incDen; } else { incDen -= incNum; } } return incNum; } }