Простейшие классы. Инкапсуляция и свойства. - C#
Формулировка задачи:
Я не могу доделать прогу,мне не хватает для неё закрытых и открытых полей....а также конструкторов с параметрами и без....и преподаватель требует чтобы программа использовала их всех ..Помогите плизззз!!!
Задание:
Создайте проект, в котором опишите класс для решения задачи Вашего варианта.
Разрабатываемый класс должен содержать следующие элементы: скрытые и открытые поля, конструкторы без параметров и с параметрами (среди параметров должны быть совпадающие с именами полей и несовпадающие), методы и свойства. Методы и свойства должны обеспечивать непротиворечивый, полный минимальный и удобный интерфейс класса.
В программе должна выполняться проверка всех разработанных элементов класса.
Вариант:
Описать класс, представляющий квадратное уравнение вида ах2 + bх + с = 0. Описать метод, вычисляющий решение этого уравнения и выдающий сообщение в случае отсутствия действительных корней. Описать свойства для задания переменной х и получения состояния объекта.
А вот и сама программа:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Klass { class Program { static void Main(string[] args) { String buf; Console.WriteLine("Отыскание корней квадратного уравнения"); Console.WriteLine("Введи a b c"); buf = Console.ReadLine(); double a = Double.Parse(buf); buf = Console.ReadLine(); double b = Double.Parse(buf); buf = Console.ReadLine(); double c = Double.Parse(buf); Equaltion e = new Equaltion(a, b, c); e.Calculation(); Console.ReadKey(); } } class Equaltion { double a; double b; double c; public Equaltion(double _a, double _b, double _c) { this.a = _a; this.b = _b; this.c = _c; } public double A { get { return a; } set { a = value; } } public double B { get { return b; } set { b = value; } } public double C { get { return c; } set { c = value; } } public void Calculation() { double D = Math.Pow(b, 2) - 4 * a * c; if (D > 0) { Console.WriteLine("Уравнение имеет два корня"); double x1 = (-1 * b + Math.Sqrt(D)) / (2 * a); double x2 = (-1 * b - Math.Sqrt(D)) / (2 * a); Console.WriteLine("x1 = {0}; x2 = {1}", x1, x2); } else if (D == 0) { Console.WriteLine("Уравнение имеет один корень"); double x = (-1 * b) / (2 * a); Console.WriteLine("x = {0}", x); } else Console.WriteLine("Уравнение не имеет вещественных корней"); } } }
Решение задачи: «Простейшие классы. Инкапсуляция и свойства.»
textual
Листинг программы
#region using using System; #endregion namespace ConsoleApplicationTest { public static class Program { private static void Main() { var quadraticEquation = new QuadraticEquation(1, 3, 2); var solver = new Solver(); solver.Solve(quadraticEquation); Console.WriteLine(quadraticEquation); Console.WriteLine("Число корней: " + solver.NumberOfRoots); for (int i = 0; i < solver.NumberOfRoots; i++) Console.Write(solver.Roots[i] + "; "); Console.ReadKey(); } } public class Solver { private double _a; private double _b; private double _c; private double _discriminant; public Solver() { NumberOfRoots = 0; } public double[] Roots { get; private set; } public int NumberOfRoots { get; private set; } public void Solve(QuadraticEquation quadraticEquation) { _a = quadraticEquation.A; _b = quadraticEquation.B; _c = quadraticEquation.C; CalculateDiscriminant(); CalculateRoots(); } private void CalculateDiscriminant() { _discriminant = Math.Pow(_b, 2) - 4*_a*_c; } private void CalculateRoots() { if (_discriminant > 0) { Roots = new double[2]; Roots[0] = (-_b + Math.Sqrt(_discriminant))/(2*_a); Roots[1] = (-_b - Math.Sqrt(_discriminant))/(2*_a); NumberOfRoots = 2; } else if (_discriminant == 0) { Roots = new double[1]; Roots[0] = -_b/(2*_a); NumberOfRoots = 1; } else { Roots = new double[0]; NumberOfRoots = 0; } } } public class QuadraticEquation { public QuadraticEquation(double a, double b, double c) { A = a; B = b; C = c; } public double A { get; set; } public double B { get; set; } public double C { get; set; } public override string ToString() { return string.Format("Квадратное уравнение: {0}*x^2+{1}*x+{2}=0.", A, B, C); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д