Файл: Лабораторная работа №12.docx

ВУЗ: Не указан

Категория: Методичка

Дисциплина: Программирование

Добавлен: 21.10.2018

Просмотров: 2323

Скачиваний: 29

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
  • Список всех студентов с возможностью сортировки по ФИО, факультету, направлению подготовки, группе, профилирующей кафедре.

  • Список студентов, не имеющих родителей с возможностью сортировки по ФИО, факультету, группе, профилирующей кафедре.

  • Список преподавателей с возможностью сортировки по ФИО, факультету, кафедре.

  • Список всех заведующих кафедрами.

  • Список всех групп без старост и кафедр без заведующих.

  • Поиск у заданного родителя всех его детей – студентов.

  • Список всех преподавателей, имеющих детей – студентов.


      1. Очередь печати

Разработать программную систему, реализующую имитацию очереди печати на принтерах.

Каждый принтер имеет следующие параметры: название, максимальный ширина и высота печатного листа, максимальное разрешение, скорость печати (количество листов в единицу времени (такт)), емкость лотка подачи листов. Дополнительно принтеры делятся на принтеры, поддерживающие печать на «бесконечной» ленте в текстовом режиме (матричные) и другие. Другие делятся на струйные и лазерные. Струйные принтеры имеют возможность цветной печати, лазерные могут иметь «бесконечный» лоток подачи.

Каждое задание на печать может иметь следующие признаки: количество листов, разрешение печати, признак цветной печати, признак печати в текстовом режиме на бесконечной ленте. Кроме того, может быть задан либо признак печати на определенном принтере, либо признак печати на определенном типе принтера. Считается, что задание может быть распечатано на принтере только в случае, когда количество листов задания меньше или равно емкости лотка принтера, у принтера есть подходящее разрешение и принтер имеет необходимые дополнительные возможности (цвет, лента).

Очередь должна быть способна принимать задания на печать, располагать задания в надлежащем порядке в соответствии с их признаками и временем поступления (время дискретно). Система должна уметь выполнять следующие действия на каждом шаге по времени:

  • добавить задание печати в очередь;

  • удалить задание печати из очереди;

  • найти подходящий принтер для задания в соответствии с его признаками, в случае отсутствия подходящего принтера – удалить задание из очереди;

  • имитировать процесс печати на задания на принтере;

  • имитировать поломку принтеры (удаление его из пула принтеров);

  • добавление нового принтера;

  • вывод информации о состоянии принтеров (у какого задания сколько страниц напечатано, какие задания распределены для этого принтера)

  • вывод информации о состоянии заданий (с возможностью отбора по следующим признакам – по типам принтеров, количеству листов в задании, задания для печати на ленте, задания для печати в цвете), количество печатающих заданий и количество ожидающих печать.

  • выход.

По итогам работы в очереди печати необходимо получать отчет о количестве и объеме прошедших через очередь печати заданий и суммарное количество заданий и листов по каждому принтеру, типу принтеров.


      1. Банкомат

Разработать программное обеспечение для банкомата, описание которого дано ниже.

Банкомат – автомат, выполняющий финансовые операции для клиентов банка. Пользовательский интерфейс банкомата состоит из устройства чтения банковских карточек (УЧК), дисплея, числовой клавиатуры, специальных клавиш, устройства выдачи денег (УВД), устройство приема денег (УПД) и печатающего устройства (ПУ).

В состоянии ожидания банкомат показывает на дисплее некоторое приветствующее сообщение. Клавиатура и устройство выдачи денег находятся в неактивном состоянии до момента, пока пользователь не вставит карточку в устройство чтения карточек. После вставки карточки УЧК пытается прочесть ее. Если при этом происходит ошибка, на дисплей выдается соответствующее сообщение и карточка возвращается.

Каждая карточка имеет PIN-код и сумму, имеющуюся на карточке. Карточки делятся на дебетовые и кредитные. Дебетовые карточки не позволяют иметь отрицательную сумму на счету карточки. Кредитные – позволяют, но при отрицательной сумме автоматически рассчитывают пени с заданным процентом. Некоторые карточки позволяют выводить историю карточки за последний месяц. Некоторые карточки позволяют переводить только всю сумму со счета на карточку, а некоторые позволяют дополнительно запрашивать сумму на счете и переводить заданную пользователем сумму.

