Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Переговорное устройство (Communicator)




Билет 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):

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

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

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

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

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


 

Билет 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).


 

Билет 5

1. Какие переменные относятся к категории значимых?

2. Написать короткий пример вывода всех элементов одномерного массива.

3. Моделирование работы приемной комиссии.

Необходимо определить два класса - абитуриент(Entrant) и приемная комиссия(EntranceExam).

 

Класс Entrant хранит имя и оценку, полученную на экзамене.

Методы:

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

- GetMark и SetMark, позволяющие получить и установить оценку;

- GetName, который возвращает имя абитуриента.

 

Класс EntranceExam хранит проходной бал и массив абитуриентов.

Методы:

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

- TakeEntrant принимает объект Entrant и сохраняет его в массиве;

- TakeExam, принимает имя абитуриента. Метод по полученному имени ищет соответствующего абитуриента в массиве. Если абитуриент ранее был зарегистрирован и еще не сдавал экзамен, т.е. его оценка равна 0, ему проставляется случайная оценка в диапазоне от 2 до 5.

- логический метод HasPlaces, который возвращает истину, если еще есть свободные места;

- логический метод IsExamPassed, который позволяет определить, поступил ли абитуриент(Entrant), переданный в качестве аргумента. Возвращается истина, если оценка, полученная абитуриентом, выше проходного бала;

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

 

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

- создать несколько экземпляров класса Entrant;

- создать объект класса EntrantExam;

- "подать документы в приемную комиссию" посредством вызова метода TakeEntrant;

- осуществить сдачу экзаменов абитуриентами;

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

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


 

Билет 6

1. Какова область видимости статических переменных.

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

3. Моделирование структуры файловой системы.

Необходимо определить два класса: папка (Folder) и файл (File).

 

Класс File хранит информацию о файле, а именно: имя и размер.

Методы:

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

- метод GetName, который возвращает имя файла;

- метод GetSize, который возвращает размер файла.

 

Класс Folder хранит информацию о папке: имя и массивы файлов и папок, непосредственно

содержащихся в папке.

Методы:

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

- методы AddFile и AddFolder, добавляющие в папку объекты File и Folder соответственно;

- метод GetFolder, принимающий имя папки, и возвращающий папку (Folder), которая содержится в списке папок, если таковая найдена;

- метод GetSize, который расчитывает размер содержимого папки, включая размер всех входящих файлов и папок;

- метод ToString, который возвращает строку, представляющую содержимое папки в иерархическом виде c указанием размера каждого из элементов. Например, так:

 

Folder1 10

Folder2 8

File1 5

File2 3

File3 2

 

В методе Main класса Program:

- создать корневую папку;

- добавить к корневой папке файл и папку;

- в папку, добавленную на предыдущем шаге, поместить несколько файлов;

- вывести на экран иерархическое представление корневой папки.


 

Билет 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);

- вывести суммарную выручку от проезда.


 

Билет 9

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

2. Почему у не статических методов классов обычно меньше параметров, чем у статических методов?

3. Моделирование работы гостиницы.

Необходимо создать два класса: Гость и Гостиница.

Класс Гость хранит информацию о начальных и конечных сутках проживания (символы латинского алфавита, при этом, символ начальных суток должен быть меньше символа конечных суток).

Методы:

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

- Payment, возвращает стоимость проживания. Стоимость – произведение количества суток на стоимость суток (например, 50 грн).

Класс Гостиница хранит информацию о периоде работы и местах в гостинице, а также текущую выручку.

Период работы - строка вида "ABCDEFG…", где каждый символ – символизирует сутки. Места - массив объектов класса Гость. Если элемент массива равен null, то номер свободен.

Методы:

- конструктор, принимающий вместимость и период работы гостиницы;

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

- Leave, принимающий название суток (символ), и освобождающий занимаемые номера теми гостями, у которых конечные сутки совпадают с переданными в качестве параметра метода. При этом необходимо "взять" оплату за проживание с выезжающего гостя (метод Payment);

- Profit, возвращающий суммарную выручку на текущий момент;

- ToString, возвращающий сутки и информацию о по каждому номеру в гостинице: свободен он или занят. Если занят, то когда поселился и когда освободит номер гость.

В методе Main класса Program:

- создать гостиницу;

- организовать цикл по всем суткам периода работы гостиницы, и осуществить поселение и освобождение номеров гостями. Реализовать поселение случайного количества гостей. Для наглядности, перед каждым действием отобразить текущее состояние гостиницы;

- вывести суммарную выручку от проживания.


 

Билет 10

1. Написать короткий пример, в котором две переменные будут ссылаться на один и тот же объект в памяти.

2. Написать короткий пример вывода всех элементов двумерного ступенчатого массива.

3. Разработать 2 класса:

Простые часы

Закрытые переменные

Счетчик минут

Методы

Конструктор с параметром - начальным счетчиком минут

Открытый метод ToString - возвращает строку с изображением времени в часах и минутах

Открытый метод IncMinutes, продвигающий часы на одну минуту вперед

Открытый метод DecMinutes, возвращающий часы на одну минуту назад

Закрытые методы Hours и Minutes, определяющие количество полных часов и минут

Точные часы

Первый вариант - производный от простых часов.

Закрытые переменные

Количество секунд в последней неполной минуте

Методы

Конструктор с параметрами - начальным счетчиком минут и количеством секунд в последней неполной минуте

Открытый метод ToString - возвращает строку с изображением времени в часах, минутах и секундах

Открытый метод IncMinutes, продвигающий часы на одну минуту вперед

Открытый метод DecMinutes, возвращающий часы на одну минуту назад

Открытый метод IncSeconds, продвигающий часы на одну секунду вперед

Открытый метод DecSeconds, возвращающий часы на одну секунду назад

Второй вариант - самостоятельный класс

Закрытые переменные

Счетчик секунд

Методы

Открытые методы те же, что и в первом варианте класса

Закрытые методы Hours, Minutes и Seconds, определяющие количество полных часов, минут и секунд

 

В Main

Создать объект класса Простые часы.

Показать время на простых часах.

Продвинуть простые часы на час вперед.

Показать время на простых часах.

 

Создать объект класса Точные часы.

Показать время на точных часах.

Продвинуть точные часы на 1 час и 1 минуту вперед.

Показать время на точных часах.

 

Испытать оба варианта класса точные часы, убедившись в одинаковом способе их использования в Main


 

Билет 11

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

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

3. Разработать 3 класса:

Переговорное устройство (Communicator)

Закрытые переменные

Текст полученного сообщения

Методы

Конструктор без параметра

Закрытый метод Receive с параметром-строкой - получение телефоном сообщения

Открытый метод Send осуществляет передачу сообщения указанному коммуникатору. Параметры - коммуникатор и сообщение.

Свойство ReceivedMessage для доступа по чтению к тексту полученного сообщения

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...