Главная страница « Информация « 4 курс « курс ООАП «

Варианты задания практикума по ООАП. 2011-12 учебный год


„Нет проблем! Мы можем покончить с этой ерундой за выходные!“
Э. Йордон „Путь камикадзе“

Требования (версия для Topcased)


В каждом из предложенных вариантов требуется при помощи CASE-средства построить модель программного обеспечения в среде TopCased. Процесс создания модели состоит из нескольких этапов:

  1. Составление глоссария проекта.

  2. Создание модели вариантов использования.

  3. Анализ вариантов использования (по окончании производится промежуточная сдача задания).

  4. Проектирование системы.

Процесс создания модели должен проходить так, как это описано в методическом пособии (см. TopCased) Структура модели должна соответствовать структуре, предусмотренной Rational Unified Process.

После выполнения третьего этапа модель должна удовлетворять перечисленным ниже требованиям. Глоссарий проекта должен иметь вид таблицы и храниться в отдельном файле. Каждое действующее лицо (actor) и вариант использования должны сопровождаться описанием. Описание действующего лица должно коротко (в одну-две строки) сообщать о роли данного лица. Описание варианта использования должно включать в себя краткое описание, предусловие, потоки событий (основной и альтернативные -- один или более) и постусловие. Описания действующих лиц и вариантов использования собрать в один текстовый файл. Описания должны быть составлены на русском языке. Для одного из вариантов использования должна быть составлена диаграмма деятельности, моделирующая его основной поток и альтернативные потоки. В Analysis Model следует создать диаграмму KeyAbstractions, на которой отображены все классы -- ключевые абстракции и связи между ними. Для каждого варианта использования следует создать пакет, названный Use-case realization <Имя варианта использования> внутри Analysis Model. В этом пакете следует создать кооперацию, диаграммы последовательности, реализующие вариант использования (для каждого потока событий по диаграмме) и диаграмму классов View of Participating Classes с классами анализа, участвующими в реализации. Сами классы анализа следует разместить в Analysis Model. В Analysis Model следует создать диаграмму Main, на которой отображены все классы анализа и связи между ними. Все созданные диаграммы должны содержать необходимые пояснения в виде примечаний. В сложных потоках событий ветвления и циклы должны быть промоделированы с помощью блоков на диаграммах последовательности.
В ходе работы рекомендуется перед переходом к анализу вариантов использования согласовать модель вариантов использования с преподавателем.

При проектировании системы (4й этап) требуется:

  1. Разбить систему на уровни.

  2. Создать структуру пакетов внутри Design model, как это описано в методичке.

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

  4. Разместить классы по пакетам в Design model, как это описано в методичке и рассказано в лекциях.

  5. Рассмотреть возможность выделения подсистемы, в частности, в большинстве вариантов предусмотрена работа с устойчивыми объектами, её следует поручить системе обеспечения устойчивости (взаимодействия с БД).

  6. Создать интерфейс подсистемы, дать полные сигнатуры его операциям. Описание интерфейса поместить в текстовый файл, где указать краткое описание (ответственность подсистемы) и таблицу с описанием операций (полная сигнатура, описание).

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

  8. Изменить реализации вариантов использования, указав на них «экземпляры» интерфейсов подсистем.

  9. Уточнить связи между классами системы, заменяя ассоциации на агрегации и композиции или зависимости.

  10. Уточнить типы атрибутов классов и дать полные сигнатуры операциям классов.

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

  12. Для описания поведения экземпляров отдельных классов со сложным поведением построить диаграммы состояний (неменее одной).

  13. Построить диаграммы деятельности для моделирования сложных методов с альтернативами и/или циклами (неменее одной).

  14. Разработать схему базы данных и отобразить ее на диаграмме классов (во всех вариантах, кроме 2, 5, 18, 21).

Список вариантов

  1. Видеопрокат

  2. Торговый автомат

  3. Табло на станции метро

  4. Онлайновая театральная касса

  5. Мини-АТС

  6. Управление контактами с клиентами

  7. Банкомат

  8. Интернет-магазин

  9. Библиотечная система

  10. Web-форум

  11. Каталог ресурсов Web

  12. Генеалогическое дерево

  13. Информационный киоск метро

  14. Турникет метро

  15. Игра «Тетрис»

  16. Система складского учета

  17. Система поддержки составления расписания занятий

  18. Телефон

  19. Игра «Пасьянс-косынка»

  20. Система начисления зарплаты

  21. Система управления лифтами

  22. Система для ввода информации при приеме сотрудника на работу

  23. Торговый терминал

  24. Блог

  25. Клиенты и счета

  26. Система контроля успеваемости

Вариант 1. Видеопрокат

К списку вариантов


Пункт проката видео нуждается в компьютерной системе. Его ассортимент составляет около тысячи видеодисков. В прокате имеются видеодиски разных форматов: DVD, MPEG4, Blu-Ray, HD-DVD. Фильмы закупаются у разных поставщиков. Обычно один заказ поставщику делается на несколько фильмов. База данных хранит обычную информацию о поставщиках: их адреса, телефонные номера и т. д. В каждом заказе поставщику указывается: перечень фильмов; их количество, форматы дисков; отпускная цена.
Каждый видеоноситель при поступлении от поставщика снабжается штрих-кодом (содержащим уникальный идентификационный номер) для того, чтобы сканер, интегрированный в систему, мог поддерживать операции выдачи и возврата видеофильмов.
Каждому клиенту при первом обращении в видеопрокат выдается клиентская карточка со штрих-кодом для автоматизации обработки его запросов. Данные о клиенте (ф. и. о., телефон, адрес) заносятся в базу данных.
При выдаче фильма в прокат устанавливается конкретный период проката (исчисляемый в днях). Плата за прокат вычисляется как произведение количества дней на цену одного дня проката. Цена зависит от формата диска (Blu-Ray дороже DVD и т. п.). Плата за прокат взимается в момент выдачи. За диски, возвращенные позже срока, взимается дополнительная плата за период, превышающий срок проката. Если диск задержан более чем на два дня, клиента ежедневно уведомляют о задержке. После двух уведомлений о задержке одного и того же диска, клиент заносится в список нарушителей. При следующем его обращении в видеопрокат работник проката решает: оставить клиента в списке нарушителей и отказать в обслуживании или удалить из списка нарушителей и обслужить. При порче видеоносителя клиентом с него взимается штраф. Испорченный видеоноситель списывается с баланса пункта проката, данные о нём удаляются из системы.
Система должна обладать поисковым механизмом по базе видео. Работники проката должны иметь возможность быстро получить ответ, имеется ли фильм в наличии, в каком количестве и на каких носителях. Если все носители фильма выданы в прокат, то система должна сообщить ближайшую дату возврата.
Постоянные клиенты (к ним относятся те, кто более десяти раз в течении 12 месяцев воспользовался услугами проката) могут оставлять заявки на фильмы, которых нет в прокате и которые не заказаны у поставщика. Фильмы из таких заявок включаются в следующий заказ поставщику, и в момент поступления фильмов от поставщика клиенты уведомляются о выполнении их заявок. Данные о выполненных заявках хранятся в течение 12 месяцев, после чего удаляются.
Клиенту одновременно могут быть выданы несколько дисков, однако каждому выданному видеоносителю ставится в соответствие отдельная запись. Для каждого выдаваемого напрокат фильма фиксируются дата и время выдачи, стоимость проката, установленный и фактический срок возврата. При возврате запись о прокате обновляется, чтобы отразить этот факт. Кроме того, запись хранит информацию о работнике, оформившем прокат. Записи хранятся в течение 12 месяцев, после чего удаляются.

