Материал: !Варианты заданий по КП МИСПИСИТ

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

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

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

Рисунок 15.1 - Виды игровых костей.

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

Рис. 15.2. Изменение игровой ситуации при удалении заполненных рядов.

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

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

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

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

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

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

Система учёта по требованию пользователя формирует и выдаёт на печать следующую справочную информацию:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В начальном состоянии трубка телефона повешена, телефон не реагирует на нажатия кнопок. Пользователь телефона, желающий сделать звонок, снимает трубку. Телефон подаёт на АТС сигнал "Трубка". При получении ответного сигнала "Тон" от АТС телефон воспроизводит звуковой тон "Готов" (длинный непрекращающийся гудок) в трубку. При получении сигнала "Занято" (посылается если АТС не может сейчас обслужить абонента) в трубке воспроизводится тон "Занято" (частые короткие гудки).

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

Телефонный громкоговоритель воспроизводит данные, передаваемые с сигналом "Данные". Ответ пользователя воспринимается микрофоном трубки, преобразуется в сигнал "Данные" и передаётся АТС. В течение разговора на экране высвечивается текущая длительность звонка, отсчитываемая с момента, АТС осуществило коммутацию. Обмен данными прерывается, если повешена трубка одного из телефонов, участвующих в обмене. О том, что трубку повесил вызываемый абонент, сообщает сигнал "Занято", посылаемый АТС.

Получив сигнал "Занято" телефон ожидает, когда пользователь повесит трубку, игнорируя нажатия кнопок и т. п.

После того, как трубка аппарата была повешена, телефон посылает АТС сигнал "Конец", и переходит в начальное состояние. Сеанс завершается. По завершении сеанса телефон суммирует длительность звонка с текущей общей длительностью звонков, хранящейся в памяти телефона.

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

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

Если в начальном состоянии при опущенной трубке нажать кнопку "#" телефон в течение 5 секунд высвечивает суммарную длительность разговоров, затем возвращается в обратное состояние. Если, пока отображается длительность, успеть снова нажать "#", то суммарная длительность в памяти телефона обнуляется.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник: https://studfile.net/preview/16527167/