Examine the following code. Is there any problem according to design by contract
ID: 3726469 • Letter: E
Question
Examine the following code. Is there any problem according to design by contract? If yes, please list the problem(s).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DesignByContractDemo
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please input numerator:");
int numerator = int.Parse(Console.ReadLine());
Console.WriteLine("Please input denominator:");
int denominator = int.Parse(Console.ReadLine());
Division d = new Division(numerator, denominator);
if (denominator == 0)
Console.WriteLine("Result = {0} ", double.PositiveInfinity);
else
Console.WriteLine("Result = {0} ", d.Divid());
Console.ReadKey();
}
}
class Division
{
double numerator;
double denominator;
public Division(double _numerator, double _denominator)
{
numerator = _numerator;
denominator = _denominator;
}
public double Divid()
{
if (denominator != 0)
return numerator / denominator;
else
return double.PositiveInfinity;
}
}
}
Explanation / Answer
Numerator and Denominator are being taken as Integer which violates the Contract
We cannot divide double/double
Or Double/Integer because Numnerator and denominator are being input as Integer which could be wrong.
Thanks, let me know if there is any concern.
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.