В случае успешного чтения карточки, банкомат запрашивает у пользователя ввод PIN-кода (personal identification number), с использованием числовой клавиатуры. Ввод каждой цифры PIN-кода сопровождается индикацией на дисплее факта нажатия клавиши, но цифры кода не отображаются.

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

Если пользователь ввел правильный PIN-код, банкомат отображает главное меню, содержащее следующие пункты:

  • снять (если возможно) заданную сумму с карточки;

  • перевести сумму со счета в банке на карточку с учетом возможностей данной карточки;

  • напечатать баланс заданного счета;

  • вывести (если возможно) историю карточки.

Пользователь может выбрать желаемое действие и указать необходимую информацию.

После завершения операции банкоматом, он возвращается в главное меню.

В любой момент времени до окончания операции пользователь может ее прервать нажатием специальной кнопки <Отмена>. В этом случае банкомат прерывает все выполняемые операции, печатает отчет о результатах законченных операций, возвращает карточку и переходит в состояние ожидания.

      1. Сеть аэропортов

Разработать программу, моделирующую "жизнь" сети аэропортов, регламентируемую следующими правилами. Время дискретно. Каждый аэропорт имеет следующие характеристики: пространственные координаты, одну взлетно-посадочную полосу, количество стоянок для самолетов. За один шаг по времени аэропорт может осуществлять либо посадку, либо взлет одного самолета. Некоторые аэропорты могут принимать только военные самолеты, некоторые – и военные, и гражданские. Любой самолет имеет следующие характеристики: вес заправленного самолета, скорость, максимальное время продолжительности полета, время, необходимое для обслуживания самолета на стоянке. Полет происходит всегда из одного аэропорта в другой. Самолеты делятся на самолеты с полезным грузом и самолеты без груза (военные, прогулочные). Время полета самолета с грузом уменьшается пропорционально фактическому полному весу самолета. Самолеты с грузом бывают пассажирские и транспортные. У пассажирских самолетов имеется дополнительный параметр – количество мест. У транспортных – максимальный вес груза. Через случайные промежутки времени самолеты прибывают из других аэропортов и запрашивают разрешение на посадку у диспетчера. Диспетчер выдает разрешение на посадку, если взлетно-посадочная полоса в настоящий момент не занята садящимся или взлетающим самолетом и количество приземлившихся самолетов не превышает вместимость аэропорта. Самолет терпит крушение в случае, если время полета превышено, а диспетчер так и не выдал разрешения на посадку. Разрешения на посадку выдаются в следующем порядке – сначала самолеты с минимальным остатком времени полета, затем пассажирские, затем все остальные. Разрешение на посадку не выдается, если все стоянки заняты. У самолета на стоянке аэропорт назначения задается случайно. Масса груза или количество занятых мест также задается случайно непосредственно перед вылетом.


На каждом шаге по времени пользователь может вывести следующую информацию:

  • список самолетов в воздухе;

  • список самолетов, остаток времени полета которых не превышает заданную величину;

  • список самолетов на стоянке любого аэропорта;

  • информацию всех предыдущих пунктов можно получить для любого типа самолета;

  • количество пассажиров в полете;

  • общая масса перевозимого груза;

  • общее количество самолетов, потерпевших крушение, количество погибших пассажиров и количество потерянного груза.


      1. Магазин

