Автор работы: Пользователь скрыл имя, 04 Мая 2013 в 09:59, курсовая работа
Требования к программному продукту:
Язык программирования – С++ (С#) с использованием API функций Win 32
Среда разработки – VisualC++, C++ Builder, C# (или другая, позволяющая создавать 32-разрядные Windows-приложения)
Интерфейс – оконное приложение, содержащее стандартные элементы управления (меню, кнопки, панели и т.п.)
Для всех приложений выполнить структурную обработку исключений (SEH).
Действующие лица: Пользователь
Предусловия:
Основной поток:
Альтернативные потоки: Нет.
Постусловия:
Атрибуты файла будут изменены если пользователь согласится сохранить изменения.
Описание расширяющего ВИ «Копировать»:
ВИ: Копировать файл
ID: 3
Краткое описание: Программа копирует файл в указанное пользователем место, так же он может создать новую папку для сохранения копия в ней.
Действующие лица: Пользователь
Предусловия:
Основной поток:
Альтернативные потоки:
4а. Создание новой папки
4а1. При нажатии кнопки копирование дополнительно появляется кнопка «Создать папку». Если пользователь создаёт папку и открывает её – файл копируется в новую папку
4б. Путь совпадает с текущим
4б1. В случае указания того местоположения, где находится файл в текущий момент – выводиться сообщение о том что такой файл уже существует и предлагает сделать выбор. «Продолжить» - продолжить работу программы без изменения, «Выход» - выход из приложения
Постусловия:
В указанном месте появляется копия файла либо новые папки. Копируемый файл оказывается в новой папке только в том случае, если пользователь после создания папки для копирования выбирает именно её.
Описание ВИ Переместить:
ВИ: Перемещение файла
ID: 4
Краткое описание: Выполняется изменение местонахождения желаемого файла.
Действующие лица: Пользователь.
Предусловия:
Основной поток:
1. Программа перемещает файл
Альтернативные потоки:
4а. Создание новой папки
4а1. При нажатии кнопки
Постусловия:
В указанном месте появляется выбранный файл. Если пользователем была создана папка и выбрана – файл появляется в созданной папке. В исходном положении файла не будет.
Описание ВИ Переименовать:
ВИ: Переименование файла
ID: 5
Краткое описание: Выполняется изменение имени файла.
Действующие лица: Пользователь
Предусловия:
1. Пользователь должен запустить программу.
2. Пользователь должен выбрать желаемый файл.
3. Пользователь должен нажать кнопку «Переименовать».
4. Пользователь должен указать желаемое имя файла
Основной поток:
1. Переименование файла
Альтернативные потоки:
4а. Указание имени не
4а1. Если указать имя, не
Постусловия:
У файла изменяется имя на указанное.
Описание ВИ Информация о *.txt-файле:
ВИ: Вывод дополнительной информации о *.txt-файле
ID: 5
Краткое описание: При нажатии кнопки «Информация о *.txt-файле» пользователю представляется информация о : количестве строк, слов, символов, символов без пробелов Действующие лица: Пользователь
Предусловия:
1. Пользователь должен запустить программу.
2. Пользователь должен выбрать желаемый файл с разрешением *.txt
3. Пользователь Должен нажать кнопку «Информация о *.txt-файле»
Основной поток:
1. Программа производит подсчет количества строк, слов, символов, символов без пробелов
Альтернативные потоки: Нет
Постусловия:
Выводится окно информацией о количестве строк, слов, символов, символов без слов.
В данной курсовой работе для получения информации о файле, изменения атрибутов, переименования, перемещения, копирования, вывода информации о *.txt-файле мы будем использовать библиотеки Net Framework. Так же можно использовать функции WinAPI, но мы этого делать не будем, из соображений упрощения разработки. К тому же считается что WinAPI – это “вчерашний день”
3.1 Использование пространств имен Net Framework
3.3 Использованные классы .NetFramework
В данном разделе будут перечислены основные классы и функции .NetFramework которые использовались для разработки данного приложения. К информации о классе прилагается участок кода программы (некоторые из них с комментарием). А так же будут описаны статические методы и методы экземпляра, пространство имён где они находятся, их значения.
Открытие:
{
fileinf = new FileInfo(openFileDialog1.
update_fname_info(fileinf.
label2.Visible = true;
label2.Text = "Информация о файле:\n"
+ "Размер: "+fileinf.Length.ToString()+" байт.\n"
+ "Создан:
"+fileinf.CreationTime.
+ "\nИзменён: " + fileinf.LastWriteTime.
+ "\nОткрыт:
" + fileinf.LastAccessTime.
Переименование:
Form3 form_rename = new Form3(); //Создаём форму 3 - окно переименования
form_rename.textBox1.Text = fileinf.Name;
form_rename.ShowDialog(); //выводим форму
if (form_rename.change_name == true) //проверяем, изменили имя файла или нет
{
try
{
fileinf.MoveTo(fileinf.
update_fname_info(fileinf.
}
Перемещение:
if (check_exists(fileinf.
{
if (folderBrowserDialog1.
{
fileinf.MoveTo(
MessageBox.Show("Файл перемещён
в " + folderBrowserDialog1.
}
Копирование:
if (check_exists(fileinf.
{
if (folderBrowserDialog1.
{
fileinf.CopyTo(
MessageBox.Show("Файл скопирован
в " + folderBrowserDialog1.
Класс TextReader является абстрактным, базовым классом для StreamReader, который считывает символы из потоков. Производный класс StreamReader позволяет открыть текстовый файл для чтения указанного диапазона символов или создать средство чтения на основе существующего потока.
TextReader reader = new StreamReader(fileinf.OpenRead(
while (true)
{
cur_line = reader.ReadLine(); //считываем 1 строку
if (cur_line != null) //Если строка существует
{
str_have_sym = false;
for (int i = 0; i < cur_line.Length; i++)
{
sym_all++; //считаем все символы
Все методы класса статические, поэтому, если необходимо выполнить только одно действие, более эффективным может оказаться использование метода File, а не соответствующего экземпляра метода FileInfo.
3.4 Используемые методы
Пространство имен: System.IO
Возвращаемое значение:
Тип: System.Boolean
Значение true, если path указывает на существующий каталог, в противном случае – значение false
Пространство имен: System.Windows
Параметры:
Тип: System.String
Строка String, задающая отображаемый текст.
Возвращаемое значение:
Тип: System.Windows.
Значение MessageBoxResult, идентифицирующее кнопку, нажатую пользователем в окне сообщения.
Далее будет приведён участок кода, когда используется данный метод.
public void update_fname_info(string fname)
{
string tmp_fname = fileinf.Name;
if (tmp_fname.Length > 25)
{
tmp_fname = tmp_fname.Substring(0, 25);
}
label1.Text = "Имя файла:\n" + tmp_fname;
if (fileinf.Extension == ".txt")
{
button5.Enabled = true;
}
else
{
button5.Enabled = false;
Проверяет длинну имени файла. Не более 25-и символов. Эта же функция проверяет расширение файла. Если файл текстовый, то кнопка “информация.txt” становится активной.