- •Государственное образовательное учреждение высшего профессионального образования
- •Носители, папки и файлы. Последовательная обработка файлов
- •Цель проведения лабораторной работы
- •Порядок выполнения лабораторной работы
- •После завершения работы удалить файлы с дискового носителя.
- •Определение процента заполнения дисковой памяти:
- •Определить характеристики полного имени подготовленных файлов: (полное имя, его длина, длина пути, резерв длины пути (максимальная длина пути: 240 символов), резерв длины имени файла).
- •Определить временные характеристики файлов, полученные при их создании (самостоятельно спроектировать таблицу для размещения результатов и разместить в ней результаты экспериментов).
- •Время создания файла, среднее время добавления записи и создания кластера.
- •Построить графики изменения среднего времени добавления записи, и кластера от объема файла в записях и кластерах (использовать табличный процессор Excel).
Написать и отладить программу на языке С#, выполняющую следующие функции для файла:
Последовательное чтение записей файла.
Определение количества записей в файле.
Определение объема полезной информации в файле.
Определение длины каждой записи файла.
Определение смещения каждой записи в файле.
Определение времени чтения файла, включая время открытия и закрытия файлов.
Результаты экспериментов отобразить в таблице и на графиках (самостоятельно спроектировать таблицу для размещения результатов и разместить в ней результаты экспериментов).
Сделать выводы о видах временных зависимостей.
После завершения работы удалить файлы с дискового носителя.
Подготовить отчет о выполнении лабораторной работы.
Поготовится к теоретическому опросу контролиррующей системой.
Защитить отчет лабораторной работы
Определить размер кластера носителя и количество секторов в кластере. Результаты предоставить в форме таблицы.
Определим размер кластера носителя и количество секторов в кластере. Для этого создадим файл в текстовом редакторе небольшого размера. Для того чтобы определить размер кластера носителя, нужно нажать правой кнопкой мыши по созданному текстовому документу и нажать на Свойства. В появившемся окне в строке На диске: видно сколько памяти выделяется для хранения данного текстового документа на диске. В нашем случае размер текстового документа - 7 Байт, размер на диске – 4 Кб. Это значит, что размер кластера носителя – 4Кб или 4×1024=4096 Байт. Считая размер сектора равным 512 Байт, можно вычислить количество секторов в кластере. Для этого размер кластера разделим на размер сектора:4096 Байт: 512 Байт=8. Все результаты предоставим в форме таблицы:
Таблица
1. Характеристики
файла
|
Характеристика файла |
Значение |
1 |
Имя файла |
Ш.Д. |
2 |
Приложение |
Блокнот |
3 |
Размещение |
C:\work\4209\Shilnikov_D |
4 |
Размер в байтах |
1 |
5 |
Размер в Кбайтах |
0,0009765625 |
6 |
Размер в Мбайтах |
0.00000095367431640625 |
7 |
На диске в байтах |
4096 |
8 |
На диске в Кбайтах |
4 |
9 |
На диске в Мбайтах |
0.00390625 |
10 |
Размер в секторах (сектор: 512 байт) |
8 |
11 |
Размер в кластерах |
4кб |
12 |
Создан |
11 сентября 2013 г., 12:32:11 |
13 |
Изменен |
11 сентября 2013 г., 12:37:52 |
14 |
Открыт |
11 сентября 2013 г., 12:43:33 |
15 |
Только чтение |
нет |
16 |
Скрытый |
нет |
17 |
Архивный |
да |
Написать и отладить программу создания файла на языке С#. Программу подготовить для консольного режима. Использовать фрагменты примера программы из приложения 1. в отчет включить алгоритм программы (схема алгоритмы) и ее текст (C#).
Напишем и отладим программу создания файла на языке С# в консольном режиме, используя фрагменты примера программы из приложения 1. Создадим новый проект в Microsoft Visual Studio C# (MVS C#). Для начала запускаем программу MVS C# следующим образом: Пуск→Все программы→ Microsoft Visual Studio 2008. Чтобы создать проект проделываем следующие операции: на панели быстрого доступа нажимаем на File далее выбираем New→Project. В появившемся окне в левом столбце выбираем Visual С++, появится несколько строчек, выбираем Visual С#. В правом столбце выбираем режим консольного приложения, т.е. выбираем строчку ConsoleApplication. Далее появится новое окно, в котором нажимаем на Finish.
Далее, используя навыки программирования, создаем программу, которая будет создавать новый текстовый документ.
Текст программы:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace Consol
{
class Program
{
static void Main(string[] args)
{
int i;
string str;
FileStream f1;
const int n = 71040;
f1 = new FileStream("Fl_1110_Shilnikov_D.txt", FileMode.Create);
f1.Close();
f1 = new FileStream("Fl_1110_Shilnikov_D.txt", FileMode.Open, FileAccess.Write);
StreamWriter fstr = new StreamWriter(f1);
str = "llllllllllllllllllllllllllllllllllllllllllllllllllllllllllllll";
Console.Write("Nagmite Enter");
Console.ReadLine();
for (i = 0; i < n; i++)
{ fstr.WriteLine(str); }
fstr.Close();
}
}
}
Данная программа создает в папке, в которой расположен сам проект, пустой текстовый документ «Fl_1110_Shilnikov_D.txt».
Блок-схема алгоритма программы будет выглядеть следующим образом:
Начало
Объявление файла
Создание файла
сеанса
Закрытие файла
Конец
Подготовить семь текстовых файлов в соответствии с заданием (см. таблица 2) лабораторной работы (файлы с записями фиксированной длины). Имена файлов должны включать номер файла, размер в кластерах, фамилию студента (например, f1_1110_Shilnikov.txt). Перед созданием оценить объем файлов и определить объем свободного места на носителе. Сделать вывод о возможности создания файлов. Результаты расчетов занести в таблицу 3. Перед созданием файлов на носителе предоставить расчеты преподавателю для проверки. Все расчеты оформлять в соответствии с требованиями подготовки научно-технических отчетов. Сделать выводы об объеме незаполненного пространства кластеров и определить процент заполнения дисковой памяти.
Таблица 2. Вариант задания
|
Длина записи |
Размеры файлов в кластерах |
Символ для формирования содержания записи |
||||||
Файл f1 |
Файл f2 |
Файл f3 |
Файл f4 |
Файл f5 |
Файл f6 |
Файл f7 |
|||
12 |
64 |
1110 |
1310 |
1510 |
1710 |
1910 |
2110 |
2310 |
l |
Подготовим семь текстовых файлов в соответствии с вариантом №12 лабораторной работы. Перед созданием оценим объем файлов и определим объем свободного места на носителе. Сделаем это следующим образом: Заходим в Мой компьютер, нажимаем правой кнопкой на диск С, в появившемся окне нажимаем на Свойства, находим две строчки – Занято и Свободно, запишем соответствующие значения этим параметрам:
Занято: 45 368 201 216 байт
Свободно: 19 644 379 136 байт
Оценим объем файлов, которые нам предстоит создать. Зная, что на диске 1 кластер занимает 4096 байт, определим объем всех семи файлов по следующей формуле: V=k*b.
1 файл: 1110 × 4096 = 4546560 байт;
2 файл: 1310 × 4096 = 5365760 байт;
3 файл: 1510 × 4096 = 6184960 байт;
4 файл: 1710 × 4096 = 7004160 байт;
5 файл: 1910 × 4096 = 488960 байт;
6 файл: 2110 × 4096 = 8642560 байт;
7 файл: 2310 × 4096 = 9461760 байт.
Определим объем суммы всех семи файлов:
4546560 + 5365760 + 6184960 + 7004160 + 488960 + 8642560 + 9461760 =
49029120 байт. Т.к. объем свободного места на диске превышает объем суммы наших семи файлов (19 644 379 136 <49 029 120), то возможность создать эти файлы существует.
Результаты расчетов занесем в таблицу 3:
Таблица 3. Объемные характеристики файлов
Размер кластера в байтах – 4096 Размер записи - 64 |
||||||
|
Имя файла в папке «ЛБ4209» |
Размер файла в кластерах (из задания) |
Количество записей в кластере |
Размер файла в записях |
Размер файла в Мбайт, Кбайт, байт |
На диске Мбайт, Кбайт, байт |
f1 |
f1_1110_Шильников |
1110 |
64 |
71040 |
4.3359375
|
4.3359375 |
4440 |
4440 |
|||||
4546560 |
4546560 |
|||||
f2 |
f2_1310_Шильников |
1310 |
64 |
83840 |
5.1171875 |
5.1171875
|
5240 |
5240 |
|||||
5365760 |
5365760 |
|||||
f3 |
f3_1510_Шильников |
1510 |
64 |
96640 |
5.8984375 |
5.8984375
|
6040 |
6040 |
|||||
6184960 |
6184960 |
|||||
f4 |
f4_1710_Шильников |
1710 |
64 |
109440 |
6.6796875 |
6.6796875
|
6840 |
6840 |
|||||
7004160 |
7004160 |
|||||
f5 |
f5_1910_Шильников |
1910 |
64 |
122240 |
7.4609375 |
7.4609375
|
7640 |
7640 |
|||||
488960 |
7823360 |
|||||
f6 |
f6_2110_Шильников |
2110 |
64 |
135040 |
1024 |
8.2421875
|
8440 |
8440 |
|||||
8642560 |
8642560 |
|||||
f7 |
f7_2310_Шильников |
2310 |
64 |
147840 |
9.0234375 |
9.0234375
|
9240 |
9240 |
|||||
9461760 |
9461760 |
|||||
Всего |
7 |
11970 |
448 |
5362560 |
46.7578125 |
46.7578125
|
47880 |
47880 |
|||||
49029120 |
49029120 |
|||||
Свободное место на диске C |
|
|
|
---- |
|
3643 |
3730531 |
||||||
3820064768 |
||||||
