КР. Анализ поставленной задачи и формирование требований
Скачать 0.82 Mb.
|
Введение Со временем на компьютере практически у каждого пользователя накапливается огромное количество файлов. Аккуратные пользователи время от времени проводят уборку своего электронного хлама. Но довольно сложно бывает сразу определить, что собой представляет тот или иной файл, особенно если на компьютере накопилось много различных файлов с невнятными именами. В этом случае обычно на помощь приходят утилиты Windows, программа Total Commander. Так же в сети Интернет можно найти великое множество любительских программ, написанных самостоятельно и свободных в доступе. Любительские программы пишутся вследствие неудовлетворённости утилитами Windows: неудобством их использования, неполным набором исполняемых задач, а так же для освоения новых возможностей сред программирования. Во многих “серьёзных” программах просто необходимо выводить информацию о файлах и дальнейших действий с ними, что способствует актуальности изучения данной проблемы. Помимо любительских программ, имеются профессиональные, сложные приложения, диапазон возможностей которых гораздо шире. В основном эти программы предназначены для работы с аудио и видеофайлами, т.к. они могут содержать гораздо больше информации о себе, нежели простые файлы. В данной работе мы ставим задачу разработать приложение для пользователя, которое будет простым, понятным, отвечать основным требованиям. Анализ поставленной задачи и формирование требований. 1.1 Отношение к виду Разрабатываемый программный продукт относится к системным утилитам. Разрабатываемая программа должна позволять получать основную информацию об открываемом файле, отображать атрибуты, вносить изменения в атрибуты, переименовывать, перемещать и копировать файл. 1.2 Аналоги Существует огромное множество подобных программ. Как официальных, так и любительских. Так же компоненты Windows выполняют аналогичные задачи. Далее мы рассмотрим некоторые из них. Свойства папки Windows: Вызываются с помощью нажатия правой кнопки мыши на файл -> свойства. Это наглядно показано на рисунке 1. Рисунок 1 – “Вызов”свойств папки Windows После вызова свойств папки, появляется окно, которое отображает описание основных характеристик, просмотр и изменение атрибутов. Вид окна показан на Рисунке 2 и 3. Рисунок 2 – Вид окна свойств. Рисунок 3 – Просмотр и изменение атрибутов. Необходимые функции копирования, переименования и перемещения доступны с помощью других пунктов контекстного меню. Это показано на Рисунке 1. Total Commander Total Commander (бывший Windows Commander) - это самый мощный и стабильный файловый менеджер для Windows с удобным пользовательским интерфейсом. Total Commander продолжает добрую традицию двухпанельных файловых менеджеров, но отличается повышенным удобством и функциональностью: поддерживает копирование, перемещение, переименование файла, просмотр и изменение его атрибутов, а так же многое другое. К примеру Total Commander позволяет соединятся с FTP серверами и удобно оперировать с содержимым папок узлов сети. Поддерживает плагины, имеет множество встроенных полезных инструментов. Интерфейс Total Commander демонстрируется на Рисунке 4. Рисунок 4 – Интерфейс Total Commander Копирование и перемещение выполняются “перетаскиванием” из исходного поля в желаемое. Недостатком Total Commander может быть невозможность вызова контекстного меню определённо-выбранного файла. Но этот недостаток покрывает состав панели инструментов, с помощью которого можно легко проделать множество операций, в том числе изменение атрибутов. Это наглядно показано на Рисунке 5 и 6 Рисунок 5 – Панель инструментов TC. Рисунок 6 – изменение атрибутов файла в TC. Утилита командной строки Windows Из командной строки доступны практически все функции, перечисленные выше. Но главным недостатком командной строки – является неудобство. Неопытный пользователь ПК не знает основных команд, поэтому работа с информацией о файле и его атрибутами будет затруднительна. К тому же на введение команд требуется некоторое время, в отличии от TC в котором это проделывается одним нажатием мыши. Перечислим некоторые команды и наглядно покажем их работу: Команда attrib позволяет просматривать и изменять атрибуты файла. Показано на Рисунке 7. Рисунок 7 – Команда attrib. Из рисунка видно что для установки атрибута файла требуется указать полный путь к файлу и его имя, а так же указать буквенное значение, которое соответствует желаемому атрибуту. Это чрезвычайно неудобно. команды copy, moveи rename (или сокращенный вариант ren) соответственно копируют, перемещают и переименовывают файлы; Синтаксис команды copy показан на Рисунке 8. Рисунок 8 – Команда Copy. Большинство начинающих пользователей ПК даже и не подозревают о половине сказанного в справочнике командной строки. команда dir позволяет просмотреть характеристики файлов в некоторой папке. Показано на Рисунке 9. Рисунок 9 – команда dir. 1.3 Сравнение На основаниях, рассмотренных в предыдущем пункте проведём сравнение аналогов, указав их преимущества и недостатки Свойства папки Windos Преимущества: Удобный интерфейс Простота использования Недостатки: Функции расположены в разных контекстах меню Неполный набор атрибутов Total Commander Преимущества: Удобный интерфейс Простота использования Широкий набор возможностей Польный набор атрибутов Возможность добавления персональных атрибутов Все функции выполняются в одном окне Недостатки: Невозможность вызова контекстного меню выбранного файла Утилита командной строки Windows Преимущества: Входит в состав ОС Все функции доступны из одного окна Недостатки: Неудобство интерфейса. Неудобство использования для начинающего пользователя ПК. Долговременность ввода синтаксиса 1.4 Требования Основными требованиями к разрабатываемой программе являются: 1. Удобство использования 2. Простота интерфейса 3. Выполнение определённы функций: Открытие файла Отображение его основных характеристик Копирование Перемещение Переименование Вывод информации о текстовом файле Вывод сообщений о удачном перемещении, переименовании, копировании. Вывод сообщений о не найденном файле, ошибке и т.д. UML Use Case диаграмма На Рисунке 10 демонстрируется UML Use Case диаграмма разрабатываемого приложения. Рисунок 10 – UML Use Case диаграмма Описание ВИ Открыть файл: ВИ: Открыть файл ID: 1 Краткое описание: Программа открывает указанный пользователем файл, обрабатывает и выводит информацию. Действующие лица: Пользователь Предусловия: Пользователь должен запустить программу. Пользователь должен выбрать желаемый файл. Основной поток: Программа открывает файл и выводит имя, размер, дату создания, дату изменения, дату открытия Программа делает действующими кнопки: “Атрибуты файла”, “Переименовать”, “Переместить”, “Скопировать” Альтернативные потоки: 1а. Файл не найден В случае открытия файла с несуществующим именем – выводится сообщение о том что фал с данным именем не существует. После предлагается попробовать снова, изменив имя. Постусловия: Будет выведена краткая информация о файле. Описание ВИ «Атрибуты файла»: ВИ: Просмотр и возможное изменение атрибутов ID: 2 Краткое описание: Пользователь имеет возможность просмотреть имеющиеся атрибуты у выбранного файла, а так же добавить какие либо из представленных.. Действующие лица: Пользователь Предусловия: Пользователь должен запустить программу. Пользователь должен выбрать желаемый файл. Пользователь должен нажать на кнопку «Атрибуты файла». Пользователь поставил/снял отметку рядом с атрибутом, который хочет установить/снять. Основной поток: Программа сохраняет изменения. В зависимости от выбора пользователя программа сохраняет или отменяет изменения. Альтернативные потоки: Нет. Постусловия: Атрибуты файла будут изменены если пользователь согласится сохранить изменения. Описание расширяющего ВИ «Копировать»: ВИ: Копировать файл 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 System – cодержит классы, позволяющие сопоставлять коды URI с шаблонами URI и группами шаблонов URI. System.Collections.Generic – содержит интерфейсы и классы, определяющие универсальные коллекции, которые позволяют пользователям создавать строго типизированные коллекции, обеспечивающие повышенную производительность и безопасность типов по сравнению с неуниверсальными строго типизированными коллекциями. System.Drawing – содержит типы, поддерживающие базовые графические функции GDI+. Дочерние пространства имен поддерживают более сложные функции двухмерной и векторной графики, дополнительные функции обработки изображений, а также службы, связанные с печатью и типографикой. Дочернее пространство имен также содержит типы, которые расширяют логические и графические возможности пользовательского интерфейса во время разработки. System.ComponentModel - содержит классы, реализующие поведение компонентов и элементов управления во время проектирования и выполнения. Данное пространство имен включает базовые классы и интерфейсы, предназначенные для реализации преобразователей атрибутов и типов, для привязки к источникам данных и для лицензирования компонентов. System.Data - обеспечивает доступ к классам, которые представляют архитектуру ADO.NET. Архитектура ADO.NET позволяет создавать компоненты, эффективно работающие с данными из различных источников. System.Text – содержит типы для работы с кодировками символов и для управления строками. Дочернее пространство имен позволяет обрабатывать текст с использованием регулярных выражений. System.Linq - содержит классы и интерфейсы, которые поддерживают запросы, использующие LINQ (Language-Integrated Query). System.Windows.Forms – содержит классы для создания приложений Windows, которые позволяют наиболее эффективно использовать расширенные возможности пользовательского интерфейса, доступные в операционной системе Microsoft Windows. System.IO – содержит типы, поддерживающие ввод и вывод, включая возможности чтения и записи данных в потоках, как синхронно, так и асинхронно, сжатия данных в потоках, создания и использования изолированных хранилищ, сопоставления файлов логическим адресным пространствам приложений, хранения различных объектов данных в одном контейнере, взаимодействия с использованием анонимных или именованных каналов, реализации пользовательского ведения журнала и обработки входящих и исходящих потоков данных в последовательных портах. 3.3 Использованные классы .NetFramework В данном разделе будут перечислены основные классы и функции .NetFramework которые использовались для разработки данного приложения. К информации о классе прилагается участок кода программы (некоторые из них с комментарием). А так же будут описаны статические методы и методы экземпляра, пространство имён где они находятся, их значения. FileInfo – Класс FileInfo предоставляет методы экземпляра для создания, открытия, удаления, переименования, копирования, перемещения, а так же добавления данных в файлы. Открытие: { fileinf = new FileInfo(openFileDialog1.FileName); update_fname_info(fileinf.Name); label2.Visible = true; label2.Text = "Информация о файле:\n" + "Размер: "+fileinf.Length.ToString()+" байт.\n" + "Создан: "+fileinf.CreationTime.ToString() + "\nИзменён: " + fileinf.LastWriteTime.ToString() + "\nОткрыт: " + fileinf.LastAccessTime.ToString(); Переименование: 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.DirectoryName +@"\" +form_rename.textBox1.Text); update_fname_info(fileinf.Name); //обновляем в программе название файла } Перемещение: if (check_exists(fileinf.FullName)) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { fileinf.MoveTo(folderBrowserDialog1.SelectedPath + @"\" + fileinf.Name); MessageBox.Show("Файл перемещён в " + folderBrowserDialog1.SelectedPath.ToString()); } Копирование: if (check_exists(fileinf.FullName)) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { fileinf.CopyTo(folderBrowserDialog1.SelectedPath + @"\" + fileinf.Name); MessageBox.Show("Файл скопирован в " + folderBrowserDialog1.SelectedPath.ToString()); TextReader – Представляет средство чтения, позволяющее считывать последовательные наборы знаков. Класс 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++; //считаем все символы Exception – Представляет ошибки , происходящие во время выполнения приложения. File – Предоставляет статические методы для создания, копирования, удаления, перемещения и открытия файлов, а так же его можно использовать для получения и задания атрибутов. Все методы класса статические, поэтому, если необходимо выполнить только одно действие, более эффективным может оказаться использование метода File, а не соответствующего экземпляра метода FileInfo. 3.4 Используемые методы Exists – определяет указывает ли заданный путь на существующий каталог на диске. Пространство имен: System.IO Возвращаемое значение: Тип: System.Boolean Значение true, если path указывает на существующий каталог, в противном случае – значение false MessageBox.Show – Отображает окно сообщения с сообщением, которое возвращает результат. Пространство имен: System.Windows Параметры: Тип: System.String Строка String, задающая отображаемый текст. Возвращаемое значение: Тип: System.Windows.MessageBoxResult Значение MessageBoxResult, идентифицирующее кнопку, нажатую пользователем в окне сообщения. Update_fname_info – метод, который используется при открытии и при обновлении файла. Проверяет длинну имени файла. Далее будет приведён участок кода, когда используется данный метод. 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” становится активной. Substring – Возвращает подстроку, расположенную в указанном место обьекта String. Аргументы: Стартовый – Обязательный. Целое значение индекса (начиная с нуля), указывающее начало подстроки. Конечный – Необязательный. Целое значение индекса (начиная с нуля), указывающее конец подстроки. Подстрока включает знаки до знака, задаваемого конечным значением, но не включая его. Если конечно значение опущено, будут возвращены знаки от начального до конца исходной строки. Пример из кода программы: tmp_fname = tmp_fname.Substring(0, 25); ShowDialog – Отображает форму как модальное диалоговое окно Пространство имён: System.Windows.Forms Возвращаемое значение: Тип: System.Windows.Forms.DialogResults Одно из значений DialogResults Refresh - Удаляет любые кэщированные внутри компонента процесса сведения о связном процессе ToString – Преобразует числовое значение данного экземпляра в эквивалентное строковое представление с использованием указанного формата. Пространство имён: System Параметры: Тип: System.String Строка числового формата. Возвращаемое значение: Тип: System.String Строковое представление значения данного экземпляра, определяемое параметром ReadLine – Выполняет чтение строки символов из текущего потока и возвращает данные в виде строки Пространство имён: System.IO Возвращаемое значение: System.String Следующая строка из входного потока иди значение Nothing, если достигнут конец входного потока. Close – Закрытие файла для чтения содержимого Пространство имён: System.Data 4. Руководство пользователя 4.1 Системные требования Операционная система : Windows XP, Vista, 7 Оперативная память: не менее 16 МБ Свободное пространство на диске: 400КБ Наличие .Net Framework 4.0 или выше 4.2 Инструкция пользователя 1. Для запуска программы дважды кликните на файле File_info.exe 2. После этого откроется окно программы с одной действующей кнопкой “Открыть файл”. Это показано на Рисунке 11 Рисунок 11 – Окно приложения File_info 3. Нажмите на кнопку и выберете желаемый файл. Если вы будете вводить несуществующее имя – появится сообщение об ошибке, затем будет предложено попробовать ввести имя вновь. 4. Далее появятся несколько активных кнопок: “Атрибуты файла”, “Переименовать”, “Переместить”, “Скопировать”, а так же если вы открыли файл с разрешением *.txt кнопка “Информация о *.txt-файле” так же станет активной. 5. В крайнем правом углу будет располагаться информация о файле: Размер, дата создания, дата изменения, дата открытия. Под кнопкой “Открыть файл” располагается имя файла 6. Нажав кнопку “Атрибуты файла” можно посмотреть какие атрибуты имеются у данного файла, а так же добавить желаемые. Что бы сохранить изменения нажмите кнопку “Сохранить изменения”. Это показано на Рисунке 12 Рисунок 12 – Атрибуты 7. Если тот файл, который вы открыли имеет формат *.txt можно посмотреть количество строк, слов, символов, символов без пробелов данного файла, нажав на кнопку “Информация о *.txt-файле”. Это показано на Рисунке 13 Рисунок 13 – Информация о текстовом файле 8. Для переименования файла нажмете на кнопку “Переименование” После чего открывается окно с текущим именем файла. Его можно изменить на желаемое и сохранить, нажав на кнопку “Применить”. Если имя не будет содержать ни одного символа – появится сообщение об ошибке, после чего предлагается вновь попробовать ввести имя. Это показано на Рисунках 14 и 15 Рисунок 14 – Переименование Рисунок 15 – Сообщение об ошибке 9. Для перемещения файла нажмите кнопку “Переместить”. После нажатия кнопки появится окно, в котором будет предложено выбрать куда переместить данный файл. Так же будет активна кнопка “Создать папку”, с помощью которой вы можете создать папку для хранения выбранного файла. Это показано на Рисунке 16 Рисунок 16 – Перемещение 10. Для копирования файла нажмите кнопку “Скопировать”. После нажатия кнопки появится окно, в котором будет предложено выбрать куда скопировать данный файл. Так же будет активна кнопка “Создать папку”, с помощью которой вы можете создать папку для хранения выбранного файла. Если вы скопируете файл в туда где он уже находится – появится сообщение об ошибке и три активных кнопки: “Сведения” – подробнее познакомиться с ошибкой, “Продолжить – продолжить работу с программой без завершения последней операции” и “Выход” – завершение работы программы. Это показано на Рисунках 17 и 18. Рисунок 17 – Копирование Рисунок 18 – Сообщение об ошибке 11. Если необходимо закончить работу с текущим файлом и начать работу с другим – просто нажмите “Открыть файл” 12. Что бы закончить работу с приложением – нажмите крестик 5. Результаты разработки Результатом разработки является пользовательское Windows – приложение. После запуска приложения и открытия файла можно посмотреть основную информацию о файле: Размер, дата создания, дата изменения, дата открытия, имя. Так же можно посмотреть какими атрибутами обладает файл и внести желаемые изменения и сохранить их. Так же можно выполнить переименование, перемещение и копирование файла. Программа обладает способностью посчитать количество букв, слов, символов, символов без пробелов у текстовых файлов. Программа может быть использована как замена некоторых функций Проводника Windows и текстовых редакторов. Функционал приложения ограничен поставленными задачами. 6. Заключение В ходе данной работы были выполнены все поставленные задачи, повышен навык работы с платформой .NETFramework, языком программирования C#. Простейший интерфейс позволяет работать даже начинающим пользователям ПК. Предусмотрено уведомление пользователя об ошибках. Выполнены все требования к приложению, кроме применения функций WinAPI, т.к. они устарели и их использование значительно увеличило время разработки. Данное приложение можно доработать до более серьёзного приложения, к примеру до приложения, выполняющего базовые функции файл – менеджера. Приложение. { |