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

Билет 1

1.Что означает ключевое словоthisи когда его использование необходимо.

2.Какие синтаксические особенности заголовка конструктора?

3.Промоделировать посещение кафе клиентами. Для этого определить два класса - Клиент (CafeClient) и Кафе (Cafe).

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

Методы:

- конструктор с параметрами для имени и денег.

- логический метод "Сделать заказ" (MakeOrder) с параметром - суммой заказа.

Если у клиента достаточно денег, чтобы сделать заказ, то количество его денег уменьшается на сумму заказа и метод возвращает "истина". Иначе метод возвращает "ложь".

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

Класс Кафе - хранит массив мест. Каждое место предназначено для хранения ссылки на объект "Клиент".

Методы:

- конструктор с параметром - количеством мест в кафе.

- метод "Принять заказ" (TakeOrder) - осуществляет обслуживание заказа, сделанного клиентом, сидящим на месте, номер которого является параметром этого метода. Этот метод вызывает метод MakeOrder класса Client с суммой заказа - случайным числом от 10 до 100. Если клиент не может расплатиться за сделанный заказ, он покидает кафе.

- логический метод "Принять клиента" (TakeClient) с параметром - объектом Client.

Если в кафе имеется свободное место, метод "усаживает" туда клиента и возвращает "истину", в противном случае - ложь.

- логический метод HasEmptyPlaces, определяющий, имеются ли в кафе свободные места.

- метод ToString, возвращающий строку с информацией обо всех занятых местах. Для наглядности после каждого фрагмента, соответствующего одному месту, в возвращаемую строку вставлять символ '\n'. Этот метод может использовать метод ToString класса Client.

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

- создать массив из 10 клиентов с именами client1, client2,...,client10 и начальной суммой денег - случайным числом от 20 до 200.

- создать кафе из 5 мест;

- попытаться усадить всех клиентов в кафе (достанется место только пятерым);

- показать состояние кафе;

- заставить клиента за первым местом делать заказ, пока у него не закончатся деньги и он вынужден будет покинуть кафе;

Билет 2

1.В каких задачах предпочтительнее использоватьList<> (вместо одномерных массивов иArrayList)?

2.Когда освобождается память, выделяемая объектам?

3. Промоделировать учет коммунальных платежей владельцами многоквартирного дома.

Для этого определить два класса - "Этаж" (Stage) и "Здание" (Building).

Класс "Этаж" - два одномерных целочисленных массива:

- первый - хранит нормативную величину квартплаты (тариф) каждого владельца этажа;

- второй - реальный ежемесячный платеж каждого владельца этажа.

Методы:

- конструктор с параметром для заполнения массива тарифов владельцев этажа.

- метод для ввода с клавиатуры всех значений месячных платежей владельцев этажа.

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

"Квартира номер N имеет долг X"

Для этого после каждого фрагмента, соответствующего одной квартире, в возвращаемую строку вставлять символ '\n'.

- метод, вычисляющий общий долг владельцев этажа.

Класс "Здание" - хранит массив этажей.

Методы:

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

- метод, вычисляющий общий долг всего здания (использует соответствующий метод класса Этаж).

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

- в диалоге с консоли ввести количество этажей и количество владельцев на этаже (для простоты можно считать, что на каждом этаже - одинаковое количество владельцев)

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

- с клавиатуры ввести реальные платежи владельцев за один месяц.

- вывести общий долг по зданию.

- запросить с клавиатуры номер этажа и вывести подробные сведения об этом этаже.