Вход

РАЗРАБОТКА БИНАРНОГО ФАЙЛОВОГО ФОРМАТА «СТУДЕНТ ВУЗА» И ПРИЛОЖЕНИЯ ДЛЯ УПРАВЛЕНИЯ ИМ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ С#

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 376232
Дата создания 10 января 2018
Страниц 36
Мы сможем обработать ваш заказ (!) 27 декабря в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
4 860руб.
КУПИТЬ

Описание

Работа выполнена на дисциплине "Современные программные средства". Разрабатывается бинарный файл и приложение для управления им на языке программирования С#. Имеются скриншоты, коды. ...

Содержание

1 Постановка задачи 4
2 Описание формата хранения данных 8
2.1 Описание моделируемого понятия 8
2.2 Описание бинарного файлового формата «student» 9
2.3 Описание XML-формата «student» 11
2.4 Описание HTML-шаблона для формата «student» 13
3 Описание программного обеспечения 15
3.1 Общие сведения о программе, вызов и загрузка 15
3.2 Описание логической структуры проекта программы 15
3.3 Описание класса «student» 16
3.4 Описание классов оконного интерфейса 22
4 Руководство пользователя 28
4.1 Аппаратные требования 28
4.2 Программные требования 28
4.3 Указания по установке и запуску программы 28
4.4 Указания по использованию программы 29
Заключение 34
Список использованных источников 35
Приложение 36

Введение

Цель курсовой работы – разработать приложение со стандартным графическим интерфейсом пользователя в среде программирования «Microsoft Visual Studio» на языке программирования С# с использовани-ем библиотеки классов .NET. Программа предназначена для обработки сведений о понятии «студент высшего учебного заведения» и должна удо-влетворять требованиям, описанным далее.
В рамках выполнения курсовой работы требуется разработать типы данных (класс) и спецификацию хранения данных о понятии «студент высшего учебного заведения». На основании созданной спецификации разработать программное обеспечение, которое может быть использовано для работы с файлами данного формата. Данные должны быть представ-лены в следующих формах: бинарной, структурированной текстовой фор-ме (XML), текстовой (TXT) и гипертек стовой (HTML)

Фрагмент работы для ознакомления

