RSS    

   Курсовая работа: Разработка программы "Формирование и проверка контрольной суммы кластеров"

-  кнопку для анализа (Анализ);

-  кнопку запуска и проверки алгоритмов (Проверить алгоритм);

-  стандартные элементы управления окном в ОС семейств Windows.

Рисунок 3.2 – Внешний вид главного окна приложения

Конструктор, обработчики событий и члены класса Form1

Инициализация объектов-членов класса Form1 осуществляется в конструкторе класса. Ниже приведен код конструктора с комментариями:

public Form1() {

//инициализация компонента – необходима для создания окна

 InitializeComponent();

}

Также несколько методов класса Form1, код которого приведен в приложении являются обработчиками событий: нажатие кнопки, работа с информацией.

Программная реализация функции private void AddHDDItemToListview()

Данная функция добавляет в список подключенные запоминающие устройства. Ниже приведен код функции.

 private void AddHDDItemToListview()

 {

 //Makes the Search group:::......

 ListViewGroup HDDGroup = new ListViewGroup();

 HDDGroup.Header = "HardDrive(s) :";

 HDDGroup.HeaderAlignment = HorizontalAlignment.Left;

 HDDGroup.Name = "HardDrive(s)";

 //Adds the search group...

 listView1.Groups.Add(HDDGroup);

 int i = 0;

 foreach (HardDrive x in hdCollection)

 { AddItemToListview(HDDGroup, i, x.Model.ToString(), 0, "1");

 i++; }

 HDDGroup = null; }

Программная реализация функции private void AddItemToListview(ListViewGroup GroupName, int IndexNumber, string ItemName, int ImageIndex, string ItemTAG)

Данная функция добавляет информацию в структуру HardDrive. Ниже приведен код функции.