Разработать программу, имитирующую процесс обслуживания покупателей в магазине с несколькими отделами и кассами. Время дискретно. Каждый отдел торгует несколькими видами товаров, однако, каждый вид товаров продается только в одном отделе. В каждом отделе имеется несколько касс. Запас каждого товара пополняется через случайный период времени. Каждый товар принадлежит виду товара (например, фрукты, хлебобулочные изделия), имеет цену и название (например, яблоко, персик). Кроме того, некоторые товары могут быть скоропортящиеся. У таких товаров есть срок хранения, по истечении которого они автоматически изымаются из продажи. Некоторые товары имеют сезонный спрос. У них цена случайным образом меняется по времени на заданную для этого товара величину. Покупатели появляются в магазине через случайные промежутки времени со случайно задаваемой целью закупки заданного количества определенного вида товара и располагая необходимой для этого суммой. При наличии необходимого количества товара в отделе покупатель заполняет корзину, отправляется в наименее загруженную кассу и рассчитывается. За единицу времени каждая касса может обслужить только одного покупателя. Если какого-то товара не хватает, покупатель кладет в корзину фактически имеющееся количество товара.

У каждого покупателя есть пороговое значение длины очереди. Если длина очереди более этого порогового значения покупатель покидает магазин, не дождавшись обслуживания. В этом случае товары возвращаются в отдел к следующему шагу по времени.

Процесс имитации может быть остановлен пользователем в произвольный момент времени с целью просмотра характеристик:

  • Сколько и на какую сумму любой выбранный товар был продан.

  • Сколько и на какую сумму товар имеется в магазине.

  • Сколько и на какую сумму любой выбранный вид товара был продан.

  • Сколько и на какую сумму вид товара имеется в магазине.

  • Сколько и на какую сумму имеется в магазине скоропортящегося товара с остатком срока хранения не более заданного пользователем количества шагов по времени.

  • Какие сезонные товары сейчас имеют нестандартную цену.

  • Среднее количество покупателей и средняя сумма покупки за шаг по времени.

  • Количество покупателей, не дождавшихся обслуживания.

  • Сумма выручки по каждой кассе, отделу и магазину в целом.


      1. Компьютерные классы

Разработать программу имитации процесса взаимодействия пользователей сетевых компьютерных классов. Время процесса дискретно. Каждый компьютер имеет следующие параметры:

  • тип процессора;

  • объем оперативной памяти;

  • вместимость жесткого диска;

  • вероятность возникновения сбоев в течении часа.

Компьютеры подразделяются на рабочие станции и серверы. Каждая рабочая станция имеет дисплей с заданным максимальным разрешением и принадлежит одному компьютерному классу. Каждый сервер может обслуживать несколько компьютерных классов. Некоторые серверы имеют СУБД (система управления базами данных). Некоторые серверы имеют средства работы с ГИС (географическая информационная система). Некоторые серверы имеют средства резервирования, которые позволяют сохранять работоспособность при одиночном сбое.

Компьютерный класс работоспособен, если в рабочем состоянии находится хотя бы один из способных его обслуживать серверов. Любой компьютер может подвергнуться сбою и потребовать ремонта в течение случайного промежутка времени.

Каждый пользователь следующими параметрами:

  • сетевое имя;

  • сетевой пароль.

Некоторым пользователям для работы нужен дисплей заданным максимальным разрешением. Некоторым – доступ к СУБД, некоторым – доступ к ГИС. Некоторым – произвольная комбинация вышеперечисленных параметров. На вход в сеть и выход из сети требуется один шаг по времени. Свободная рабочая станция может быть случайно переставлена из одного компьютерного класса в другой, на что требуется один шаг по времени. Сервер может быть случайно подключен или отключен от компьютерного класса.

Пользователи появляются в классе через случайные промежутки времени с целью поработать случайное количество времени. Если нет свободных рабочих станций в этом классе, пользователь пытается найти их в других классах. В случае совершения 3-х неудачных попыток отыскать свободную рабочую станцию пользователь покидает область видимости. Пользователям, которым нужен дисплей с заданным разрешением, могут определить это до входа в сеть. Определить – есть ли сервер с СУБД или ГИС в случае такой необходимости можно только после входа в сеть, проверяя серверы, к которым подключен данный класс. При выходе рабочей станции из строя пользователь предпринимает попытку пересесть на другой компьютер. При выходе из строя сервера пользователи остаются в работе тогда, когда имеются другие серверы с требуемым ПО (и имеющие связь с соответствующим компьютерным классом).