Вариант 2. Торговый автомат

К списку вариантов


В автомате имеется пять лотков для хранения и выдачи товаров.

Внешний вид торгового автомата

Внешний вид автомата изображен на рисунке. Загрузка товаров на лотки осуществляется обслуживающим персоналом. Автомат следит за наличием товара. Если какой-либо товар распродан, автомат отправляет сообщение об этом на станцию обслуживания по линии связи и информирует покупателей (зажигается красная лампочка рядом с лотком данного товара).
Автомат принимает к оплате бумажные купюры и монеты. После ввода денег клиент выбирает товар нажатием на кнопку выдачи товара нужного ему лотка. Выдача товара производится только в том случае, если товар имеется в наличии и если введенная сумма денег не меньше цены товара. Если сумма превышает цену, клиенту выдается сдача. Товар выдается поштучно.
На автомате имеется информационное табло, на котором высвечивается текущая сумма денег, принятых автоматом к оплате, и сообщения для клиентов, такие как: «введите деньги», «нажмите кнопку выдачи», «введенной суммы недостаточно», «товара нет в наличии», «заберите покупку», «заберите сдачу», «заберите деньги», «добавьте сумму ... руб. чтобы получить сдачу».
Купюры и монеты, имеющиеся в распоряжении автомата, хранятся в денежном ящике. Автомат хранит сведения о том, сколько купюр или монет какого номинала есть в ящике. Принимаются купюры по 10, 50, 100, 500, 1000, 5000 рублей и монеты по 1, 2, 5, 10 рублей. Возможна ситуация, когда у автомата нет возможности выдать сдачу теми купюрами или монетами, что хранятся в ящике. В этом случае после нажатия на кнопку выдачи товара не производится выдача, а выводится сообщение, указывающее, минимальную сумму, которую надо добавить клиенту, чтобы автомат смог выдать сдачу. Например, Вася П. покупает напиток «Blue Bull» за 25 рублей, опуская 3 монеты по 10 рублей. Пусть в автомате есть только 10 монет по 2 рубля, монет по 5 рублей и по 1 рублю нет, поэтому автомат высвечивает сообщение «Добавьте сумму 1 руб. чтобы получить сдачу.».
При нажатии на кнопку "Возврат" клиенту возвращаются все принятые от него к оплате деньги. Возврат денег не производился после выдачи товара. Автомат должен корректно работать при одновременном нажатии на кнопки выдачи товара и возврата денег.
В специальном отделении автомата, закрываемом замком, есть сервисная консоль, которая используется обслуживающим персоналом. С консоли производится управление доступом к ящику с деньгами для изъятия/добавления купюр и монет, управление доступом к товарным лоткам для загрузки или замены товара, а также ввод данных о товарах на лотках в память автомата. Данные включают в себя цену, наименование товара, номер лотка, на котором находится товар и количество товара на лотке.

Вариант 3. Табло на станции метро

К списку вариантов


Табло расположены на каждой станции метро. Они работают под управлением единой информационной службы метро. Табло отображает текущее время (часы, минуты, секунды) и время, прошедшее с момента отправления последнего поезда (минуты, секунды). Момент прибытия и отправления поезда определяется при помощи датчиков, устанавливаемых на путях. Все табло метро синхронизованы, текущее время отсчитывается и устанавливается из центральной службы времени, являющейся частью единой информационной службы метро.
На табло высвечивается конечная станция назначения прибывающего поезда. Эти данные содержатся в расписании движения поездов, которое хранится в памяти табло и периодически обновляется единой информационной службой метро.
В "бегущей строке" табло отображается рекламная информация. Память табло хранит до 10 рекламных сообщений. Сообщения отображаются друг за другом с небольшими паузами, циклически. Содержание рекламных сообщений поступает из единой информационной службы метро.
Дополнительная функция табло – по запросу единой информационной службы метро оно пересылает данные о нарушениях расписания (преждевременных отправлениях поездов или опозданиях).
В ходе выполнения задания должна быть создана схема базы данных для хранения рекламных сообщений, расписания и сведений о нарушении расписаний.
Пояснение: в задании требуется разработать модель ПО только для табло, но не для информационной службы метро.

Вариант 4. Онлайновая театральная касса

К списку вариантов


Онлайновая театральная касса "Билетов.Нет" представляет собой web-сайт службы бронирования и доставки билетов на спектакли и концерты.
Перед тем как впервые воспользоваться услугами кассы клиент должен зарегистрироваться. В ходе регистрации он указывает данные о себе (ф. и. о., телефон, адрес электронной почты) и получает логин и пароль (логины и пароли разных клиентов не должны совпадать).
Войдя в систему, клиент может ознакомиться с афишей, выбрать интересующее его мероприятие, указав название, дату и место проведения. Получив от системы сведения о билетах имеющихся в наличии, пользователь может забронировать нужное ему количество билетов. Билеты бывают разных типов: партер, балкон, ложа, бельэтаж, 1-2-3 ярус, vip-места и т. п. Цена билета зависит от его типа и расположения зрительского места. Билеты могут быть выкуплены в течение трех суток с момента бронирования, но не позднее пяти суток до начала спектакля. Клиент может самостоятельно выкупить забронированные билеты, приехав в офис, или заказать доставку билетов курьером, сделав пометку в заявке и указав адрес доставки. Стоимость доставки зависит от дальности: центр / спальный район / дальний пригород. Клиент может получить информацию обо всех своих заявках с web-страницы онлайновой кассы.
Заявки клиентов хранятся в системе. В каждой указаны: сведения о клиенте, название спектакля, место и время проведения, количество и тип забронированных билетов, стоимость билетов, время создания заявки, время оплаты, вид доставки (самовывоз / курьер), адрес доставки, стоимость доставки, статус заявки (новая / рабочая / оплаченная / аннулированная). По истечении 12 месяцев с момента создания заявки данные автоматически удаляются из системы.
В обязанности работников онлайновой кассы входит внесение в систему сведений о мероприятиях и об имеющихся в продаже билетах. Данные о мероприятии – вид: концерт / шоу / спектакль; название; описание; место проведения; дата; – хранятся в системе. Один и тот же спектакль может идти в разные дни и в разных местах, но разные спектакли не могут пересекаться по времени и месту проведения. Запись о билете содержит название спектакля, дату, время, место проведения, тип билета, ряд и место, цену билета, статус билета (есть в наличии / забронирован / продан / передан для реализации). По истечении 12 месяцев с даты, указанной в билете, данные автоматически удаляются из системы.
Работник кассы, получив новую заявку клиента, связывается с ним для подтверждения и уточнения мест. Согласовав с клиентом места, работник делает пометку о бронировании билетов в системе (тем самым уменьшается количество билетов, имеющихся в наличии) и меняет статус заявки на "рабочая". После оплаты и/или доставки "рабочей" заявки билеты из заявки помечаются как проданные, а заявка – как оплаченная. За 5 суток до начала спектакля все не проданные билеты передаются для реализации в обычные кассы, в системе они автоматически помечаются как "передан для реализации", заявки на них аннулируются, клиенты, не успевшие оплатить заказанные билеты, информируются о снятии брони. Через 4 суток после создания "рабочие" заявки автоматически аннулируются, бронирование с билетов снимается, клиентам посылается соответствующее сообщение. Также должна быть возможность аннулирования заявок вручную работниками онлайновой кассы. При аннулировании заявки вручную работник должен уведомить клиента, изменить статус заявки, снять бронирование билетов (количество билетов в наличии возрастает).

