- •Министерство образования республики беларусь учреждение образования «барановичский государственный университет»
- •Введение
- •1. Теоретическая часть
- •1.1 Постановка задачи
- •1.2 Математическая модель
- •1.3 Алгоритм решения
- •1.4 Блок-схема
- •2. Практическая часть
- •2.1. Описание объектов, свойств и методов
- •2.2 Формы и основные модули текста программы в среде Delphi
- •Листинг программы
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus;
type
TForm1 = class(TForm)
Memo1: TMemo;
Memo2: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
str: WideString; w,w0: string; op:boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var w,w0,w1: string; i,k: integer;
begin
str:=Memo1.Text; memo2.Text:=''; w0:=''; w:=Edit1.Text;
if (w='') or (str='') then begin MessageDlg('Присутствуют пустые поля',mtInformation, [mbOK], 0);
exit; end;
if Button1.Caption='Зашифровать' then begin k:=1;
for i:=1 to Length(str) do begin
Memo2.Text:=Memo2.Text+str[i]+w[k];
k:=k+1;
if k>length(w) then k:=1;
end;
end
else begin
if op then for i:=1 to Length(str) do
if (str[i]=#$A) then Delete(str,i,1);
for i:=1 to Length(str) do
if not (odd(i)) then w0:=w0+str[i];
k:=1;
for i:=1 to length(w0) do begin
w1:=w1+w[k];
k:=k+1;
if k>length(w) then k:=1; end;
if w1=w0 then begin
for i:=1 to length(str) do begin
if (str[i]=#$D) and (op) then Memo2.Text:=Memo2.Text+#10;
if odd(i) then Memo2.Text:=Memo2.Text+str[i]; end; end
else MessageDlg('Неправильный ключ', mtWarning, [mbcancel],0); exit; end;
op:=false;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if Label1.Caption='Исходный текст' then begin
Label1.Caption:='Зашифрованный текст';
Label2.Caption:='Исходный тескт';
Button1.Caption:='Дешифровать';
end
else
begin
Label1.Caption:='Исходный текст';
Label2.Caption:='Зашифрованный текст';
Button1.Caption:='Зашифровать';
end; end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
#13: Button1.Click; end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Memo2.Clear;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
op:=true;
OpenDialog1.Title:='Открыть файл';
with OpenDialog1, Memo1 do
if Execute then
begin
Lines.LoadFromFile(FileName);
OpenDialog1.FileName:=FileName;
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
SaveDialog1.Title:='Сохранить исходный текст';
SaveDialog1.FileName:='Исходный текст';
with SaveDialog1, Memo1 do
if Execute then
begin
Lines.SaveToFile(FileName);
SaveDialog1.FileName:=Filename;
end;
SaveDialog1.Title:='Сохранить зашифрованный текст';
SaveDialog1.FileName:='Зашифрованный текст';
with SaveDialog1, Memo2 do
if Execute then
begin
Lines.SaveToFile(FileName);
SaveDialog1.FileName:=Filename;; end;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
MessageDlg('Программа Шифратор предназначена для шифровки-дешифровки текста.'+#13+'Для выполнения шифровки необходимо ввести текст в поле "Исходный текст", ввести ключ, который необходимо запомнить (иначе дешифровка текста не будет выполнена), и нажать "Зашифровать".'+#13+'Для обратной операции необходимо поменять направление перевода клавишей "<-->" и провести соответствующие операции'+#13+'Также программа выполняет открытие из файла и сохранение текста в файл.'+#13+'Программа разработана студентом 1-го курса БарГУ Гуриновичем Алексеем в 2012 году',mtInformation,[mbOK],0 ) ;
end;
end.