3. GroupBox Control - використовується дві форми даного типу - GroupBox1 та GroupBox2. Вони призначені для групування інших форм Windows.
4. TextBox Control - одина форма TextBox використовується для виведення шляху до файлу, CRC якого обраховується, а друга для виведення результатів обрахунку CRC. Обидві форми TextBox розміщені на формі GroupBox1.
5. Label Control - компоненти Label (2 шт.) призначені для виведення повідомлень оператору про інші компоненти інтерфейсу. Обидві форми Label Control розміщені на формі GroupBox1.
6. RadioButton Control - використовуються для вибору полінома для підрахунку CRC. Використовується три форми даного типу, які дозволяють вибирати поліном CRC4, CRC8 та CRC32, які розміщуються на формі GroupBox2.
Розташування форм наведено на рис. 3.8.
Для програмної реалізації запропонованих алгоритмів CRC-кодування розроблено такі основні процедури і функції:
1. Метод класу Form1 btBrowse_Click () відкриває стандартне вікно Windows вибору файла для підрахунку CRC:
var open = new OpenFileDialog
;
if (open.ShowDialog() == DialogResult.OK)
{
filename = open.FileName;
tbSource.Text = filename;
}
Метод класу Form1 btSave_Click () зберігає обчислений CRC в окремий файл на диск, додаючи перед іменем файлу, CRC якого обчислювався, префікс CRC32 або CRC8 в залежності від вибраного полінома і розширення CRC. Це текстовий файл, який містить 4 рядки:
D:\CRC32\CRC32.sln
23.05.2010 0:27:23
crc8
9F
Перший рядок містить шлях до файлу CRC, якого обчислювався, другий дату і час, третій тип полінома, а четвертий рядок обчислений CRC.
2. Метод класу Form1 btCalc Click визначає вибраний поліном і викликає методи відповідного класу CRC для виконання обчислень:
if (CRC8.Checked)
{ var crc8 = new Crc8();
using (var f = File.Open(filename, FileMode.Open))
crc8.ComputeHash(f);
states = false;
tbResult.Text = crc8.CrcValue.ToString("x2").ToUpper();
} else
if (CRC32.Checked)
var crc32 = new Crc32();
crc32.ComputeHash(f);
states = true;
tbResult.Text = crc32.CrcValue.ToString("x2").ToUpper(); }
Тут використовуються методи класів CRC32 та CRC8, які є дочірніми для класу HashAlgorithm, зокрема метод..:: ComputeHash (), які обчислюють CRC табличним методом. Викликається на виконання при виборі кнопки «Підрахувати».
3. Метод класу Form1 btCheck_Click() обчислює CRC табличним методом і порівнює його з результатом, отриманим під час попередньої перевірки і збереженим на диск. Для цього необхідно вказати на початковий файл та файл з CRC цього файлу:
ініціалізація діалогу відкриття файлів
для файла що перевірятиметься
додавання файла
fnm = open.FileName;
tbSource.Text = fnm;
ініціалізація фільтра для файла хеш-суми
open.Filter = "Хеш-сума (*.crc)|*.crc";
csm = open.FileName;
tbResult.Text = csm;}
А потім перевіряється рядок 3 файла з попереднім результатом:
if (crc == "crc8")
{ }
або
if (crc == "crc32")
І в залежності від цього обирається відповідний поліном, обчислюється CRC вибраного файла і порівнюється з попередньо обчисленим (рядок 4 у файлі з розширенням CRC). Викликається на виконання при виборі кнопки «Перевірити».
Текст програми наведений в додатку Б і містить необхідні для розуміння роботи коментарії.
1. Розроблено алгоритми обчислення контрольних сум для поліномів CRC8 та CRC32 табличним методом.
2. В середовищі Visual Studio 2008 на мові програмування C#, розроблено програмне забезпечення, яке дозволяє виконувати обчислення СRC8 та СRC32 табличним методом.
3. Тестування програми показало, що навіть короткі поліноми здатні виявляти значні зміни файлів, що для кодів, які виправляють помилки вкрай важко.
Створення нової програми передбачає розрахунок економічного ефекту від впровадження програмного продукту. Нова розробка повинна бути вигідною не тільки для виробника, а й для споживача, так як придбавши її він сподівається зменшити витрати часу та ресурсів.
Для того щоб оцінити економічний ефект в економічній частині потрібно розрахувати:
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13