Вариант 5. Мини-АТС

К списку вариантов


Мини-АТС осуществляет связь между служащими учреждения. Каждый абонент подключен к ней линией связи. Мини-АТС соединяет линии абонентов (осуществляет коммутацию линий). Абоненты имеют номера, состоящие из трех цифр. Специальный номер "9" зарезервирован для внешней связи.
Телефонное соединение абонентов производится следующим образом. Абонент поднимает трубку телефона, и мини-АТС получает сигнал "Трубка". В ответ мини-АТС посылает сигнал "Тон". Приняв этот сигнал, абонент набирает телефонный номер (посылает три сигнала "Цифра"). Мини-АТС проверяет готовность вызываемого абонента. Если абонент не готов (его линия занята), мини-АТС посылает вызывающему абоненту сигнал "Занято". Если абонент готов, мини-АТС посылает обоим абонентам сигнал "Вызов". При этом телефон вызываемого абонента начинает звонить, а вызывающий абонент слышит в трубке длинные гудки. Вызываемый абонент снимает трубку, и мини-АТС получает от него сигнал "Трубка", после чего осуществляет коммутацию линии. Абоненты обмениваются сигналами "Данные", которые мини-АТС должна передавать от одного абонента к другому. Когда один из абонентов опускает трубку, мини-АТС получает сигнал "Конец" и посылает другому абоненту сигнал "Занято". В любой момент разговора абонент может положить трубку, при этом мини-АТС получает сигнал "Конец". После получения этого сигнала сеанс обслуживания абонента завершается.
Если вызываемый абонент не подходит к телефону, то вызывающий абонент может, не дождавшись, повесить трубку. В этом случае мини-АТС получает сигнал "Конец" и завершает сеанс. Вызываемому абоненту посылается сигнал "Сброс" для отмены вызова.
Если абонент желает соединиться с абонентом за пределами учреждения, то он набирает номер "9". Мини-АТС посылает по линии, соединяющей с внешней (городской) АТС, сигнал "Трубка" и в дальнейшем служит посредником между телефоном абонента и внешней АТС. Она принимает и передает сигналы и данные между ними, не внося никаких изменений. При завершении сеанса, получив от внешней АТС сигнал "Занято" (в случае если вызываемый абонент первым повесил трубку), мини-АТС посылает абоненту сигнал "Занято", ждет сигнала "Конец" для завершения обслуживания абонента и передает его внешней АТС. Если вызывавший абонент первым вешает трубку, то мини-АТС получает сигнал "Конец" и передает его городской АТС и завершает сеанс. Мини-АТС может получить сигнал "Вызов" от городской АТС. Это происходит, когда нет соединений с внешними абонентами. Сигнал "Вызов" от городской АТС передается абоненту с кодом "000". Только этот абонент может отвечать на внешние звонки. Если абонент "000" долго не отвечает на внешний вызов, от городской АТС может придти сигнал "Сброс". Он передается абоненту "000", и сеанс завершается.

Вариант 6. Управление контактами с клиентами

К списку вариантов


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

Вариант 7. Банкомат

К списку вариантов


Банкомат – это автомат для выдачи наличных денег по кредитным пластиковым карточкам. В его состав входят следующие устройства: дисплей, панель управления с кнопками, приемник кредитных карт, хранилище денег и лоток для их выдачи, хранилище конфискованных кредитных карт, принтер для печати справок, сервисная консоль. Банкомат подключен к линии связи для обмена данных с банковским компьютером, хранящим сведения о счетах клиентов.
Обслуживание клиента начинается с момента помещения пластиковой карточки в банкомат. После распознавания типа пластиковой карточки, банкомат выдает на дисплей приглашение ввести персональный код. Персональный код представляет собой четырехзначное число. Затем банкомат проверяет правильность введенного кода, сверяя с кодом, хранящимся на карте. Если код указан неверно, пользователю предоставляются еще две попытки для ввода правильного кода. В случае повторных неудач карта перемещается в хранилище карт, и сеанс обслуживания заканчивается. После ввода правильного кода банкомат предлагает пользователю выбрать операцию. Клиент может либо снять наличные со счета, либо узнать остаток на его счету, либо осуществить безналичный платеж со своего счёта.
При снятии наличных со счета банкомат предлагает указать сумму (100, 200, 500, 1000, 5000, 10000, 20000, 50000 рублей). После выбора клиентом суммы банкомат запрашивает, нужно ли печатать справку по операции. Затем банкомат посылает запрос на снятие выбранной суммы центральному компьютеру банка. В случае получения разрешения на операцию, банкомат проверяет, имеется ли требуемая сумма в его хранилище денег, и может ли он выдать запрошенную сумму банкнотами, имеющимися в наличии (например, если в банкомате нет банкнот достоинством менее 1000 рублей, он не может выдать никакую сумму не кратную 1000). Если банкомат может выдать деньги, то на дисплей выводится сообщение "Выньте карту". После удаления карточки из приемника, банкомат выдает указанную сумму в лоток выдачи. Банкомат печатает справку по произведенной операции, если она была затребована клиентом.
Если клиент хочет узнать остаток на счету, то банкомат посылает запрос центральному компьютеру банка и выводит сумму на дисплей. По требованию клиента печатается и выдается соответствующая справка.
Если клиент хочет осуществить безналичный платеж, то банкомат запрашивает у него банковские реквизиты получателя платежа и сумму платежа. Затем банкомат посылает запрос банковскому компьютеру на совершение платежа. Варианты ответа на такой тип запроса следующие: платеж осуществлён; ошибка в реквизитах получателя платежа; недостаточно денег на счету клиента для осуществления платежа. В случае успешного совершения платежа, на дисплей выводится сообщение "Выньте карту". После удаления карточки из приемника, банкомат печатает справку по произведенной операции, если она была затребована клиентом. Сервисная консоль, которая используется обслуживающим персоналом, находится в специальном отделении банкомата, закрываемом на замок. С консоли производится управление доступом к хранилищу денег для загрузки банкнот, управление доступом к хранилищу конфискованных карт, конфигурация сетевого соединения с банковским компьютером и проверка его работоспособности.

