Лабораторная работа № 2 по СППО

Разработать программу Windows-95 работы с клавиатурой и таймером, которая:

1)  отображает в окне символы нажатых клавиш, особенных для задачи (для управляющих клавиш и их комбинаций отображает их символические обозначения в уголковых скобках; например, <Ctrl> или <Shft-F2>; нажатия всех остальных клавиш отображает символом *); при этом каждое новое введение пароля, если это есть в задаче, отображается с новой строки; также с новой строки отображается текущее время, если это требуется в задаче;

2)  реагирует на особые сочетания клавиш (пароль), выполняя указанные действия;

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

Отчет должен содержать:

1)  задание, конкретизирующее общее задание на основе индивидуального задания;

2)  программу главной процедуры и оконной процедуры;

3)  полный набор тестов (исходные данные и ожидаемые результаты).

Задания

1.  При нажатии подряд ровно 3 клавиш «А» в течение 10-секундного интервала вывести текущее время.

2.  Если время между 13:00 и 14:00 или введен пароль «ВРЕМЯ» вывести текущее время и время, увеличенное на 1 час.

3.  При вводе пароля «ТОРТ», если день месяца четный, выводится текущий год.

4.  При нажатии более 3 клавиш «Б» в течение 12-секундного интервала вывести текущую дату.

НЕ нашли? Не то? Что вы ищете?

5.  Если клавиши в течение 5 секунд не нажимались, вывести «Жду…» и текущее время.

6.  Если в течение двух подряд идущих 10-секундных интервалов нажималось одинаковое число клавиш, то вывести наименование текущего месяца (нажатия клавиш для каждого 10-секундного интервала выводятся на экран символами * в отдельной строке).

7.  Если в течение двух подряд идущих 7-секундных интервалов ровно по 2 раза подряд нажималась клавиша «В» (для каждого интервала нажатия клавиш отображать в отдельной строке), то вывести текущую дату и дату, уменьшенную на 1 год.

8.  Если между нажатиями клавиш 3 раза подряд интервал превысит 5 секунд, то вывести «Редко…» и текущую дату.

9.  Если месяц четный и введен пароль «ИНВЕРТ», то вывести дополнительно в обратном порядке только те символы, которые вводились в течение 8 секунд и дату.

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

11.  Если с начала года прошло более 100 дней, то в течение каждого 10-секундного интервала только первые 3 нажатия клавиш не выводить, а остальные вывести (время начала интервала и символы нажатых клавиш отображать в отдельной строке для каждого интервала).

12.  Если в течение первого 7-секундного интервала введен пароль «ОДИН», а в течение следующего – введен пароль «ДВА», то вывести текущее время и время, остающееся до ближайшего четного часа.

13.  Если до конца дня осталось более 3 часов, то на ввод каждого слова «СТАРТ» выдавать на экран накопленное к этому моменту число таких событий и текущее время.

14.  Если месяц нечетный, то после каждых трех подряд идущих нажатий клавиши «F1» вывести «Помощь идет…” и текущую дату, очищая экран через 8 секунд после этого.

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

16.  Вывести число нажатий клавиш в течение интервала, длина которого в секундах на 60 меньше числа, определяемого кодом первой нажатой клавиши (перед этим вывести длину интервала).

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

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

19.  В течение 20-секундного промежутка, разбитого на 5-секундные интервалы, определить, в какой по счету из этих интервалов было больше всего нажато клавиш, и выдать его номер на экран (нажатия клавиш для каждого интервала отображать в отдельной строке).

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

21.  При вводе любого симметричного пароля из 5 букв (1-я буква совпадает с 5-й, 2-я – с 4-й) вывести на экран текущую дату и дату, которая отстоит от начала года на число дней равное месяцу текущей даты.

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

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

24.  Подсчитать число ввода пароля «БАЗА» в течение 15 секунд и, если оно больше нуля, то вывести текущую дату и дату, увеличенную на такое число дней.

