Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Модуль 2 ООП ФИТ 2к.doc
Скачиваний:
14
Добавлен:
20.05.2015
Размер:
144.38 Кб
Скачать

Билет 3

1. Написать короткий пример, который вызовет использование сборщика мусора.

2. В каких ситуациях используются ключевые словаoutиrefдля параметров ссылочного типа.

3.Промоделировать процесс выполнения звонков мобильными телефонами.

Для этого создать:

- перечислимый тип для времени дня:

public enum DayTime {Morning, Day, Evening, Night}

- классы "Телефон" (Phone), "Звонок" (Call).

Класс Call:

- хранит длительность звонка и время дня (тип DayTime), когда звонок был сделан;

Методы:

- конструктор с параметрами;

- метод для вычисления стоимости звонка (параметры – базовая стоимость минуты и стоимость соединения).

дневные звонки - стоимость 1 минуты=0.75*базовую стоимость

утренние и вечерние звонки - стоимость 1 минуты=базовой стоимости

ночные звонки - стоимость 1 минуты=0.5*базовой стоимости минуты

Класс Phone:

- хранит информацию о множестве сделанных выходных звонков, базовую стоимость одной минуты разговора и стоимость соединения.

Методы:

- конструктор с параметрами для стоимости минуты разговора и соединения;

- "Выполнить звонок" (MakeCall) - добавляет параметр-звонок к множеству уже сделанных;

- вычисление стоимости всех звонков, сделанных в заданное параметром время дня.

- вычисление количества всех звонков, сделанных в заданное параметром время дня.

В главной программе (метод Main):

- создать телефон.

- выполнить 4 звонка.

- выдать на экран количество и стоимость дневных звонков.

- выполнить 100 звонков со случайными значениями времени дня и длительностью от 5 до 200 секунд.

- выдать на экран количество и стоимость дневных звонков.

Билет 4

1. Почему в методах создаваемых программистом классов не рекомендуется использовать классConsole?

2. В каких задачах предпочтительнее использовать прямоугольные массивы вместо «рваных»?

3. Моделирование игры BlackJack. Определить два класса: Game и Player.

Класс Player - хранит имя игрока и текущее количество очков.

Методы:

- конструктор с параметром - именем игрока;

- метод TakeCard («Взять карту») с целочисленным параметром, на которое должно быть увеличено текущее количество очков игрока;

- логический метод CanTakeMore, не имеющий параметров. Метод возвращает истину, если текущее количество очков игрока меньше 21, и ложь в противном случае;

- методы GetName и GetRate, которые возвращают имя и текущее количество очков соответственно.

Класс Game - хранит информацию об игроках, учаcтвующих в игре.

Методы:

- конструктор, принимающий допустимое количество игроков;

- метод Register с параметром - объектом класса Player. Метод проверяет доступность "свободного места" для игрока и в случае наличия такового инициализирует соответствующую позицию в массиве играющих;

- логический метод GiveCard, принимающий в качестве параметра имя игрока. Этот метод по имени ищет соответствующего зарегистрированного игрока. Если игрок найден, то вызывается его метод TakeCard и ему передается сгенерированное случайное число в диапазоне от 2 до 11. В этом случае метод возвращает истину, в зависимости от того, нужны ли еще карты игроку (см. метод CanTakeMore класса Player). Если игрок не найден, метод возвращает ложь.

- метод GetWinner, возвращающий победителя (объект класса Player) игры. Метод определяет победителя, основываясь на степени близости количества очков игрока к числу 21.

- метод ToString, возвращающий строку с информацией о количестве и составе игроков с указанием текущего количества очков.

В методе Main главной программы (класс Program) необходимо:

- создать игроков;

-создать игру и зарегистрировать в ней игроков;

- пока игроки могуть брать (CanTakeMore) сдать карты (GiveCard) каждому из игроков;

- вывести на экран информацию об игре (ToString) и ее победителе (GetWinner).