Вариант 8. Интернет-магазин

К списку вариантов


Магазин компьютеров предлагает возможность приобретения своих товаров через Интернет. Клиент может выбрать компьютер на web-странице магазина. Компьютеры подразделяются на серверы, настольные, портативные и карманные. Заказчик может выбрать стандартную конфигурацию из списка и детально ознакомиться с ней на отдельной web-странице. Если стандартная конфигурация ему не подходит, он может построить требуемую ему конфигурацию в диалоговом режиме. Компоненты конфигурации (такие, как оперативная память, процессор, жесткий диск и т. п.) представляются как список для выбора из доступных альтернатив. Для каждой новой конфигурации система может подсчитать цену.
Чтобы оформить заказ, клиент должен заполнить электронную форму с адресами для доставки товара и отправки счета-фактуры, а также деталями, касающимися оплаты. Оплата компьютеров осуществляется наличными курьеру, осуществляющему доставку, или банковским переводом на счет Интернет-магазина. После ввода заказа система отправляет клиенту по электронной почте сообщение с подтверждением получения заказа вместе с относящимися к нему деталями (стоимость, номер счета, банковские реквизиты для безналичной оплаты и т. п.). Пока клиент ожидает прибытия компьютера, он может проверить состояние заказа (поставлен в очередь / собран / отправлен). Работник магазина проверяет, поступила ли оплата (в случае безналичного расчета) и делает соответствующую пометку при поступлении денег. Если деньги не поступают в течение 5 банковских дней, заказ аннулируется. После оплаты или в случае оплаты наличными работник печатает счет-фактуру и отправляет ее на склад вместе с требованием заказанной конфигурации. Заказ помечается как поставленный в очередь. Собранный компьютер вместе со счетом-фактурой и накладной передается со склада в отдел доставки, при этом заказ помечается как собранный. Компьютер поставляется клиенту (статус заказа – отправлен). Если заказ оплачивается наличными, курьер по возвращении передает деньги в кассу, заказ помечается как оплаченный.
По окончании работы с заказом, он помечается в системе как выполненный. Заказы хранятся в системе в течение 15 месяцев с момента создания для составления годовых и квартальных отчетов, после чего автоматически удаляются.

Вариант 9. Библиотечная система

К списку вариантов


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

  • какие книги были выданы за данный промежуток времени;

  • какие книги были возвращены за данный промежуток времени;

  • какие книги находятся у данного читателя;

  • имеется ли в наличии некоторая книга.

Вариант задания предусматривает разработку схемы базы данных, хранящей данные о читателях, каталоге книг и реестре экземпляров.

Вариант 10. Web-форум

К списку вариантов


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

Вариант 11. Каталог ресурсов Web

К списку вариантов


В каталоге хранится следующая информация о ресурсах: название ресурса, уникальный локатор ресурса (URL), раздел каталога, в котором содержится ресурс, список ключевых слов, краткое описание, дата последнего обновления, контактная информация.
Доступ пользователей к каталогу осуществляется при помощи браузера. Пользователи каталога могут добавлять новые ресурсы, информация о которых не была внесена ранее. Ресурсы в каталоге классифицируются по разделам. Полный список ресурсов каждого раздела должен быть доступен пользователям. Количество ресурсов в разделе может быть большим, поэтому пользователь может выбрать количество, отображаемое на одной странице, например 25, тогда на первой странице раздела отображается список из первых 25 ресурсов, на второй – следующие 25 и т. д. Ресурсы в списке могут быть упорядочены по дате обновления или по названиям (по алфавиту).
Пользователям каталога должны быть предоставлены возможности по поиску ресурсов в каталоге. Поиск осуществляется по ключевым словам. Если пользователь не доволен результатами поиска, он может уточнить запрос (осуществить поиск среди результатов предыдущего поиска). Должна быть возможность выдавать результаты поиска в разной форме (вывод всей информации о ресурсах или частичной). Пользователь может отсортировать результаты поиска по релевантности (соответствию ключевым словам из запроса) или по дате обновления.
Поскольку содержание ресурсов Интернет со временем изменяется необходимо следить за датой последнего обновления, периодически опрашивая Web-сайты, URL которых хранятся в каталоге.
Вариант задания включает в себя разработку схемы базы данных для хранения информации каталога. База данных о ресурсах является частью каталога.

Вариант 12. Генеалогическое дерево

К списку вариантов


Система хранит сведения о персонах (ф. и. о., пол, дата рождения, дата смерти, биография) и о родственных связях между ними. Связи бывают только трех видов: "мужья-жены", "дети-родители" и "братья-сестры". Система обеспечивает возможность добавления данных о новых персонах и родственных связях, изменение введенных данных и удаление ненужных данных. Система следит за непротиворечивостью вводимых данных. Например, недопустимо, чтобы человек был собственным предком, потомком, супругом или братом.
Разработанная модель должна содержать схему базы данных для хранения генеалогических деревьев. База является частью системы.
Система должна обеспечивать конфиденциальность генеалогических данных. Каждый пользователь, зарегистрированный в системе, имеет доступ только к созданным им генеалогическим деревьям. Процессом регистрации пользователей управляет администратор, который может "завести" нового пользователя, приостановить действие его регистрации, возобновить действие приостановленной регистрации, окончательно удалить заведённого пользователя из системы. Генеалогические данные, введённые удаляемыми пользователями, если таковые были, удаляются. Пользователи системы могут осуществлять поиск полезной информации по дереву:

  • находить для указанного члена семьи его детей;

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

  • находить для указанной персоны братьев и сестер, если таковые есть;

  • получать список всех предков персоны;

  • получать список всех потомков персоны;

  • получать список всех родственников персоны;

  • прослеживать цепочку родственных связей от одной персоны до другой, если таковые есть (например, если Петр является шурином Ивана, то на запрос о родственных связях между Петром и Иваном выдается такой результат: «Петр – брат Ольги, Ольга – жена Ивана»).

Вариант 13. Информационный киоск метро

К списку вариантов


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

  • интерактивная схема метро;

  • правила пользования метрополитеном;

  • исторические сведения о метрополитене в целом (с фотографиями);

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

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

Вариант 14. Турникет метро

К списку вариантов