25.  Если введен пароль «БАБА», то в течение 20-секундного интервала подсчитать повторное число ввода этого пароля и вывести его.

26.  Если введен пароль «СТОП», то в течение 15-секундного интервала подсчитать число ввода слова «ПОСТ» и вывести его.

27.  Подсчитать число ввода пароля «ШАШКА» в течение 18 секунд и, если оно меньше 3, то вывести текущее время и время, уменьшенное на подсчитанное число часов.

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

29.  Если число нажатий клавиш в течение каждого из 4-секундных интервалов 12-секундного промежутка изменяется монотонно, то вывести на экран текущую дату и дату, увеличенную на число месяцев равное номеру дня месяца.

30.  При нажатии подряд ровно 4 клавиш «Г» в течение 9-секундного интервала вывести текущую дату.

31.  При вводе любого симметричного пароля из 6 букв (1-я буква совпадает с 6-й, 2-я – с 5-й, 3-я – с 4-й) вывести на экран текущее время и время, которое отстоит от начала дня на число минут равное числу часов текущего времени.

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

33.  Если время между 13:00 и 13:30 или введен пароль «ДЕНЬ» выводится текущая дата и дата, уменьшенная на 1 день.

34.  В течение 20 секунд, разбитых на 4-секундные интервалы определить, в какой по счету из этих интервалов было меньше всего нажато клавиш, и выдать его номер на экран (нажатия клавиш каждого интервала выводить в отдельной строке).

35.  При вводе пароля «ТОСТ»выводится текущая дата и, если день месяца нечетный, выводится текущее время.

36.  В течение интервала в секундах, определяемого первым введенным символом цифры, определить число нажатий клавиши Ctrl и вывести текущее время и время, уменьшенное на это число минут.

37.  Если клавиши в течение 15 секунд нажимались, вывести «Принято…» и текущее время.

38.  При нажатии более 2 клавиш «Я» в течение 8-секундного интервала вывести текущее время.

39.  Подсчитать в течение интервала в 20 секунд число нажатий функциональных клавиш, определяемых по первому слову до Enter, исключая его, и вывести это число.

40.  Если между нажатиями клавиш 4 раза подряд интервал меньше 1 секунды, то вывести «Часто…» и текущее время.

41.  Если в течение двух подряд идущих 8-секундных интервалов нажималось разное число клавиш, то вывести наименование текущего месяца и время в минутах до конца текущего дня.

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

43.  Вывести число нажатий клавиши Alt в течение интервала, длина которого в секундах равна числу, определяемому кодом первой нажатой клавиши, уменьшенному на 50 (длину интервала вывести перед выводом нажатых клавиш).

44.  Если в течение двух подряд идущих 6-секундных интервалов ровно по 3 раза подряд нажималась клавиша «Д», то вывести текущее время и время, уменьшенное на 1 час.

45.  Если день нечетный и введен пароль «СИММ», то вывести дополнительно в удвоенном числе каждый из тех символов, которые вводились в течение 3 секунд.

46.  Если с начала года прошло менее 100 дней, то в течение каждого 5-секундного интервала только последние 3 нажатия клавиш не выводить, а остальные вывести.

47.  Если между нажатиями двух функциональных клавиш число нажатий других клавиш меньше длины интервала в секундах, то вывести число дней оставшихся до конца года (после нажатия каждой функциональной клавиши вывести текущее время).

48.  Если в течение первого 6-секундного интервала введен пароль «ПЛЮС», а в течение следующего – введен пароль «МИНУС», то вывести дату, округленную до ближайшего нечетного дня.

49.  Если до конца дня осталось более 1000 минут, то на ввод каждого слова «ФИНИШ» выдавать на экран накопленное к этому моменту число таких событий (в отдельной строке).

50.  Если месяц четный, то после каждых двух подряд идущих нажатий клавиши «F10» вывести «Все пройдет…” и дату, очищая экран через 3 секунды после этого.