Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
опис Комп прог.docx
Скачиваний:
6
Добавлен:
19.02.2016
Размер:
213.81 Кб
Скачать

Опис структури комп’ютерної програми

Дана програма розроблена на мові програмування MicrosoftVisual C# 2010 та, середовищі .NET Framework 2.0, графічна оболонка MicrosoftVisualStudio 2010. Типом даного проекту є WindowsForm, цей тип проекту використовується для створення програми з користувацьким інтерфейсом WindowsForms.

Перевагами даного типу проекту є:

  1. Зрозумілий користувачу інтерфейс

  2. Простота вибору дій

  3. Швидкісне створення інтерфейсу користувача

Структура програми

Діаграма класів:

Клас main_frm

Основним классом даної програми є класmain_frm, даний класс безпосередньо працює з усіма іншими классами програми. В даній програмі кожен класс описує форму. Так, зокрема, класmain_frm описує основну форму яка відображається під час виконання програми. Даний клас не містить ніяких реалізацій, крім того, що викликає всі інші модулі програми, такі як: «cript_auto» – клас в якому реалізовано шифрування та дешифрування будь-яких запропонованих користувачем файлів; «keygen_auto» – клас в якому створюються ключі для шифрування та дешифрування файлів; «cript» – класс в якому програмна реалізація дуже схожа на «cript_auto», але має і суттєві відмінності; «keygen» – даний класс аналогічно з попередніми схожий на «keygen_auto»; «information» – клас для відображення основної інформації про дану програму.

В класі MainForm для роботи з цими класами створено їх об’єкти:

form3 = new keygen_auto();

form4 = new cript_auto();

form5 = new keygen();

form6 = new cript();

info = new information();

Крім описаних модулів з форми «main_frm» викликаються також ще два модулі, які розміщені в окремих файлах та розроблені за допомогою сторонніх програмних продуктів, а сааме файл «RSA.chm» розроблений за допомогою «CHMEditor» в якому міститься теоретична інформація, та файл «TEST_RSA.exe» розроблений за допомогою програмного продукту «Редактор тестів easyQuizzy», в якому міститься перелік тестових запитань для самоконтролю знань по даній темі.

Виклик всіх модулів програми з даної форми організовано наступним чином. На даній формі існують кнопки для виклику всіх модулів. При натисненні на потрібну кнопку обробляється подія та виконується певний код який прописаний для даної події. Візьмемо, наприклад, запуск функції автоматичного створення ключів для шифрування:

privatevoidkeygen_Click(objectsender, EventArgs e)

{

try

{

form3.Show();

}

catch

{

form3 = new keygen_auto();

form3.Show();

}

}

При натисненні накнопку «keygen» виконується інструкція form3.Show(), оскільки form3 було проініціалізовано призапуску головної форми. Але при закритті форми «keygen_auto» викликається метод «Dispose()» який звільняє ресурси виділені для данного модуля. Тому при повторному виклику даного модуля виникло б виключення. Щоб цього не сталося було застосовано механізм обробки виключень які можуть виникнути при виконанні програми. А саме блоки «try» та «catch». Вони працюють наступним чином. Критична область коду. В якій може виникнути помилка заноситься до блоку «try», якщо всередин іданого блоку виникає виключення при виконанні, то код далі не виконується, а замість нього виконується той код який занесений до блоку «catch». Таким чином, виключення обробляються. В данному випадку, якщо форма відкривається повторно, після того, як для неї спрацював «Dispose()», потрібно просто знову повторно в обробнику «catch» створити данийоб’єкт та працювати з ним як і раніше. Даний механізм роботи застосовано для всіх методів, що викликаються. Модулі «cript_auto», «keygen_auto», «cript», «keygen», «information» працюють з повною аналогією до описанного вище відрізняючись тільки назвами. Але існують і два інших модуліреалізованих окремо. Поглянемо на код, що їх викликає.

private void help_Click(object sender, EventArgs e)

{

try

{

System.Diagnostics.Process.Start(Application.StartupPath + @"\RSA.chm");

}

catch

{

MessageBox.Show(this,"Файлнезнайдено!","Помилкапривідкритті");

return;

}

}

Оскільки вони реалізовані в окремих файлах, то при натисненні на кнопку виклику потрібно просто виконати інструкцію яка запустить дані файли при їх наявності. Якщо ж по деяких причинах цих файлів не буде в заданному каталозі, то обробити виключення яке виникне при запуску та сповістити користувача. Це був приклад запуску скомпільованого інформаційного файлу. Файл, що містить тестові запитання, який також скомпільований в окремий ехе модуль має таку ж саму структуру та відрізняється тільки ім’ям файлу який потрібно запустити. Шляхи до файлів прописані так, що файли мають бути розміщені в одному каталозі з основним ехе модулем з яким ми працюємо.