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



К2 Модельный пример ================================= Промоделировать посещение кафе клиентами. Для этого определить два класса - Клиент (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 П=============================================== Промоделировать учет коммунальных платежей владельцами  многоквартирного дома. Для этого определить два класса - "Этаж" (Stage) и "Здание" (Building). Класс "Этаж" - два одномерных целочисленных массива: - первый - хранит нормативную величину квартплаты (тариф) каждого владельца этажа; - второй - реальный ежемесячный платеж каждого владельца этажа. Методы: -  конструктор с параметром для заполнения массива тарифов владельцев этажа. -  метод для ввода с клавиатуры всех значений месячных платежей владельцев этажа. -  метод, формирующий строку с детальными сведениями обо всех должниках этажа. При выводе на экран эта строка должна отображаться как набор строк вида    "Квартира номер N имеет долг X" Для этого после каждого фрагмента, соответствующего одной квартире, в возвращаемую строку    вставлять символ '\n'. -  метод, вычисляющий общий долг владельцев этажа. Класс "Здание" - хранит массив этажей. Методы: -  конструктор с параметром - массивом, содержащим нормативные платежи всех владельцев дома. -  метод, вычисляющий общий долг всего здания (использует соответствующий метод класса Этаж). В методе Main главной программы (класс Program): -  в диалоге с консоли ввести количество этажей и количество владельцев на этаже (для простоты можно считать, что на каждом этаже - одинаковое количество владельцев) -  с клавиатуры ввести все значения нормативных платежей. -  с клавиатуры ввести реальные платежи владельцев за один месяц. -  вывести общий долг по зданию. -  запросить с клавиатуры номер этажа и вывести подробные сведения об этом этаже. К2 В2 П=============================================== Промоделировать процесс выполнения звонков мобильными телефонами. Для этого создать: - перечислимый тип для времени дня: 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 секунд. -  выдать на экран количество и стоимость дневных звонков. К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). К2 В4 К=============================================== Моделирование работы приемной комиссии. Необходимо определить два класса - абитуриент(Entrant) и приемная комиссия(EntranceExam).   Класс Entrant хранит имя и оценку, полученную на экзамене. Методы: -  конструктор, принимающий в качестве параметра имя абитуриента; -  GetMark и SetMark, позволяющие получить и установить оценку; -  GetName, который возвращает имя абитуриента.   Класс EntranceExam хранит проходной бал и массив абитуриентов. Методы: -  конструктор, принимающий величину проходного бала и количество мест; -  TakeEntrant принимает объект Entrant и сохраняет его в массиве; -  TakeExam, принимает имя абитуриента. Метод по полученному имени ищет соответствующего абитуриента в массиве. Если абитуриент ранее был зарегистрирован и еще не сдавал экзамен, т.е. его оценка равна 0, ему проставляется случайная оценка в диапазоне от 2 до 5. -  логический метод HasPlaces, который возвращает истину, если еще есть свободные места; -  логический метод IsExamPassed, который позволяет определить, поступил ли абитуриент(Entrant), переданный в качестве аргумента. Возвращается истина, если оценка, полученная абитуриентом, выше проходного бала; -  метод ToString, возвращающий информацию о количестве абитуриентов, списочном составе с указанием оценки и результате поступления.   В методе Main главной программы (класс Program) необходимо: -  создать несколько экземпляров класса Entrant; - создать объект класса EntrantExam; -  "подать документы в приемную комиссию" посредством вызова метода TakeEntrant; -  осуществить сдачу экзаменов абитуриентами; -  попробовать повторно сдать экзамен одним из абитуриентов и убедиться, что его оценка при этом не изменилась; -  вывести результаты работы приемной комиссии (метод ToString). К2 В5 К=============================================== Моделирование структуры файловой системы. Необходимо определить два класса: папка (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: -  создать корневую папку; -  добавить к корневой папке файл и папку; -  в папку, добавленную на предыдущем шаге, поместить несколько файлов; -  вывести на экран иерархическое представление корневой папки. К2 В6 К.=============================================== Модель взаимодействия работодателя и его сотрудников. Определить два класса: работодатель (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); -  вывести информацию о работодателе; -  уволить сотрудника; -вывести информацию о работодателе. К3 Вариант1 ( ПВГ) Разработать 2 класса:

Простые часы

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

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

Методы

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

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

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

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

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

Точные часы

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

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

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

Методы

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

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

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

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

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

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

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

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

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

Методы             

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

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

 

В Main

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

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

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

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

 

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

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

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

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

 

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


К3 Вариант2 (ПВГ)

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

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

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

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

Методы

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

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

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

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

 


Дата добавления: 2019-02-12; просмотров: 171; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!