Турникеты контролируют проход пассажиров в метро и взимают входную плату. Любой турникет имеет устройство, считывающее данные с бесконтактных карт, два набора створок из ударопрочного стекла для перекрывания прохода, таймер, оптические датчики для контроля прохода пассажира, устройство подачи звуковых сигналов, индикаторы "Проход" и "Стоп", индикатор количества оставшихся поездок.
В начальном состоянии турникета зажжен индикатор "Стоп", индикатор "Проход" потушен, передние и задние створки закрыты. Если один из датчиков, расположенных до передних створок, или после задних створок, посылает сигнал, то турникет подаёт предупредительный звуковой сигнал и остается в исходном состоянии. Для прохода пассажир должен поднести бесконтактную карту к считывающему устройству. Каждая карта имеет срок годности, по истечении которого она не может быть использована для прохода. Карты бывают двух типов: с фиксированным количеством поездок и с неограниченным количеством поездок. Турникет считывает с карты данные: срок годности карты, номер карты, тип карты и количество поездок. Если данные не удается считать, или карта просрочена, или количество поездок нулевое, то турникет подает предупредительный звуковой сигнал и остается в исходном состоянии. Иначе с карты с фиксированным количеством поездок списывается одна поездка, индикатор "Стоп" гаснет, зажигается индикатор "Проход", индикатор количества оставшихся поездок высвечивает текущее значение, открываются передние створки и пассажир может пройти сквозь турникет до задних створок, которые пока закрыты. Получив от датчика между передними и задними створками сигнал, что пассажир прошёл внутрь, турникет закрывает передние створки и открывает задние створки. Когда датчик после задних створок сообщает, что пассажир вышел из турникета, задние створки закрываются, и турникет возвращается в начальное состояние. Если карта имеет неограниченное количество поездок, то в течение пяти минут после прохода пассажира с этой картой должны блокироваться остальные попытки прохода с ней через все турникеты данной станции метро. При проходе с картой такого типа индикатор количества оставшихся поездок высвечивает символ ∞ (бесконечность).
Турникет заносит в свою память время всех проходов и номера карт, используемых при проходах. В конце рабочего дня он передает всю информацию, накопленную за день, в АСУ метрополитена.
В ходе выполнения этого варианта задания должна быть разработана схема базы данных о проходах через турникет.

Вариант 15. Игра «Тетрис»

К списку вариантов


В ходе игры программа отображает прямоугольное игровое поле размером 50 х 15 клеток – "стакан", в который падают одна за другой кости. Кости состоят из 4-х клеток и бывают следующих видов:

Виды игровых костей

Рис. 15.1. Виды игровых костей.
Игрок во время падения кости может сдвигать ее влево или вправо, поворачивать ее относительно центра и "уронить" ее, не дожидаясь, пока она достигнет дна. Скорость падения кости зависит от количества набранных очков (увеличивается после каждой сотни). Очки начисляются игроку за полностью заполненные горизонтальные ряды (15 очков за ряд). Падение кости прекращается, когда непосредственно под любой из ее клеток оказывается клетка ранее упавшей кости или дно "стакана". По окончании падения анализируется ситуация на игровом поле. Все образовавшиеся заполненные ряды удаляются, при этом начисляются очки. Удаление рядов может привести к изменению положения клеток костей, под которыми удалена опора, и образованию новых заполненных рядов. Например (см. рис. 15.2), после падения квадратной кости удаляется второй снизу заполненный ряд, Т-образная кость теряет опору и смещается на дно, образуется еще один заполненный ряд, который также удаляется.

Изменение игровой ситуации

Рис. 15.2. Изменение игровой ситуации при удалении заполненных рядов.
По окончании анализа игровой ситуации случайным образом определяется тип и цвет очередной кости, которая появляется в середине верхней части "стакана" и начинает падать. Игра заканчивается, если после падения кости какая-либо ее клетка оказывается в верхнем ряду игрового поля. Если результат игрока оказывается одним из 10 лучших, программа запрашивает его имя и сохраняет запись о нем в таблице рекордов. Записи в таблице упорядочены по невозрастанию количества набранных очков. По окончании игры пользователь может начать новую или выйти из программы.
В ходе игры пользователь выйти из игры, нажав кнопку выхода, при этом можно сохранить текущее состояние игрового поля, чтобы в следующий раз начать играть в сохраненном состоянии. Можно начать игру заново, нажав соответствующую кнопку.
Для удобства игроков программу можно настроить, указав клавиши для управления падающей костью, клавишу выхода и др.
В ходе выполнения этого варианта задания должна быть разработана схема базы данных о состоянии игрового поля и таблице рекордов.

Вариант 16. Система складского учета

К списку вариантов


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

  • список всех товаров;

  • инвентаризационную опись товаров, имеющихся в наличии;

  • список товаров, количество которых необходимо пополнить;

  • список товаров, поставляемых данным поставщиком;

  • все позиции в каком-либо приходе товара;

  • все позиции в какой-либо расходной накладной.

Система осуществляет поиск информации о клиенте или поставщике по части названия фирмы. Это необходимо, чтобы работники склада могли связаться с фирмой по какому-либо вопросу.
В ходе выполнения этого варианта задания должна быть разработана схема базы данных, хранящей информацию о товарах, приходах и расходах товара, поставщиках и клиентах.

Вариант 17. Система поддержки составления расписания занятий

К списку вариантов


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

Вариант 18. Телефон

К списку вариантов


