Автор: Пользователь скрыл имя, 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
private void Ld(object sender, EventArgs e)
{
BADFill.Enabled = false;
Highlighter.Enabled = false;
FSClose.Enabled = false;
FileSystem.FileName = new string[100];
FileSystem.Date = new string[100];
FileSystem.FileSize = new int[100];
FileSystem.StartCluster = new int[100];
FileSystem.EndCluster = new int[100];
FileSystem.ClustOnFile = new int[100];
FileSystem.pointer = 1;
FileSystem.Cnt=0;
FileSystem.IsDeleted = new byte[100];
}
private void FileCreate_Click(object sender, EventArgs e)
{
BADFill.Enabled = false;
FileSystem.NumberOfFiles++;
FileSystem.Cnt++;
// принимаем параметры
FParam.ShowDialog();
// Переписываем свободное место
FreeSpaceLabel.Text = "Свободного
места: "+FileSystem.FreeSpace.
// добавляем новый файл в список
FileView.Items.Add(FileSystem.
ListViewItem.ListViewSubItemCo
column.Add(FileSystem.Date[Fil
column.Add(FileSystem.
// вычисляем количество кластеров необходимое для записи файла
FileSystem.ClustOnFile[FileSys
FileSystem.IsDeleted[FileSyste
// Запускаем цикл for на количество кластеров
for
(int i = 0; i < FileSystem.ClustOnFile[FileSys
{
//пытаемся установить i-ый кластер в ячейку, если она пуста - устанавливаем, если нет - ищем следующую возможную для установки
bool flag = false; //флаг полной записи одного кластера
do
{
if
(FileSystem.BinaryMap[FileSyst
{
//закрываем его от записи
FileSystem.BinaryMap[FileSyste
//Если это первый кластер , записываем его в таблицу
if (i == 0)
{
FileSystem.StartCluster[FileSy
column.Add(FileSystem.
}
// ищем следующий свободный
bool next = false;
int j = 1;
do
{
FileSystem.pointer++;
if
(FileSystem.BinaryMap[FileSyst
{
//отображаем ссылку на него в предыдущем кластере
Gr.FillRectangle(Brushes.Aqua, 40 + 20 * tmpxpos, 40 + 20 * tmpypos, 20, 20);//заливка
}
else //если следующий занят
{
}
}
while (next == false);
flag = true; //Переходим к следующему кластеру!
}
else //Если кластер занят
{