м'ять буде збережений вихідний текст
Рис 4. Повідомлення про завершення читання файлу
Далі ми знову повертаємося в головне меню. Тепер нам необхідно вибрати другий пункт в меню «Шифрування даних» (рис. 1). Шифрування даних являє собою власне процес перетворення вихідних даних в зашифрований вид. Перетворення здійснюється за допомогою ключа, також генерує в ході виконання даної функції. Після здійснення всіх операцій у функції з'явиться повідомлення про успішне завершення шифрування (рис. 5).
Рис 5. Повідомлення про успішне завершення шифрування
Далі можна переконатися, що вихідні дані дійсно зашифровані, подивившись у файл Code.txt (рис. 6)
Рис 6. Оригінальний текст в зашифрованому вигляді
Крім шифрованого тексту також створюється файл Key.txt, який містить розшифровку-ключ і показує, які букви були замінені на інші (рис. 7).
Рис 7. Ключ до розшифровки
За допомогою заздалегідь переданого ключа можна розшифрувати дані не створюючи щоразу заново алфавіт.
Знову повернемося в головне меню і виберемо третій пункт «Обчислення формули» (рис. 8)
Рис 8. Індекс збігу
Результат індексу обчислюється за формулою, зображеної на скріншоті, і виводиться для користувача. Тут дана формула має від'ємне значення, через те що не всі букви були використані в тексті. Результат формули нікуди не записується, а виводиться тільки на екран.
Після виконання всіх дій з програми можна вийти через відповідний пункт або натисканням клавіші «ESC».
Висновок
Метою даної курсової роботи було створення працездатного програмного забезпечення, призначеного для шифрування вихідного тексту, що обчислює індекс збігів і володіє графічним інтерфейсом.
У результаті була розроблена програма, яка задовольняє вимогам завдання. Програма дозволяє зашифровувати текст, об'ємом менше 255 символів.
Графічне меню було створено для полегшення навігації та експлуатації за програмою.
Найбільш складним в процесі розробки програми було створення випадкового алфавіту, а саме перевірка генерації певної літери до теперішнього моменту.
Дану програму можна буде в недалекому майбутньому вдосконалити, ввівши деякі оновлення, наприклад:
додати можливість шифрування російської мови.
зробити генерацію з декількох алфавітів. Таким чином, одна і та ж буква може замінюватися на дві інші, що ускладнить процес розшифровки, для не має ключа користувача.
зміна розділових знаків. Можна буде шифрувати букви не тільки з іншими буквами, а й зі знаками пунктуації, самі ж розділові знаки також змінювалися б на інші.
створити окремий пункт для генерації алфавіту. Для генерації алфавіту і ключа можна було б створити окремий пункт в меню таким чином можна один раз згенерувати алфавіт, а потім постійно шифрувати дані тільки за допомогою цього алфавіту.
Література
1. Конспект лекцій з дисципліни Програмування" .
. Методичні вказівки до виполнению лабораторних робіт №5-8 з дисципліни «Програмування» для студентів 2 курсу, які навчаються за напрямом підготовки бакалаврів 231000.62 - «Програмна інженерія» та профілем «Розробка програмно-інформаційних систем» - Махачкала: ДДТУ, 2013. - 32с.
. Методичні вказівки до виконання лабораторних робіт №9-12 з дисципліни «Програмування» для студентів 2 курсу, які навчаються за напрямом підготовки бакалаврів 231000.62 - «Програмна інженерія» та профілем «Розробка програмно-інформаційних систем» - Махачкала: ДДТУ, 2013. - 28с.
. Методичні вказівки до виконання лабораторних робіт №13-16 з дисципліни «Програмування» для студентів 2 курсу, які навчаються за напрямом підготовки бакалаврів 231000.62 - «Програмна інженерія» та профілем «Розробка програмно-інформаційних систем» - Махачкала: ДДТУ, 2013. - 28с.
. cyberforum.
.wikipedia.
Додаток
# include lt; iostream.h gt;
# include lt; conio.h gt;
# include lt; stdlib.h gt;
# include lt; fstream.h gt;
# include lt; string.h gt;
# include lt; ctype.h gt;
# define ESC 27
# define ENTER 13
# define DOWN S
# define UP W dan [4] [25]={ Читання дани...