Аппарат подключен к линии связи, ведущей к мини-АТС. В его задачу входит прием и передача сигналов (в том числе и голосовых данных) от мини-АТС. Аппарат имеет кнопочную панель управления, соединение с линией сети, экран для отображения набираемых номеров, звонок и трубку, в которую встроены микрофон и громкоговоритель.
В начальном состоянии трубка телефона повешена, телефон не реагирует на нажатия кнопок. Пользователь телефона, желающий сделать звонок, снимает трубку. Телефон подает на АТС сигнал "Трубка". При получении ответного сигнала "Тон" от АТС телефон воспроизводит звуковой тон "Готов" (длинный непрекращающийся гудок) в трубку. При получении сигнала "Занято" (посылается если АТС не может сейчас обслужить абонента) в трубке воспроизводится тон "Занято" (частые короткие гудки).
Пользователь, слыша в трубке тон "Готов", набирает трехзначный номер. Номер может быть набран при помощи кнопок с цифрами или нажатием на специальную кнопку "#". При нажатии на кнопку с цифрой соответствующий ей сигнал "Цифра" передается АТС. Нажатия на кнопки с цифрами после третьего игнорируются. Во время набора номера введенные цифры отображаются на экране. Последний полностью набранный номер запоминается в памяти аппарата для того, чтобы можно было его воспроизвести при нажатии на кнопку "#". При нажатии на эту кнопку номер из памяти аппарата высвечивается на экране, и АТС передается последовательность из трех сигналов "Цифра". В ответ на набранный номер от АТС приходит либо сигнал "Занято" (если вызываемый абонент занят), либо сигнал "Вызов". При получении сигнала "Вызов" телефон воспроизводит в трубку длинные гудки до того момента, когда АТС осуществит коммутацию и передаст сигнал "Данные".
Телефонный громкоговоритель воспроизводит данные, передаваемые с сигналом. Ответ пользователя воспринимается микрофоном трубки, преобразуется в сигнал "Данные" и передается АТС. Обмен данными прерывается, если повешена трубка одного из телефонов, участвующих в обмене. О том, что трубку повесил вызываемый абонент, сообщает сигнал "Занято", посылаемый АТС.
Получив сигнал "Занято" телефон ожидает, когда пользователь повесит трубку, игнорируя нажатия кнопок и т. п.
После того, как трубка аппарата была повешена, телефон посылает АТС сигнал "Конец", и переходит в начальное состояние. Сеанс завершается.
В начальном состоянии телефон может получить от АТС сигнал "Вызов", при этом его звонок начинает звонить. Пользователь, принимая вызов, поднимает трубку, при этом АТС получает сигнал "Трубка", осуществляет коммутацию с вызывающим абонентом и начинает передачу голосовых данных. Завершение сеанса такое же, как ранее описанное.
Если вызываемый абонент не подходит к телефону, то вызывающий абонент может, не дождавшись, повесить трубку. Его телефон в этом случае посылает АТС сигнал "Конец" и завершает сеанс. Телефон вызываемого абонента принимает сигнал "Сброс", перестает звонить и переходит в начальное состояние.

Вариант 19. Игра «Пасьянс-косынка»

К списку вариантов


В игре участвует колода из 52 игральных карт. Устанавливается следующее старшинство (по возрастанию): туз, 2, 3, ..., 10, валет, дама, король. В колоде четыре масти: черные (пики, трефы) и красные (бубны, червы). В начале игры карты располагаются в колоде случайным образом, затем выкладываются на игровое поле. В поле располагаются семь стопок (в первой – одна, во второй – две, ..., в седьмой – семь карт), дом, состоящий из четырех столбцов, и не розданная часть колоды. Каждая стопка состоит из открытой и закрытой части. В начале игры в каждой стопке открыта лишь последняя карта. В не розданной колоде открыта верхняя карта.
Цель игрока состоит в том, чтобы сложить в столбцах дома четыре масти карт по порядку старшинства (от туза до короля). Для этого он может делать следующие ходы с открытыми картами:

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

  • поместить последнюю карту стопки или верхнюю карту открытой части колоды в дом, если она подходит по масти и старшинству (например, 3♠ на 2♠);

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

  • сделать такой же ход с несколькими подряд идущими картами какой-либо стопки, включая последнюю(!) (например, 10 пик, 9 червей, 8 пик, 7 бубей переложить на валета червей из другой стопки);

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

Помимо указанных ходов пользователь может:

  • открыть последнюю закрытую карту стопки, если ее открытая часть пуста;

  • открыть закрытую верхнюю карту колоды и положить ее сверху открытой части колоды;

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

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

  • за перемещение карты в дом +10 очков;

  • за возврат карты из дома в стопку -15 очков;

  • за перемещение карты из колоды в стопку +5 очков;

  • за открытие карты в стопке +5 очков;

  • за каждый повторный просмотр колоды -100 очков;

  • при отмене пользователем последнего действия начисленные очки (в плюс или в минус) снимаются.

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

Вариант 20. Система начисления зарплаты

К списку вариантов


Перед информационной службой компании поставлена задача создания новой системы начисления зарплаты взамен морально устаревшей существующей системы. Новая система должна предоставлять служащим возможность записывать электронным способом информацию по учету рабочего времени и автоматически формировать чеки на оплату, учитывающие количество отработанных часов и общий объем продаж (для служащих, получающих комиссионное вознаграждение).
Новая система должна предоставлять служащим возможность ежедневно вводить информацию об отработанном времени, вводить заказы на поставку, изменять свои параметры (такие, как способ оплаты за работу), и формировать различные отчеты. Система должна работать на персональных компьютерах служащих всей компании. В целях обеспечения безопасности и аудита служащие должны иметь возможность доступа и редактирования только своих данных, доступ к чужим данным должен быть запрещен.
В системе должна храниться информация обо всех служащих компании в различных странах. Система должна обеспечивать правильную и своевременную оплату работы каждого служащего в соответствии с указанным им способом. Компания из соображений экономии расходов желает сохранить без изменений одну из существующих баз данных, которая содержит всю информацию относительно заказов, должностных месячных окладов и тарифов. Эта БД функционирует в среде DB2 на мейнфрейме IBM. Новая система может читать из нее данные, но не может обновлять их.
Некоторые служащие получают почасовую зарплату. Она начисляется на основе записей по учету рабочего времени, каждая из которых содержит дату и количество часов, отработанных в соответствии с конкретным тарифом. Если какой-либо служащий отработал в день более 8 часов, сверхурочное время оплачивается с коэффициентом 1.5. Служащие-почасовики получают зарплату каждую пятницу.
Некоторые служащие получают фиксированный оклад. Однако система должна вести учет количества отработанных ими часов, чтобы снижать выплату на 5%, если служащий отработал менее 40 часов в неделю. Сверхурочные служащим с фиксированным окладом оплачиваются на тех же основаниях, что и почасовикам. Расчет и выплата служащим с окладом осуществляется в последний рабочий день месяца.
Некоторые из служащих с фиксированным окладом также получают комиссионное вознаграждение, учитывающее объем продаж. Помимо отработанного времени они указывают в системе заказы, по которым подсчитывается объем продаж за месяц. Процент комиссионного вознаграждения определяется индивидуально для каждого служащего и может составлять 10%, 15%, 25% или 35%.
Служащие ежегодно уходят в отпуск на 28 рабочих дней. Служащий может проинформировать систему об уходе в отпуск заблаговременно (срок, оставшийся до ухода в отпуск, не может быть меньше 60 дней). Отпускные выплачиваются служащему авансом и составляют среднее из выплат за 3 месяца, предшествующих отпуску.
Одной из наиболее часто используемых возможностей новой системы является формирование различных отчетов: запросить количество отработанных часов, суммарную зарплату, оставшееся время отпуска и т.д.
Служащие могут выбирать способ оплаты за работу. Они могут получать свои чеки на оплату по почте, на счет в банке или на руки в офисе.
Администратор системы ведет информацию о служащих. В его обязанности входит ввод данных о новых служащих, удаление данных и изменение любой информации о служащем, такой, как имя, адрес и способ оплаты, а также формирование различных отчетов для руководства.
Приложение начисления зарплаты запускается автоматически каждую пятницу и в последний рабочий день месяца, рассчитывая в эти дни зарплату соответствующих служащих. Начисление зарплаты должно производиться автоматически, без ручного вмешательства.
В ходе выполнения этого варианта задания должна быть разработана схема базы данных по учету рабочего времени, отпускам и выплатам.

