Текстовые файлы и различные методы шифрования
Описание предметной области. Характеристика программных средств. Описание компонентов, интерфейс программы. Описание процедур и функций. Вызов и загрузка программы. Испытание методом белого и черного ящика на ошибки кода программного приложения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 26.04.2015 |
Размер файла | 2,2 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
4
Размещено на http://www.allbest.ru
4
Размещено на http://www.allbest.ru
Содержание
Введение
1. Постановка задачи
1.1 Описание предметной области
1.2 Входная информация
1.3 Выходная информация
1.4 Постоянная информация
2. Вычислительная система
2.1 Основные характеристики выбранного ПК
2.2 Характеристика программных средств
3. Описание программы
3.1 Описание компонентов
3.2 Интерфейс программы
3.3 Описание процедур и функций
3.4 Вызов и загрузка программы
4. Программа тестирования и методика испытаний
4.1 Цель и объект проведения испытаний
4.2 Порядок проведения испытаний
4.3 Методы испытаний
4.4 Протокол испытаний
5. Руководство пользователя
Заключение
Список использованных источников
Приложение А(листинг программы)
интерфейс программа шифрование
Введение
Шифрование текста необходимо для защиты информации от посторонних для кого она не предназначена. Шифрование - это способ защиты данных от несанкционированного использования. Шифрование для защиты информации полагается на разделы математики, называемой криптографией. Главная цель выполнения шифрования заключается в создании из обычного текста зашифрованного текста так, чтобы невозможно было преобразовать зашифрованный текст в обычный без использования ключа шифрования. Шифры являются альтернативой кодам. Они позволяют использовать технологию смешивания букв в сообщения, сообщения может быть расшифровано с помощью расшифровочного ключа.
Ограничения в криптографии
Необходимо помнить об ограничениях в использовании криптографии для шифрования ваших сообщений:
Незашифрованная информация не может быть защищенной.
Ключ шифрования должен быть защищен.
Защитить данные от разрушительных атак.
Остерегаться программ шифрования с нежелательными скрытыми возможностями.
Остерегайтесь предателей.
При соблюдении всех правил вашу информацию практически не возможно будет взломать. Шифрование применяется для хранения важной информации в ненадёжных источниках и передачи её по незащищенным каналам связи. Такая передача данных представляет из себя два взаимно обратных процесса:
Перед отправлением данных по линии связи или перед помещением на хранение они подвергаются зашифрованию.
Для восстановления исходных данных из зашифрованных к ним применяется процедура расшифрования.
Шифрование изначально использовалось только для передачи конфиденциальной информации. Однако, впоследствии, шифровать информацию начали с целью ее хранения в ненадежных источниках. Шифрование информации с целью ее хранения применяется и сейчас, это позволяет избежать необходимости в физически защищенном хранилище.
1. Постановка задачи
1.1 Описание предметной области
Данную программу можно использовать в учреждениях обучающего типа, в которых изучается язык программирования С++ и среды разработки Rad Studio Builder XE5. Так же программа может быть использована любым пользователем которому необходимо защитить свою информацию от не желательного взлома. В данном курсовом проекте будет представлена программа, которая является шифратором и дешифратором текста. Программа содержит различные способы шифровки и дешифровки по ключу различной размерности до 20 символов может содержать ключ. Ключ может быть сгенерировать автоматически либо же введен самим пользователем. После зашифровки текста результат можно сохранить в файл так же текст который мы хотим зашифровать можно выгрузить из файла. Представлен гибкий интерфейс в котором все ошибки пользователя снижены до минимума. Так же все действия выполняются максимально просто. Даже сложные.
1.2 Входная информация
К входной информации относиться любой текст вводимый в поля пользователем с клавиатуры это может быть как латинские цифры, буквы так и английские так же другие языки и цифры так же различные символы. Или же любой текст открытый из файла в который может содержать любые символы ввода.
1.3 Выходная информация
К выходной информации можно отнести все результаты которые пользователь увидит на экране после шифрования текста. Так же текстовые файлы с зашифрованной информацией которую можно сохранить в текстовый файл. Что позволяет просмотреть полученную информацию не только в данной программе а так же в любом текстовом редакторе который может открыть текстовый файл.
1.4 Постоянные данные
К постоянным данным относиться символьная таблица шифровки букв в символы представлена как в таблице 1.1.
Таблица 1.1 - Символьная таблица.
й |
А |
в |
ц |
у |
к |
е |
н |
г |
ш |
щ |
з |
х |
ф |
ы |
п |
р |
о |
л |
д |
ж |
э |
я |
ч |
c |
м |
и |
т |
б |
ю |
|
3 |
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
0 |
+ |
! |
@ |
* |
% |
^ |
? |
& |
# |
= |
~ |
- |
< |
> |
/ |
[ |
] |
{ |
| |
: |
2. Вычислительная система
2.1 Основные характеристики выбранного ПК
Характеристики ПК на котором разрабатывалась данная программа:
- Microsoft Windows 7 Ultimet;
- оперативная память 2050 mb;
- видеоадаптер 1024 mb.
-Intel Pentium inside CPU 2x @ 2.3 Hz
2.2 Характеристика программных средств
Операционная система
Операционная система - это комплекс управляющих и обрабатывающих программ, которые обеспечивают функционирование компьютера, рациональное распределение его ресурсов и организует взаимодействия аппаратуры с пользователям.
Существует несколько видов операционных систем: DOS, Windows, UNIX разных версий и другие. Наиболее распространённой является операционная система Windows.
Существует несколько версий Windows: Windows-95, Windows-98, Windows Me,
Windows-2000, Windows XP, Windows Vista, Windows 7, Windows 8.
Данный программный продукт может функционировать практически на любой операционной системе Windows, однако оптимальным решением будет Windows 7. Поскольку данный продукт разработан на языке С++ то она может работать как на Windows так и на Linux но предпочтительно будет использовать Windows 7 поскольку она наиболее оптимальна для данного приложения она позволяет без ошибок и дополнительного ПО использовать программу и максимально быстро помогает ей осуществлять все операции.
Система программирования
Программный продукт “Программное средство шифрования” написан в среде программирования RAD Studio XE5.
RAD Studio XE5 - средства разработки приложений под Windows. Достоинство - это быстрый компилятор, большие возможности Builder XE5 для работы с базами данных и большой набор компонентов. Простота, скорость и эффективность объясняют её популярность. Есть и другие достоинства: простота изучения С++; программы, написанные Builder XE5, не требуется снабжать дополнительными библиотеками.
Также Builder XE5 это не только прекрасный инструмент разработки программного обеспечения, но и язык программирования, позволяющий писать как небольшие программы и утилиты персонального использования, так и крупные корпоративные системы, работающие с базами данных на различных платформах.
Для создания программы были использованы вкладки: Standard, Additional,Win 32, System, Dialogs.
3. Описание программы
3.1 Описание компонентов
В данной программе имеется 3 формы с различными компонентами. Компоненты каждой формы выполняют свои действия.
Компоненты Form1 представлены в таблице 3.1.
Таблица 3.1 - Компоненты «Form1»
Компонент |
Описание |
|
Button1 |
Используется для подтверждения действия |
|
Button2 |
Используется для подтверждения действия |
|
CheckBox1 |
Служит для выбора действия |
|
Edit1 |
Служит для ввода текста |
|
Edit2 |
Служит для ввода текста |
|
Lebel1 |
Служит для отоброжения информации |
|
Label2 |
Служит для отоброжения информации |
|
Label3 |
Служит для отоброжения информации |
|
Label4 |
Служит для отоброжения информации |
Компоненты Form2 представлены в таблице 3.2.
Таблица 3.2 - Компоненты «Form2»
Компонент |
Описание |
|
Button1 |
Служит для сохранения информации в текстовый файл |
|
Button2 |
Служит для вывода открытия информации из тестового файла |
|
Button3 |
Служит для очистки поля ввода |
|
Button4 |
Служит для зашифровки текста |
|
Label1 |
Служит для отображения информации |
|
OpenDialog1 |
Диалоговое окно для открытия файла |
|
RichEdit1 |
Служит для ввода информации |
|
SaveDialog1 |
Диалоговое окно для сохранения файла |
|
TabControl1 |
Служит для разметки разделов программы |
|
Button5 |
Служит для зашифровки текста |
|
Button6 |
Служит для зашифровки текста |
|
Button7 |
Служит для расшифровки текста |
|
Button8 |
Служит для расшифровки текста |
|
Button9 |
Cлужит для вызова справки |
Компоненты Form3 представлены в таблице 3.3.
Таблица 3.3 - Компоненты «Form3»
Компонент |
Описание |
|
Button1 |
Кнопка служащая для выполнения действия |
|
CheckBox1 |
Служит для включения/выключения типа ввода |
|
Edit1 |
Служит для поля ввода |
|
Edit2 |
Служит как поля ввода |
|
Label1 |
Служит для вывода информации |
|
Label2 |
Служит для вывода информации |
3.2 Интерфейс программы
Интерфейс программного продукта является понятным для пользователей различной степени и квалификации. При запуске программы на экране откроется форма ввода пароля в соответствии с рисунком 3.2.1.
Рисунок 3.2.1 - Форма входа в программу
После того как пользователь ввел правильный пароль он зайдет в главную рабочею форму, в соответствии с рисунком 3.2.2.
Рисунок 3.2.2 - Главная форма программы
После того как пользователь захотел сменить пароль он может это сделать нажав на соответствующую кнопку после чего он увидит форму смены пароля, в соответствии с рисунком 3.2.3.
Рисунок 3.2.3 - Форма смены пароля
При нажатии на кнопку открыть файл пользователь увидит диалоговое окно открытия файла как на рисунке 3.2.4.
Рисунок 3.2.4 - Диалоговое окно открытия файла
При нажатии на кнопку открыть файл пользователь увидит диалоговое окно сохранения файла как на рисунке 3.2.5.
Рисунок 3.2.4 - Диалоговое окно сохранения файла
3.3 Описание процедур и функций
В таблице 3.3.1 приведены функции Form1 и их описания.
Таблица 3.3.1 -Функции «Form1»
Функция |
Описание |
|
void __fastcall TForm1::FormCreate(TObject *Sender) |
Функция создает начальные условия и проверки формы |
|
void __fastcall TForm1::CheckBox1Click(TObject *Sender) |
Функция создает видимость ввода символов или же на оборот |
|
void __fastcall TForm1::Button1Click(TObject *Sender) |
Функция создания пароля и перехода между формами |
|
void __fastcall TForm1::Button2Click(TObject *Sender) |
Функция проверки пароля и переход между формами |
В таблице 3.3.2 приведены функции Form2 и их описания.
Таблица 3.3.2 -Функции «Form2»
Функция |
Описание |
|
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action) |
Функция полностью закрывает все приложение и его процессы |
|
void __fastcall TForm2::FormCreate(TObject *Sender) |
Функция при создании формы создает начальные значения формы 2 |
|
void __fastcall TForm2::Button1Click(TObject *Sender) |
Функция служит для очистки RichEdit1 поля ввода |
|
void __fastcall TForm2::Button2Click(TObject *Sender) |
Функция служит для сохранения инфо в текстовый файл |
|
void __fastcall TForm2::Button3Click(TObject *Sender) |
Функция служит для открытия информации из файла |
|
void __fastcall TForm2::N5Click(TObject *Sender) |
Служит для перехода на Form3 |
|
void __fastcall TForm2::FormResize(TObject *Sender) |
Служит для изменения размера компонентов идентично форме |
|
void __fastcall TForm2::Button1Click(TObject *Sender) |
Служит для зашифровки текста методом цезаря |
|
void __fastcall TForm2::BitBtn6Click(TObject *Sender) |
Служит для расшифровки текста методом цезаря |
|
void __fastcall TForm2::Button5Click(TObject *Sender) |
Служит для зашифровки текста методом замены символов |
|
void __fastcall TForm2::Button6Click(TObject *Sender) |
Служит для расшифровки текста методом замены символов |
|
void __fastcall TForm2::Button7Click(TObject *Sender |
Служит для вызова справки windows |
|
void __fastcall TForm2::BitBtn4Click(TObject *Sender) |
Служит для изменения шрифта, цвета, размера |
В таблице 3.3.3 приведены функции Form3 и их описания.
Таблица 3.3.3 -Функции «Form3»
Функция |
Описание |
|
void __fastcall TForm3::FormCreate(TObject *Sender) |
Служит для начального значения формы |
|
void __fastcall TForm3::CheckBox1Click(TObject *Sender) |
Служит для отображения символов ввода или на оборот |
|
void __fastcall TForm3::Button1Click(TObject *Sender) |
Функция служит для смены пароля |
3.4 Вызов и загрузка программы
Вызов программы выполняется двойным кликом по исполняемому файлу с название Project1.exe. Загрузка программы на компьютер осуществляется через инсталлятор двойным кликом по файлу с название installprosolution.exe далее читаем инструкцию и устанавливаем программу на ПК.
4. Программа тестирования и методика испытаний
4.1 Цель и объект проведения испытаний
Объектом проведения испытаний является курсовой проект на тему шифрование, дешифрование текста, целью испытаний курсового проекта является протестировать действия программы на выполнения поставленной задачи, определить недочеты и ошибки допущенные в курсовом проекте, проверить программу к готовности использования.
4.2 Порядок проведения испытаний
Сперва курсовой проект будет испытан методом белого ящика на ошибки кода программы, после того как ошибки будут исправлены и проект скомпилируется, программа будет испытана по детально на выполнение поставленной задачи каждой функции программы. После того как программа отлажена и все функции выполняют свое назначение, программа будет испытана методикой белого ящика для того что бы пользователь даже со слабыми знаниями компьютера мог пользоваться программой и не совершать ошибок, таким образом можно установить на сколько программа понятна для восприятия пользователя и какие ошибки в программе может совершить пользователь.
4.3 Методы испытаний
Данный курсовой проект будет испытан двумя методами испытаний белого ящика и черного ящика.
Метод белого ящика представляется как испытания проводимые разработчиком над котом программы, и правильном выполнении функций. И только разработчик может что ли бо изменить в программе и доработать.
Метод черного ящика представляется как закрытое предложение без доступа к коду программы и ни кто не может изменить программу, программа готовая представляется пользователям на пользование, и все ошибки которые совершил пользователь учитываются и если они критичны к работе программы, программа отдается на доработку.
4.4 Протокол испытаний
Протокол испытаний представлен в виде таблицы 4.1.
Таблица 4.1 - протокол испытаний.
Испытание |
Что должно получиться |
Что получилось |
Прошел испытание |
|
Запуск программы |
Должно появиться окно для ввода пароля |
Появилось окно для ввода пароля |
Да |
|
Ввод пароля, |
Если пароль верен вход в программу если нет то сообщение что пароль не верен |
Пароль верен вход в программу если нет то сообщение что пароль не верен |
Да |
|
Открытие текстового файла |
Появиться диалоговое окно выбора файла и при открытии текст появляется в поле для ввода текста |
Появилось диалоговое окно выбора файла и при открытии текст появляется в поле для ввода текста |
Да |
|
Шифрование текста методом подбора символов |
При нажатии на кнопку вместо текста должны появиться символы и цифры |
При нажатии на кнопку вместо текста появились символы и цифры |
Да |
|
Шифрование текста методом цезаря |
При нажатии на кнопку текст должен измениться по алфавиту до неузнаваемости |
При нажатии на кнопку текст изменился по алфавиту до неузнаваемости |
Да |
|
Дешифрирование методом подбора символов |
При нажатии на кнопку зашифрованный текст должен приобрести начальный вид |
При нажатии на кнопку зашифрованный текст приобрел начальный вид |
Да |
|
Дешифрирование методом цезаря |
При нажатии на кнопку текст должен приобрести начальный вид |
При нажатии на кнопку текст приобрел начальный вид |
Да |
|
Сохранение в файл |
При нажатии кнопки должно появится диалоговое окно в котором выбирается место сохранения и имя файла после нажатия на кнопку сохранить должен создаться файл с таким именем содержащий текст с поля программы |
При нажатии кнопки появилось диалоговое окно в котором выбирается место сохранения и имя файла после нажатия на кнопку сохранить создался файл с таким именем содержащий текст с поля программы |
Да |
|
Удаление текста с поля ввода |
При нажатии на кнопку все содержимое поля ввода должно было очиститься |
При нажатии на кнопку все поле ввода очистилось |
Да |
|
Изменение шрифта ввода текста |
При нажатии на кнопку должно появится диалоговое окно с выбором шрифта, размера, цвета вводимого в поле ввода |
При нажатии на кнопку в диалоговом окно выбираем шрифт размер цвет тип ввода в поля |
Да |
|
Выравнивание текст с лева |
При нажатии на кнопку текст должен выровняться по левому краю |
При нажатии на кнопку текст выровнялся по левому краю |
Да |
|
Выравнивание текст с права |
При нажатии на кнопку текст должен выровняться по правому краю |
При нажатии на кнопку текст выровнялся по правому краю |
Да |
|
Выравнивание текст по центру |
При нажатии на кнопку текст должен выровняться по центру |
При нажатии на кнопку текст выровнялся по центру |
Да |
|
Изменения пароля |
При нажатии на кнопку изменить пароль появится форма в которой необходимо ввести нынешний пароль и если он будет верен то можно ввести новый пароль если же не верен но появиться сообщение об ошибке и пароль будет изменен |
При нажатии на кнопку изменить пароль появилась форма в которой если введен нынешний пароль можно изменить его и пароль был изменен если пароль был не верен то появилось сообщение об ошибке |
Да |
|
Вызов справки Windows |
При нажатии на кнопку должно откроется окно Windows со справкой о программе |
При нажатии на кнопку открылось окно Windows со справкой о программе |
Да |
5. Руководство пользователя
При открытии программы в первый раз пользователю будет необходимо придумать пароль который он будет использовать для входа в программу при каждом ее последующем запуске, если пользователь захочет он сможет в дальнейшем изменить пароль. На рисунке 1 изображен первый вход в программу где пользователь выбирает пароль.
Рисунок 1 - Выбор пароля
После чего пользователь увидит окно работы с программой на главной страницей где он сможет ознакомится с программой ей возможностями и протестировать ее действия. Приведено на рисунке 2.
Рисунок 2 - Главная форма
После того как пользователь выйдет из программы, при следующем запуске он увидит окно в котором ему будет предложено ввести пароль для входа в программу как на рисунке 2.
Рисунок 2 - Вход в программу
После того как пользователь подтвердил пароль она сможет работать с программой и использовать все ее функции. В программе для удобности работы присутствуют кнопки такие как очистить поля - удаляет все содержимое с поля ввода, вменить пароль выполняет действие для смены пароля, изменение шрифта при этом действии пользователь увидит диалоговое окно в котором можно выбрать тип шрифта, вид шрифта, размер, цвет и при нажатии на копку ок шрифт вводимый в поле поменяется. Диалоговое окно представлено на рисунке 3.
Рисунок 3 - Диалоговое окно выбора шрифта
После того так же можно разместить текст слева по краю с право по краю и по центру, эти действия выполняются при нажатии на соответствующие кнопки, которые располагаются на главной вкладке пример на рисунке 4.
Рисунок 4 - Главная вкладка
Во вкладке файл располагаются две кнопки открыть файл и сохранить файл, работают только с текстовыми файлами, при нажатии на кнопку сохранить файл пользователю будет представлено диалоговое окно в котором он выберет куда с каким именем сохранить файл, файл будет содержать все точно тоже что и поле ввода текста как на рисунке 5.
Рисунок 5 - Диалоговое окно сохранения файла
При открытие файла пользователю предоставляется выбор какой файл и откуда он будет открыт как на рисунке 6, после открытия файла вся информация которую содержал файл будет открыта поле ввода текста.
Рисунок 6 - Диалоговое окно открытия файла
Во вкладке шифрование присутствуют 2 вида шифра по символу и по смещению. При зашифровке символами вместо каждой буквы появиться определенный символ, а при шифровке цезаря вместо слова появиться непонятный набор букв, для того что бы зашифровать символами необходимо ввести текст который хотите зашифровать и нажать на кнопку, для шифра цезаря необходимо ввести ключ из цифр и нажать на кнопку, вкладка шифрование приведена на рисунке 7.
Рисунок 7 - Вкладка шифрование
Вкладка дешифрирование используется для расшифровки зашифрованного текста если текст был зашифрован методом символов то и расшифровать его надо методом символов дабы получить желаемый результат, тоже самое и с цезарем надо знать ключ по которому текст был расшифрован и только тогда можно точно расшифровать текст, вкладка шифрования представлена на рисунке 8.
Рисунок 8 - Вкладка дешифрования текста
Далее идет вкладка помощь на которой находиться кнопка вызова справки windows.
Для смены пароля необходимо нажать сменить пароль на главной вкладке затем появиться окно как на рисунке 9, в котором необходимо ввести нынешний пароль и новый и если нынешний пароль совпадет то пароль измениться и при входе в программу необходимо будет вводить этот пароль.
Заключение
Данный программный продукт был разработан в среде программирования RAD Studio C++ Builder XE5, так как эта среда наиболее понятна и проста из известных мне языков программирования.
Эта программа предназначена для более удобной работы c операторами языка C++.
Цель и задача были выполнены.
На данной стадии программный продукт завершён, но он может быть доработан и изменён по желанию разработчика.
Список использованных источников
1 Блажевич, О.В. Программирование С++:курс лекций/О.В.Блажевич.-Минск:БГУ,2004.-78 с.
2 Джесс Либерти - С++ Энциклопедия пользователя
Приложение А
Листинг программы
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
bool flag=false;
bool lag=false;
String g;
String h;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox1Click(TObject *Sender)
{
if(Form1->CheckBox1->Checked==false)
{
Form1->Edit1->PasswordChar='*';
Form1->Edit2->PasswordChar='*';
}
else
{
Form1->Edit1->PasswordChar=NULL;
Form1->Edit2->PasswordChar=NULL;
}
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Form1->Edit1->Text=="")
{
ShowMessage("пороль не введен");
return;
}
else
{
flag=true ;
}
if(Form1->Edit2->Text=="")
{
ShowMessage("пороль 2 не введен");
return;
}
else
{
lag=true;
}
if((Form1->Edit1->Text==Form1->Edit2->Text)&&(flag==true)&&(lag==true))
{
TStringList*list=new TStringList;
list->Add(Form1->Edit2->Text);
list->SaveToFile("pass.data");
Form1->Visible=false;
Form2->Show();
}
else
{
ShowMessage("Пороли не совпадают");
return;
}
}
void __fastcall TForm1::FormCreate(TObject *Sender)
{
if(FileExists("pass.data"))
{
Form1->Button1->Visible=false;
Form1->CheckBox1->Top=135;
Form1->Button2->Visible=true;
Form1->Top=250;
Form1->Label3->Visible=false;
Form1->Label2->Visible=false;
Form1->Edit2->Visible=false;
Form1->Label4->Visible=true;
TStringList*list=new TStringList;
list->LoadFromFile("pass.data");
g=list[0][0];
Form1->Height=170;
Form1->Label1->Top=57;
Form1->Edit1->Top=56;
Form1->CheckBox1->Top=96;
}
else
{
Form1->Top=200;
Form1->Left=525;
Form1->Height=251;
Form1->Width=303;
}
}
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(Form1->Edit1->Text=="")
ShowMessage("Вы не ввели пароль");
return;
}
h=Form1->Edit1->Text;
if(h==g)
{
Form1->Visible=false;
Form2->Show();
}
Else
{
ShowMessage("Пароль не верен");
}
}
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit1.h"
#include "Unit3.h"
#include <iostream.h>
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <sstream>
#include <fstream>
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm2 *Form2;
AnsiString ser;
AnsiString rer;
int i,j,x,l,v,r;
AnsiString s,sx;
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm2::FormClose(TObject *Sender, TCloseAction &Action)
{
Application->Terminate();
}
void __fastcall TForm2::FormResize(TObject *Sender)
{
Form2->Memo1->Width=Form2->Width;
Form2->Memo1->Height=Form2->Height;
}
void __fastcall TForm2::BitBtn1Click(TObject *Sender)
{
Form3->ShowModal();
}
void __fastcall TForm2::TabControl1Change(TObject *Sender)
{
if(Form2->TabControl1->TabIndex==0)
{
Form2->BitBtn1->Visible=true;
Form2->BitBtn2->Visible=true;
Form2->BitBtn4->Visible=true;
Form2->Button2->Visible=true;
Form2->Button3->Visible=true;
Form2->Button4->Visible=true;
Form2->Edit1->Visible=false;
Form2->Label1->Visible=false;
}
else
{
Form2->BitBtn1->Visible=false;
Form2->BitBtn2->Visible=false;
Form2->BitBtn6->Visible=false;
Form2->BitBtn4->Visible=false;
Form2->Button2->Visible=false;
Form2->Button3->Visible=false;
Form2->Button4->Visible=false;
}
if(Form2->TabControl1->TabIndex==1)
{
Form2->BitBtn7->Visible=true;
Form2->BitBtn8->Visible=true;
Form2->Edit1->Visible=false;
Form2->Label1->Visible=false;
}
else
{
Form2->BitBtn7->Visible=false;
Form2->BitBtn8->Visible=false;
}
if(Form2->TabControl1->TabIndex==2)
{
Form2->BitBtn6->Visible=true;
Form2->Button5->Visible=true;
Form2->Edit1->Visible=true;
Form2->Label1->Visible=true;
}
else
{
Form2->BitBtn6->Visible=false;
Form2->Button5->Visible=false;
}
if(Form2->TabControl1->TabIndex==3)
{
Form2->Button1->Visible=true;
Form2->Button6->Visible=true;
Form2->Edit1->Visible=true;
Form2->Edit1->Visible=true;
Form2->Label1->Visible=true;
}
else
{
Form2->Button1->Visible=false;
Form2->Button6->Visible=false;
}
if(Form2->TabControl1->TabIndex==4)
{
Form2->Button7->Visible=true;
Form2->Label1->Visible=false;
Form2->Edit1->Visible=false;
}
else
{
Form2->Button7->Visible=false;
}
}
void __fastcall TForm2::BitBtn2Click(TObject *Sender)
{
Form2->Memo1->Lines->Clear();
}
void __fastcall TForm2::BitBtn4Click(TObject *Sender)
{
if(Form2->FontDialog1->Execute())
{
Form2->Memo1->Font->Color=Form2->FontDialog1->Font->Color;
Form2->Memo1->Font->Size=Form2->FontDialog1->Font->Size;
Form2->Memo1->Font=Form2->FontDialog1->Font;
}
}
void __fastcall TForm2::BitBtn7Click(TObject *Sender)
{
if(Form2->SaveDialog1->Execute())
{
TStringList*list=new TStringList;
list->Add(Form2->Memo1->Lines->Text);
list->SaveToFile(Form2->SaveDialog1->FileName+".txt");
}
}
void __fastcall TForm2::BitBtn8Click(TObject *Sender)
{
if(Form2->OpenDialog1->Execute())
{
TStringList*list=new TStringList;
list->LoadFromFile(Form2->OpenDialog1->FileName);
Form2->Memo1->Lines->Text=list->Text;
}
}
void __fastcall TForm2::BitBtn6Click(TObject *Sender)
{
rer="";
ser="";
for(i=1;i<=Form2->Memo1->Text.Length();i++)
{
ser+=Form2->Memo1->Text[i];
}
for(i=1;i<=ser.Length();i++)
{
if(ser[i]=='а')
rer+='1';
if(ser[i]=='в')
rer+='2';
if(ser[i]=='й')
rer+='3';
if(ser[i]=='ц')
rer+='4';
if(ser[i]=='у')
rer+='5';
if(ser[i]=='к')
rer+='6';
if(ser[i]=='е')
rer+='7';
if(ser[i]=='н')
rer+='8';
if(ser[i]=='г');
rer+='9';
if(ser[i]=='ш')
rer+='0';
if(ser[i]=='щ');
rer+='+';
if(ser[i]=='з')
rer+='!';
if(ser[i]=='х')
rer+='@';
if(ser[i]=='ъ')
rer+='$';
if(ser[i]=='ф')
rer+='*';
if(ser[i]=='ы')
rer+='%';
if(ser[i]=='п')
rer+='^';
if(ser[i]=='р')
rer+='?';
if(ser[i]=='о')
rer+='&';
if(ser[i]=='л')
rer+='#';
if(ser[i]=='д')
rer+='=';
if(ser[i]=='ж')
rer+='~';
if(ser[i]=='э')
rer+='-';
if(ser[i]=='я')
rer+='<';
if(ser[i]=='ч')
rer+='>';
if(ser[i]=='с')
rer+='/';
if(ser[i]=='м')
rer+='[';
if(ser[i]=='и')
rer+=']';
if(ser[i]=='т')
rer+='{';
if(ser[i]=='ь')
rer+='}';
if(ser[i]=='б')
rer+='|';
if(ser[i]=='ю')
rer+=':';
if(ser[i]=='.')
rer+='.';
if(ser[i]==',')
rer+=',';
if(ser[i]==' ')
rer+=' ';
if(ser[i]=='ё')
rer+='(';
}
Form2->Memo1->Text=rer;
rer="";
ser="";
}
void __fastcall TForm2::Button1Click(TObject *Sender)
{
rer="";
ser="";
for(i=1;i<=Form2->Memo1->Text.Length();i++)
{
ser+=Form2->Memo1->Text[i];
}
for(i=1;i<=ser.Length();i++)
{
if(ser[i]=='1')
rer+='а';
if(ser[i]=='2')
rer+='в';
if(ser[i]=='3')
rer+='й';
if(ser[i]=='4')
rer+='ц';
if(ser[i]=='5')
rer+='у';
if(ser[i]=='6')
rer+='к';
if(ser[i]=='7')
rer+='е';
if(ser[i]=='8')
rer+='н';
if(ser[i]=='9')
rer+='г';
if(ser[i]=='0')
rer+='ш';
if(ser[i]=='+')
rer+='щ';
if(ser[i]=='!')
rer+='з';
if(ser[i]=='@')
rer+='х';
if(ser[i]=='$')
rer+='ъ';
if(ser[i]=='*')
rer+='ф';
if(ser[i]=='%')
rer+='ы';
if(ser[i]=='^')
rer+='п';
if(ser[i]=='?')
rer+='р';
if(ser[i]=='&')
rer+='о';
if(ser[i]=='#')
rer+='л';
if(ser[i]=='=')
rer+='д';
if(ser[i]=='~')
rer+='ж';
if(ser[i]=='-')
rer+='э';
if(ser[i]=='<')
rer+='я';
if(ser[i]=='>')
rer+='ч';
if(ser[i]=='/')
rer+='с';
if(ser[i]=='[')
rer+='м';
if(ser[i]==']')
rer+='и';
if(ser[i]=='{')
rer+='т';
if(ser[i]=='}')
rer+='ь';
if(ser[i]=='|')
rer+='б';
if(ser[i]==':')
rer+='ю';
if(ser[i]=='.')
rer+='.';
if(ser[i]==',')
rer+=',';
if(ser[i]==' ')
rer+=' ';
if(ser[i]=='(')
rer+='ё';
}
Form2->Memo1->Text=rer;
rer="";
ser="";
}
void __fastcall TForm2::Button2Click(TObject *Sender)
{
Form2->Memo1->Alignment=taLeftJustify;
}
void __fastcall TForm2::Button3Click(TObject *Sender)
{
Form2->Memo1->Alignment=taCenter;
}
void __fastcall TForm2::Button4Click(TObject *Sender)
{
Form2->Memo1->Alignment=taRightJustify;
}
void __fastcall TForm2::Button5Click(TObject *Sender)
{
int T;
AnsiString buff = Memo1->Text;//Начальное слово
int key = StrToInt(Edit1->Text);//Ключ(Сдвиг)
for (int i = 1;i<=buff.Length();i++)
{
T = ((unsigned char)buff[i] + key);//Смещение на key
if (T >= 256) T=T-255;//Если ключ больше 256(Таблица символов ASCII)
buff[ i ] = (char)T;//Новое значение
}
Memo1->Text = buff;
}
void __fastcall TForm2::Button6Click(TObject *Sender)
{
int T;
AnsiString buff = Memo1->Text;//Начальное слово
int key = StrToInt(Edit1->Text);//Ключ(Сдвиг)
for (int i = 1;i<=buff.Length();i++)
{
T = ((unsigned char)buff[i] - key);//Смещение на key
if (T >= 256) T=T-255;//Если ключ больше 256(Таблица символов ASCII)
buff[ i ] = (char)T;//Новое значение
}
Memo1->Text = buff;
}
void __fastcall TForm2::Edit1KeyPress(TObject *Sender, System::WideChar &Key)
{
if(Key=='q') Key=0;
if(Key=='w') Key=0;
if(Key=='e') Key=0;
if(Key=='r') Key=0;
if(Key=='t') Key=0;
if(Key=='y') Key=0;
if(Key=='u') Key=0;
if(Key=='i') Key=0;
if(Key=='o') Key=0;
if(Key=='p') Key=0;
if(Key=='a') Key=0;
if(Key=='s') Key=0;
if(Key=='d') Key=0;
if(Key=='f') Key=0;
if(Key=='g') Key=0;
if(Key=='h') Key=0;
if(Key=='j') Key=0;
if(Key=='k') Key=0;
if(Key=='l') Key=0;
if(Key=='z') Key=0;
if(Key=='x') Key=0;
if(Key=='c') Key=0;
if(Key=='v') Key=0;
if(Key=='b') Key=0;
if(Key=='n') Key=0;
if(Key=='n') Key=0;
if(Key=='m') Key=0;
if(Key=='й') Key=0;
if(Key=='ц') Key=0;
if(Key=='у') Key=0;
if(Key=='к') Key=0;
if(Key=='е') Key=0;
if(Key=='н') Key=0;
if(Key=='г') Key=0;
if(Key=='ш') Key=0;
if(Key=='щ') Key=0;
if(Key=='з') Key=0;
if(Key=='х') Key=0;
if(Key=='ъ') Key=0;
if(Key=='ф') Key=0;
if(Key=='ы') Key=0;
if(Key=='в') Key=0;
if(Key=='а') Key=0;
if(Key=='п') Key=0;
if(Key=='р') Key=0;
if(Key=='о') Key=0;
if(Key=='л') Key=0;
if(Key=='д') Key=0;
if(Key=='ж') Key=0;
if(Key=='э') Key=0;
if(Key=='я') Key=0;
if(Key=='ч') Key=0;
if(Key=='с') Key=0;
if(Key=='м') Key=0;
if(Key=='и') Key=0;
if(Key=='т') Key=0;
if(Key=='ь') Key=0;
if(Key=='б') Key=0;
if(Key=='ю') Key=0;
if(Key=='№') Key=0;
if(Key=='!') Key=0;
if(Key=='~') Key=0;
if(Key=='@') Key=0;
if(Key=='#') Key=0;
if(Key=='%') Key=0;
if(Key=='^') Key=0;
if(Key=='&') Key=0;
if(Key=='*') Key=0;
if(Key=='(') Key=0;
if(Key==')') Key=0;
if(Key=='-') Key=0;
if(Key=='_') Key=0;
if(Key=='+') Key=0;
if(Key=='=') Key=0;
if(Key=='?') Key=0;
if(Key==':') Key=0;
if(Key==',') Key=0;
if(Key=='\'') Key=0;
if(Key=='{') Key=0;
if(Key=='}') Key=0;
if(Key=='[') Key=0;
if(Key=='\'') Key=0;
if(Key==']') Key=0;
if(Key=='|') Key=0;
if(Key=='/') Key=0;
if(Key==';') Key=0;
if(Key=='"') Key=0;
if(Key=='`') Key=0;
}
void __fastcall TForm2::Button7Click(TObject *Sender)
{
ShellExecute(Application->Handle,L"open",L"sprawka.chm",0,0,SW_SHOW);
}
#include <vcl.h>
#pragma hdrstop
#include "Unit3.h"
#include "Unit2.h"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm3 *Form3;
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
}
void __fastcall TForm3::CheckBox1Click(TObject *Sender)
{
if(Form3->CheckBox1->Checked==false)
{
Form3->Edit1->PasswordChar='*';
Form3->Edit2->PasswordChar='*';
}
else
{
Form3->Edit1->PasswordChar=NULL;
Form3->Edit2->PasswordChar=NULL;
}
}
void __fastcall TForm3::Button1Click(TObject *Sender)
{
TStringList*list=new TStringList;
list->LoadFromFile("pass.data");
String h=list[0][0];
if(Form3->Edit1->Text==h)
{
list->Clear();
list->Add(Form3->Edit2->Text);
list->SaveToFile("pass.data");
ShowMessage("Пароль сменен");
Form3->Close();
}
else
{
ShowMessage("Действующий пароль не верен");
return;
}
}
Размещено на Allbest.ru
Подобные документы
Анализ и описание алгоритма. Основные характеристики выбранного компьютера, программных сред (операционная система и среда программирования). Описание компонентов и интерфейса программы, а также модулей, процедур и функций. Вызов и загрузка программы.
курсовая работа [1,3 M], добавлен 26.04.2015Описание предметной области. Компоненты и палитра компонентов. Выбор архитектуры приложения. Структурные и функциональные схемы. Описание разрабатываемых процедур и функций, таблица идентификаторов. Выбор стратегии тестирования и разработка тестов.
дипломная работа [8,2 M], добавлен 18.06.2014Спецификация требований к разрабатываемому приложению. Разработка структурной схемы интерфейса. Описание алгоритма шифрования DES. Разработка программного кода приложения "DES". Проведение исследования основных шагов для генерации ключей и шифрования.
курсовая работа [398,4 K], добавлен 13.12.2022Проектирование программы, реализующей синтаксический анализ простой программы на языке С: этапы создания, алгоритм ее функционирования, структура, технология обработки информации. Описание программных модулей, интерфейс; выбор инструментальных средств.
курсовая работа [1,6 M], добавлен 12.12.2011Средства программирования, описание языка С++. Назначение программы, требования к документации. Стадии разработки, виды испытаний. Используемые технические, программные средства. Вызов и загрузка, входные и выходные данные. Программа и методика испытаний.
контрольная работа [205,3 K], добавлен 23.07.2013Разработка консольного приложения: описание и сценарий использования программы, интерфейс пользователя. Поэтапное описание создание кода компьютерной игры "Крестики нолики". Функциональные и нефункциональные требования, описание исключительных ситуаций.
методичка [819,6 K], добавлен 12.05.2013Описание предметной области, входной и выходной информации, функциональное и информационное моделирование, разработка структуры базы данных. Требования к аппаратному и программному обеспечению. Компоненты и интерфейс программы, ее вызов и загрузка.
дипломная работа [4,8 M], добавлен 06.07.2012Анализ целевой аудитории. Функциональные характеристики пользовательского приложения. Разработка алгоритмов и интерфейса программного продукта, функций рабочей области. Написание скриптов на языке C#. Тестирование программы методом чёрного ящика.
дипломная работа [1,5 M], добавлен 09.11.2016Разработка программы-приложения для создания композиции кривых второго порядка в полярных координатах. Описание используемых констант, переменных, компонентов, процедур и функций. Источники входной и выходной информации. Требования к программе и системе.
реферат [125,2 K], добавлен 28.05.2014Экономика тестирования. Режим проверки программы на ошибки в режиме "черного" и "белого ящика". Принципы ее проведения. Философия тестирования. Пошаговая, восходящяя, нисходящяя проверка модулей. Метод "большого скачка". Модифицированный метод сандвича.
презентация [585,4 K], добавлен 19.09.2016