Простейшие классы. Инкапсуляция и свойства. - 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);
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.3 из 5
Похожие ответы