3 РЕАЛИЗАЦИЯ ПРОГРАММНОГО МОДУЛЯ
3.1 Описание структуры разрабатываемого проекта
Разрабатываемый программный продукт будет содержать 2 формы: главную форму приложения и основную форму (в которой происходит ввод данных, само шифрование/дешифрование данных и вывод конечных результатов). Основное окно приложения будет содержать главное меню. Схема главного меню представлена рисунке 7.
Рисунок 7 Лист 6 – Схема главного меню
3.2 Создание форм программы
Главная форма программы раскрывается при запуске программы и содержит следующие элементы:
Форма главного окна представлена на рисунке 7.
Рисунок 7 – Форма главного окна
Форма основного окна представлена на рисунке 8.
Рисунок 8 – Форма основного окна
При разработке основной формы программы были использованы следующие компоненты: BitBtn, Label, Image, MainMenu, Memo.
3.3 Написание кода для ввода исходных данных, их шифрации и вывода зашифрованных данных (метод “Цезаря”)
Для ввода исходных данных используется компонент Memo1, находящийся на основной форме. Для шифрации введенного текста программа считает количество строк во всем тексте, и в каждой строке находит номер каждого символа, за тем прибавляет к номеру символа число три и выводит в место исходного символа символ который соответствует номеру исходного символа увеличенному на число три в компонент Memo2.
Пример шифрации исходных данных и вывода зашифрованных данных (метод “Цезаря”):
//Шифрование методом “Цезаря”
k := Memo1.Lines.Count;
for i := 0 to k do begin
a[i]:=Memo1.Lines[i];
n:=length(a[i]);
s:=a[i];
s2:='';
for j := 1 to n do begin
z:=ord(s[j]);
z:=z+3;
S1:=chr(z);
s2:=s2+s1;
a[i]:=s2;
end;
end;
//Вывод зашифрованных данных
for i := 0 to k do
Memo2.Lines.Add(a[i]);
end;
3.4 Написание кода для ввода исходных данных, их шифрации и вывода зашифрованных данных (метод “Атбаш”)
Для ввода исходных данных используется компонент Memo1, находящийся на основной форме. Для шифрации введенного текста программа считает количество строк во всем тексте и если трока не пуста, то программа заменяет каждый символ в этой строке на соответствующий символ, после замены всех символов строки программа переходит на следующую строку и так пока не будут пройдены все строки, зашифрованные данные выводятся в компонент Memo2.
Пример шифрации исходных данных и вывода зашифрованных данных (метод “Атбаш”):
//шифрование методом “Атбаш”
s:=memo1.Lines[j];
n:=length(s);
For i:=0 to n do begin
if s<>'' then case s[i] of
'A': insert('Z',v,i);
'B': insert('Y',v,i);
…//символы от D до X
'Y': insert('B',v,i);
'Z': insert('A',v,i);
//xxx
'a': insert('z',v,i);
'b': insert('y',v,i);
…//символы от d до x
'y': insert('b',v,i);
'z': insert('a',v,i);
//xxx
'А': insert('Я',v,i);
'Б': insert('Ю',v,i);
…//символы от Д до Э
'Ю': insert('Б',v,i);
'Я': insert('А',v,i);
//XXX
'а': insert('я',v,i);
'б': insert('ю',v,i);
…//символы д-э
'ю': insert('б',v,i);
'я': insert('а',v,i);
//xxx
'0': insert('9',v,i);
'1': insert('8',v,i);
…//символы от 2 до №
'<': insert('<',v,i);
'>': insert('>',v,i);
end;
end;
//вывод зашифрованных данных
memo2.Lines.Add(v);
end;
3.5 Написание кода для ввода зашифрованных данных, их дешифрации и вывода исходных данных (метод “Цезаря”)
Для ввода зашифрованных данных используется компонент Memo2, находящийся на основной форме. Для дешифрации введенного текста программа считает количество строк во всем тексте, и в каждой строке находит номер каждого символа, за тем отнимает от номера символа число три и выводит в место исходного символа символ который соответствует номеру исходного символа уменьшенному на число три в компонент Memo1.
Пример дешифрации зашифрованных данных и вывода исходных данных (метод “Цезаря”):
//дешифрование методом “Цезаря”
k := Memo2.Lines.Count;
for i := 0 to k do begin
a[i]:=Memo2.Lines[i];
n:=length(a[i]);
s:=a[i];
s2:='';
for j := 1 to n do begin
z:=ord(s[j]);
z:=z-3;
S1:=chr(z);
s2:=s2+s1;
a[i]:=s2;
end;
end;
//Вывод исходных данных
for i := 0 to k do
Memo1.Lines.Add(a[i]);
end;
3.6 Написание кода для ввода зашифрованных данных, их дешифрации и вывода исходных данных (метод “Атбаш”)
Для ввода зашифрованных данных используется компонент Memo2, находящийся на основной форме. Для дешифрации введенного текста программа считает количество строк во всем тексте и если трока не пуста, то программа заменяет каждый символ в этой строке на соответствующий символ, после замены всех символов строки программа переходит на следующую строку и так пока не будут пройдены все строки, исходные данные выводятся в компонент Memo1.
Пример дешифрации исходных данных и вывода зашифрованных данных (метод “Атбаш”):
//дешифрование методом “Атбаш”
s:=memo2.Lines[j];
n:=length(s);
For i:=0 to n do begin
if s<>'' then case s[i] of
'A': insert('Z',v,i);
'B': insert('Y',v,i);
…//символы от D до X
'Y': insert('B',v,i);
'Z': insert('A',v,i);
//xxx
'a': insert('z',v,i);
'b': insert('y',v,i);
…//символы от d до x
'y': insert('b',v,i);
'z': insert('a',v,i);
//xxx
'А': insert('Я',v,i);
'Б': insert('Ю',v,i);
…//символы от Д до Э
'Ю': insert('Б',v,i);
'Я': insert('А',v,i);
//XXX
'а': insert('я',v,i);
'б': insert('ю',v,i);
…//символы д-э
'ю': insert('б',v,i);
'я': insert('а',v,i);
//xxx
'0': insert('9',v,i);
'1': insert('8',v,i);
…//символы от 2 до №
'<': insert('<',v,i);
'>': insert('>',v,i);
end;
end;
//вывод зашифрованных данных
Memo1.Lines.Add(v);
end;
3.7 Проектирование интерфейса программы
Главное окно содержит строку пояснения, где отображаются для чего разработана данная программа и кнопку “Далее” при нажатии которой выполняется переход на основную форму программы.
Форма главного окна представлена на рисунке 8.
Рисунок 8 – Форма главного окна
Основное окно содержит главное меню содержащее три пункта (Зашифровать, Расшифровать, Справка), поле для исходного текста, поле для зашифрованного текста, две кнопки “Зашифровать”, две кнопки “Расшифровать” (каждая кнопка шифрует дынные разными способами, если была выбрана одна кнопка “Зашифровать”, то та кнопка “Расшифровать” которая предусмотрена не для этого метода станет неактивной), кнопку “Retry” (кнопка рестарта программы) и кнопку “Cancel” (кнопка выхода из программы).
Форма основного окна представлена на рисунке 9.
Рисунок 9 – Форма основного окна
При нажатии в главном меню программы пункта “Зашифровать” появляется вкладка, приведенная на рисунке 10.
Что происходит при нажатии пункта “Зашифровать” 10.
Рисунок 10 – Вкладка 1
При нажатии в главном меню программы пункта “Расшифровать” появляется вкладка, приведенная на рисунке 11.
Что происходит при нажатии пункта “Зашифровать” 10.
Рисунок 10 – Вкладка 2
Программа содержит справочную систему, приведенную на рисунке 12.
Рисунок 12 - Справочник
Дата | Выполнено, % |
---|---|
2020-05-31 17:04:27 | 10 |
2020-05-31 14:04:24 | 100 |