Создадим модель стада коров.У нас будет класс корова и класс стадо. Так как стадо состоит из коров, то между этими классами будет отношение агрегации. То есть в классе стадо должно быть поле типа корова, и даже массив объектов класса корова.
Создать класс Cow – корова, содержащий:
Создать класс Stado – стадо, содержащий:
В методе Main:
Отработка:
Описание класса Cow
Описание класса Stado
Объекты (коровы) являются ссылочными типами. Пустое значение для такого типа это null.
Конструктор
Метод добавления коровы в стадо
Метод размещает корову в стаде и возвращает true, если в стаде место для коровы нашлось, и false, если места не нашлось.
Наш массив коров будет содержать ссылки на те места в памяти, где расположены поля объекта (коровы).
Методы удаления i-й коровы и вычисления общего надоя
Метод показывающий состояние стада
Метод Main класса Program
Усложним модель стада коров. Добавим в класс стадо поле, которое будет содержать общее количество корма, выделенного стаду.
Будем считать, что каждой корове нужно в день 20 кг корма.
Принимать или не принимать корову в стадо, будем решать не только исходя из количества мест в стаде, но и исходя из того, хватит ли ей корма.
Создавать коров будем со случайным надоем.
Добавим метод, который находит в стаде корову с минимальным надоем.
Будем удалять из стада именно эту корову и принимать на ее место другую.
Сделаем следующие изменения:
Свойство только для чтения поля «кличка»;
Поле korm, в котором содержится вес корма, необходимого стаду.
Изменим конструктор. В нем будет два параметра: количество мест в стаде и вес корма, выделяемый стаду в день.
Изменим метод Zap, условие размещения коровы в стаде.
Изменим метод ToStr - вывод состояния стада. Добавим строчку, сколько осталось корма.
Добавим метод Min, без параметров, возвращающий индекс коровы с минимальным надоем.
Создать массив из шести коров со случайным надоем и кличками: Корова-0, Корова-1, Корова-2…). Вывести на экран.
Cоздать стадо s со случайным количеством мест и корма
С помощью метода Zap попытаться разместить всех коров в стадо. Поместятся не все.
С помощью методов ToStr и Obnadoy показать состояние созданного стада
С помощью метода Min найти в стаде корову с минимальным надоем и с помощью метода Del удалить ее из стада.
Показать состояние стада.
Попытаемся добавить в стадо остальных коров. Вывести клички коров, которые не поместились в стадо.
Показать новое состояние стада.
Отработка 1:
Отработка :