Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «ФИНАНСОВЫЙ УНИВЕРСИТЕТ ПРИ ПРАВИТЕЛЬСТВЕ РОССИЙСКОЙ ФЕДЕРАЦИИ» Кафедра «Информатика и программирование» Курсовая работа по дисциплине «Информатика и программирование» Пояснительная записка Тема работы: Авиатранспортные компании Выполнил: студент группы ПИ 1-… Иванов Иван Иванович Контактный телефон: +7(916)111 11 11 Руководитель: к.т.н. доцент Волков Андрей Геннадьевич МОСКВА 201… Содержание Введение ................................................................................................................... 3 1. Разработка информационной модели предметной области Анализ предметной области ................................................................... 4 Варианты использования ........................................................................ 4 Диаграмма классов .................................................................................. 5 2. Проектирование приложения Проектирование логической структуры программы ........................... 6 Интерфейс пользователя ......................................................................... 6 Описание членов классов ...................................................................... 13 3. Программная реализация проекта Физическая структура проекта ............................................................. 17 Использование библиотечных классов и технологий .NET .............. 18 Контрольный пример............................................................................. 19 Заключение ....................................................................................................... 22 Использованная литература и источники ресурсов ..................................... 23 2 Введение Цель работы заключается в создании информационно-справочной системы, обладающей простым и максимально удобным пользовательским интерфейсом. Ни для кого не секрет, что основополагающая высокой производительности пользователя при работе с данным видом систем является интуитивно понятный интерфейс. Актуальность работы определит род деятельности пользователя, в котором будет использоваться приложение. С точки зрения учета за поставщиками товаров, программа очень важна, так как она организует широкий спектр возможностей использования. Поэтому тема работы «Разработка информационно-справочной системы “Поставщики товаров”» является актуальной. Пользователю предлагается множество функций, например, отображение данных из базы данных в форматах «.mdb» или «.accdb», их изменение, добавление новых записей, просмотр диаграмм. Пояснительная записка состоит из 3 глав, введения и заключения: В первой главе проводится анализ предметной области, описываются варианты использования приложения, а также приводится диаграмма классов. Во второй главе показан интерфейс пользователя и приведена логическая структура программы. В третьей главе приведён перечень файлов и папок, в которых размещены ресурсы проекта и исходный код программы. Далее показан контрольный пример работы программы. В заключении приведены выводы по работе. 3 1. Разработка информационной модели предметной области Анализ предметной области Автоматизации подлежит учет авиакомпаний. Варианты использования Программа выполняет отображение данных из базы данных, их редактирование, удаление, а также вывод данных в формате “.mdb” или “.accdb”. Также может быть выполнен поиск по множеству критериев и отображение данных в виде диаграммы. 4 Диаграмма классов 5 2. Проектирование приложения Проектирование логической структуры программы Главная форма – AirCompanies, из которой могут вызываться: editAvia – форма для изменения выбранной авиакомпании Диаграмма – форма, содержащая в себе диаграмму Выбор_таблицы – форма, позволяющая выбрать одну таблицу из БД AboutForm – форма, содержащая сведения о программе Процесс mailto - для отправки сообщений разработчику Интерфейс пользователя Стартовое окно программы (при наличии файла aviacomp.mdb в папке с исполняемым файлом) 6 Редактирование выбранной авиакомпании (по нажатию кнопки «Изменить» в соответствующей строке) Удаление выбранной авиакомпании (по нажатию кнопки «Удалить» в соответствующей строке) 7 Добавление новой авиакомпании (перейдя на вкладку «Добавить») Поиск авиакомпаний по названию 8 Поиск авиакомпаний по стране Поиск авиакомпаний по определенной дате 9 Поиск авиакомпаний по точному значению самолётов (в данном случае авиакомпаний с одним самолётом нет) Поиск авиакомпаний по диапазону значений самолётов 10 Поиск авиакомпаний по диапазону значений оборота (выручки) за предыдущий год Пример двух диаграмм, построенных по разным данным. Возможен просмотр как в режиме 2D, так и в режиме 3D, а также изменение типа диаграммы и ее цветовой схемы. 11 Пример изменения цветовой схемы и шрифта программы. Имеет место определение темных цветов и изменение в связи с этим цвета надписей. Показ справки и работа процесса mailto, тема и адресат вставляются автоматически. 12 Описание членов классов public partial class AirCompanies : Form { //Свойства для доступа к закрытым полям класса public OleDbConnection Database public string Vibor public string AirID0 public string Название1Св public string Страна2Св public string Дата_Основания3Св public string Количество_самолётов4Св public string Оборот_2013_5Св public int DgvRowIndex //Конструктор класса public AirCompanies() //Подключение к БД и заполнение DGV, параметр queryString – строка запроса в БД public void DataGridViewFilling(string queryString) //Подгон ширины и высоты формы под число записей в DGV при стандартном начертании public void FormWH() //Загрузчик public void AirCompanies_Load(object sender, EventArgs e) //Выбор файла с БД public void openFileDialogDB () //Выполняется после выбора файла private void afterFileSelect() //Открыть меню выбора файла private void открытьToolStripMenuItem_Click(object sender, EventArgs e) //Поиск по названию private void button1_Click(object sender, EventArgs e) //Поиск по стране private void button3_Click(object sender, EventArgs e) //Поиск по дате private void button5_Click(object sender, EventArgs e) //Поиск по количеству самолётов private void button7_Click(object sender, EventArgs e) //Поиск по обороту (выручке) за предыдущий год private void button9_Click(object sender, EventArgs e) //Обновить DGV private void button2_Click(object sender, EventArgs e) private void button4_Click(object sender, EventArgs e) private void button8_Click(object sender, EventArgs e) private void button10_Click(object sender, EventArgs e) //Проверяет нажатие на кнопку «Изменить» или «Удалить» private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) //Действия при активации TextBox private void textBoxOnMainForm_Enter(object sender, EventArgs e) 13 //Действия при переключении RadioButton private void radioButton1_CheckedChanged(object private void radioButton2_CheckedChanged(object private void radioButton3_CheckedChanged(object private void radioButton4_CheckedChanged(object sender, sender, sender, sender, EventArgs EventArgs EventArgs EventArgs e) e) e) e) //Действия при переключении вкладок private void tabControl1_SelectedIndexChanged(object sender, EventArgs e) //Добавление новой авиакомпании private void button11_Click(object sender, EventArgs e) //Действия при изменении значений TextBox и DateTimePicker private void textBox9_TextChanged(object sender, EventArgs e) private void textBox10_TextChanged(object sender, EventArgs e) private void dateTimePicker2_ValueChanged(object sender, EventArgs e) private void textBox11_TextChanged(object sender, EventArgs e) private void textBox12_TextChanged(object sender, EventArgs e) //Открытие формы с диаграммой private void button12_Click(object sender, EventArgs e) //Изменение цветовой схемы private void изменитьToolStripMenuItem_Click(object sender, EventArgs e) //Поиск всех контролов нужного типа на форме //ctrl – тип искомого контрола //controls – массив контролов //type – тип дочернего контрола (для рекурсии) void GetAllTypedControls(Control ctrl, List<Control> controls, Type type) //Возврат стандартной цветовой схемы private void стандартнаяToolStripMenuItem_Click(object sender, EventArgs e) //Возврат стандартного шрифта private void стандартныйToolStripMenuItem_Click(object sender, EventArgs e) //Изменение шрифта private void изменитьToolStripMenuItem1_Click(object sender, EventArgs e) //Кнопка «Выход» private void выходToolStripMenuItem_Click(object sender, EventArgs e) //Кнопка «О программе» private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e) //Кнопка «Отправить отзыв» private void отзывToolStripMenuItem_Click(object sender, EventArgs e) //Кнопка «Сообщить об ошибке» private void сообщитьОбОшибкеToolStripMenuItem_Click(object sender, EventArgs e) //Запуск процесса mailto для отправки сообщений разработчику //subject – тема письма private void mailing (string subject) } 14 public partial class editAvia : Form { //Конструктор класса //name – название компании //country - страна //dateDT – дата основания компании //nPlanes – количество самолётов //oborot – оборот компании за прошлый год //airID – индекс компании public editAvia(string name, string country, DateTime dateDT, string nPlanes, string oborot, int airID) //Загрузчик private void AddNew_Load(object sender, EventArgs e) //Сохранение изменённых данных private void button1_Click(object sender, EventArgs e) //Работа с TextBox и DateTimePicker private void textBox3_Enter(object sender, EventArgs e) private void textBox4_Enter(object sender, EventArgs e) private void textBox1_TextChanged(object sender, EventArgs e) private void textBox2_TextChanged(object sender, EventArgs e) private void dateTimePicker1_ValueChanged(object sender, EventArgs e) private void textBox3_TextChanged(object sender, EventArgs e) private void textBox4_TextChanged(object sender, EventArgs e) } public partial class Диаграмма : Form { //Конструктор класса public Диаграмма() //Загрузчик private void Диаграмма_Load(object sender, EventArgs e) //Сортировка DGV после закрытия формы private void Диаграмма_FormClosed(object sender, FormClosedEventArgs e) //Изменения цвета и типа диаграммы private void radioButton1_CheckedChanged(object sender, EventArgs e) private void radioButton2_CheckedChanged(object sender, EventArgs e) private void radioButton3_CheckedChanged(object sender, EventArgs e) private void radioButton3_CheckedChanged(object sender, EventArgs e) private void radioButton3_CheckedChanged(object sender, EventArgs e) private void radioButton4_CheckedChanged(object sender, EventArgs e) private void radioButton5_CheckedChanged(object sender, EventArgs e) private void radioButton6_CheckedChanged(object sender, EventArgs e) private void radioButton7_CheckedChanged(object sender, EventArgs e) private void radioButton8_CheckedChanged(object sender, EventArgs e) private void radioButton9_CheckedChanged(object sender, EventArgs e) private void radioButton10_CheckedChanged(object sender, EventArgs e) private void radioButton11_CheckedChanged(object sender, EventArgs e) private void radioButton12_CheckedChanged(object sender, EventArgs e) private void radioButton13_CheckedChanged(object sender, EventArgs e) private void radioButton14_CheckedChanged(object sender, EventArgs e) private void radioButton15_CheckedChanged(object sender, EventArgs e) private void radioButton16_CheckedChanged(object sender, EventArgs e) private void radioButton17_CheckedChanged(object sender, EventArgs e) private void radioButton18_CheckedChanged(object sender, EventArgs e) private void radioButton19_CheckedChanged(object sender, EventArgs e) private void radioButton20_CheckedChanged(object sender, EventArgs e) private void radioButton21_CheckedChanged(object sender, EventArgs e) private void radioButton22_CheckedChanged(object sender, EventArgs e) } 15 public partial class Выбор_таблицы : Form { //Конструктор класса public Выбор_таблицы() //Загрузчик private void Выбор_таблицы_Load(object sender, EventArgs e) //Кнопка «Выбрать» private void button1_Click(object sender, EventArgs e) //Запрет на закрытие этой формы через диспетчер задач private void Выбор_таблицы_FormClosing(object sender, FormClosingEventArgs e) } public partial class AboutForm : Form { //Конструктор класса public AboutForm() //Загрузчик private void AboutForm_Load(object sender, EventArgs e) } 16 3. Программная реализация проекта Физическая структура проекта. Подчёркивание – папка, отсутствие подчёркивания – файл \ (Root) o \Курсовая Авиатранспортные компании.sln o \Курсовая Авиатранспортные компании.v12.suo o \Курсовая Авиатранспортные компании \AboutForm.cs (+ Designer и ресурсы) \Авиатранспортные компании.cs (+ Designer и ресурсы) \Выбор таблицы.cs (+ Designer и ресурсы) \Диаграмма.cs (+ Designer и ресурсы) \Редактировать.cs (+ Designer и ресурсы) \Program.cs (+ Designer и ресурсы) \Курсовая Авиатранспортные компании.csproj.user -настройки \App.config – (XML конфигурация) \Resources (содержит 10 изображений) \Properties (содержит настройки, дизайнер и сведения о сборке) \obj (содержит временные файлы) \bin \Debug \Release Исполняемый файл Курсовая Авиатранспортные компании.exe и файлы с базами данных находятся по пути: \Курсовая Авиатранспортные компании\Курсовая Авиатранспортные компании\bin\Debug 17 Использование библиотечных классов и технологий .NET using System; Содержит фундаментальные и базовые классы, которые определяют распространенные типы значений и ссылочные типы данных, события и обработчики событий, интерфейсы, атрибуты и исключения обработки. using System.Collections; Содержит интерфейсы и классы, которые определяют различные коллекции объектов, такие как списки, очереди, двоичные массивы, хэш-таблицы и словари. using System.Collections.Generic; Содержит интерфейсы и классы, определяющие универсальные коллекции, которые позволяют пользователям создавать строго типизированные коллекции. using System.Data; Обеспечивает доступ к классам, которые представляют архитектуру ADO.NET using System.Data.OleDb; Является поставщиком данных .NET Framework для OLE DB, который представляет собой набор классов, используемых для доступа к источникам данных OLE DB в управляемом пространстве. using System.Drawing; Обеспечивает доступ к функциональным возможностям графического интерфейса GDI+ using System.Windows.Forms; Содержит классы для создания приложения Windows, которые принимают все преимущества функций пользовательского доступного в операционной системе Microsoft Windows. using System.IO; Содержит типы, позволяющие осуществлять чтение и запись в файлы и потоки данных, а также типы для базовой поддержки файлов и папок. using System.Diagnostics; Предоставляет класс, представляющий аспект диагностики SignalR. using System.ComponentModel; Включает базовые классы и интерфейсы, предназначенные для реализации преобразователей атрибутов и типов, для привязки к источникам данных и для лицензирования компонентов. 18 Контрольный пример В параграфе будет рассмотрен пример обработки исключительных ситуаций. На вкладке «Добавить» необходимо заполнить все поля. Присутствует система помощи пользователю определить, верно ли он ввёл данные в виде изменяющихся картинок (красного креста и зелёной галочки): На данном примере видно, что система подсказок реагирует на изменения в элементах TextBox и DateTimePicker. Она не даёт пользователю оставить пустое значение в полях «Название» и «Страна», а также проверяет текущее значение в полях «Количество самолётов» и «Оборот за предыдущий год» на соответствие типу Int32. В нашем примере в последнем TextBox имеется недопустимый символ «$», поэтому напротив появляется красный крест. Если пользователь всё же захочет отправить такой вариант заполнения, то ему будет показано сообщение о невозможности внесения таких данных в базу: 19 Имеюстя также сообщения на недопустимые значения в других полях: Такая же система подсказок есть и при изменении уже имеющейся записи: 20 Ещё один пример обработки ошибок (открытие базы данных с неверно типизированными столбцами или их отсутствием): 21 Заключение Поставленная в работе цель достигнута – программа обеспечивает комфортную работу с большим количеством информации, позволяет быстро и легко найти необходимую информацию об авиакомпаниях как в табличном варианте, так и в наглядном, представленном в виде диаграмм. Приложение обеспечивает удобное администрирование базы данных, позволяя изменять и удалять существующие записи, а также добавлять новые. Интерфейс прост, понятен, и лаконичен. Из этого следует что достигнут высокий эффект от автоматизации предметной области. Данные заносятся, редактируются и удаляются без каких-либо помех. Программа имеет большой потенциал к внедрению интернеттехнологий. Например, автоматическое обновление программы через интернет. Пользователю бы не пришлось тратить лишнее время на поиск последней версии самостоятельно – программа сама выдавала бы уведомление, что доступна новая версия. В рамках расширения спецификации программы можно добавить новые данные по авиакомпаниям мира, например, ближайшие рейсы и покупку/бронирование билетов на них, а также ввести систему пользовательских отзывов и рейтингов о компаниях. 22 Использованная литература и источники ресурсов 1. 2. 3. 4. 5. 6. 7. 8. Герберт Шилдт . C# 4.0. Полное руководство. М.: Вильямс, 2011 http://msdn.microsoft.com/ru-RU/ http://cyberforum.ru/csharp-net/ http://vr-online.ru/ http://pyatnitsev.ru/ http://findicons.com/ http://www.microsoft.com/en-us/download/details.aspx?id=35825 http://mathdep.ru/ 23