private void AddItemToListview(ListViewGroup GroupName, int IndexNumber, string ItemName, int ImageIndex, string ItemTAG)

 { ListViewItem NewItem = new ListViewItem();

 ListViewItem.ListViewSubItem NewSubItem = new ListViewItem.ListViewSubItem();

 NewSubItem.Text = IndexNumber.ToString();

 NewSubItem.Name = "Subitem1";

 NewItem.SubItems.Add(NewSubItem);

 NewItem.SubItems.Add(NewSubItem);

 NewItem.Name = ItemName;

 NewItem.Text = ItemName;

 NewItem.Group = GroupName;

 NewItem.ImageIndex = ImageIndex;

 NewItem.Tag = ItemTAG;

 listView1.Items.Add(NewItem);

 NewItem = null;

 NewSubItem = null;

 // Group = null; }

Программная реализация функции private void private void listView1_SelectedIndexChanged(object sender, EventArgs e)

Данная функция определяет какое устройство пользователь выбрал в списке. Ниже приведен код функции.

private void listView1_SelectedIndexChanged(object sender, EventArgs e)

 { int selected_index;

 try {

 //MessageBox.Show(listView1.SelectedItems[0].Tag.ToString());

 selected_index = listView1.SelectedItems[0].Index;

 switch (listView1.SelectedItems[0].Tag.ToString())

 { case "1":

 WriteHDDText();

 break; } }

 catch (Exception)

 { //Do nothing } }


2.5 Программная реализация класса Form2

программа контрольная сумма кластер

Класс Form2 описывает поведение дополнительного окна приложения, внешний вид которого представлен на рисунке 3.3.

Рисунок 3.3 – Внешний вид дополнительного окна приложения

Как видно на рисунке 3.3, дополнителное окно разработанного приложения Контрольная сумма включает в себя следующие элементы:

-  четыре текстовых поля для ввода и вывода информации проверки алгоритмов формирования контрольной суммы кластеров, реализованные объектами textBox1, textBox2, textBox3, textBox4 ;

-  кнопку для запуска проверки алгоритма CRC32(проверить CRC32);

-  кнопку для запуска проверки алгоритма MD5 (проверить MD5);

-  стандартные элементы управления окном в ОС семейств Windows.

Конструктор, обработчики событий и члены класса Form2

Инициализация объектов-членов класса Form2 осуществляется в конструкторе класса. Ниже приведен код конструктора с комментариями:

public Form2() {

//инициализация компонента – необходима для создания окна

 InitializeComponent();

}

Также несколько методов класса Form2, код которого приведен в приложении являются обработчиками событий: нажатие кнопки, работа с информацией.

Программная реализация обработчика сообщений private void button1_Click(object sender, EventArgs e)

Определяет действие при нажатии кнопки «CRC32». Код обработчика приведен ниже.

private void button1_Click(object sender, EventArgs e)

 { // Читаем

 System.IO.FileStream stream1 = System.IO.File.OpenRead(textBox1.Text.ToString());

 textBox3.Text=(string.Format("{0:X}", CalculateCRC(stream1))).ToString();}

Программная реализация функции public static uint CalculateCRC(System.IO.Stream stream)

Данная функция реализует алгоритм формирования контрольной суммы CRC32. Код функции приведен ниже с комментариями.

public static uint CalculateCRC(System.IO.Stream stream)

                   {        const int buffer_size = 1024;

                            const uint POLYNOMIAL = 0xEDB88320;

                            uint result = 0xFFFFFFFF;

                            uint Crc32;

                            byte[] buffer = new byte[buffer_size];

                            uint[] table_CRC32 = new uint[256];

                            unchecked

                            {        // Инициалиазация таблицы

                                     for (int i = 0; i < 256; i++)

                                      {        Crc32 = (uint)i;

                                               for (int j = 8; j > 0; j--)

                                               { if ((Crc32 & 1)==1)

                                               Crc32 = (Crc32 >> 1) ^ POLYNOMIAL;

                                               else

                                               Crc32 >>= 1; }

                                               table_CRC32[i] = Crc32; }

                                      // Чтение из буфера

                                     int count = stream.Read(buffer, 0, buffer_size);

                                      // Вычисление CRC

                                      while (count > 0)

                                      { for (int i = 0; i < count; i++)

                                               { result = ((result) >> 8)

                                                        ^ table_CRC32[(buffer[i])

                                                        ^ ((result) & 0x000000FF)];   }

                                               count = stream.Read(buffer, 0, buffer_size); } }

                            return ~result; }

Программная реализация обработчика сообщений private void button2_Click(object sender, EventArgs e)

Определяет действие при нажатии кнопки «проверка MD5». Также мостит в себе алгоритм формирования контрольной суммы MD5 и все прилагающие функции. Код из-за большого объема не описывается, его можно просмотреть в общем коде программы в Приложении Б.


3. ТЕСТИРОВАНИЕ ПРОГРАММЫ И РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ

3.1 Тестирование программы

В ходе выполнения задания курсового проектирования было проведено тестирование результирующего программного продукта.

В результате тестирования программы были установлены как недостатки разработанных алгоритмов, так и несовершенство их программной реализации, как-то:

-  зависимость от прав администратора;

-  невозможность изменения кластера с помощью прямого доступа, а сложности при проверке;

-  проблемы с прямым доступом, связанные с новыми введенными ограничениями в ОС Windows 7.

Обнаруженные недостатки были исправлены как на уровне алгоритма (если требовалось), так и на уровне программной реализации.

Также во время тестирования программы были определены минимальные требования к оборудованию и программному обеспечению для использования данного продукта:

ОС Windows XP, процессор Pentium IV 1 ГГц, ОЗУ 128 Мб, 100 KB свободного места на жестком диске, библиотека .NET Framework 4.0 и выше.

3.2 Руководство пользователя

После запуска программы на экране отображается окно со следующими элементами:

-  список подключенных устройств хранения данных. С помощью списка производится выбор устройства, для которого пользователь хочет применить нужные операции;

-  текстовое поле отображения информации об устройстве и контрольная сумма кластеров;

-  текстовое поле отображения информации для проверки и сравнения;

-  кнопка для анализа (Анализ), активирует второе текстовое поле;

-  кнопка запуска и проверки алгоритмов (Проверить алгоритм);

-  четыре текстовых поля для ввода и вывода информации проверки алгоритмов формирования контрольной суммы кластеров;

-  кнопка для запуска проверки алгоритма CRC32(проверить CRC32);

-  кнопка для запуска проверки алгоритма MD5 (проверить MD5);


ВЫВОДЫ

Во время выполнения задания были закреплены навыки использования функций библиотеки .NET Framework, углублены знания в языке C# и написании программ под ОС семейства Windows.

Страницы: 1, 2, 3, 4, 5, 6


Новости


Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

                   

Новости

© 2010.