скачать рефераты
  RSS    

Меню

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

скачать рефераты

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

-  private void WriteHDDText() – функция добавляющая информацию о запоминающем устройстве в текстовое поле.

-  private void listView1_SelectedIndexChanged(object sender, EventArgs e) – функция определяющая какое устройство пользователь выбрал в списке.

-  private void button1_Click(object sender, EventArgs e) – функция определяющая действие при нажатии кнопки «Анализ».

-  private void button2_Click(object sender, EventArgs e) – функция определяющая действие при нажатии кнопки «Проверить алгоритм».

-  private void button1_Click(object sender, EventArgs e) – функция определяющая действие при нажатии кнопки «CRC32».

-  public static uint CalculateCRC(System.IO.Stream stream) – функция запускающая формирование контрольной суммы CRC32.

-  private void button2_Click(object sender, EventArgs e) – функция определяющая действие при нажатии кнопки «MD5».

Также созданы функции по формированию контрольной суммы MD5, перечисленные ниже:

-  private static void FF(ref UInt32 a, UInt32 b, UInt32 c, UInt32 d, UInt32 mj, int s, UInt32 ti)

-  private static void GG(ref UInt32 a, UInt32 b, UInt32 c, UInt32 d, UInt32 mj, int s, UInt32 ti)

-  private static void HH(ref UInt32 a, UInt32 b, UInt32 c, UInt32 d, UInt32 mj, int s, UInt32 ti)

-  private static void II(ref UInt32 a, UInt32 b, UInt32 c, UInt32 d, UInt32 mj, int s, UInt32 ti)

-  private static void MD5_Init()

Описанные выше декларации функций отображают внутреннюю организацию приложения на уровне конкретных действий. Вызов этих функций в приложении не будет прямым, а будет производиться в функциях-обработчиках событий от конкретных компонентов пользовательского интерфейса. Это обусловлено тем, что пользователь напрямую не работает с файловой системой, а обращается к информации дерева класса HardDrive.


3. РЕАЛИЗАЦИЯ ПРОГРАММЫ

Приложение, которое является результатом курсового проектирования было реализовано на языке С# платформы .NET. При написании программы был использован объектно-ориентированный подход: были созданы и описаны два класса, каждый из которых включает в себя поведение одного из окон программы – Form1, Form2, а также диалоговое окно MessageBox спрашивающее разрешение пользователя на доступ программы к данным.

MessageBox реализует отображение окна с подтвеждением, на здоступ приложением к информации. Вид окна представлен на рисунке 3.1.

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

MessageBox имеют очень простую программную реализацию, которая не предполагает дополнительных объяснений, поэтому его код не описывается в пояснительной записке.

2.4   Программная реализация класса Form1

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

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

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

-  текстовое поле отображения информации, реализуемое объектом richTextBox1;

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

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

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

-  стандартные элементы управления окном в ОС семейств 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.

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

В частности, были решены задачи корректной работы приложения, правильного выведения необходимой информации на экран. Также были решены задачи выборки нужной информации о файловой системе и ее параметрах в ОС Windows, преобразование полученной информации к форме, удобной для пользователя.

В результате выполнения курсового проекта было разработано приложение с использованием библиотеки .NET Framework – программа Формирования и проверки контрольной суммы клатеров.

Можно сказать, что поставленное при курсовом проектировании задание было реализовано полностью.

Недостатками результирующего программного средства являются:

-  недостаточная гармоничность и привлекательность графической составляющей проекта;

-  небольшие задержки при выполнении приложения на компьютерах с малым объемом оперативной памяти;

-  требования к предустановленном ПО (в частности .NET Framework 4.0)

Данные недостатки могли бы быть исправлены при наличии более широких знаний и навыков решения задач подобного рода.


СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

1. CLR via C#. Программирование на платформе Microsoft .NET Framework 2.0 на языке C#. Мастер-класс./ Пер. с англ. – М.: Издательство «Русская редакция»; СПб.: Питер, 2007. – 656 с.

2. С# в подлиннике: Пер. с англ./ Дейтел Х., Дейтел П., Листфиолд Дж., Нието Т., Йегер Ш., Златкина М. – СПб.Ж БХВ-Петербург, 2006. – 1056 с.

3. http://msdn.microsoft.com/

4. http://intuit.ru/

5. http://windxp.ru/

6. ДСТУ 3008-95 "ЗВІТИ У СФЕРІ НАУКИ І ТЕХНІКИ. Структура та правила оформлення".


ПРИЛОЖЕНИЕ А

Пример выполнения программы «Формирование и проверка контрольной суммы кластеров»

Рисунок 1 – Внишний вид диологового окна перед запуском сомой программы

Рисунок 2 – Внешний вид гланого окна программы


Рисунок 3 – Пример выполнения программы

Рисунок 4 – Пример выполнения проверки


ПРИЛОЖЕНИЕ Б

Код приложения «Формирование и проверка контрольной суммы кластеров»

//Form1.cs

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Collections;

using System.Management;

using Microsoft.Win32;

namespace kurs_pogulyat

{

 public partial class Form1 : Form

 {

 public Form1()

 {

 InitializeComponent();

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


Новости

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

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

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.