.2 Основні характеристики середовища програмування C++ Builder.
C++ Builder 6 популярна програма для створення консольних програм і програм з візуальними компонентами. Програма на C + + складається з оголошень (змінних, констант, типів, класів, функцій) і описів функцій. Серед функцій завжди є головна - main для консольних додатків (працюють з WIN32) або WinMain для додатків Windows. Саме ця головна функція виконується після початку роботи програми. Зазвичай в C + + Builder ця функція дуже коротка і виконує тільки деякі підготовчі операції, необхідні для початку роботи. А далі, при об'єктно-орієнтованому підході робота додатка визначається подіями, що відбуваються і реакцією на них об'єктів.Як правило, програми будуються за модульним принципом і складаються з безлічі модулів. Принцип модульності дуже важливий для створення надійних і відносно легко модифікованих додатків. Чітке дотримання принципів модульності в поєднанні з принципом приховування інформації дозволяє всередині будь-якого модуля проводити якісь модифікації, не зачіпаючи при цьому інших модулів і головну програму[12]. У C + + Builder всі об'єкти компонентів розміщуються в об'єктах - формах. Для кожної форми, яку ви проектуєте у своєму додатку, C + + Builder створює окремий модуль. Саме в модулях і здійснюється програмування завдання. У обробниках подій об'єктів - форм і компонентів ви ставите всі свої алгоритми. В основному вони зводяться до обробки інформації, що міститься у властивостях одних об'єктів і завданні за результатами обробки властивостей інших об'єктів. При цьому ви постійно звертаєтеся до методів різних об'єктів. Згідно з принципами приховування інформації зазвичай текст модуля поділяють на заголовний файл інтерфейсу, який містить оголошення класів, функцій, змінних і т.п., і файл реалізації, в якому міститься опис функцій. Стандартне розширення файлів реалізації - срр. Стандартне розширення заголовних файлів - h. Після того, як програма написана, на її основі повинен бути створений виконуваний файл (модуль).Цей процес здійснюється в кілька етапів. Спочатку працює препроцесор, який перетворює вихідний текст. Препроцесор здійснює перетворення у відповідності зі спеціальними директивами препроцесора, які розміщуються в початковому тексті. Препроцесор може відповідно до цих директив включати тексти одних файлів в тексти інших, розгортати макроси - скорочені позначення різних виразів і виконувати безліч інших перетворень. Після закінчення роботи препроцесора починає працювати компілятор. Його завдання - перевести тексти модулів в машинний (об'єктний) код. У результаті для кожного вихідного файлу. срр створюється об'єктний файл, що має розширення. obj. Після закінчення роботи компілятора працює компонувальник, який об'єднує об'єктні файли в єдиний завантажувальний виконуваний модуль, що має розширення. ехе. Цей модуль можна запускати на виконання.
Запускається C++ Builder звичайним способом, але для кращого функціонування програму краще запускати від імені адміністратора .
Вид екрану після запуску C++ Builder (Рис. 1.1). На екрані з'являються п'ять вікон:
головне вікно - C++builder 6;
вікно стартової форми - Form1 ;
вікно редактора властивостей об'єктів - Object Inspector ;
вікно
редактора коду - Unitl.cpp .
Рис.
1.1. Вид екрану після запуску C++ Builder
- головне вікно. У головному вікні знаходиться меню команд, панелі інструментів і палітра компонентів.
- вікно стартової форми - Form1 . Представляє собою заготовку головного вікна додатка, що розробляється. І робота над новим проектом починається саме зі створення стартової форми, оскільки кожен додаток має хоча б одну форму, яка служить головним вікном. Стартова форма створюється шляхом зміни значень властивостей форми Form1 та додавання до форми необхідних компонентів (командних кнопок, позначок, полів введення текстової інформації тощо) з палітри компонентів.
Для розміщення компонента в формі необхідно вибрати в палітрі компонентів кнопку, що відповідає необхідному компоненту. Далі клацнути на формі. Компонент з’явиться на формі, причому його верхній лівий кут буде там, де знаходився курсор миші в момент кліка.[2]
- вікно редактора властивостей об'єктів - Object Inspector. Призначене для редагування значень властивостей об'єктів. Поділене на дві вкладки: properties i events. У термінології візуального проектування об'єкти - це діалогові вікна і елементи управління (поля введення і виводу, командні кнопки, перемикачі і ін.). Властивості об'єкту - це характеристики, що визначають вигляд, положення і поведінку об'єкту.
Деякі властивості вкладки properties:- відповідає за назву форми . - видимість об'єкта. Тут все відносно просто - якщо воно true, об'єкт видно, якщо false - відповідно - немає. - ім'я об'єкта. Не плутайте Name і Caption. Ім'я - це унікальний ідентифікатор об'єкта, за яким його можна знайти. Двох об'єктів з однаковим ім'ям існувати не може, а з однаковими назвами багато. Ім'я має складатися з англійських букв і не повинно містити пробілів. Напис ж може бути як завгодно підписаний.- визначає межі розтягування об'єкта (як правило, застосовується тільки для форм).- шрифт основного напису. Працює тільки при відключеному (встановленим у false) властивості ParentFont.Cursor - це властивість визначає, яким стає курсор миші при наведенні на об'єкт.
Подія еvents - це те, що відбувається під час роботи програми. Реакцією на подію має бути якась дія. У C + + Builder реакція на подію реалізується як функція обробки події. Таким чином, для того щоб програма виконувала деяку роботу у відповідь на дії користувача, програміст повинен написати функцію обробки відповідної події. Слід звернути увагу на те, що значну частину обробки подій бере на себе компонент. Тому програміст повинен розробляти функцію обробки події тільки в тому випадку, якщо реакція на подію відрізняється від стандартної або не визначена.[1]
Деякі властивості вкладки еvents:- при клацанні кнопкою миші.Click-при подвійному натисканні кнопкою миші.при натисканні кнопки миші вниз.при відпуску кнопки миші.при переміщенні миші.при натисканні клавіші клавіатури.Paint-при появі вікна на екрані на початку роботи програми; під час роботи програми після появи вікна (або його частини), яку було закрито іншим вікном або згорнуто.
- вікно переглядання списку об'єктів - Object Treeview. Містить ієрархічний список об’єктів, що є елементами проекту.Завдяки цьому вікну легко переключатися між елементами проекту , що значно спрощує роботу.
- вікно редактора коду - Unitl.cpp . Розділене на дві частини, у правій частині набирається програмний код. Проте, навіть на початку роботи над новим проектом ця частина вікна редактора коду не порожня. Вона містить шаблон програми C++ Builder.Файли проекту.C++ Builder, як і інші сучасні компілятори, мислить в термінах проектів при створенні програм. Проект складається з одного чи кількох вихідних файлів, а також з цілого ряду додаткових файлів ресурсів. Результатом створення програми є виконуваний .exe-файл. Одже, проект C++ Builder - це набір файлів:
( .bpr ) файл опису проекту Builder.
( .cpp ) вихідний файл з кодом кожного модуля плюс один файл проекту.
( .dfm ) файл опису форми та всіх її компонентів.
( .h ) заголовний файл.
( .res ) компільований двійковий файл ресурсів.
( .obj ) двійковий об’єктний файл.
( .tds ) файл містить відладну інформацію (Turbo Debugger Symbol).
Файли з розширенням, що починається з тильди (~), є резервними копіями. Можна спокійно їх знищувати у будь-який час.
Всі файли, що створює C++ Builder для проекту, можна розділити на дві категорії: файли, на основі яких будується проект, та файли, що створюються під час компіляції та компоновки проекту. Перші п’ять типів файлів створюються після першого збереження проекту. Файли формату obj створюються при компіляції пакету. Отже, якщо ви вирішили перенести ваш проект на інший комп’ютер, вам необхідно буде переписати лише ті файли, які C++ Builder використовує для побудови додатка. Файли з розширеннями .cpp, .h, .dfm та .bpr складають мінімальний набір. Решту файлів C++ Builder створить заново під час побудови програми.
Отже,
можна зробити висновок що Borland C++ Builder 6 популярна і універсальна
програма яка значно полегшує написання програм на мові С++. Для того щоб
працювати у середовищі Borland C++ Builder 6 потрібно мати основні знання з С++
і розуміти англійську мову.
.3
Основні компоненти середовища програмування C++Builder,використані для
реалізації алгоритму, та їх властивості
При написані програми «Шифр Бекона» було задіяно основні компоненти C++ Builder. Корткий опис деяких з них:
- Компонент
Label. Призначений для виведення тексту на поверхню форми. Знаходиться в панелі
інструментів Standart. Властивості компоненту визначають вигляд і розташування
тексту. Властивості компоненту Label:- ім'я компоненту. Використовується в
програмі для доступу до компоненту і його властивостей.- текст, що
відображається.- відстань від лівої межі поля виводу до лівої межі форми.
Тор - відстань від верхньої межі поля виводу до верхньої межі форми.- висота поля виводу.- ширина поля виводу.
- Компонент
Button є командною кнопкою. Знаходиться в панелі інструментів Standart .
Властивості компоненту:- ім'я компоненту. Використовується в програмі для
доступу до компоненту і його властивостей.- текст на кнопці.- відстань від
лівої межі кнопки до лівої межі форми.
Тор - відстань від верхньої межі кнопки до верхньої межі форми.- висота кнопки.- ширина кнопки.- ознака доступності кнопки. Якщо значення властивості рівне true, то кнопка доступна. Якщо значення властивості рівне false, то кнопка недоступна .
- Компонент
BitBtn. Знаходиться в панелі інструментів Additional. Кнопка з графікою.
Використовується для створення кнопок, на яких розташовано бітову графіку.
Зображення на цій кнопці задається властивістю Glyph. Більшість зображень для
кнопок використовує дві піктограми. Всі інші властивості BitBtn схожі з
компонентом Button.
- Компонент
Memo є елементом редагування тексту, який може складатися з декількох рядків.
Знаходиться в панелі інструментів Standart. Властивості компоненту Memo:- ім'я
компоненту. Використовується для доступу до властивостей компоненту.- текст, що
знаходиться в полі Memo. Розглядається як єдине ціле.- масив рядків,
відповідний вмісту поля. Доступ до рядка здійснюється по номеру. Рядки
нумеруються з нуля.- відстань від лівої межі поля до лівої межі форми.
Тор - відстань від верхньої межі поля до верхньої межі форми.- висота поля.- ширина поля.
- Компонент
Mainmenu є головним меню програми. Знаходиться в панелі інструментів Standard.
Значок компоненту Mainmenu можна помістити в будь-яке місце форми, оскільки під
час роботи програми його не видно. Пункти меню з'являються у верхній частині
форми в результаті налаштування компоненту. Для налаштування меню
використовується редактор меню (Рис.3.1), який запускається подвійним клацанням
лівою кнопкою миші на значку компоненту або шляхом вибору з контекстного меню
компоненту команди Menu Designer . На початку роботи над новим меню, відразу
після додавання компоненту до форми, у вікні редактора знаходиться один-єдиний
прямокутник - заготівка пункту меню. Щоб перетворити цю заготівку на меню,
потрібно в полі Caption вікна Object Inspector ввести назву меню. Якщо перед
якою-небудь буквою в назві меню ввести знак &, то під час роботи програми
його можна буде активізувати шляхом натиснення комбінації клавіші <Alt> і
клавіші, відповідної символу, перед яким стоїть знак &. У назві меню ця
буква буде підкреслена. [14]
Рис.2.3.Редактор
меню
Щоб додати в головне меню елемент, потрібно у вікні редактора меню вибрати останній (порожній) елемент меню і ввести назву нового пункту. Щоб додати в меню команду, потрібно вибрати той пункт меню, в який треба додати команду, перемістити покажчик активного елементу меню в кінець списку команд меню і ввести назву команди. Після того, як буде сформована структура меню, потрібно, використовуючи вікно Object Inspector виконати налаштування елементів меню (вибрати пункт меню, що настроюється, можна у вікні форми додатку або із списку об'єктів у верхній частині вікна Object Inspector ). Кожен елемент меню (пункти і команди) - це об'єкт типу TmenuItem . Властивості об'єктів TmenuItem визначають вид меню під час роботи програми. Властивості об'єкту TmenuItem:- задає так звану команду, яка буде виконуватися при виборі даного пунтка меню. Весь список команд міститься в компоненті ActionList.- текст пункту меню.- визначає, чи доступний користувачеві даний пункт меню.- коротка підказка для користувача, що відображається в рядку стану.- визначає, чи видно користувачеві пункт меню.
.Компоненти
вкладки Dialogs (Рис 3.2), дозволяють створювати діалоги з користувачем
програми. Діалоги надають програмі гнучкість і дозволяють користувачеві
маніпулювати об'єктами програми під час її роботи. Вкладка містить десять
компонентів стандартних діалогів.
Рис
3.2. Компоненти вкладки Dialogs
Є такі різновиди діалогів:(Діалог відкриття) - дозволяє створити в програмі діалог відкриття файлів. Має можливість встановлення фільтрів на ім'я і розширення файлів, що відкриваються.(Діалог збереження) - створює в програмі діалог з можливістю вибору імені файлу для збереження. Зазвичай використовується в зв'язці з компонентом OpenDialog.(Діалог відкриття малюнка) - призначений для створення діалогів відкриття файлів з графічним зображенням. Відрізняється від компонента OpenDialog можливістю попереднього перегляду файлу зображення безпосередньо у вікні діалогу.(Діалог збереження малюнка) - створює діалог збереження файлу з зображенням. Так само, як і OpenPictureDialog, має можливість попереднього перегляду файлу зображення безпосередньо у вікні діалогу.(Діалог вибору шрифту) - надає можливість створення діалогу для вибору шрифту тексту в програмі.(Діалог вибору кольору) - призначений для створення діалогу, для вибору кольору з палітри кольорів Windows. Отриманий числовий параметр кольору після цього можна зрадити будь-якого компонента, що має властивість Color.(Діалог вибору принтера) - дозволяє організувати в програмі діалог вибору пристрою друкування з числа встановлених на комп'ютері. Крім того, даний діалог дозволить задати число копій, вибрати або задати діапазон друкованих сторінок і т. п.(Діалог установки принтера) - створює в програмі діалог налаштування параметрів друкувального пристрою, до числа яких відносяться вибір типу паперу, її орієнтація, параметри відображення графіки і т. д.(Діалог пошуку) - відкриває в програмі діалог пошуку тексту з можливістю налаштування параметрів пошуку.
Отже,
при написанні програми були використані такі компоненти: компонент Label,
компонентButton, компонентBitBtn, компонент Memo, компонент Mainmenu,
компоненти вкладки Dialogs.
РОЗДІЛ
III. ПРОГРАМНА РЕАЛІЗАЦІЯ ШИФРУ БЕКОНА КОДУВАННЯ ТЕКСТУ
.1
Практичне використання шифру Бекона
В зв’язку з широким використанням загальнодоступних каналів обміну
інформацією (інтернет, телефонні лінії, телекомунікаційні канали) виникає завдання захисту інформації, що передається. Для захисту інформації, що передається через незахищені канали зв’язку, використовується шифрування інформації. Шифрування - дуже ефективний спосіб зберегти інформацію доступною тільки заздалегідь визначеному колу людей, включаючи автора даних, що захищаються. Причому зробити це можна особисто, і не важливо, де після цього зберігатиметься або пересилатиметься прихована інформація - шифрування забезпечить однакове обмеження доступу до інформації у будь-якій системі. Навіть за ситуації, коли інформація потрапить до інших людей вона втратить для інших людей цінність, оскільки представлятиме безглуздий набір символів з букв «А» і «В». Для того щоб розшифрувати інформацію знадобиться велика кількість часу, а програмно тестову інформацію можна зашифрувати і розшифрувати за декілька секунд. Оскільки в наш час широко розповсюджені крадіжки даних і персоналізація інформації, щоб бути повністю впевненими, що ваша інформація не піддасться небезпеці, користуйтеся програмами захисту, які пропонують шифрування даних. Програма «Шифр Бекона» створена з метою допомогти надійно захистити персональні дані . Перевагами програми над іншими є висока швидкість шифрування, відносна простота, зрозумілий інтерфейс, відсутність в ній розповсюджених помилок. Також надійність шифрування можна збільшити , шифруючи вихідних текст повторно , і в зворотному порядку аналогічно розкодовуючи , але в цьому є і недолік - при кожному повторному кодуванні довжина закодованих даних збільшуватиметься у 5 разів і вихідні дані будуть займати великий обсяг інформації. Наприклад, для зашифрування слова «mother» у відповідність букві «m» ставиться комбінація «bbaaba» , букві «o» - «abbab» , букві «t» - «babba» , букві «h» - «bbbab» , букві «e» - «abbbb» , букві «r» - «babab» , таким чином зашифроване слово буде таким «bbaabaabbababbabbbababbbbbabab».