Вариант 21. Система управления лифтами

К списку вариантов


В здании "С" комплекса небоскребов "Башня на Набережной" в Москва-Сити для перемещения между 57 этажами используется система из 10-ти лифтов. Каждый лифт состоит из шахты, кабины и мотора, приводящего кабину в движение. Внутри шахт на каждом этаже находятся датчики прибытия кабины на этаж. В кабине находятся следующие устройства:

  • кнопки назначения (по одной на этаж), с помощью которых пассажиры указывают нужные им этажи;

  • кнопка "СТОП", препятствующая закрыванию дверей;

  • индикатор текущего этажа, отображающего этаж, на котором остановилась или мимо которого проезжает кабина;

  • индикатор направления, в котором движется или будет двигаться кабина;

  • датчик перегрузки;

  • индикатор перегрузки, загорающийся при переполнении кабины;

  • автоматически открывающиеся и закрывающиеся двери.

На этажах кроме первого и последнего расположены две кнопки вызова (вверх и вниз, на первом – только вверх, на последнем – только вниз), а также возле каждой лифтовой шахты находятся индикаторы текущего этажа и направления движения кабины. На первом этаже находится переключатель аварийного режима, при переключении которого все кабины должны спуститься на первый этаж и открыть двери. При обратном переключении после спуска всех кабин лифты переходят в обычный режим работы.
Все лифты управляются единой программной системой. Управление должно обеспечить доставку пассажиров на нужный им этаж. Например, поднимающаяся кабина не должна двигаться вниз, до тех пор, пока не остановится на всех назначенных пассажирами этажах. Аналогично, опускающаяся кабина не должна двигаться вверх, пока не доставит всех желающих спуститься. Движущиеся кабины (пустые или полные) должны останавливаться на промежуточных этажах, забирая попутных пассажиров. Кабина должна открыть двери, ждать 15 секунд для входа/выхода пассажиров, после чего закрыть двери. При переполнении кабины должен загораться индикатор перегрузки, перегруженная кабина не должна закрывать двери и приходить в движение. Нажатие на кнопку "СТОП", пока кабина неподвижна, должно вызывать открытие дверей, 15-тисекундное ожидание и переход в обычный режим. В кабине, пришедшей в движение, нажатие на кнопку "СТОП" должно игнорироваться. Система должна принять нужные пассажирам этажи, реагируя на нажатия кнопок назначения. О принятии назначения сигнализирует подсветка кнопки. Когда назначение выполнено, подсветка выключается. Если вошедшие пассажиры назначают этажи в направлении, не совпадающем с текущим, такие назначения должны игнорироваться. Для экономии энергии остановившиеся кабины без пассажиров должны быть неподвижны, пока нет вызовов.

Вариант 22. Система для ввода информации при приеме сотрудника на работу

К списку вариантов


Подразделение/кафедра выбирается путем позиционирования на определенной (нужной) строке. Подразделения меняются сравнительно часто и поэтому их названия и коды хранятся в соответствующих справочниках.
Должности также выбираются в соответствии со штатным расписанием. Если соответствующие должности уже заняты, то ввод не может быть осуществлен.
Каждому сотруднику в соответствии с имеющимися ограничениями должен быть присвоен тарифный разряд.
Наряду с другими сведениями, вводится информация о знании иностранных языков. Языки выбираются из списка. Выбор может быть множественным (т.е. сотрудник может владеть более чем одним языком). Все выбранные позиции должны быть видны; пользователь может корректировать свой выбор перед тем, как окончательно занести данные в БД. Кроме названия языка, фиксируется еще и степень владения языком.
Запрещается принимать на работу лиц пенсионного возраста.
При приеме на преподавательскую должность образование должно быть высшим.
При приеме на должность выше ассистента научно-педагогический стаж должен быть больше 3 лет. Научно-педагогический стаж не может быть больше общего стажа.
После занесения всей информации о сотруднике в БД каждому сотруднику автоматически присваивается табельный номер.
Зачисление в штат производится на пятилетний срок, по истечении которого трудовой контракт либо продлевается на 5 лет, либо разрывается. Сотрудник может быть уволен или переведен на другую должность до истечения срока его трудового контракта.
Система должна по запросу готовить различные отчеты:

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

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

  • перечень незанятых должностей по всем подразделениям;

  • перечень сотрудников, чей трудовой контракт истекает в ближайшем месяце;

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

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

Вариант 23. Торговый терминал

К списку вариантов


Торговый терминал (автоматизированная касса) обеспечивает расчет с клиентами супермаркета «Шестерочка». Терминал снабжен двумя дисплеями (один для кассира, другой для покупателя), устройством чтения штрих-кода (сканером), клавиатурой для ввода данных о покупках, печатающим устройством, выдающим чеки, линией связи с сервером данных супермаркета, ящиком с деньгами.
Подходя к терминалу покупатель предъявляет покупки. Кассир начинает новый чек, при этом дисплеи высвечивают нулевую сумму. Каждый товар снабжен штрих-кодом, который считывается сканером. На дисплее высвечивается наименование и цена товара. Если товар штучный, кассир вводит его количество, стоимость высвечивается и добавляется к сумме чека. Если товар весовой, кассир вводит вес, стоимость высвечивается и добавляется. Покупатель может предъявить дисконтную карту, снабженную штрих-кодом, дающую право на скидки либо по отдельным позициям чека, либо на общую сумму чека. При ошибке кассира или по требованию покупателя последняя (текущая) позиция чека может быть удалена, при этом текущей становится предыдущая позиция. Когда все сведения о покупках введены верно, кассир получает деньги от покупателя, вводит полученную сумму и закрывает чек. При этом терминал расчитывает сдачу и высвечивает ее на дисплеи, а также печатает чек с указанием всех позиций (для каждой печатается код товара, наименование товара, количество, цена и стоимость, скидка если есть), общего размера скидки, итоговой суммы к оплате, сведений о кассире, полученной от покупателя суммы и сдачи. Кассир выдает чек и сдачу, кладет деньги в ящик и готовится обслужить следующего клиента.
Терминал следит за общей выручкой, и если она достигает определенного значения (200 000), перед обслуживанием очередного клиента он информирует кассира о необходимости сдать выручку. В таком случае кассир должен приостановить обслуживание клиентов, сдать деньги менеджеру, оставив минимальную сумму для расчетов с последующими клиентами (5 000).
В начале работы кассир авторизуется при помощи рабочей карты (со штрих-кодом) и пароля. Только после успешной авторизации он может работать с терминалом и получить доступ к ящику с деньгами. В него он помещает, полученные от менеджера 5 000 для выдачи сдачи покупателям. Эта сумма вводится в терминал как начальная сумма выручки. В конце рабочего дня кассир закрывает день, сдает менеджеру всю выручку, инициализирует передачу сведений о покупках за день на сервер супермаркета и выключает терминал по окончании передачи, заново авторизуясь при помощи пароля.
Данные о товарах, скидках, дисконтных картах покупателей и рабочих картах кассиров и паролях торговый терминал получает с сервера данных супермаркета. В ходе выполнения этого варианта задания должна быть разработана схема базы данных сервера супермаркета. Проектировать ввод и обновление этих данных не следует.
В связи с изменением в российском законодательстве торговый терминал должен особым образом обрабатывать покупку спиртных напитков. Если в покупке было спиртное, при закрытии чека терминал информирует кассира о необходимости проверить возраст покупателя по документам. После 22-00 закрытие чеков с крепкими спиртными напитками не производится.

