Билет 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):
- в диалоге с консоли ввести количество этажей и количество владельцев на этаже (для простоты можно считать, что на каждом этаже - одинаковое количество владельцев)
- с клавиатуры ввести все значения нормативных платежей.
- с клавиатуры ввести реальные платежи владельцев за один месяц.
- вывести общий долг по зданию.
- запросить с клавиатуры номер этажа и вывести подробные сведения об этом этаже.