Моделирование файловой системы 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 Мб (Скачать)

    {

        Parameters ParametersForm = new Parameters();

        Cluster ClusterForm = new Cluster();

        FileParameters FParam = new FileParameters();

        DeleteForm Del = new DeleteForm();

        public Mainform()

        {

            InitializeComponent();

        } 

        private void ExitButton_Click(object sender, EventArgs e)

        {

            if (MessageBox.Show("Вы действительно хотите выйти?", "Выход из программы", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes)

            {

                Application.Exit();

            }

        } 

        private void FSCreate_Click(object sender, EventArgs e)

        {

                BADFill.Enabled = true;

                FileOperations.Visible = true;

                FSCreate.Enabled = false;

                Highlighter.Enabled = true;

                FSClose.Enabled = true;

                // Принимаем параметры

                 ParametersForm.ShowDialog();

                // Выводим статус

                //Корректируем размер раздела

                FileSystem.PartitionSize = FileSystem.PartitionSize - (FileSystem.PartitionSize % FileSystem.ClusterSize);

                FileSystem.FreeSpace = FileSystem.PartitionSize;

                PartitionLabel.Text += FileSystem.PartitionSize.ToString() + " байт";

                ClusterLabel.Text += FileSystem.ClusterSize.ToString() + " байт";

                FreeSpaceLabel.Text += FileSystem.FreeSpace.ToString() + " байт";

                Status.Visible = true;

                // Подсчитываем количество кластеров..

                FileSystem.NumberOfClusters = (int)(FileSystem.PartitionSize / FileSystem.ClusterSize);

                FileSystem.BinaryMap = new char[FileSystem.NumberOfClusters];

                FileSystem.DecimalMap = new int[FileSystem.NumberOfClusters];

                //... и рисуем их

                FileSystem.Map = new Bitmap(1270, 5000);

                Graphics Gr = Graphics.FromImage(FileSystem.Map);

                int tmpX = 40;

                int tmpY = 40;

                int stop = 1240;

                Pen tmpPen = new Pen(Color.Black, 1);

                int j = 0;

                Font fnt = new Font(FontFamily.GenericSansSerif, 10);

                for (int i = 42; i < 1240; i += 20) //Рисуем текст по Х

                { 

                    j++;

                    Gr.DrawString(j.ToString(), fnt, Brushes.Black, i, 15); 

                }

                //Рисуем текст по Y

                j = 0;

                for (int i = 42; i < 5000; i += 20)

                { 

                    Gr.DrawString(j.ToString(), fnt, Brushes.Black, 5, i);

                    j++;

               }

                for (int i = 0; i < FileSystem.NumberOfClusters; i++)

                {

                    FileSystem.BinaryMap[i] = '0';

                    Rectangle tmpRec = new Rectangle(tmpX, tmpY, 20, 20);

                    Gr.DrawRectangle(tmpPen, tmpRec);

                    tmpX += 20;

                    if (tmpX == (int)(stop)) // Проверяем не достигнута ли правая граница карты

                    {

                        tmpX = 40;

                        tmpY += 20;

                    }

                } 

                FileMap.Image = FileSystem.Map;

                FileMap.Invalidate();

                Gr.Dispose();

           

        } 

        private void FSClose_Click(object sender, EventArgs e)

        {

            BADFill.Enabled = false;

            FileOperations.Visible = false;

            FSCreate.Enabled = true;

            Highlighter.Enabled = false;

            FSClose.Enabled = false;

            FileSystem.ClusterSize = 0;

            FileSystem.PartitionSize = 0;

            Status.Visible = false;

            PartitionLabel.Text = "Размер раздела: ";

            ClusterLabel.Text = "Размер кластера: ";

            FreeSpaceLabel.Text = "Свободного места: ";

            Graphics Gr = Graphics.FromImage(FileSystem.Map);

            Gr.FillRectangle(Brushes.White, 0, 0, 1280, 5000);

            Gr.Dispose();

            FileMap.Invalidate();

           

            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;

             

        } 

        private void Highlighter_Click(object sender, EventArgs e)

        {

            ClusterForm.ShowDialog();

            FileMap.Invalidate();

        } 

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