
Билет 7
1. В каких задачах предпочтительнее использовать «рваные» массивы вместо прямоугольных?
2. Перечислить недостатки использованияArrayList.
3. Модель взаимодействия работодателя и его сотрудников. Определить два класса: работодатель (Employer) и сотрудник (Employee).
Класс Employee хранит: имя, уровень (число в диапазоне от 4 до 10, характеризующее профессионализм сотрудника) и заработную плату.
Методы:
- конструктор, принимающий имя и уровень сотрудника.
- GetName, GetSalary и GetSkillLevel, которые возвращают имя, заработную плату и уровень соответственно;
- SetSalary, принимающий вещественное число, которое используется для изменения заработной платы;
- ToString, возвращающий строковое представление сотрудника.
Класс Employer хранит: название фирмы, бюджет и массив сотрудников.
Методы:
- конструктор, принимает имя компании, кол-во раб. мест и бюджет;
- метод Hire с параметром объектом Employee нанимает сотрудника на работу. Зарплата рассчитывается по правилу уровень*100. Если такой размер зарплаты не превышает бюджет и есть свободные места, то сотруднику начисляется зарплата (SetSalary), он сохраняется в массиве, уменьшается бюджет и возвращает true, иначе - false;
- Fire, принимает параметр - имя сотрудника. Если такой сотрудник найден, увольняет его, освобождая занимаемое им место в массиве;
- Attest, принимает уровень и процент увеличения зарплаты. Метод «просматривает» всех сотрудников и, если уровень сотрудника превышает уровень-параметр, а также, если позволяет бюджет, увеличивает сотруднику зарплату на указанный в параметре процент;
- ToString возвращает строку с информацией о компании: название, количество свободных мест, бюджет, а также информацию по каждому работающему сотруднику (Employee.ToString).
В методе Main класса Program:
- создать работодателя;
- создать массив кандидатов с именами "С1","С2" и т.д. и случайным уровнем;
- попытаться нанять всех кандидитов;
- вывести информацию о работодателе;
- провести аттестацию сотрудников (Employer.Attest);
- вывести информацию о работодателе;
- уволить сотрудника;
-вывести информацию о работодателе.
Билет 8
1.Написать короткий пример вывода всех элементов двумерного прямоугольного массива.
2. Какие ограничения на использование переменных действуют в статических методах и почему?
3 Моделирование проезда в маршрутном такси. Создать два класса: пассажир (Passenger) и маршрутка (Bus).
Класс Passenger хранит информацию о начальной и конечной остановках (символы латинского алфавита, символ начальной остановки должен быть меньше символа конечной остановки).
Методы:
- конструктор, принимающий начальную и конечную остановки;
- Payment, возвращающий рассчитанную стоимость проезда. Стоимость перемещения между любыми двумя соседними остановками – постоянная величина (например, 0.1 грн). Поэтому стоимость всей поездки – произведение длины маршрута на эту стоимость.
Класс Bus хранит следующую информацию:
- путь - представляет собой строку вида "ABCDEFG...", где каждый символ обозначает название остановки.
- места - массив объектов класса Passenger. Если элемент этого массива равен null, то место свободно.
- текущая выручка, полученная от проезда пассажиров.
- текущая остановка.
Методы:
- конструктор, принимающий вместимость маршрутки и путь;
- логический метод Enter, принимающий пассажира (параметр - объект класса Passenger) и возвращающий истину, если удалось усадить пассажира на свободное место, и ложь в противном случае;
- Leave, принимающий название остановки (символ), и освобождающий занимаемые места теми пассажирами, у которых конечная остановка совпадает с переданной в качестве параметра метода. Необходимо "взять" оплату за проезд с выходящего пассажира (метод Payment);
- Profit, возвращающий суммарную выручку на текущий момент;
- ToString, возвращающий маршрут, текущую остановку и информацию по каждому месту: свободно оно или занято. Если занято, то откуда и куда следует пассажир.
В методе Main класса Program:
- создать маршрутку;
- организовать цикл по всем остановкам, представленным в маршруте. На каждом шаге цикла: высадить пассажиров, посадить в маршрутку созданного случайным образом пассажира, отобразить текущее состояние маршрутки (метод ToString);
- вывести суммарную выручку от проезда.