Файл: Учреждение образования Федерации профсоюз Беларуси Международный университет митсо.docx
ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 12.12.2023
Просмотров: 69
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
Когда мы запускаем программу, перед вами появляется выбор, шифровать или расшифровать. Вам необходимо сделать выбор цифрой «1» либо «2».
После нажатия, например, на число «1» вам надо будет вести любое сообщение которое будет закодировано. К примеру будет представлено слово «ПРИВЕТ»
(Обязательно с больших букв!).
После того, как мы ввели определенное сообщение, мы должны сделать выбор в количестве сдвига (на сколько будет происходить сдвиг)
9
После того, как мы выбрали число сдвигов, мы получаем готовый результат.
Затем, мы можем спокойно, скопировать полученное слово, а затем выбрать такое же число сдвига, но поставить в начале расшифровка, то у нас получить начальное слово «ПРИВЕТ».
10
ЗАКЛЮЧЕНИЕ
Шифр Цезаря, является достаточно легким для применения в обычной жизни шифром, но из-за его простоты в наше время он практически бесполезен.
Во время написания курсового проекта были выполнены задачи:
- изучить предметную область
- сбор и анализ данных
- разработать алгоритм и его описание;
- оценка трудоемкости алгоритма;
- создание источника данных (в виде файлов), анализ данных;
- создание руководства пользователя.
Цель достигнута. Была разработана и протестирована программа “шифр Цезаря”.
Цели были выполнены и имеют следующие преимущества:
-
Общение между двумя пользователями средством шифрования -
Расшифровка методом Цезаря
При выполнении курсового проекта были углублены знания по многим темам, которые были пройдены за семестр обучения в С++.
Поставленные задачи проекта были реализованы: изучена предметная область, спроектированного ИПО, реализовано ИПО на языке С++, проверена работоспособность ИПО.
В дальнейшем планируется улучшение и расширение среды применения разработанной программы.
11
Список литературы
-
Классы в С++: методы, свойства класса, примеры. Уроки программирования на C++ -
Функции в C++: аргументы и типы функций, примеры. Уроки программирования на С++ -
https://ru.wikipedia.org
12
ПРИЛОЖЕНИЕ А
#include
#include
#include
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int i = 0, k, count;
char ABC[] = { 'А','Б','В','Г','Д','Е','Ж','З','И',
'Й','К','Л','М','Н','О','П','Р','С',
'Т','У','Ф','Х','Ц','Ч','Ш','Щ','Ъ',
'Ы','Ь','Э','Ю','Я','_','.',',','0',
'1','2','3','4','5','6','7','8','9' };
char msg[80];
cout << "Что вы хотите сделать?(1-зашифровать письмо, 2-расшифровать письмо): ";
cin >> count;
switch (count)
{
case 1:
{
cout << "Введите сообщение, которое будет закодировано: " << endl;
cin >> msg;
cout << "\nВведите сдвиг:" << endl;
cin >> k;
cout << endl;
char* begin = ABC;
char* end = ABC + sizeof(ABC);
for (; msg[i]; ++i)
{
char* ch = find(begin, end, msg[i]);
if (ch != end) msg[i] = *(begin + (ch - begin + k) % sizeof(ABC));
}
cout << "Полученное закодированное сообщение: " << endl;
cout << msg << endl;
break;
}
case 2:
{
cout << "Введите сообщение, которое будет раскодираванно: " << endl;
cin >> msg;
cout << "\nВведите сдвиг:" << endl;
cin >> k;
k *= -1;
cout << endl;
char* begin = ABC;
char* end = ABC + sizeof(ABC);
for (; msg[i]; ++i)
{
char* ch = find(begin, end, msg[i]);
if (ch != end) msg[i] = *(begin + (ch - begin + k) % sizeof(ABC));
}
cout << msg << endl;
break;
}
default:
break;
}
return 0;
}