Курсовая работа: Разработка программы "Формирование и проверка контрольной суммы кластеров"
В процессе разработки компьютерной программы получены навыки постановки задачи для решения ее программным способом, выбора и разработки соответствующих алгоритмов, составления, отладки и тестирования программы в рамках примененной технологии программирования, использования справочной литературы при изучении новых программных продуктов, закрепления практических навыков в оформлении документации на каждом этапе разработки.
В частности, были решены задачи корректной работы приложения, правильного выведения необходимой информации на экран. Также были решены задачи выборки нужной информации о файловой системе и ее параметрах в ОС 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();
}
ArrayList hdCollection = new ArrayList();
int Num_Hdd = 0;
double TotalSize = 0;
double TotalSpaceLeft = 0;
bool analiz = false;
bool OSXP = false;
private void Form1_Load(object sender, EventArgs e)
{
if (MessageBox.Show("Start getting info ?\nThis may take a while, so please stand by.", "Notice", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.No)
{
this.Close();
}
else
{
//AddGeneralinfoTolistview();
GetHardDiskInfo();
AddHDDItemToListview();
}
}
private void GetHardDiskInfo()
{
#region HDD_Collction of Infomation
hdCollection.Clear();
Num_Hdd = 0;
TotalSize = 0;
TotalSpaceLeft = 0;
ManagementObjectSearcher searcher = new
ManagementObjectSearcher("SELECT * FROM Win32_DiskDrive");
foreach (ManagementObject wmi_HD in searcher.Get())
{
HardDrive hd = new HardDrive();
#region hd.Model
try
{
hd.Model = wmi_HD["Model"].ToString();
}
catch (Exception)
{
hd.Model = "Unknown";
}
#endregion
#region hd.Type
try
{
hd.Type = wmi_HD["InterfaceType"].ToString();
}
catch (Exception)
{
hd.Type = "Unknown";
}
#endregion
#region hd.BytesPerSector
try
{
hd.BytesPerSector = wmi_HD["BytesPerSector"].ToString();
}
catch (Exception)
{
hd.BytesPerSector = "Unknown";
}
#endregion
#region hd.MediaType
try
{
hd.MediaType = wmi_HD["MediaType"].ToString();
}
catch (Exception)
{
hd.MediaType = "Unknown";
}
#endregion
#region hd.Partitions
try
{
hd.Partitions = wmi_HD["Partitions"].ToString();
}
catch (Exception)
{
hd.Partitions = "Unknown";
}
#endregion
#region hd.SectorsPerTrack
try
{
hd.SectorsPerTrack = wmi_HD["SectorsPerTrack"].ToString();
}
catch (Exception)
{
hd.SectorsPerTrack = "Unknown";
}
#endregion
#region hd.Signature
try
{
hd.Signature = wmi_HD["Signature"].ToString();
}
catch (Exception)
{
hd.Signature = "Unknown";
}
#endregion
#region hd.size
try
{
hd.Size = wmi_HD["Size"].ToString();
}
catch (Exception)
{
hd.Size = "0";
}
#endregion
#region hd.Status
try
{
hd.Status = wmi_HD["Status"].ToString();
}
catch (Exception)
{
hd.Status = "Unknown";
}
#endregion
#region hd.TotalCylonders
try
{
hd.TotalCylinders = wmi_HD["TotalCylinders"].ToString();
}
catch (Exception)
{
hd.TotalCylinders = "Unknown";
}
#endregion
#region hd.TotalHeads
try
{
hd.TotalHeads = wmi_HD["TotalHeads"].ToString();
}
catch (Exception)
{
hd.TotalHeads = "Unknown";
}
#endregion
#region hd.TotalSectors
try
{
hd.TotalSectors = wmi_HD["TotalSectors"].ToString();
}
catch (Exception)
{
hd.TotalSectors = "Unknown"; }
#endregion
#region hd.TotalTracks
try
{
hd.TotalTracks = wmi_HD["TotalTracks"].ToString(); }
catch (Exception)
{
hd.TotalTracks = "Unknown"; }
#endregion
#region hd.TracksPerCylinder
try
{
hd.TracksPerCylinder = wmi_HD["TracksPerCylinder"].ToString(); }
catch (Exception)
{
hd.TracksPerCylinder = "Unknown"; }
#endregion
#region hd.SeralNo
if (OSXP != true)
{
try
{
hd.SerialNo = wmi_HD["SerialNumber"].ToString(); }
catch (Exception)
{
hd.SerialNo = "Unknown";
} }
else
{ }
#endregion
#region hd.FirmwareRevision
try
{
hd.FirmwareRevision = wmi_HD["FirmwareRevision"].ToString(); }
catch (Exception)
{
hd.FirmwareRevision = " "; }
#endregion
hdCollection.Add(hd);
hd = null;
Num_Hdd = Num_Hdd + 1;
TotalSize = TotalSize + double.Parse(wmi_HD["Size"].ToString());
}
#region //Getting HDD's serial under XP
if (OSXP == true)
{
searcher = new
ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
int i = 0;
foreach (ManagementObject wmi_HD in searcher.Get())
{
// get the hard drive from collection
// using index
HardDrive hd = (HardDrive)hdCollection[i];
// get the hardware serial no.
if (wmi_HD["SerialNumber"] == null)
hd.SerialNo = "None";
else
hd.SerialNo = wmi_HD["SerialNumber"].ToString();
++i;
}
}
#endregion
searcher = new
ManagementObjectSearcher("SELECT * FROM Win32_LogicalDisk");
foreach (ManagementObject wmi_HD in searcher.Get())
{
// get how much Freespace the HDD have left...
if (wmi_HD["FreeSpace"] == null)
{
//do nothing
}
else
{
if (wmi_HD["DriveType"].ToString() == "3")
{
TotalSpaceLeft += double.Parse(wmi_HD["FreeSpace"].ToString());
}
}
}
// HDD_info_Done = true;
searcher = null;
#endregion
}
private void AddHDDItemToListview()
{
//Makes the Search group:::......
ListViewGroup HDDGroup = new ListViewGroup();
HDDGroup.Header = "HardDrive(s) :";