Essays.club - Получите бесплатные рефераты, курсовые работы и научные статьи
Поиск

Создать абстрактный класс Figure с методами Perimetr и Square

Автор:   •  Март 13, 2024  •  Контрольная работа  •  1,563 Слов (7 Страниц)  •  98 Просмотры

Страница 1 из 7

Задание 1 Создать абстрактный класс Figure с методами Perimetr и Square. Создать производные классы для двух фигур:

  • первая правильный многоугольник,
  • вторая произвольная программа

Программа должна запрашивать необходимые параметры и выводить периметр и площадь для выбранных двух фигур.

Фигуры выбираются из таблицы по номеру в журнале

Формулы для нахождения площади и периметра найти в интернете

Правильный многоугольник, n – количество сторон

Произвольная фигура

1.

n = 10

Равнобедренный треугольник (площадь считается по основанию и высоте)

Код программы:

using System;

namespace _1zadanie

{

    // Создаем абстрактный класс Figure

    abstract class Figure

    {

        // Абстрактные методы для расчета периметра и площади

        public abstract double Perimeter();

        public abstract double Square();

    }

    // Производный класс для правильного многоугольника

    class RegularPolygon : Figure

    {

        private int sides; // количество сторон многоугольника

        private double sideLength; // длина стороны многоугольника

        // Конструктор класса

        public RegularPolygon(int sides, double sideLength)

        {

            this.sides = sides;

            this.sideLength = sideLength;

        }

        // Реализация метода для расчета периметра

        public override double Perimeter()

        {

            return sides * sideLength;

        }

        // Реализация метода для расчета площади

        public override double Square()

        {

            // Расчет площади правильного многоугольника

            // в зависимости от количества сторон и длины стороны

            double apothem = sideLength / (2 * Math.Tan(Math.PI / sides));

            return Math.Round(0.5 * apothem * Perimeter(), 2);

        }

    }

    // Производный класс для равнобедренного треугольника

    class IsoscelesTriangle : Figure

    {

        private double baseLength; // длина основания треугольника

        private double height; // высота треугольника

        // Конструктор класса

        public IsoscelesTriangle(double baseLength, double height)

        {

            this.baseLength = baseLength;

            this.height = height;

        }

        // Реализация метода для расчета периметра

        public override double Perimeter()

        {

            return Math.Round(2 * baseLength + Math.Sqrt(4 * height * height + baseLength * baseLength), 2);

        }

        // Реализация метода для расчета площади

        public override double Square()

        {

            return Math.Round(0.5 * baseLength * height, 2);

        }

    }

    internal class Program

    {

        static void Main(string[] args)

        {

            Console.Write("Студент Иванов, вариант №1");

            Console.Write("\nВведите длину стороны десятиугольника a = ");

...

Скачать:   txt (8 Kb)   pdf (130.7 Kb)   docx (875.7 Kb)  
Продолжить читать еще 6 страниц(ы) »
Доступно только на Essays.club