Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.01.2018, 15:00   #1
Anton19901505
Пользователь
 
Регистрация: 08.01.2017
Сообщений: 26
По умолчанию C#-класс Picture

помогите пожалуйста с заданием
Создать абстрактный класс Figure. На его основе реализовать классы Rectangle (прямоугольник), Circle (круг) и Trapezium (трапеция) с возможностью вычисления площади, центра тяжести и периметра.
Создать класс Picture, содержащий параметризованную коллекцию объектов этих классов в динамической памяти. Предусмотреть возможность вывода характеристик объектов списка. Написать демонстрационную программу, в которой будут использоваться все методы классов.
Дополнительное задание: дополнить класс методами сортировки по некоторому критерию, вывода в файл и считывания из файла.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp7
{
    class Program
    {
        static void Main(string[] args)
        {
            Figure[] Фигуры = new Figure[6];
            Фигуры[0] = new Circle(3.0);
            Фигуры[1] = new Rectangle(4.0, 5.0);
            Фигуры[2] = new Trapezium(3.0, 4.0, 5.0,6.0,7.0);
            Фигуры[3] = new Rectangle(3.0,5.0);
            Фигуры[4] = new Rectangle(3.0, 4.0);
            Фигуры[5] = new Circle(3.0);

            for (int i = 0; i < Фигуры.Length; i++)
            {
                Console.WriteLine("Площадь равна: " + Фигуры[i].Pl());
                Console.WriteLine("Периметр равен: " + Фигуры[i].Per());
                Console.WriteLine();
            }
            Console.Read();
        }
    }

    public abstract class Figure
    {
        protected Exception OutOfMaxBorder = new Exception("Исключение, превышена максимальная граница");
        protected Exception NonBellowZero = new Exception("Исключение, введенное значение не может быть отрицательным!");

        double a, b, c, d, r,h;
        public double A
        {
            get { return a; }
            set { if (value > 0) a = value; }
        }

        public double B
        {
            get { return b; }
            set { if (value > 0) b = value; }
        }

        public double C
        {
            get { return c; }
            set { if (value > 0) C = value; }
        }

        public double D
        {
            get { return d; }
            set { if (value > 0) d = value; }
        }

        public double R
        {
            get { return r; }
            set { if (value > 0) r = value; }
        }

        public double H
        {
            get { return h; }
            set { if (value > 0) h = value; }
        }

        public Figure(double r) //Конструктор для круга, квадрата и равностороннего треугольника
        {
            this.r = r;
        }
        public Figure(double a, double b) //Конструктор для круга, квадрата и равностороннего треугольника
        {
            this.a = a;
            this.b = b;
        }


        public Figure(double a, double b, double c, double d, double h) //Конструктор для круга, квадрата и равностороннего треугольника
        {
            this.a = a;
            this.b = b;
            this.c = c;
            this.d = d;
            this.h = h;
        }
        

         public abstract double Pl();
         public abstract double CT();
         public abstract double Per();
    }

    class Rectangle : Figure // Треугольник
    {
        public Rectangle(double a, double b) : base(a, b)
        {
        }// Конструктор по умолчанию
        public override double Pl()
        {
            return A * B;
        }

        public override double CT()
        {
            return B / 2.0;
        }
        public override double Per()
        {
            return 2 * (A + B);
        }
    }

    class Circle : Figure // Треугольник
    {
        public Circle(double r) : base(r)
        { }// Конструктор по умолчанию
        public override double Pl()
        {
            return Math.PI*R*R;
        }

        public override double CT()
        {
            return R;
        }
        public override double Per()
        {
            return 2 * Math.PI*R;
        }
    }

    class Trapezium : Figure // Треугольник
    {
        public Trapezium(double a, double b, double c, double d, double h) : base(a, b, c, d, h)
        { }// Конструктор по умолчанию
        public override double Pl()
        {
            return ((A + B)/2.0)*H;
        }

        public override double CT()
        {
            return (H/3.0)*(2*B+A)/(A+B);
        }
        public override double Per()
        {
            return (A+B+C+D);
        }
    }
    
    
}
Anton19901505 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Dee Picture Wizard DeeMOONger Visual C++ 1 25.03.2012 17:05
Класс запускает поток, который заполняет этот класс. Обмен класс <=> поток. Человек_Борща Общие вопросы Delphi 8 27.02.2012 23:24
Compress Picture a_zheshko Microsoft Office Word 4 11.04.2011 11:48
Resize picture artush1984 Общие вопросы C/C++ 0 28.12.2010 15:45