Процесс имитации может быть остановлен пользователем программы для просмотра параметров объектов:

  • Сколько работает рабочих станций всего и рабочих станций с заданным разрешением дисплея.

  • Сколько серверов обслуживают заданных компьютерный класс – в т.ч., поддерживающие работу СУБД и ГИС.

  • Сколько имеется свободных исправных рабочих станций, в т.ч., сколько позволяющих использовать СУБД и ГИС, в т.ч. - с разбивкой по классам.

  • Сколько компьютеров неисправно, в т.ч. - сколько рабочих станций и серверов.

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

  • Статистику по пользователям – сколько времени провел каждый и в среднем.

  • Среднее количество попыток, который затратил пользователь на вход в систему, в т.ч. – по пользователям, которым нужны были СУБД и ГИС.


      1. Парикмахерская

Разработать программу имитации работы парикмахерской. Всех парикмахеров можно разделить на три уровня – начинающий, опытный, мастер. Имеется общий перечень услуг. Каждая услуга имеет время обслуживания и стоимость. Каждая услуга относится к одной из четырех категорий – базовой, обычной, сложной и нестандартной. Все парикмахеры умеют выполнять все услуги базовой категории. Опытные парикмахеры дополнительно умеют выполнять некоторые услуги из обычной категории. Мастера дополнительно умеют выполнять все услуги из обычной категории и некоторые из сложной категории. Нестандартные услуги не требуют особой квалификации от парикмахера. Каждый парикмахер может выполнять некоторые нестандартные услуги. Парикмахеры работают по принципу – день работы, три дня отдыха, так что в конкретный день может и не быть парикмахеров, выполняющих определенную услугу. Каждый клиент хочет выполнить какую-то услугу, возможно имеет требования к уровню парикмахера и, возможно, при длине очереди, превышающей заданное число, откажется от услуги. Все клиенты делятся на постоянных и случайных. Постоянные клиенты, в отличие от случайных, посещают парикмахерскую регулярно и, возможно, имеют желание, чтобы какой-то вид работ выполнял определенные парикмахер. Клиенты случайно по времени заходят в парикмахерскую и в случае возможности получить услугу, занимают очередь к определенному парикмахеру (или сразу получают услугу, если очереди нет).

Процесс имитации может быть остановлен пользователем программы для просмотра параметров объектов:

  • Какова выручка каждого парикмахера и парикмахерской в целом и с разбивкой по уровню парикмахеров.

  • Сколько времени в среднем проводит клиент в очереди.

  • Сколько клиентов ушли не обслуженными, в т.ч. - сколько постоянных и сколько случайных.

  • Какова выручка с разбивкой по типам услуг.

  • Насколько выручка парикмахеров, владеющими нестандартными услугами отличается от выручки парикмахеров, не владеющими таковыми.

  • Сколько времени в среднем простаивают парикмахеры с разбивкой по их уровню.

      1. Железная дорога

Разработать программу, имитирующую процесс пассажирских перевозок по железной дороге. Имеются несколько станций, соединенных железнодорожной сетью. Каждая станция имеет координаты. Между станциями курсируют поезда из нескольких вагонов. Каждый поезд имеет номер, станцию отправления, станцию назначения, время убытия со станции отправления и время прибытия на станцию назначения. Каждый вагон имеет номер. Все вагоны делятся на пассажирские и служебные. Все служебные делятся почтовые, вагон-ресторан, вагон-буфет. Все пассажирские вагоны имеют количество мест и цену места на километр расстояния. Пассажирские вагоны подразделяются на сидячие, плацкартные (дополнительно имеется возможность лежать) и купейные (дополнительно имеется возможность лежать и заказать за отдельную плату постель). Кроме того, некоторые вагоны оборудованы телевизорами, некоторые – телефонной связью. Эти опции увеличивают стоимость проезда. Пассажиры, желающие уехать, покупают билеты на станциях, называя номер поезда, дату отъезда и пункт назначения и, возможно, условия: тип вагона, наличие ресторана или буфета, требования к дополнительному оборудованию вагонов. В зависимости от наличия таких поездов и мест кассир обеспечивает пассажира билетом.