2.3 Описание XML-формата «student» Для построения XML документа следует определить, какие тэги будут использованы для моделирования данных изучаемого понятия. Все данные XML-документа обычно помещается в тэг верхнего уровня – он называется корневым элементом и представляет весь документ целиком. Все остальные данные помещаются во вложенные теги. Структура XML-файла представлена в таблице №3, пример файла данных в формате XML представлен в листинге №1.Таблица 3 – Описание структуры файла XML№Название тегаСмыслПодчинённость1<student>описывает понятие в файле формата xmlкорневой тег2<firstname>Имя студента<student>3<midlename>Отчество студента<student>4<lastname>Фамилия студента<student>5<sex>Пол студента<student>6<borndate>Дата рождения студента<student>7<enteryear>Год поступления в ВУЗ<student>8<currentyear>Текущий номер курса обучения<student>9<facultet>Факультет<student>10<groupname>Группа<student>11<idnumber>Номер зачётной книжки<student>Так как формат XML является текстовым, то из описанного формата была исключена информации об изображении.Листинг 1 – Пример файла данных XML 2.4 Описание HTML-шаблона для формата «student» В соответствии с заданием необходимо разработать HTML-шаблон для экспорта данных из бинарного представления в наглядное и понятное представление в переносимом файловом формате HTML, из которого информация может быть отправлена в другие программы. Шаблон документа строится по правилам разметки гипертекста и отображает сведения о студенте в виде, показанном на рисунке 1.Рисунок 1 – внешний вид HTML-шаблонаВо внутреннем представлении шаблон представляет из себя стандартный файл HTML, имеющий следующую структуру (листинг 2). В данном шаблоне место подстановки фактических значений обозначено знаком «*».Листинг 2 – структура HTML-шаблона<html><head> <meta charset='utf-8' /> <title>****</title></head><body style='font-family:tahoma; font-size:16px;'> <h3 style='color:red;'>Анкета студент(а/ки)</h3> <hr /> <table cellspacing='10'> <tr style='vertical-align:top;'> <td> <img src='***' /> </td> <td> <b>Имя студент(а/ки)</b>: ***<br /> <b>Отчество студент(а/ки)</b>: ***<br /> <b>Фамилия студент(а/ки)</b>: ***<br /> <b>Пол студент(а/ки)</b>: ***<br /> <b>Дата рождения студент(а/ки)</b>: ***<br /> <b>Год поступления</b>: ***<br /> <b>Номер курса</b>: **<br /> <b>Факультет</b>: ***<br /> <b>Группа</b>: ***<br /> <b>Номер зачётной книжки</b>: ***-***-*-**<br /> </td> </tr> </table></body></html>Документ представленного формата строится программно при выполнении команды экспорта из бинарного представления в формат HTML.3 Описание программного обеспечения3.1 Общие сведения о программе, вызов и загрузкаПрограммное обеспечение «Анкета студента» создано с использованием объектно-ориентированной технологии и библиотеки классов «Microsoft .NET Framework» на языке программирования «Visual С#» в среде разработки программного обеспечения «Microsoft Visual Studio 2012».Главный исполняемый двоичный файл называется «Курсовая работа.exe». Для исполнения программы на компьютере пользователя необходимо наличие установленной системы времени исполнения Microsoft .NET Framework версии не ниже 4.5. Программа не требует инсталляции. Вызов и загрузка программного обеспечения осуществляются запуском исполняемого файла «Курсовая работа.exe». Исполняемый файл может находиться в любом каталоге компьютера и не требует наличия других файлов (при условии наличия на целевом компьютере системы Microsoft .NET Framework версии не ниже 4.5).3.2 Описание логической структуры проекта программыПроект программы включает в себя:3 файла исходного кода на языке программирования C#,1 форму главного окна программы, 1 файл проекта,9 файлов ресурсов проекта в текстовом виде (справочники имён, фамилий и отчеств для вывода всплывающих подсказок в полях текстового ввода), 13 файлов значков графического формата (PNG и ICO) для оформления элементов графического интерфейса (все файлы значков взяты с сайта «https://www.iconfinder.com»).Таблица 4 – Перечень модулей проекта№Название модуляНазначение модуля1Program.csВходная точка программного приложения, содержит метод Main программы и запускает её главный исполняемый поток.2Form1.csОбъявление и реализация пользовательского классов для описания в программе понятия «студент» и решения основных задач программы.3Form1.designer.csОбъявление класса главного окна приложения (в части используемых объектов графического интерфейса).В составе программы реализованы классы для решения задач курсового проектирования. Созданные классы описаны в таблице 5.Таблица 5 – Основные типы данных (классы), созданные в программе№Название модуляНазначение модуля1Form1Класс класса главного окна приложения.2MetaDataВспомогательный статический класс для хранения неизменяемых значений, используемых программой (магический знак файла, список факультетов, список учебных групп, название пола студента).3StudentОписания в программе понятия «студент» и решения основных задач программы.Описания данных классов показаны данные в пунктах 3.3 – 3.4. 3.3 Описание класса «student»Класс «student» создан в программе как средство моделирования соответствующего понятия. В составе класса, в соответствии с заданием, определены закрытые поля (для защищённого хранения сведений о студенте в соответствии со спецификацией, данной в таблице 1), открытие свойства (для безопасного и адекватного по смыслу обращения в защищённым полям класса), методы для управления свойствами и решения основных задач программы.Поля класса служат для хранения информации о моделируемом понятии. В соответствии с принципом инкапсуляции поля класса обычно объявляются как закрытые и недоступные для прямого использования в модулях, использующих класс, их содержащий. Это делается для того, чтобы использующие программы не могли повредить данные класса некорректными действиями. Логика работа с полями реализуется в классе с помощью методов и свойств, которые являются открытыми. Перечень закрытых полей показан в таблице 6.Таблица 6 – Закрытые поля класса «student»№Тип поляНазвание поляНазначение поля1stringfirstNameХранит имя студента2stringmidleNameХранит отчество студента3stringlastNameХранит фамилия студента4stringsexХранит пол студента5DateTimedateBornХранит дату рождения студента6intenterYearХранит год поступления в ВУЗ7intcurrentYearХранит текущий номер курса обучения8stringfaculNameХранит название факультет9stringgroupNameХранит название группы10stringidNumberХранит номер зачётной книжки11ImagephotoFaceХранит фотография студентаСвойства служат для обеспечения целостности данных, хранящихся в закрытых полях класса. Каждое свойство служит для работы с тем или иным конкретным полем и содержит аксессоры set (для изменения значения данного иного поля) и get (для получения значения поля в вызывающей программе). Таким образом, свойства – это программируемый на стороне класса способ доступа к полям. Перечень свойств дан в таблице 7. Таблица 7 – Открытые свойства класса «student»№Тип свойстваНазвание свойстваНазначение свойства1stringFirstNameДоступ к полю firstName2stringMiddleNameДоступ к полю midleName3stringLastNameДоступ к полю lastName4stringSexДоступ к полю sex5DateTimeBornDateДоступ к полю dateBorn6intEnterYearДоступ к полю enterYear7intCurrentYearДоступ к полю currentYear8stringFakultNameДоступ к полю faculName9stringGroupNameДоступ к полю groupName10stringIdNumberДоступ к полю idNumber11ImagePhotoFaceДоступ к полю photoFace12stringFIOФормирует строку, состоящую составленную из имени, отчества и фамилии студента.Рассмотрим в качестве примера способ реализации доступа к полю «dateBorn», реализованный в свойстве «BornDate» (листинг 3). В этом свойстве при выполнении присваивания значения полю «dateBorn» выполняются проверки, обеспечивающие корректность присваиваемого значения.Листинг 3 – код свойства «BornDate»/// <summary>/// дата рождения студента/// </summary>public DateTime BornDate{ set { // студент не моложе 17 лет и не старше 60 лет if (value <= DateTime.Now.Date.AddYears(-17) && value >= DateTime.Now.Date.AddYears(-60)) { // если да, то присвоить значение dateBorn = value; } else { // иначе присвоить значение по умолчанию // (текущая дата минус 17 лет) dateBorn = DateTime.Now.Date.AddYears(-17); } } get // получить нужное значение { return dateBorn; }}Остальные свойства класса «student» реализованы аналогично.Для реализации задач создаваемой программы в состав класса «student» включены методы. Методы – это функции, реализованные в теле класса, имеющие полный доступ к полям и свойствам, предназначенные для решения задач, стоящих перед создаваемым классом. В данной курсовой работе основные задачи – это сохранение данных в файлы различных форматов, чтение данных из бинарного файла и ряд других сопутствующих задач. Перечень методов описан в таблице 8.Таблица 8 – Методы класса «student»№Прототип методаНазначение метода1public student()Метод-конструктор позволяет задать значения по умолчанию для всех полей класса при создании его объекта в взывающей программе.2public override string ToString()Метод позволяет собрать все сведения о студенте в одну общую строку string.3public bool ReadFromFile(string FileName)Метод позволяет прочитать данные студента из бинарного файла с указанным именем (файл должен соответствовать спецификации в таблице 2).4public bool SaveToFile(string FileName)Метод позволяет сохранить данные студента в бинарный файл с указанным именем (файл должен соответствовать спецификации в таблице 2).5public string ToHTML(string PictFile)Получить строку с представлением данных в форме HTML (строка должна соответствовать шаблону (см. листинг 2)).Рассмотрим код метода для сохранения данных студента в бинарный файл (листинг 4). При записи данных в файл копируются значения всех полей класса. При этом соблюдается порядок следования и типы данных полей, указанные в таблице 2, описывающей формат бинарного файла «student». Имя файла для сохранения поступает в метод из вызывающей программы.Листинг 4 – код метода «SaveToFile»/// <summary>/// сохранить данные студента в файл/// </summary>/// <param name="FileName">имя файла для сохранения</param>/// <returns></returns>public bool SaveToFile(string FileName){ try { // файловый поток для создания файла FileStream SFile = new FileStream(FileName, FileMode.Create); // объект записи в поток BinaryWriter Bw = new BinaryWriter(SFile); // последовательная запись полей в файл Bw.Write(MetaData.magicSign); Bw.Write(FirstName); Bw.Write(MiddleName); Bw.Write(LastName); Bw.Write(BornDate.ToBinary()); Bw.Write(Sex); Bw.Write(EnterYear); Bw.Write(CurrentYear); Bw.Write(GroupName); Bw.Write(FakultName); Bw.Write(IdNumber); // поток для получения изображения в оперативную память MemoryStream Mem = new MemoryStream(); // загружаем фото в память // первый аргумент метода - приёмник данных, // а второй - формат сохранения - bmp для устранения потерь // данных при сохранении PhotoFace.Save(Mem, ImageFormat.Bmp); // получаем байты фотографии в байтовый массив методом ToArray() byte[] ImageBytes = Mem.ToArray(); // записываем в файловый поток длину байтового массива // (размер изображения) Bw.Write(ImageBytes.Length); // записываем в файловый поток байтовый массив изображения (поле №5) // указываем что пишем байты начиная с самого первого (имеет номер 0) // и указываем количество записываемых байтов Bw.Write(ImageBytes, 0, ImageBytes.Length); Mem.Close(); // закрыть объекты после завершения Bw.Close(); SFile.Close(); } catch(Exception ex) { // при возникновении ошибки запись не выполняется // возвращаем в программу сообщение ошибки FileError = MetaData.Errors[2]; return false; } return true;}Кроме класса «student» в программе создан статический класс «MetaData» (метаданные), который хранить неизменяемые данные, используемые классом «student». Такие данные нужны для обеспечения неизменности значений, передаваемых в файл и из файла, показе в интерфейсе программы в списках выбора. Это позволит избежать ошибок при программировании сохранения и чтения данных. К неизменяемым данным класса «student» относятся: название пола, перечень факультетов ВУЗа, названия групп (таблица 9).Таблица 9 – Неизменяемые значения в классе MetaData№Объявление поля или свойстваНабор значений1public static List<string> Facultets"Экономики и информатики", "Инженерный", "Иностранных языков", "Юридический"2public static List<string> Groups"ПИ-11", "ПИ-21", "ПИ-31", "ИВТ-11", "ИВТ-21", "ИВТ-31", "ЭС-11", "ЭС-21", "ЭС-31", "АЯ-11", "АЯ-21", "Ю-11", "Ю-21", "Ю-31"3public static string[] Sex"мужской", "женский"4public static string[] Errors" файл имеет неправильный формат.", " файл повреждён или недоступен.", " невозможно создать и записать файл."5public static int magicSign12345123453.4 Описание классов оконного интерфейсаГрафический интерфейс программы и её полезные действия реализованы в классе окна программы Form1. Данный класс содержит определение собственно графического интерфейса и методов-событий, возникающих при выполнении пользователем действий над элементами графического интерфейса (ввод данных, выбор значений списков, нажатия на командные кнопки меню и панели инструментов). Внешний вид формы в программе Visual Studio показан на рисунке 2.Рисунок 2 – проект окна программы в окне конструктора форм приложения Visual StudioВ окне программы использованы элементы управления графического интерфейса, описанные в таблице 10.Таблица 10 – Элементы управления в окне программы (поля класса Form1)№Тип данныхНазвание поля в теле классаНазначение1MenuStripmenuStrip1Главное меню программы.2ToolStriptoolStrip1Панель инструментов программы.3StatusStripstatusStrip1Панель статуса в нижней части окна программы (используется для вывода последней выполненной операции).4ToolStripStatusLabeltoolStripStatusLabel1Метка вывода о последней операции.5ToolStripMenuItemфайлToolStripMenuItemРаздел главного меню «Файл»6ToolStripMenuItemсохранитьToolStripMenuItemКоманда меню «Сохранить как …»7ToolStripMenuItemоткрытьToolStripMenuItemКоманда меню «Открыть …»8ToolStripMenuItemвыйтиToolStripMenuItemКоманда меню «Выйти»9ToolStripMenuItemэкспортToolStripMenuItemРаздел главного меню «Экспорт»10ToolStripMenuItemэкспортироватьВXMLToolStripMenuItemКоманда меню «Экспортировать в XML ...»11ToolStripMenuItemэкспортироватьВHTMLToolStripMenuItemКоманда меню «Экспортировать в HTML ...»12ToolStripMenuItem ToolStripMenuItemэкспортироватьВТекстовыйФайлToolStripMenuItemКоманда меню «Экспортировать в текстовый файл ...»13TextBoxtextBoxFirstNameПоле ввода/вывода имени.14TextBoxtextBoxMidleName;Поле ввода/вывода отчества.15TextBoxtextBoxLastNameПоле ввода/вывода фамилии.16ComboBoxcomboBoxSexСписок выбора названий пола.17DateTimePickerdateTimePickerBornПоле ввода/вывода даты рождения.18NumericUpDownnumericEnterYearЧисловое поле ввода/вывода года поступления.19NumericUpDownnumericCurrentYearЧисловое поле ввода/вывода номер кусра.20ComboBoxcomboBoxFacultetСписок выбора названия факультета.21ComboBoxcomboBoxGroupСписок выбора названия группы.22PictureBoxpictureBoxPhotoFaceГрафическое поле для отображения выбранной фотографии студента.23MaskedTextBoxmaskedTextBoxIdNumberПоле ввода/вывода имени24OpenFileDialogopenFileDialogStudentДиалоговое окно выбора файла для открытия.25SaveFileDialogsaveFileDialogStudentДиалоговое окно выбора файла для сохранения.26OpenFileDialogopenFilePhotoFaceДиалоговое окно выбора файла для выбора графического файла.27FolderBrowserDialogfolderBrowserExportДиалоговое окно выбора каталога для экспорта данных в HTML.28SaveFileDialogsaveFileDialogExportДиалоговое окно выбора файла для выполнения экспорта в XML или TXT.Информация о студенте в основной части программы хранится в поле, объявленном в классе Form1. Это поле имеет тип данных student, и является объектом данного класса. Кроме того, в классе Form1 используется поле для хранения информации о том файле, в котором находится информация о студенте, отображаемом в окне программы в данный момент времени. Объявления указанных полей показаны на листинге 5.Листинг 5 – Код объявления полей// информация о студентеpublic student CurrentStudent = null;public string CurrentFile = string.Empty;Для реализации основной функциональности программы в классе её окна определены методы событий, возникающих при выполнении действий пользователя. Данные действия имеют смысл, привязанный к тому или иному элементу управления и вызывают на исполнение методы, которые решают целесообразную задачу. Список методов и решаемых ими задач показан в таблице 12.Таблица 12 – Методы класса «Form1»№Прототип методаНазначение метода1public Form1()Конструктор класса (выполняет действия при запуске программы перед отображением главного окна программы).

Список литературы

1. Гуннерсон, Э. Введение в C#. Библиотека программиста. / Э. Гун-нерсон –СПб.: Питер, 2001. – 304 с.
2. Троэлсен, Эндрю: Язык программирования С#5.0 и платформа .NET 4.5 / Эндрю Троэлсен –М.: Издательский дом Вильямс, 2013. –1312 с.: ил.
3. Рихтер, Д. CLR via C#. Программирование на платформе Microsoft .NET Framework 4.5 на языке C# / Д. Рихтер – СПб: Питер, 2015. – 896 с.
4. Хейлсберг, А. Язык программирования C#. Классика Computers Science. / А. Хейлсберг, М. Торгерсен, С. Вилтамут –СПб.: Питер, 2011. – 784 с.
5. Шилдт, Г. C#: учебный курс. / Г. Шилдт – СПб.: Питер, 2002. - 512 с.
Очень похожие работы
Найти ещё больше
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00545
© Рефератбанк, 2002 - 2024