ОПИСАНИЕ Задание предусматривает: разработку модуля определений Пароль; разработку тестирующей программы, с помощью которой проверяется правильность работы модуля Пароль; создание файла parol.dat, который в закодированном виде хранит текущий пароль. Модуль определений Пароль представляет упрощенную версию парольной защиты. Модуль содержит следующие процедуры и функции: ВзятьПароль процедура вызывается по нажатии "горячей" клавиши (задается разработчиком программы), когда пользователь хочет изменить пароль. Процедура может быть вызвана из основной программы только в том случае, если при входе в основную программу был указан правильный старый пароль. Процедура запрашивает у пользователя новый пароль. Пользователь вводит его с клавиатуры, завершая ввод нажатием клавиши ENTER. Нажатие любой клавиши при вводе пароля индицируется на экране символом '#', сам же вводимый пароль на экране не отображается, чтобы нарушитель не мог подсмотреть его при вводе из-за спины. После ввода нового пароля процедура просит пользователя повторить ввод нового пароля и сравнивает его с первым вводом. Если оба ввода совпадают, введенный пароль кодируется с помощью таблицы соответствия, которая каждому символу алфавита ставит в однозначное соответствие другой символ алфавита, и запоминается в файле parol.dat. Новый пароль будет использоваться при очередном запуске защищенной программы; ПравильныйПользователь (Функция просит пользователя ввести пароль). Пользователь вводит его с клавиатуры, завершая ввод нажатием клавиши ENTER. Нажатие любой клавиши при вводе пароля индицируется на экране символом '#'. Введенный пароль кодируется с помощью таблицы соответствия, использованной при задании пароля, и сравнивается с содержимым файла parol.dat. Функция возвращает True, если при вводе был указан правильный пароль, иначе возвращается False. Программа ПроверкаДоступа предназначена для проверки модуля Пароль. При запуске этой программы вызывается функция ПравильныйПользователь и •проверяется введенный пользователем пароль. Если он не совпадает с правильным паролем, то выдается сообщение "Неправильный пользователь" и выполнение программы завершается. Если пароль введен правильно, программа зацикливается на выводе на экран разноцветных окружностей со случайными радиусом и центром. В каждом цикле вывода очередной окружности на экран анализируется нажатие "горячей" клавиши процедуры ВзятьПароль или клавиши завершения тестирующей программы. ВХОД Тестирующая программа предусматривает лишь ввод пароля и подсказывает, из скольки символов состоит пароль. Строчные и заглавные буквы в пароле не различаются. При вводе пароля значащими символами считаются лишь буквы латинского алфавита, нажатия на другие клавиши игнорируются. ОШИБКИ Нажатие неверной "горячей" клавиши в цикле вывода окружностей сопровождается звуковым сигналом и очисткой экрана без завершения цикла вывода. Нажатие при вводе пароля клавиши, не являющейся буквой латинского алфавита, блокирует вывод на экран символа фиксации нажатия '#'. |