AKJKTM Ответов: 2

Создайте проект библиотеки C# , который вычисляет общую площадь всех фигур в коллекции.


Создайте проект библиотеки C# , который вычисляет общую площадь всех фигур в коллекции.
Подробности
Для простоты ниже требуются два типа фигур
Круг
Прямоугольник
Желательна поддержка добавления различных типов фигур в будущем с минимальными изменениями кода.
Каждый объект формы содержит два свойства ниже.
Имя
1. имя фигуры, например "красный круг", "Синий прямоугольник", которое предоставляется абонентами или пользователями
2. идентичность для типа фигуры в коллекции. То есть имя фигуры уникально для этого типа фигуры в коллекции.

дата создания
1. Дата создания объекта shape, например 12 июня 2019 года
2. круги разрешается создавать в будние дни, а не в выходные.
3. Прямоугольники, которые можно создать в выходные дни, не допускается создавать по будням
Наконец, вычислите общую площадь всех фигур в коллекции.

Что я уже пробовал:

Какие все классы должны быть созданы и как использовать словарь в этом контексте.
Я хотел бы создать форму класса с двумя свойствами как имя и дата и один словарь с ключом как имя формы и значением как будний день или выходные дни.

2 Ответов

Рейтинг:
2

Maciej Los

В дополнение к оригинальному решению Гриффа...

Вам не нужно ничего создавать "идентификатор типа фигуры в коллекцииВсе, что вам нужно сделать, это определить тип пользовательской формы.

Для получения более подробной информации, пожалуйста, смотрите:
Наследование - Руководство По Программированию На C# | Microsoft Docs[^]
Полиморфизм - Руководство По Программированию На C# | Microsoft Docs[^]
Абстрактные и запечатанные классы и члены классов - руководство по программированию на C# | Microsoft Docs[^]

Удачи вам!


Рейтинг:
1

OriginalGriff

Если вы ждете разрешения,то считайте, что оно дано.

Забудьте о словарях и других коллекциях, пока у вас нет реальных классов на месте - вам не нужно беспокоиться о итогах или о чем-то еще, пока вы не отсортируете свои классы фигур.

Я бы начал с абстрактного класса Shape, который имеет абстрактное свойство Area или метод GetArea, а также абстрактное свойство Name и конкретное свойство CreateDate.
Затем выведите из него классы Circle и Rectangle и реализуйте методы и свойства для каждого из них вместе с соответствующими конструкторами (которые проверяют, может ли класс быть создан в эту дату).

Подумайте об этом и посмотрите, как далеко вы продвинетесь.


Maciej Los

Самый короткий учебник, который я видел до сегодняшнего дня!