Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования

advertisement
Федеральное государственное образовательное бюджетное
учреждение высшего профессионального образования
«ФИНАНСОВЫЙ УНИВЕРСИТЕТ
ПРИ ПРАВИТЕЛЬСТВЕ РОССИЙСКОЙ ФЕДЕРАЦИИ»
Кафедра
«Информатика и программирование»
Курсовая работа по дисциплине
«Информатика и программирование»
Пояснительная записка
Тема работы: Авиатранспортные компании
Выполнил: студент группы ПИ 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
Download