Вариант 24. Блог

К списку вариантов


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

Вариант 25. Клиенты и счета

К списку вариантов


Система управления информацией о клиентах и их счетах хранит информацию об отделениях банка, клиентах и их счетах в банке и предназначена для использования исключительно сотрудниками банка.
Для каждого отделения банка система хранит номер отделения, его название и адрес, список клиентов отделения и их счетов, открытых в отделении. Клиентами банка являются физические лица и организации. Информация о клиенте включает ФИО в случае физического лица/наименование в случае юридического лица, адрес регистрации/юридический адрес, адрес фактического проживания/физический адрес, телефоны, адреса электронной почты, список счетов клиента.
Счет клиента идентифицируется его уникальным номером. Информация о счете включает дату открытия счета; текущий баланс; все начисления и списания (дата и сумма); вид счета; ФИО/наименование клиента, которому принадлежит счет, и отделение, в котором открыт счет.
Вид счета идентифицируется номером и имеет наименование. Информация о виде счета включает максимально доступный кредит при списании и срок, в течение которого кредит должен быть погашен; процент, начисляемый от положительного баланса счета, а также интервал, по истечении которого баланс должен быть проиндексирован на указанный процент.
За работу с клиентами в отделении банка отвечает менеджер. В его обязанности входит добавление нового клиента и заведение счета для клиента. Клиент может иметь несколько счетов, поэтому менеджер имеет возможность читать, добавлять, удалять и редактировать данные клиента; заводить новый счет, закрывать существующий (со снятием денег или переводом их на другой счет клиента в банке), а также читать информацию о счете.
Оформление списаний и начислений осуществляются кассиром по обращению клиента. Кассир может работать со счетами клиентов, оформленными в любом отделении банка. Учет начислений по процентам система осуществляет автоматически по истечении интервала, определяемого видом счета.
Возможность работы с отделениями банка доступна директору, который может добавлять и удалять отделения. При удалении отделения все его клиенты и счета должны быть переведены в другое отделение банка. Директор может читать и редактировать данные об отделениях банка. Система позволяет директору получать интересующую его информацию: получение списка клиентов и их счетов по видам счетов в заданном отделении/во всех отделениях, заведенных в течение заданного периода времени.

Вариант 26. Система контроля успеваемости

К списку вариантов


Система контроля успеваемости используется в университете для отслеживания работы студентов в семестре.
Сотрудники учебного отдела вводят в систему данные о студентах, преподавателях и учебных дисциплинах. Данные могут быть изменены и/или удалены. Студенты университета делятся на курсы. Курс делится на группы. Каждая группа студентов ходит на занятия по дисциплинам, которые ведутся преподавателями. Преподаватель может вести любое количество дисциплин у одной или нескольких групп. Несколько преподавателей могут вести одну и ту же дисциплину в одной и той же группе или в разных группах.
Преподаватели пользуются системой, чтобы отмечать успехи и неуспехи студентов, посещающих их занятия. В течение семестра преподаватель последовательно выдает студентам "своей" группы несколько заданий по своей дисциплине. Для каждого задания устанавливается контрольный срок, когда оно должно быть сдано. Когда студент сдает задание, преподаватель отмечает этот факт в системе. Он ставит «±», если задание сдано не до конца, «+» -- если задание сдано полностью. Система контроля автоматически ставит «−», если задание пока не сдано. От времени сдачи зависит цвет, которым отметка о сдаче выделена в системе. Если сдача проходила до установленного срока (за неделю и более), отметка высвечивается зеленым. Если сдача проходила после установленного срока (через неделю и более) отметка высвечивается красным. В остальных случаях отметка черная. Поскольку сдача может быть не полной, студент может сдавать задание несколько раз. После получения отметки «±» за это же задание может быть поставлена отметка «±» или «+», относящаяся к старшей дате. если за задание уже стоит отметка «+» никакая отметка не может быть поставлена за это же задание. По этим правилам преподаватели могут ставить одному и тому же студенту несколько отметок о сдаче одного и того же задания. Если преподаватель ошибся, он может удалить отметку или изменить её.
За сдачу заданий студентам начисляются баллы. Баллы зависят от текущей даты и от сведений об отметке по этому заданию, относящихся к самой старшей дате. Если на текущую дату студент имеет отметку «−» или «±», то ему начисляются штрафные баллы в количестве равном, количеству полных недель с момента наступления контрольного срока до текущей даты. Количество штрафных баллов неотрицательно. Если на текущую дату студент имеет отметку «+», полученную раньше наступления срока сдачи, то ему начисляются бонусные баллы в количестве, равном количеству полных недель с момента получения отметки «+» до наступления контрольного срока. Количество бонусных баллов неотрицательно. Если на текущую дату студент имеет отметку «+», полученную позже наступления срока сдачи, то ему начисляются штрафные баллы в количестве равном количеству полных недель с момента наступления контрольного срока до момента получения отметки. Количество штрафных баллов неотрицательно.
Преподаватель для любой группы, в которой он ведёт занятия, может видеть полный список группы с полным набором отметок по заданиям, раскрашенных по указанным выше правилам, с указанием штрафных и бонусных баллов и общей суммы баллов по всем заданиям. Преподаватель может начислять студентам, у которых он ведет задания, дополнительные бонусные (и штрафные) баллы, поощряя или наказывая их по своему усмотрению.
Студенты также могут пользоваться системой, чтобы узнать сроки сдачи заданий и результаты собственных сдач. Каждому студенту высвечивается сводная таблица, с отметками о сдаче заданий по всем, изучаемым им дисциплинам, с указанием штрафных и бонусных баллов, и номера в рейтинге по данной дисциплине. Рейтинг составляется на основе вычитания из бонусных баллов штрафных баллов. Сортировка в рейтинге идёт по невозрастанию. Чужие отметки студенты видеть не должны, это конфиденциальная информация.
Вариант задания включает в себя разработку схемы базы данных для хранения отметок, данных о студентах, дисциплинах и преподавателях.

Предупреждение


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

  

© Кафедра системного программирования ВМК МГУ.

Обновлено: 8.11.2011