Моделирование файловой системы FAT16

Автор: Пользователь скрыл имя, 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

Работа содержит 1 файл

ПЗ.doc

— 1.29 Мб (Скачать)

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.Text.ToString());

                FileSystem.ClusterSize = int.Parse(ClusterTxt.Text.ToString());

                PartitionTxt.Text = "";

                ClusterTxt.Text = "";

                this.Close();

            }

            catch

            {

                MessageBox.Show("Вы ввели неверно одно из значений (размер файла задаётся цифрами, без пробелов, символов подчеркивания, точек и запятых). Попробуйте еще раз.", "Ошибка!", MessageBoxButtons.OK,MessageBoxIcon.Error);

           }

        } 

       

    }

} 

 

       Текст файла 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.Cnt] = int.Parse(FileSizeTxt.Text.ToString());

                    //читаем имя файла и преобразуем под условия FAT16

                    if (FileNameTxt.Text.Length > 6)

                    {

                        FileSystem.FileName[FileSystem.Cnt] = FileNameTxt.Text.Remove(6) + "~" + FileSystem.Cnt.ToString() + "." + Eof.Text;

                    }

                    else

                    {

                        FileSystem.FileName[FileSystem.Cnt] = FileNameTxt.Text + "." + Eof.Text;

                    }

                    //Записываем дату создания

                    FileSystem.Date[FileSystem.Cnt] = DateTime.Now.ToString();

                    //Считаем необходимое количество кластеров

                    FileSystem.ClustOnFile[FileSystem.Cnt] = FileSystem.FileSize[FileSystem.Cnt] / FileSystem.ClusterSize + 1;

                    //Чистим поля от значений

                    FileSystem.FreeSpace -= FileSystem.FileSize[FileSystem.Cnt];

                    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.KeyChar==(char)Keys.Back)

            {

                if (FileSizeTxt.Text != "")

                {

                    if (e.KeyChar == (char)Keys.Back)

                    {

                        tmp = double.Parse((FileSizeTxt.Text).ToString());

                    }

                    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;

Информация о работе Моделирование файловой системы FAT16