Автор: Пользователь скрыл имя, 12 Апреля 2011 в 13:33, курсовая работа
Целью данного проекта является наглядное моделирование работы файловой системы FAT16, которая использовалась в MS-DOS 3.31.
ВВЕДЕНИЕ 3
1 ПОСТАНОВКА ЗАДАЧИ 4
1.1 ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ 4
1.2 ПОСТАНОВКА ЗАДАЧИ 7
2 ПРОЕКТИРОВАНИЕ 8
2.1 ВЫБОР ОПЕРАЦИОННОЙ СИСТЕМЫ 8
2.2 ВЫБОР ЯЗЫКА ПРОГРАММИРОВАНИЯ 8
2.3 ВЫБОР ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ПРОМЕЖУТОЧНОГО УРОВНЯ 8
2.4 ВЫБОР ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ 8
3 РАЗРАБОТКА 9
3.1 ВЫБОР АРХИТЕКТУРЫ СИСТЕМЫ 9
3.2 ПОСТРОЕНИЕ ДИАГРАММ ПРЕЦЕДЕНТОВ И ПОСЛЕДОВАТЕЛЬНОСТИ 9
3.3 РАЗРАБОТКА ВАРИАНТОВ ИСПОЛЬЗОВАНИЯ 11
3.4 РАЗРАБОТКА ГРАФИЧЕСКОГО ИНТЕРФЕЙСА 13
3.5 РАЗРАБОТКА АРХИТЕКТУРЫ ПРИЛОЖЕНИЯ 14
3.6 РАЗРАБОТКА АЛГОРИТМОВ РАБОТЫ ПРОГРАММЫ 16
3.6.1 Метод FileCreate_Click класса Mainform. 17
3.6.2 Метод FileDelete_Click класса Mainform. 18
4 ТЕСТИРОВАНИЕ ПРОГРАММЫ 19
4.1 ТЕСТИРУЕМЫЕ ФУНКЦИИ 19
4.2 ТЕСТИРОВАНИЕ 19
5 РУКОВОДСТВО ОПЕРАТОРА 21
5.1 НАЗНАЧЕНИЕ ПРОГРАММЫ 21
5.2 ТЕХНИЧЕСКИЕ СРЕДСТВА ДЛЯ ЗАПУСКА ПРОГРАММЫ 21
5.3 РАБОТА С ПРОГРАММОЙ 21
ВЫВОДЫ 25
ПЕРЕЧЕНЬ ССЫЛОК 26
ПРИЛОЖЕНИЕ А 27
ПРИЛОЖЕНИЕ Б 31
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace fat
{
public partial class Parameters : Form
{
public Parameters()
{
InitializeComponent();
}
private void OK_Click(object sender, EventArgs e)
{
try
{
FileSystem.PartitionSize
= double.Parse(PartitionTxt.
FileSystem.ClusterSize
= int.Parse(ClusterTxt.Text.
PartitionTxt.Text = "";
ClusterTxt.Text = "";
this.Close();
}
catch
{
MessageBox.Show("Вы ввели неверно
одно из значений (размер файла задаётся
цифрами, без пробелов, символов подчеркивания,
точек и запятых). Попробуйте еще раз.", "Ошибка!", MessageBoxButtons.OK,MessageBo
}
}
}
}
Текст файла FileParameters.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;
namespace fat
{
public partial class FileParameters : Form
{
public FileParameters()
{
InitializeComponent();
}
private void NewFile_Click(object sender, EventArgs e)
{
if ((FileNameTxt.Text == "") || (FileSizeTxt.Text == "") || (Eof.Text == ""))
{
MessageBox.Show("Одно из полей не заполнено. Попробуйте еще раз.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
else
{
try
{
//Пытаемся почитать размер файла
FileSystem.FileSize[FileSystem
//читаем имя файла и преобразуем под условия FAT16
if (FileNameTxt.Text.Length > 6)
{
FileSystem.FileName[FileSystem
}
else
{
FileSystem.FileName[FileSystem
}
//Записываем дату создания
FileSystem.Date[FileSystem.
//Считаем необходимое количество кластеров
FileSystem.ClustOnFile[FileSys
//Чистим поля от значений
FileSystem.FreeSpace
-= FileSystem.FileSize[FileSystem
FileNameTxt.Text = "";
FileSizeTxt.Text = "";
Eof.Text = "";
label5.Text = "Свободно: ";
label6.Text = "После создания: ";
this.Close();
}
catch
{
MessageBox.Show("Размер файла задан неверно. Попробуйте еще раз.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
private void Ld(object sender, EventArgs e)
{
label5.Text += FileSystem.FreeSpace.ToString(
}
private void KPress(object sender, KeyPressEventArgs e)
{
double tmp;
if
(Char.IsDigit(e.KeyChar)||e.
{
if (FileSizeTxt.Text != "")
{
if (e.KeyChar == (char)Keys.Back)
{
tmp = double.Parse((FileSizeTxt.
}
else
{
tmp = double.Parse((FileSizeTxt.Text + e.KeyChar).ToString());
}
if (tmp > FileSystem.FreeSpace)
{
label6.Text = "Недостаточно свободного места!";
label6.ForeColor = Color.Red;
NewFile.Enabled = false;
}
else
{
label6.ForeColor = Color.Black;
NewFile.Enabled = true;
label6.Text = "После
создания: " +
(FileSystem.FreeSpace - tmp).ToString() + " байт";
}
}
}
else e.KeyChar = (char)Keys.None;