Программа шифрования методом Цезаря
Программа для создания текстового файла, зашифровки текста и расшифровки. Требования к программным и аппаратным средствам. Выбор языка и среды программирования. Описание алгоритмов, программы, переменных. Тестирование работоспособности программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 12.11.2013 |
Размер файла | 597,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- 1. Постановка задачи
- 2. Требования к программным и аппаратным средствам
- 3. Выбор языка и среды программирования
- 4. Основная часть
- 4.1 Анализ задачи
- 4.2 Описание алгоритмов
- 4.3 Описание программы
- 4.4 Описание переменных
- 4.5 Листинг программы
- 4.6 Компьютеры, тестирование работоспособность программы
- 5. Скриншоты
- Заключение
- Список литературы
Аннотация
Курсовой проект на тему: "Программа шифрования методом Цезаря" на языке Pascal, с использованием вставок языка Assembler. содержит: 23 страниц пояснительной записки, 12 рисунков, 21 страниц программного кода, 7 использованных источников.
Ключевые слова: программный код, функция, алгоритм, Шифр, шифрования.
Объект исследования - разработка программы для создания текстового файла, зашифровки текста и расшифровки.
Целью курсового проекта является написать программу с дружественным интерфейсом (понятную обычному пользователю ПК)
Основываясь на исторических данных взятых с свободной интернет энциклопедии "википедии" проект начинается с небольшого рассказа о шифре Цезаря. В следующих главах описаны преимущества языка Паскаль с подробным кодом программы. Имеется подробное описание программы, функциональное тестирование. В приложении показана работа программы в рисунках.
Введение
Основная цель данной курсовой работы - обучение. Студент учится формировать постановку задач, составлять алгоритмы их решения и формализовать эти алгоритмы в популярной среде программирования. В ходе разработки программы студент осваивает язык Pascal, с использованием вставок языка Assembler (смотрите раздел ВЫБОР ЯЗЫКА И СРЕДЫ ПРОГРАММИРОВАНИЯ стр.5) и особенности его трансляции в Free Pascal компиляторе.
Также одной из основных задач является обучение правильному оформлению документации программы, что немаловажно для специалиста.
Для достижения этих целей была выбрана задача "Шифр Августа".
Юлий Цезарь был, якобы первым, кто придумал собственно шифр. Алфавит размещается по кругу на его часах (при этом в русском алфавите, после А идет Б, a после Я - А). Для зашифровки буквы текста заменяются буквами, отстоящими по кругу на заданное число букв дальше по ходу часовой стрелки. Если, скажем, сдвиг на 3, то вместо i-й используется (i+3) - я буква, например, вместо А пишется Г, а вместо Я пишется В. При расшифровке, наоборот, берут букву на заданное число букв ближе, т.е. двигаясь против часовой стрелки.
Шифр Августа аналогичен шифру Цезаря но использует другой размер сдвига.
Уровень сложности этой задачи позволяет ознакомиться с основными этапами написания реальных программ, и приобрести определенные навыки программирования.
Для решения задачи был использован метод структурного и процедурного программирования.
программа шифрование метод цезарь
1. Постановка задачи
Разработать и испытать программу для шифрования и дешифрования кода Августа.
В данной курсовой работе необходимо написать программу "шифр Августа", который считывает символы из файла или из набранного текса в программе и их шифрует или расшифровывает. После чего результат выводит на экран, и по выбору сохраняет его.
2. Требования к программным и аппаратным средствам
Для запуска и работы программы необходим, как минимум, IBMPC совместимый, монитор EGA операционные системы "Dos", Windows. Минимальные требования системы: Тип процессора: Pentium; Оперативной памяти: 1мб; Жесткий диск: 10 мб свободного пространства; Монитор с поддержкой VGA.
3. Выбор языка и среды программирования
Для разработки и написания кода был выбран язык программирования - "Pascal"в Free Pascal компиляторе, так как язык, обладает следующими "возможностями":
1. читабельность кода;
минимальными системными требованиями;
способность выполнить поставленную задачу;
простая логическая структура языка позволяет при программировании хранить больше строк кода в своей памяти.
Огромное число литературы, инструкций было написано по Паскалю:
При возникновении вопросов можно найти информацию в:
? интернет ресурсы,
? электронные книги,
? исходные коды программ,
? руководства с полезными советами, тонкостями программирования на данном языке.
4. Основная часть
4.1 Анализ задачи
Данную задачу для решения удобно разбить на несколько подзадач, а именно:
1) отдельно осуществить ввод данных;
2) отдельно их обработку;
3) отдельно сделать вывод результата.
Ввод данных состоит в:
вводе исходного текста или загрузке исходного текста из "файла 1";
выборе режима работы программы;
вводе ключа;
Обработка данных заключается в:
проверке корректности ввода ключа пользователем;
последовательном считывании кодов всех символов, присутствующих в "open. txt", или с экрана;
для режима шифрования - в последовательной замене очередного считанного кода буквы русского алфавита на код буквы, отстоящей по кругу от исходной на число букв, соответствующее выбранному ключу;
для режима дешифрования - в последовательной замене очередного считанного кода буквы русского алфавита на код буквы, отстоящей по кругу против часовой стрелки от исходной на число букв, соответствующее найденному ключу;
последовательном занесение очередного изменённого или не измененного символа в память программы;
Вывод результатов включает в себя в зависимости от выбранного режима работы программы:
вывод полученных результатов, а именно зашифрованный/расшифрованный текст.
создании текстового файла (" save. txt") и по выбору занесение в него результат текста.
4.2 Описание алгоритмов
Алгоритм представлен в графическом виде (блок-схема) на рисунках.1-6.
Размещено на http://www.allbest.ru/
Рисунок 1 - Общая блок-схема программы.
Рисунок 2 - Блок-схема общего вида функциональности программы.
Размещено на http://www.allbest.ru/
Рисунок 3 - Блок-схема функции шифрования текста.
Размещено на http://www.allbest.ru/
Рисунок 4 - Блок-схема функции дешифрования текста.
Рисунок 5 - Блок-схема функции вывода данных.
Размещено на http://www.allbest.ru/
Рисунок 6 - Блок-схема функции Открытие файла.
4.3 Описание программы
Принцип работы программы несложен и понятно изложен на блок-схеме и в анализе задачи. Основными функциями программы являются функции Shefrovanie, DeShefrovanie, otkr, sozdn, sozdn1.
С помощью функции Shefrovanie осуществляется шифрование текста (подробно см. Рисунок 3). Результатом работы функции является зашифрованный текст, в котором зашифрованы только большие и маленькие латинские и русские буквы.
С помощью функции DeShefrovanie осуществляется дешифрование текста (подробно см. Рисунок 4). Результатом работы функции является расшифрованный текст, который был зашифрован "методом Цезаря".
Функция otkr (подробно см. Рисунок 6). открывает файл для шифрования или дешифрования.
Функции sozdn, sozdn1 создают файл для хранения результата.
При открытии программы появляется главное окно, приведенное на рисунке.7
Рисунок 7 - Начало работы.
Выбор трех режимов программы:
№1-Открытие текстового файла для шифровании или дешифровании его содержимого.
*************************************************
В режиме №1 появляется окно с запросом:
Указания пути до текстового файла и далее окно с
F1-Шифровании текста;
F2-ДеШифровании текста;
***************************************************
№2-Набор текста в программе для его дальнейшего шифровании или дешифровании.
***************************************************
В режиме №2 появляется окно с запросом:
Ввода текста и далее окно с
F1-Шифровании текста;
F2-ДеШифровании текста;
***************************************************
№3-Выход из программы.
***************************************************
В режиме №3 происходит выход программы:
***************************************************
По окончании процедуры Шифрования или дешифрования появится окно:
Результат расчета на рис.8
Рисунок 8 - Вид после окончания расчета.
По завершению процедуры шифрования или дешифрования будет предложено создать текстовой файл и сохранить в него результат или выйти из программы.
4.4 Описание переменных
В таблице 1 описаны следующие переменные
Таблица 1. Описание переменных.
Переменные |
Что означает |
Тип |
|
t |
Max доступное кол-во строк для загрузки |
const |
|
Kluch |
Значение ключа |
integer |
|
i1 |
Подсчет кол-во загружаемых строк |
integer |
|
Chislo |
Сумма ключа и символа |
integer |
|
с |
Символ из строки |
integer |
|
f |
Переменная связанная с файлом |
text |
|
Put,Put1 |
Путь до загружаемого файла |
string |
|
i |
Счетчик |
integer |
|
names |
Имя сохраняемого файла |
string |
|
mas |
Массив для хранения текста из файла |
string |
|
mas1 |
Массив для хранения обработанного текста |
string |
|
n1 |
Переменная условия выбора |
integer |
|
nt1 |
Переменная события выбора |
integer |
|
rashod |
Переменная события действия №1 |
integer |
|
ii |
Переменная события действия №2 |
integer |
|
st |
Передаваемая строка в функцию |
string |
|
st1 |
Загруженная строка |
string |
|
text1 |
Хранение набранного текста с клавиатуры и передача его в функцию |
string |
|
Ft |
Хранения значения нажатой клавиши |
char |
|
nn |
Хранения значения нажатой клавиши |
char |
|
Bb |
Хранения значения нажатой клавиши |
char |
|
No1 |
Метка перехода по условию |
||
No2 |
Метка перехода по условию |
||
No3 |
Метка перехода по условию |
||
No4 |
Метка перехода по условию |
||
No5 |
Метка перехода по условию |
||
Loc1 |
Метка перехода по условию |
||
Loc2 |
Метка перехода по условию |
||
Loc3 |
Метка перехода по условию |
||
Loc4 |
Метка перехода по условию |
||
Loc5 |
Метка перехода по условию |
||
Exit |
Метка безусловного перехода |
||
Exit1 |
Метка безусловного перехода |
||
Exit2 |
Метка безусловного перехода |
||
Metca |
Метка перехода по условию |
||
Metca1 |
Метка перехода по условию |
||
Metca2 |
Метка перехода по условию |
В Таблице 2описаны следующие структурные данные
Таблица 2. Структуры данных
Имя |
Тип |
Предназначение |
|
Save. txt |
string |
Для хранения данных |
|
Open. txt |
string |
Для загрузки данных |
Таблица 3. Созданные типы данных
Тип |
Действие |
Параметр |
|
massiv |
Определяет массив |
string |
В Таблице 4 перечислены реализованные подпрограммы
Таблица 4. Описание функций
Функции |
Их действие |
Параметр |
|
Shefrovanie |
Шифрование текста |
string |
|
DeShefrovanie |
Дешифрования текста |
string |
|
otkr |
Открытие текстового документа |
massiv |
|
sozdn |
Создание текстового документа |
string |
|
sozdn1 |
Создание текстового документа |
string |
4.5 Листинг программы
// ---------------------------------------------------------------------------
programShefrovanie_Metodom_Cezar;
usescrt;
const t=100;
typemassiv=array [1. t] of string;
var Kluch, i1: integer;
function Shefrovanie (st: string): string; {функция шифрования}
var
Chislo: integer;
i,c: integer;
Begin
for i: = 1 to Length (st) do
begin
c: =Ord (st [i]);
asm
cmp c,239
jbe @metca1
jmp @exit1
@metca1:
cmp c,224
jae @metca
cmp c,175
jbe @metca2
jmp @exit1
@metca2:
cmp c,160
jae @metca
cmp c,159
jbe @metca3
jmp @exit1
@metca3:
cmp c,128
jae @metca
cmp c,122
jbe @metca4
jmp @exit1
@metca4:
cmp c,97
jae @metca
cmp c,90
jbe @metca5
jmp @exit1
@metca5:
cmp c,65
jae @metca
jmp @exit1
@metca:
mov ax,c
add ax,Kluch
mov chislo,ax
cmp c,90
ja @No1
cmp chislo,90
jbe @loc1
sub ax,90
add ax,64
jmp @exit
@No1:
cmp c,122
ja @No2
cmp chislo,122
jbe @loc2
sub ax,122
add ax,96
jmp @exit
@No2:
cmp c,159
ja @No3
cmp chislo,159
jbe @loc3
sub ax,159
add ax,127
jmp @exit
@No3:
cmp c,175
ja @No4
cmp chislo,175
jbe @loc4
sub ax,175
add ax,223
jmp @exit
jmp @exit
@No4:
cmp c,239
ja @No5
cmp chislo,239
jbe @loc5
sub ax,239
add ax,159
jmp @exit
@No5:
@loc1:
@loc2:
@loc3:
@loc4:
@loc5:
@exit:
jmp @exit2
@exit1:
mov ax,c
@exit2:
mov chislo,ax
end;
st [i]: =Chr (Chislo);
end;
Shefrovanie: =st;
end;
function DeShefrovanie (st: string): string; {функция дешифровывания}
var
Chislo: integer;
i,c: integer;
Begin
for i: = 1 to Length (st) do
begin
c: =Ord (st [i]);
asm
cmp c,239
jbe @metca1
jmp @exit1
@metca1:
cmp c,224
jae @metca
cmp c,175
jbe @metca2
jmp @exit1
@metca2:
cmp c,160
jae @metca
cmp c,159
jbe @metca3
jmp @exit1
@metca3:
cmp c,128
jae @metca
cmp c,122
jbe @metca4
jmp @exit1
@metca4:
cmp c,97
jae @metca
cmp c,90
jbe @metca5
jmp @exit1
@metca5:
cmp c,65
jae @metca
jmp @exit1
@metca:
mov ax,c
sub ax,Kluch
mov chislo,ax
cmp c,224
jb @No1
cmp chislo,224
jae @loc1
add ax,175
sub ax,223
jmp @exit
@No1:
cmp c,160
jb @No2
cmp chislo,160
jae @loc2
add ax,239
sub ax,159
jmp @exit
@No2:
cmp c,128
jb @No3
cmp chislo,128
jae @loc3
add ax,159
sub ax,127
jmp @exit
@No3:
cmp c,97
jb @No4
cmp chislo,97
jae @loc4
add ax,122
sub ax,96
jmp @exit
@No4:
cmp c,65
jb @No5
cmp chislo,65
jae @loc5
add ax,90
sub ax,64
jmp @exit
@No5:
@loc1:
@loc2:
@loc3:
@loc4:
@loc5:
@exit:
jmp @exit2
@exit1:
mov ax,c
@exit2:
mov chislo,ax
end;
st [i]: =Chr (Chislo);
end;
DeShefrovanie: =st;
end;
function otkr: massiv;
var f: text;
st1,put,put1: string;
i: integer;
Begin
clrscr;
i: =1;
i1: =1;
repeat
clrscr;
writeln ('Введите путь к файлу с разширением. txt');
readln (put1);
put: =put1;
Assign (f,put1);
{$I-}
reset (f); { открыть файл для чтения }
{$I+}
untilIOResult=0;
Whilenot EOF (f) do{ пока не достигнут конец файла }
begin
readln (f,st1); { прочитать информацию из файла }
otkr [i]: =st1;
inc (i);
i1: =i1+1;
end;
close (f);
end;
functionsozdn (mas1: massiv): string;
var f: text;
st1,names: string;
i: integer;
Begin
clrscr;
Begin
writeln ('Введите имя файла с расширением. txt');
write ('->');
readln (names);
Assign (f,names);
rewrite (f); { открыть файл для записи }
for i: =1 to i1-1 do
begin
writeln (f,mas1 [i]);
end;
end;
close (f);
end;
function sozdn1 (text1: string): string;
var f: text;
st1,names: string;
i: integer;
Begin
clrscr;
Begin
writeln ('Введите имя файла с расширением. txt');
write ('->');
readln (names);
Assign (f,names);
rewrite (f); { открыть файл для записи }
writeln (f,text1);
end;
close (f);
End;
VAR mas: array [1. t] of string;
mas1: array [1. t] of string;
n1,nt1, i,rashod, ii: integer;
st,st1,text1: string;
Ft,n,nn,Bb: char;
BEGIN
repeat
clrscr;
writeln ('******************************************');
writeln ('1. Открыть исходный текст из файла - > ');
writeln ('2. Набор текста в программе - >');
writeln ('0. Выход');
writeln ('******************************************');
write ('Введите номер: ');
Begin
nt1: =0;
while nt1=0 do
Begin
nn: = ReadKey; {Проверка нажатой клавишы}
if (Ord (nn) =49) then
begin
nt1: =1;
end
else
if (Ord (nn) =50) then
begin
nt1: =2;
end
else
if (Ord (nn) =48) then
begin
nt1: =3;
end;
end;
end;
until (nt1=1) or (nt1=2) or (nt1=3);
if nt1=1 then
begin
mas: =otkr;
clrscr;
writeln ('Информация из файла: ');
writeln ('-------------------------------------------');
for i: =1 to i1-1 do
begin
st1: =mas [i];
writeln (st1);
end;
writeln ('-------------------------------------------');
writeln ('************************************************');
writeln ('I - Шифровать текст - >НажмитеF1');
writeln ('II - Разшифровать текст - > Нажмите F2');
writeln ('************************************************');
Begin
rashod: =0;
whilerashod=0 do
Begin
Ft: =ReadKey; {Проверка нажатой клавишы}
if (Ord (Ft) =59) or (Ord (Ft) =60) then
rashod: =rashod+1;
end;
end;
ifOrd (Ft) =59 then
Begin
repeat
ii: =1;
clrscr;
writeln ('Введите ключ: от "1 до 20" ');
write ('->');
readln (Kluch);
if (Kluch>=1) and (Kluch<=20) then
Begin
ii: =0;
end
else
begin
writeln ('Ошибка ввода, "Ключ не корректен" - введите еще раз');
Delay (2000);
end;
until ii=0;
clrscr;
writeln ('#########################################');
writeln ('Исходный текст: ');
writeln ('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
writeln ('-----------------------------------------');
for i: =1 to i1-1 do
begin
st1: =mas [i];
writeln (st1);
end;
writeln ('-----------------------------------------');
writeln ();
writeln ();
writeln ('#########################################');
writeln ('ЗаШифрованный текст: ');
writeln ('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
writeln ('-----------------------------------------');
for i: =1 to i1-1 do
begin
st: =mas [i];
mas1 [i]: =Shefrovanie (st);
writeln (mas1 [i]);
end;
writeln ('*****************************************');
writeln ('');
writeln ('');
writeln ('');
writeln ('Сохранить результат в файл');
writeln ('1-Да 0-Выход');
Begin
n1: =0;
while n1=0 do
Begin
Bb: =ReadKey; {Проверка нажатой клавишы}
if (Ord (Bb) =49) then
begin
n1: =1;
end
else
if (Ord (Bb) =48) then
begin
n1: =2;
end;
end;
end;
ifOrd (n1) =1 then
begin
sozdn (mas1);
clrscr;
writeln ('Результат успешно сохранен!!! ');
write ('Для выхода нажмите Enter->');
Readln ();
begin
Exit;
end;
end;
end;
end
else
ifOrd (n1) =2 then
begin
Exit;
end;
ifOrd (Ft) =60 then
Begin
repeat
ii: =1;
clrscr;
writeln ('Введите ключ: от "1 до 20" ');
write ('->');
readln (Kluch);
if (Kluch>=1) and (Kluch<=20) then
Begin
ii: =0;
end
else
begin
writeln ('Ошибка ввода, "Ключ некорректен" - введите еще раз');
Delay (2000);
end;
until ii=0;
clrscr;
writeln ('#########################################');
writeln ('Исходный текст: ');
writeln ('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
writeln ('-----------------------------------------');
for i: =1 to i1-1 do
begin
st1: =mas [i];
writeln (st1);
end;
writeln ('-----------------------------------------');
writeln ();
writeln ();
writeln ('#########################################');
writeln ('РазШифрованныйтекст: ');
writeln ('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
writeln ('-----------------------------------------');
for i: =1 to i1-1 do
begin
st: =mas [i];
mas1 [i]: =DeShefrovanie (st);
writeln (mas1 [i]);
end;
writeln ('*****************************************');
writeln ('');
writeln ('');
writeln ('');
writeln ('Сохранить результат в файл');
writeln ('1-Да 0-Выход');
Begin
n1: =0;
while n1=0 do
Begin
Bb: =ReadKey; {Проверка нажатой клавишы}
if (Ord (Bb) =49) then
begin
n1: =1;
end
else
if (Ord (Bb) =48) then
begin
n1: =2;
end;
end;
end;
ifOrd (n1) =1 then
begin
sozdn (mas1);
clrscr;
writeln ('Результат успешно сохранен!!! ');
write ('Для выхода нажмите Enter->');
Readln ();
begin
Exit;
end;
end;
end
else
ifOrd (n1) =2 then
begin
Exit;
end;
if nt1=2 then
begin
clrscr;
writeln ('ВведитеТекстиНажмитеEnter: ');
writeln ('************************************************');
readln (text1);
writeln ('Выберите действие: ');
writeln ('I - Шифровать текс - > Нажмите F1');
writeln ('II - РазШифровать текс - > Нажмите F2');
writeln ('************************************************');
Begin
rashod: =0;
whilerashod=0 do
Begin
Ft: =ReadKey; {Проверка нажатой клавишы}
if (Ord (Ft) =59) or (Ord (Ft) =60) then
rashod: =rashod+1;
end;
end;
ifOrd (Ft) =59 then
Begin
Begin
repeat
ii: =1;
clrscr;
writeln ('Введите ключ: от "1 до 20" ');
write ('->');
readln (Kluch);
if (Kluch>=1) and (Kluch<=20) then
Begin
ii: =0;
end
else
begin
writeln ('Ошибка ввода, "Ключ не корректен" - введите еще раз');
Delay (2000);
end;
until ii=0;
clrscr;
writeln ('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
writeln ('Исходный текст: ');
writeln (text1);
writeln ('-----------------------------------------');
writeln ();
writeln ('*****************************************');
writeln ('ЗаШифрованныйтекст: ');
begin
st: =text1;
text1: =Shefrovanie (st);
writeln (text1);
end;
end;
writeln ('*****************************************');
writeln ('');
writeln ('');
writeln ('');
writeln ('Сохранить результат в файл');
writeln ('1-Да 0-Выход');
Begin
n1: =0;
while n1=0 do
Begin
Bb: =ReadKey; {Проверканажатойклавишы}
if (Ord (Bb) =49) then
begin
n1: =1;
end
else
if (Ord (Bb) =48) then
begin
n1: =2;
end;
end;
end;
ifOrd (n1) =1 then
begin
begin
sozdn1 (text1);
end;
clrscr;
writeln ('Результатуспешносохранен!!! ');
write ('Для выхода нажмите Enter->');
Readln ();
begin
Exit;
end;
end;
end;
end
else
ifOrd (n1) =2 then
begin
Exit;
end;
ifOrd (Ft) =60 then
Begin
repeat
ii: =1;
clrscr;
writeln ('Введитеключ: от "1 до 20" ');
write ('->');
readln (Kluch);
if (Kluch>=1) and (Kluch<=20) then
Begin
ii: =0;
end
else
begin
writeln ('Ошибкаввода, "Ключнекорректен" - введитеещераз');
Delay (2000);
end;
until ii=0;
clrscr;
writeln ('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
writeln ('Исходныйтекс: ');
writeln (text1);
writeln ('-----------------------------------------');
writeln ();
writeln ('*****************************************');
writeln ('РазШифрованныйтекст: ');
begin
st: =text1;
text1: =DeShefrovanie (st);
writeln (text1);
end;
writeln ('*****************************************');
writeln ('');
writeln ('');
writeln ('');
writeln ('Сохранить результат в файл');
writeln ('1-Да 0-Выход');
Begin
n1: =0;
while n1=0 do
Begin
Bb: =ReadKey; {Проверканажатойклавишы}
if (Ord (Bb) =49) then
begin
n1: =1;
end
else
if (Ord (Bb) =48) then
begin
n1: =2;
end;
end;
end;
ifOrd (n1) =1 then
begin
begin
sozdn1 (text1);
end;
clrscr;
writeln ('Результатуспешносохранен!!! ');
write ('Для выхода нажмите Enter->');
Readln ();
begin
Exit;
end;
end;
end
else if Ord (n1) =2 then
begin
Exit;
end;
end.
4.6 Компьютеры, тестирование работоспособность программы
Для проверки работоспособности программы использовалось следующее аппаратное обеспечение:
Компьютер №1: Intel (R) Pentium 4 CPU 2 Ггц, 1024Мб DDR2 400,SATA 100Гб HDD, Radeon3200HD,
? Компьютер №2: Intel Core 2 Dou, 2 Гб DDR2 400, SATA 500 Гб жёсткий диск, GeForceGTX 450,Компьютер №3: Pentium3, 128 Mb DIMM, SATA 20Гб HDD, GeForceTN.
Было произведено тестирование программы на реализуемость функциональных требований, то есть способности ПО в определённых условиях решать задачи, нужные пользователям.
При запуске Cezar. exe выбирался первый вариант работы программы (рис.9) вводилось имя файла с указанием расширения - open. txt (рис.10), из файла был загружен текст и выведена экран монитора: "My name is Djon" (рис.11). Из предложенного варианта был выбран пункт шифрование, текст был зашифрован с параметром ключа равного одному и выведен на экран (рис.12).
При повторном запуске Сezar. exe выбирался второй вариант работы программы и вводился текст: "Nz obnf jt Ekpo" (рис.13), и запускалось его дешифрование, с параметром ключа равного одному, текст расшифровался и вывелся на экран монитора: "My name is Djon" (рис.14). Расшифрованный текст был сохранен в файл - save. txt
При работе всех двух приложений ошибок не возникало.
Подробная работа каждой программы- (рисунок 9), (рисунок 10), (рисунок 11), (рисунок 12), (рисунок 13), (рисунок 14).
5. Скриншоты
Рисунок 9 - Главное окно программы.
Рисунок 10 - Окно ввода пути.
Рисунок 11 - Окно информации из файла.
Рисунок 12 - Окно результата.
Рисунок 12 - Окно ввода информации.
Рисунок 12 - Окно результата №2.
Заключение
Данная программа считывает символы из файла или из набранного текса в программе и шифрует или расшифровывает их, результат выводит на экран компьютера, а также по выбору сохраняет его в текстовый документ. Программа написана в соответствии с заданием.
Выводы.
программа работает;
поставленные задачи выполняет.
В результате выполнения курсовой работы были получены навыки составления алгоритма для поставленной задачи и воплощения этого алгоритма в текст программы, написанной на языке Pascal, с использованием вставок языка Assembler в среде FreePascal. А также было разработано программное средство, успешно решающее поставленную задачу, т.е. была написана программа, работающая в двух режимах, позволяющая шифровать и расшифровывать тексты "шифр Августа".
При желании можно расширить возможности данной программы путем добавления поддержки других языков, дешифрования текста с помощью оценивания редко и часто встречающихся сочетаний букв, а также возможности печати результатов работы программы.
Список литературы
1.
2. TurboPascal. Немнюгин. - Санкт Петербург, 200. - 540c.
3. Паскаль для школьников Ушаков Д. М, Юркова - Москва: Питер, 2010. - 460с.
4. Знаешь ли ты Паскаль? В.П. Гладков - Пермь2001 - 1152 c.
5. Турбо Паскаль в примерах и задачах П.П. Васильев - Москва 2003. - 326c.
6. Новые возможности Turbo-Pascal 6.0. Блашкин И.И., Буров А.А. - СПб.: Изд-во "Макет", 1992.
7. Меженный О.А. Turbo Pascal. Самоучитель Издательство: Вильямс, Диалектика 2008,http://ru. wikipedia.org
Размещено на Allbest.ru
Подобные документы
История появления и развития шифрования текста. Проблема шифрования и дешифрования текстовых сообщений в современности. Создание программы для зашифровки и расшифровки вводимого текста пятью методами: Атбаш, Цезаря, Полибия, Гронсфельда и Винжера.
курсовая работа [923,6 K], добавлен 26.12.2011Схема работы и требования к программам шифрования и дешифрования. Алгоритмы и тексты программы шифрования и программы дешифрования, выполненные на языке программирования C/C++. Содержание файла с исходным текстом, с шифротекстом, с дешифрованным текстом.
курсовая работа [24,7 K], добавлен 20.10.2014Метод последовательных приближений. Требования к аппаратным ресурсам и программным средствам разработки. Руководство пользователя, тестовые примеры. Тестирование приложения: ввод вычислений, рисование графика функции. Особенности применения программы.
курсовая работа [773,7 K], добавлен 27.08.2012Выбор и обоснование выбора среды разработки. Разработка алгоритма работы программы, проектирование системы меню. Общее описание программы: назначение и область применения, интерфейс, требования к аппаратным и программным ресурсам, тестирование и листинг.
курсовая работа [543,2 K], добавлен 20.05.2013Требования к техническим, программным средствам разработки и функционированию программы. Обоснование выбранного языка программирования. Описание алгоритма решения задачи, тестирование ее основных функций. Понятие дружелюбного пользовательского интерфейса.
курсовая работа [85,9 K], добавлен 31.10.2014Разработка программы создания заметок в любом месте компьютера. Выбор технологии, языка и среды разработки приложения. Описание основных алгоритмов работы программного обеспечения. Проектирование пользовательского интерфейса. Выбор стратегии тестирования.
отчет по практике [700,5 K], добавлен 24.11.2014Организация вычислительных процессов и программирования на алгоритмическом языке. Создание программы "Калькулятор". Выбор языка и среды программирования. Функциональная схема работы программы, описание разработанных алгоритмов. Способы устранения ошибок.
курсовая работа [434,1 K], добавлен 27.08.2012Разработка программы, позволяющей реализовать шифрование и дешифрование текстового файла методом замены и методом перестановки. Требования к функциональным характеристикам, надежности, составу и параметрам технических средств ПО. Интерфейс пользователя.
курсовая работа [19,0 K], добавлен 30.04.2011Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.
курсовая работа [1,5 M], добавлен 17.01.2011Разработка игры "Экзамен" с применением объектно-ориентированного программирования и языка Java (в среде Eclipse Helios). Структура программы и алгоритм решения задачи. Описание методов и переменных. Экспериментальное тестирование и оценка программы.
курсовая работа [122,5 K], добавлен 19.05.2011