Загрузил semion.moshkov

Пример курсовой работы (1)

реклама
Содержание
Введение
3
1. Аналитическая часть
5
1.1 Описание предметной области
5
1.2 Техническое задание
11
2 Проектная часть
18
2.1 Информационное обеспечение
18
PISHEM24.RU
8 800 551-60-95
2.2 Инструменты разработки
29
2.3 Описание интерфейса приложения
31
2.4 Руководство пользователя
41
Заключение
45
Список литературы
47
Приложение А
51
Приложение Б
55
Введение
Проблема обработки потока пассажиров на любом виде транспорта
всегда имела существенную роль. Расчет мест, маршрутов, огромное число
пассажиров, огромное число билетов, которое нужно учитывать, обязательно
где-то хранить и своевременно обновлять. Все это требует большого
количества бумаг, времени и денег.
Это особенно касается автомобильного вида транспорта, то тут
проблема разворачивается более остро, так как основным типом транспорта
дальнего следования в Мире и в России соответственно остаются автобусы.
Для учета времени движения автобусов, которое изменяется, к сожалению
,каждую неделю, требуется немало времени и большой, просто огромного,
объем носителя информации.
PISHEM24.RU
8 800 551-60-95
Значит, таким образом, встает остро вопрос о проектировании новой
системы, которая улучшит и упростить работу кассиров, поможет допускать
намного меньше ошибок при выдачи билетов, и вообще поможет избежать
многих неточностей.
При таких сложных условиях необходимо четка
просчитать слаженную, согласованную работу касс автовокзалов на высоком
уровне: автоматизировать потоки, связанные с денежной стороной вопроса
(продажа билетов), использовать простые, качественные, удобные для людей
и кассиров формы и виды представления информации. Для этого для
сотрудников касс разрабатываются специальные системы управления – базы
данных, в которых хранится вся информация о автотранспорте, водителях,
маршрутах, билетах.
Важнейшей задачей проектирования ИС часто являются не столько
вычисления, сколько процессы сбора, обмена, хранения, организации и
распространения информации. Применение компьютерных технологий для
построения типизированных систем переработки данных показывает, что
самым эффективным и качественным инструментом здесь являются не
стандартные
алгоритмические
языки
2
высокого
уровня,
а
специализированные языки для создания систем управления данными.
Цель курсовой работы - приобретение практических навыков анализа
и моделирования предметной области, разработки концептуальной модели
ИС "Функционирование автовокзала". Использованием IDEF0 диаграммы,
отражающие функциональность, логическую структуру и динамические
характеристики проектируемой ИС.
Для достижения цели необходимо решить ряд задач:
1. сформулировать задачу проекта;
2. исследовать предметную область;
3. произвести бизнес-моделирование предметной области;
4. спроектировать статические модели предметной области;
5. спроектировать динамические модели
PISHEM24.RU
8 800 551-60-95
3. спроектировать логическую модель данных;
4. спроектировать физическую модель данных;
5. реализовать пользовательское приложение.
Для разработки и реализации системы управления базой данных
применяются приложения Windows, такие как: StartUML, BPwin, Rational
Rose
2003
среда
Microsoft
SQL
SERVER
и
объектном-
ориентированного программирования Visio Studio 2012 Windows Form.
3
1. Аналитическая часть
1.1 Описание предметной области
Анализ предметной области, является одним из важнейших этапов
проекта, разработки автоматизированной системы, целью которого является
выявление, классификация и формализация информации обо всех аспектах
предметной области, влияющих на конечный результат.
Проведем
предварительный
анализ
предметной
области
проектирования разрабатываемой системы.
Акционерное
общество
«Автовокзал»
являясь
крупнейшим
предприятием в сфере автоперевозок в России, ОАО «Автовокзал» имеет в
своём составе более 100 автовокзалов и автостанций, расположенных по всей
PISHEM24.RU
8 800 551-60-95
территории России . Об объёмах работы предприятия можно судить и по
состоянию маршрутной сети.
Каждый день от перронов автовокзалов, принадлежащих объединению,
отправляются
более
18000
рейсов
по
3740
маршрутам.
Основным
направлением деятельности компании является перевозка пассажиров.
Пассажирские перевозки осуществляются как в города России, так и по
территории других стран.
С автовокзалов предприятия прямым сообщением отправляются
автобусы, следующие по маршрутам в города Германии, Болгарии, Украины,
страны Закавказья и республики Северного Кавказа, в населённые пункты
Краснодарского и Ставропольского краёв, Воронежской, Волгоградской и
Астраханской областей.
Организационная структура компании изображена в соответствии с
рисунком 1
4
PISHEM24.RU
8 800 551-60-95
Рисунок 1 - Организационная структура компании
Как видно из организационной структуры компании, представленной
на рисунке 1, действующими лицами деятельности автовокзала являются
следующие субъекты:

администратор;

начальник сектора массового обслуживания;

кассир справочной службы;

кассир продажи билетов.
Таблицу функций, субъектов деятельности, продемонстрируем при
помощи таблицы1.
5
Таблица 1 - Таблица функций программного приложения.
Кассир
1. Продажа билета – получает информацию,
выдает билеты, принимает возврат билета,
выдает необходимую информацию
2. Регистрирует в БД продажу билета и возврат
билета
3. Отчет в конце рабочего дня
Администрато
1. Организация работ кассира
р
2. Контроль времени работы кассы
3. Проверяем отчёт
4. Создает справочники
PISHEM24.RU
8 800 551-60-95
Сотрудник и
Дает справки о отправлении и приходе автобусов
справочная
служба
Начальник
1. Руководство деятельностью отдела
сектора
2. Организация кассовой работы в филиале и его
точках продаж
кассового
обслуживания
3. Организация работы с денежными знаками с
радиоактивным загрязнением
Далее представим предметную область в виде диаграммы IDEF0
автоматизируемого процесса.
Рассмотрим, как протекает процесс деятельности автовокзала в
настоящее время.
Моделирование деятельности автовокзала представлено в методологии
IDEF0 диаграмм.
Основной деятельность автовокзала является оказание услуг по
перевозки пассажиров.
6
На
рисунку
2
представлено
функциональное
моделирование
деятельности автовокзала.
PISHEM24.RU
8 800 551-60-95
Рисунок 2 - Контекстная диаграмма процесса функционирования
автовокзала. Модель AS-IS
Главный функциональный блок декомпозируется для более подробного
рассмотрения
деятельности
автовокзала.
На
рисунке
3
представим
декомпозицию контекстной диаграммы представленной на рисунке 2.
Рисунок 3 - Декомпозиция первого рода основного процесса "Деятельность
автовокзала"
7
Как видно на данной диаграмме основной процесс разбивается на три
под процесса:

создание справочников;

учет продаж билетов;

создание отчетов.
Далее
приведем
декомпозицию
третьего
уровня
процессов
представленных на диаграмме на рисунке 3, смотрите рисунки 4 и 5.
PISHEM24.RU
8 800 551-60-95
Рисунок 4 - Декомпозиция второго рода основного процесса "Создание
справочников"
8
Рисунок 5 - Декомпозиция второго рода основного процесса "Создание
PISHEM24.RU
8 800 551-60-95
отчетов"
Недостатком существующей организации процесса является то, что
обеспечивается только сбор, первичная обработка и сохранение информации
о автотранспорте, водителях, маршрутах и билетах.
При этом учет загруженности водителей, расчет целесообразности и
расходов, а также
учет выручки, штрафов, технических характеристик
транспорта не ведется.
Таким образом, процесс обработки маршрута и выдачи на него билетов
является длительным и существует человеческий фактор, который неизбежно
приводит к ошибкам в работе.
Введение информационной системы значительно сократит время
обработки маршрута и выдачи билетов . С появлением информационной
системы
расчет
выручки
производится
автоматически,
так
же
в
информационной системе отображается наличие свободных и занятых мест
посадки.
Также информационная система позволяет осуществлять оперативный
контроль за продвижением транспорта, за нарушения трудовой дисциплины
есть возможность наложить штраф на водителя.
9
Таким образом, информационная система создается с целью:

Обеспечения сбора, первичной обработки и сохранения в системе
информации об транспорте, водителях, маршрутах и билетах.

Автоматизированного
проведения
расчетов
выручки,
цены
билета и штрафов.

Создания системы формирования отчетов и статистики.

Повышения
качества
(полноты,
точности,
достоверности,
своевременности, согласованности) информации.
Создание и внедрение информационной системы позволит:
1.
Ускорить процесс обработки входящих заявок на билеты.
2.
Снизить трудоемкость операций.
3.
Сократить процент ошибок, вызванных человеческим фактором.
4.
Снизить вероятность потери данных или путаницы в них, за счет
PISHEM24.RU
8 800 551-60-95
структурирования данных в информационной системе.
1.2 Техническое задание
В рамках постановки задачи данной курсовой работы представим
развернутое техническое задание на программный продукт:
Наименование программного изделия
Полное наименование программной разработки: ИС «Автовокзал», в
дальнейшем именуемая как «Программа». Краткое название программы – ИС
«Автовокзал».
Применения
Программа ИС«Автовокзал» предназначена для обработки и хранения
данных необходимых для полного функционирования автовокзала. Может
устанавливаться на всех ПК каждого автовокзала РФ .
10
Документ, на основании которого ведётся разработка
Работа ведётся на основании задания на курсовое проектирование
Назначение
Целью
текущей
курсовой
работы
является
проектирование
и
разработка информационной системы для автовокзала. Внедрение данной
информационный
системы
значительно
облегчает,
улучшает
и
совершенствует ведение данных об водителях, транспортах, маршрутах и
проданных билетах.
В рамках курсовой работы необходимо создать программный продукт,
PISHEM24.RU
8 800 551-60-95
который будет реализовывать функционал современного автовокзала.
Данное приложение очень актуально, так как позволяет систематизировать и
собрать в себе всю информацию по данной теме, и далее, что очень важно,
выдать эту информацию пользователю в нужном формате. Программный
продукт новый, не имеет аналогов, очень эффективный, может применятся
немедленно, кроме этого вполне подвержен модернизации, что увеличивает
его привлекательность. Приложение простое и имеет интуитивно понятный
интерфейс.
Состав выполняемых функций
Программа
должна
обеспечивать
возможность
выполнения
перечисленных ниже свойств:
 Гибкость - настраивается на любую структуру, для широкого круга
деятельности.
 Безопасность
-
ограничение
общего
доступа
к
заранее
определенным ресурсам БДД.
 Целостность и доступность - маршруты в базе данных автовокзала
должны быть представлены в общепринятых в организации форматах
11
защищенных от изменений.
 Использование форм и шаблонов - позволит использовать типовые
документы с возможностью изменений определённых полей.
 Возможность поиска - фильтрация по БДД.
 Возможность подключения независимых модулей
 Импорта данных из внешних источников данных в текущую БДД.
Построенная модель ИС для компании технической поддержки должна
отражать существенные стороны деятельности компании. ИС должна
содержать компьютерное приложение, реализующее следующие процессы:

Добавление, удаление и обновление информации об маршрутах;

Добавление, удаление и обновление информации об пунктах
PISHEM24.RU
8 800 551-60-95
маршрута;

Добавление, удаление и обновление информации об проданных
билетах;

Добавление, удаление и обновление информации об водителях;

Добавление, удаление и обновление информации об транспортах
автовокзала;

Добавление, удаление и обновление информации об выручке
маршрута и штрафах водителя;

Поиск билетов;

Поиск водителей;

Поиск транспорта;

Поиск маршрута по водителю;

Поиск маршрута по транспорту;

Поиск маршрута по дате;

Отчет маршрутов по водителю;

Отчет маршрута по транспорту;

Отчет маршрута по выручке;
12

Отчеты маршрутов по датам;

Авторизация;

Вывод отчета в Exel документ.
Ожидаемый результат:
 Спроектированная и реализованная база данных;
 Программа реализующая основной функционал компании.
Организация входных и выходных данных
В процессе работы программы входной информацией для программы
должны являться: информация об водителях, транспортах, маршрутах и
проданных билетах .
В процессе работы программы выходной информацией для программы
PISHEM24.RU
8 800 551-60-95
должны являться: информация о билетах и маршрутах выданная в
подготовленном виде.
Временные характеристики, и размер занимаемой памяти
Время реакции программы на нажатие любой из клавиш и
манипуляции мышью не должно превышать 0,25 с, в случае соответствия
системных ресурсов требованию к составу и параметрам технических
средств. Реакция на команды меню, кроме Открытия, Сохранения, Поиска
не должна превышать 2 с. Реакция на команды Открытия, Сохранения,
Поиска зависит от размера файла данных и настроек поиска.
Объем занимаемой оперативной памяти не должен превышать 8 Мбайт.
Требования к надежному функционированию
Программа должна нормально функционировать при бесперебойной
работе ЭВМ. При возникновении сбоя в работе аппаратуры, восстановление
нормальной работы программы должно производиться после: перезагрузки
операционной системы; запуска исполняемого файла программы; повторного
13
выполнения действий, потерянных до последнего сохранения информации в
файл на магнитном диске.
Уровень надежности программы должен соответствовать технологии
программирования, предусматривающей: инспекцию исходных текстов
программы; автономное тестирование модулей (методов) программы;
тестирование сопряжении модулей (методов) программы; комплексное
тестирование программы
Контроль входной и выходной информации
Программа должна контролировать выбор пользователя пункта меню
"Выход" и предупреждать его о потере "не сохраненных изменений".
PISHEM24.RU
8 800 551-60-95
Время восстановления после отказа
Время восстановления после отказа должно состоять из: времени
перезапуска
пользователем
операционной
системы;
времени
запуска
пользователем исполняемого файла программы; времени повторного ввода
потерянных данных.
Условия эксплуатации
Программа должна храниться в виде двух маркированных дискетных
копий - эталонной и рабочей. Периодическая перезапись информации должна
осуществляться согласно нанесенной маркировке. Условия хранения дискет
должны соответствовать нанесенной на них маркировке.
Требования к составу и параметрам технических средств
Рекомендуемая конфигурация ПК:

Операционная система: Windows 7/8/8.1/10;

Процессор: Intel Core i3/ AMD FX 4330 или мощнее;

Видеокарта: AMD Radeon 1Gb/ nVidea GeForse 640 1Gb или
14
мощнее;

Оперативная память: 1Gb DDR3 RAM и более;

Жесткий диск: 100Mb свободного места;

Разрешение экрана: 1920X1080, 32 бит;

Звуковая карта: совместимая с DirectX 9.0

Другие устройства: клавиатура, мышь;
Необходимые программные компоненты:
Библиотека Microsoft. NET Framework 4.5
Требования к языкам программирования
Разработка программы должна вестись на одном из следующих языков:
PISHEM24.RU
8 800 551-60-95

Microsoft Visual Basic v5.0 и выше.

Microsoft Visual C v5.0 и выше.

Borland Delphi v4.0 ив выше.

Microsoft Visio Studio 2012 и выше
Выбор других языков нецелесообразен.
Требования к программным средствам, используемым программой
Для работы программы необходима операционная система WINDOWS
7 и более поздняя, драйвера мыши и принтера.
Требования к программной документации
Состав программной документации должен включать следующие
документы: Инструкцию по эксплуатации программного средства
Стадии и этапы разработки
Разработка программы должна выполняться по следующим этапам:
1) разработка, согласование и утверждение технического проекта
программы с пояснительной запиской - 5 недель;
2)
разработка
рабочего
проекта
15
программы
с
комплексным
тестированием - 6 недель;
3) приемка-сдача с исправлением обнаруженных недостатков в
программе и программной документации - 2 недели.
4)внедрение.
Виды испытаний
Проверка документации программы осуществляется самим заказчиком
с привлечением сторонних экспертов, способных засвидетельствовать факт
соответствия созданного программного продукта всем пунктам технической
документации, включая техническое задание и технический проект.
Испытания и тестирование программы должны проводиться в процессе
создания программы самим разработчиком:
1. C использованием контрольных тестов, позволяющих добиться
PISHEM24.RU
8 800 551-60-95
проверки правильности работоспособности и взаимной совместимости
максимального числа функций и операторов программы или модуля при
минимальных затратах временных и финансовых ресурсов.
2. Путем
пошагового
исполнения
программы
или
модуля
(и
непрерывного контроля значений переменных) в соответствии с набором
тестовых примеров и сравнения полученных в процессе тестирования
значений с контрольными значениями тестовых примеров.
3. С привлечением сторонних неофициальных бета-тестеров, которые в
процессе
тестирования
программного
продукта
должны
сообщать
разработчику все найденные ошибки и неточности в работе программы.
и проверка документации должна проводиться.
Испытания
и
тестирование
программы
должны
проводиться
после
завершения создания программы заказчиком:
1. С использованием проверочных тестов, составляемых заказчиком
заблаговременно.
2. В процессе начального этапа внедрения программы, путем
тестирования программы в организации заказчика в рабочих условиях на
16
протяжении срока в 1 неделю.
3. В организации заказчика с привлечением сторонних экспертов.
2 Проектная часть
2.1 Информационное обеспечение
Проанализируем задачи работы. При более подробном рассмотрении
поставленных задач, можно весьма ответственно утверждать, что такую
задачу не решить без использования хранилища данных. Любая программа,
написанная на языке программирования высокого уровня, а у нас именно так,
язык программирования С#, для решения такого рода задач, нужно где-то
хранить данные, информацию, в нашем случае, информацию про маршруты
PISHEM24.RU
8 800 551-60-95
и проданные на них билеты. Кроме этого ее нужно обрабатывать. Решать
такие задачи целесообразно и удобно используя БД. Для качественной
работы в программе предусмотрено подключение к такой базе. Имеется в
виду, что нужно создать базу данных. Под базой данных будем понимать
такую базу данных, которая создана средствами других СУБД (например
ACCESS2007 или БД SQL на сервере), а не возможностями самого языка
программирования(например
хранить
данные
в
массивах).
Язык
программирования используется только для связи с СУБД и обработки
данных.
Кроме этого БД более эффективно поможет осуществить реализацию
функционала программного комплекса.
Цели создания внешней БД:

Структурированность необходимых данных;

Наличие взаимосвязи данных (Связи в БД);

Представление внешних данных в виде моделей данных для
дальнейшего целенаправленного их использования;
17
База данных позволит уже рассмотреть первичный вариант
проекта,
что
позволит
рассмотреть
характеристик
будущего
проекта,
и
оценить
например,
несколько
это
может
важных
быть,
производительность системы.
Во время создания внешней БД создаются один за одним две модели
БД. Имеется в виду логическая и физическая модель БД. ER - модель базы
данных представим на рисунке 5.
PISHEM24.RU
8 800 551-60-95
18
Конечный пункт
Начальный пункт
Номер
Название
Билет
Места продажи
Стоимость
Пункты
М:1
Время пути
Выручка
Время
отправления
1:М
PISHEM24.RU
8 800 551-60-95
Начальный пункт
Категория
Год рождения
Маршрут
Конечный пункт
1:М
Водитель
Дата
Штраф
Класс
Марка
ФИО
М:1
Стаж
Количество мест
Год выпуска
Транспорт
Модел
Год ремонта
Пробег
Рисунок 5 - ER модель БД
Логический уровень - это абстрактный вид данных. В этой модели
данные представляются так, как это понимает и видит человек, со своими
понятиями структурирования и названий данных, как в реальном мире. Такая
19
модель данных делит поступившие данные на сущности.
Логическую модель БД представим на рисунке 6.
? ????
Id_bil: int
?????????
Id_avto: int
Marka: varchar(20)
Model: varchar(20)
Kol: int
God_v: int
God_r: int
Probeg: int
? ???????
Id_vad: int
? ??? ???
Id_mar: int
Id_mar: int
Nac: varchar(20)
Con: varchar(20)
N: int
Mesta: varchar(20)
Dengi: varchar(20)
Id_avto: int
Id_vad: int
Nach: varchar(20)
Kon: varchar(20)
Data: datetime
T: varchar(20)
Tr: varchar(20)
Dengi: varchar(20)
Straf: varchar(20)
? ?????
Id_punkt: int
Id_mar: int
Name: varchar(20)
PISHEM24.RU
8 800 551-60-95
LastName: varchar(20)
FirstName: varchar(20)
MiddleName: varchar(20)
Experience: int
Year: int
Category: varchar(20)
Class: varchar(20)
Рисунок 6 - Логическая модель БД
Далее на основании логической модели и при помощи СУБД строится
таблицы физической (реляционной) БД. В нашем случае физическая модель
БД состоит из 5 таблиц: маршрут, транспорт, водитель, билет, пункты
маршрута.
Для проектирования базы данных по заданию "ИС Автовокзал"
использовалось My SQL Serwer . При помощи функционала данной СУБД и
на основании поставленных требований была разработана БД "BD.mdf". В
составе данной БД таблицы маршрут, транспорт, водитель, билет, пункты
маршрута..
Физическую модель БД представим на рисунке 7.
20
? ????
Id_bil: int
?????????
Id_avto: int
Marka: varchar(20)
Model: varchar(20)
Kol: int
God_v: int
God_r: int
Probeg: int
? ??? ???
Id_mar: int
Id_mar: int
Nac: varchar(20)
Con: varchar(20)
N: int
Mesta: varchar(20)
Dengi: varchar(20)
Id_avto: int
Id_vad: int
Nach: varchar(20)
Kon: varchar(20)
Data: datetime
T: varchar(20)
Tr: varchar(20)
Dengi: varchar(20)
Straf: varchar(20)
? ???????
Id_vad: int
? ?????
Id_punkt: int
Id_mar: int
Name: varchar(20)
LastName: varchar(20)
FirstName: varchar(20)
MiddleName: varchar(20)
Experience: int
Year: int
Category: varchar(20)
Class: varchar(20)
PISHEM24.RU
8 800 551-60-95
Рисунок 7 - физическая модель БД
В результате анализа были выделены 5 объектов, которые описывают
данную предметную область. Это:
 сущность “Маршрут”, атрибутами которой являются ID_ маршрута,
ID_ водителя, ID_ транспорта, начало и конец маршрута, дата, время и
время пути маршрута, штраф и выручка маршрута. Данная сущность
включает в себя основные сведения об маршрутах автовокзала. В качестве
ключевого атрибута выбран ID_ маршрута. Данный атрибут является
инверсным входом и он обязателен. В качестве внешнего ключа здесь
выступают регистрационной номер водителя для связи с сущностью
«Водители», регистрационной номер транспорта для связи с сущностью
«Транспорт».

сущность
“Водители”
содержит
следующие
атрибуты:
регистрационной номер водителя, имя фамилия и отчество водителя, стаж,
год рождения, класс и категория водителя. Ключевым атрибутом является
21
ID_ водителя. Данный атрибут является инверсным входом и он обязателен..
 сущность “Пункты маршрута”, атрибутами которой являются
ID_пункта, ID_ маршрута, название пункта. Данная сущность включает в
себя основные сведения о пуктах маршрута. В качестве ключевого атрибута
выбран ID_ пункта. Данный атрибут является инверсным входом и он
обязателен.
 сущность “Билет”, атрибутами которой являются ID_билета, ID_
маршрута, начало и конец движения, места, стоимость, места продажи.
Данная сущность включает в себя основные сведения о билете на проезд. В
качестве ключевого атрибута выбран ID_ билета. Данный атрибут является
инверсным входом и он обязателен.

сущность
“Транспорт”,
атрибутами
которой
являются
ID_
PISHEM24.RU
8 800 551-60-95
транспорта, марка, модель, количество мест, год выпуска, год ремонта,
пробег. Данная сущность включает в себя основные сведения об транспорте
данного автовокзала. В качестве ключевого атрибута выбран ID_ транспорта.
Данный атрибут является инверсным входом и он обязателен.
Между объектами предметной области существуют связи, которые
должны быть отражены в виде связей между объектами инфологической
модели. Графически связь обозначается линией, соединяющей связываемые
объекты. Связь снабжается алфавитно-цифровым идентификатором. В
каждом направлении связи можно выделить главный объект, от которого
идет связь, и подчиненный.
Различают идентифицирующую связь и не идентифицирующую связь.
При установлении не идентифицирующей связи дочерняя сущность остается
независимой.
Экземпляр
сущности
родителя
может
существовать
безотносительно к какому-либо экземпляру дочерней сущности.
Идентифицирующей является связь между двумя сущностями, в
которой каждый экземпляр подчиненной сущности идентифицируется
22
значениями атрибутов родительской сущности. Это означает, что экземпляр
подчиненной сущности зависит от родительской сущности и не может
существовать без экземпляра родительской сущности.
При проектирование была проведена нормализация отношений до
третьей нормальной формы, т.е. были устранены не ключевые столбцы, не
зависящие от ключа.
Таким образом, все не ключевые атрибуты функционально полно
зависят от ключа и отсутствуют транзитивные зависимости.
Связи между сущностями представлены в таблице 1.
Таблица 1 – Структура связей
PISHEM24.RU
8 800 551-60-95
Сущность-
Сущность-
родитель
потомок
Водители
Маршрут
Мощность связи
Тип связи
Один ко многим
Идентифицирующа
я
Транспорт
Маршрут
Один ко многим
Идентифицирующа
я
Маршрут
Билеты
Один к одному
Идентифицирующа
я
Маршрут
Пункты
Один ко многим
Идентифицирующа
я
На основании логического проектирования были созданы 5 таблиц,
которые описаны в таблицах 2 - 6.
23
Описание атрибутов сущности «Маршрут» представлено в таблице 2.
Таблица 2 – Описание атрибутов сущности «Маршрут»
Номер
Поле
Тип поля
Размер поля
3
4
Ключевые
параметры
5
1
2
1
ID_mar
int
PK
2
Id_vad
int
FK
3
Id_avto
int
FK
4
Nach
Varchar()
20
5
Con
Varchar()
20
6
Data
DataTime
7
T
Varchar()
20
8
Tr
Varchar()
20
9
Dengi
Varchar()
20
10
Straf
Varchar()
20
PISHEM24.RU
8 800 551-60-95
Описание атрибутов сущности «Билет» представлено в таблице 3.
Таблица 3 – Описание атрибутов сущности «Билет»
Номер
Поле
Тип поля
Размер поля
Ключевые
параметры
1
2
3
24
4
5
1
ID_bilet
int
PK
2
ID_ mar
int
FK
4
Nac
Varchar()
20
5
Kon
Varchar()
20
6
N
int
7
Mesta
Varchar()
20
8
Dengi
Varchar()
20
Описание атрибутов сущности «Пункты» представлено в таблице 4.
Таблица 4 – Описание атрибутов сущности «Пункты»
PISHEM24.RU
8 800 551-60-95
Номер
Поле
Тип поля
Размер поля
Ключевые
параметры
1
2
3
4
5
1
ID_punkt
int
PK
2
ID_ mar
int
FK
3
Name
Varchar()
20
Описание атрибутов сущности «Транспорт» представлено в таблице 5.
Таблица 5 – Описание атрибутов сущности «Транспорт»
Номер Поле
Тип поля
Размер поля Ключевые
параметры
1
2
3
1
ID_avto
int
2
Marka
Varchar()
25
4
5
PK
20
3
Model
Varchar()
4
Kol
int
5
God_v
int
6
God_r
int
7
Probeg
int
20
Описание атрибутов сущности «Водители» представлено в таблице 6.
Таблица 6 – Описание атрибутов сущности «Водители»
Номер Поле
Тип поля
Размер поля Ключевые
параметры
PISHEM24.RU
8 800 551-60-95
1
2
3
1
ID_vad
int
2
LastName
Varchar()
20
3
FirstName
Varchar()
20
4
MiddleName
Varchar()
20
5
Experiense
int
6
Year
int
7
Category
Varchar()
20
8
Class
Varchar()
20
26
4
5
PK
Модель реальной базы данных на Microsoft SQL Server представлена на
рисунке 8.
PISHEM24.RU
8 800 551-60-95
Рисунок 8 - Модель БД проекта
Нормализация предусматривает определение требуемых атрибутов с
последующим созданием из них нормализованных таблиц, основанных на
функциональных зависимостях между этими атрибутами. Отношение, в
котором на пересечении каждой строки и каждого столбца содержится
атомарное (или единственное) значение, находится в 1НФ. При этом
27
необходимо, чтобы отношение имело первичный ключ.
Вторая нормальная форма применяется к отношениям с составными
ключами, т.е. к таким отношениям, первичный ключ которых состоит из
двух или больше атрибутов. Отношение с первичным ключом на основе
единственного атрибута всегда находится в 2НФ. Отношение, которое
находится в 1НФ и каждый атрибут которого, не входящий в состав
первичного ключа, зависит только от полного значения ключа и не зависит
ни от какого отдельного атрибута, входящего в состав первичного ключа,
имеет
вторую
нормальную
форму
(каждый
неключевой
атрибут
функционально полно зависит от ключа).
Отношение находится в 3НФ, если оно представлено в 2НФ и не
PISHEM24.RU
8 800 551-60-95
имеет не входящих в первичный ключ атрибутов, которые находились бы в
транзитивной функциональной зависимости от этого первичного ключа.
Разработанная модель находится в третьей нормальной форме т.к.:
- атрибуты сущностей являются атомарными;
- каждый неключевой атрибут функционально полно зависит от
первичного ключа;
- в модели отсутствуют транзитивные зависимости неключевых
атрибутов от ключа.
Созданная
БД
полностью
замкнутая
и
обеспечивает
полное
функционирования данного приложения.
Данная БД является внешней по отношению к программной оболочке,
к интерфейсу, разработанному на языке программирования С# и технологии
Windows Forms.
28
2.2 Инструменты разработки
В
качестве
основных
средств
разработки
будем
использовать
следующие информационные возможности:

Язык программирования C#;

Платформа разработки Visio Studio;

СУБД Microsoft SQL Server 2008 R2.
Приведем обоснование выбора данных средств разработки. Рассмотрим
Сервер MySQL. Производитель компания Microsoft. В текущий момент
является одной из ведущих систем обработки данным в мире. Является
PISHEM24.RU
8 800 551-60-95
современным
программным
продуктом.
Постоянно
обновляется
и
совершенствуется.
Основные плюсы такой СУБД:

Простата;

Удобство;

Простой и интуитивно понятный интерфейс;

Огромные функциональные возможности;

Компактность данных. Данные располагаются в таблицах,
которые в сваю очередь занимают только один файл;

Огромное количество подсказок и мастеров, которые выполняют
работа всю практически за вас;

Распростроняемость;

Обновляемость;

Совместимость с ОС Windows;

Импорт и экспорт необходимых данных;

Наличие необходимых микрокоманд.
29
Недостатки:

Слабо развита возможность многопользовательского режима;

Слабо развита защита данных.
Проанализировав все плюсы и минусы, для выполнения данной работы
была выбрана Microsoft SQL Server 2008 R2.
Анализ и выбор языка программирования
В качестве языка программирования выберем язык высокого уровня
С#.
С#
-
язык
программирования
высокого
уровня.
Объектно-
ориентируемый язык. День рождения данного языка можно считать 1998 год.
Данный язык программирования был создан разработчиками компании
PISHEM24.RU
8 800 551-60-95
Microsoft, как основной подход для программирования программных
комплексов под ОС Windows. Имеет синтаксис подобный на другие языки
высокого уровня с++ и java. Данный язык входит в основу таких платформ
разработки приложений как Windows Form, ASP. Net MVC, XAMARIN.
Последнее кстати, много - обесчающая и быстро развивающаяся технология
проектирования приложений для мобильных устройств.
Достоинства языка программирования:

Ярко выраженный объектное - ориентируемый подход;

Гибкость программного кода;

Переносимость программного кода;

Простата повторного использования готовых программных
наработок;

Безопасность разработанного кода;

Унифицированная система типизации;
Недостатки:

Трудный и своеобразный синтаксис программного кода;
30

Мало новых, своих, идей;

Медленный, по сравнению с другими языками высокого уровня;

Не кросс - платформенный язык.
2.3 Описание интерфейса приложения
В качестве СУБД для реализации разрабатываемой системы был
выбран Microsoft SQL Server. Причина выбора данной СУБД состоит в том,
что она представляет собой компактную базу данных, развертывание которой
возможно как на настольном компьютере, так и на смарт-устройстве или
планшетном ПК, также неоспоримым преимуществом является то, что
данная СУБД является бесплатной, что заметно уменьшает затраты на
PISHEM24.RU
8 800 551-60-95
разработку и внедрение ИС.
Среда разработки приложений, язык программирования С#. Данная
среда
разработки
благодаря
её
обширным
возможностям
наличию
бесплатной полнофункциональной версии является наиболее приемлемой
при разработке информационной системы.
Рассмотрим практическую реализацию данного проекта.
Разработка ИС будем вести в среде Visual Studio 2012 на языке
программирования C#, технология Windows Form. Для работы с БД будем
приписывать код в ручную и пользоваться объектом SqlConnection.
База данных будет находится на внешнем сервере, а именно СУБД
Microsoft Sql Server.
Подключение к базе данных. Для подключения к базе данных
необходимо сформировать строку подключения, это основной элемент. Для
работы с БД формируются SQL запросы, а затем они обрабатываются кодом
C#.
В
подтверждение
данных
слов
представим
подключением к БД и запросам на ввод данных.
31
фрагмент
кода
с
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ved
{
class BD
{
private SqlConnection connection;
private SqlCommand command;
private void ConnectTo()
{
string sp = "Data Source=.\\SQLEXPRESS;Initial Catalog=ved;Integrated
Security=true;";
connection = new SqlConnection(sp);
command = connection.CreateCommand();
}
public BD()
{
ConnectTo();
}
PISHEM24.RU
8 800 551-60-95
public void Delete(string Id, string tab)
//Удаление!!!!!!!!!!!!!!!!!!!!
{
try
{
command.CommandText = "DELETE FROM " + tab + " WHERE ID= " + Id;
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null) { connection.Close(); }
}
}
Полное ядро доступа к БД можно посмотреть в программном
комплексе.
Разработка интерфейса пользователя
Для разграничения простых пользователей и администратора создадим
форму входа в систему, смотрите рисунок 9.
32
Рисунок 9 - Форма входа в систему
PISHEM24.RU
8 800 551-60-95
Обработчики событий данной формы примут вид:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ved
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
text_password.Text = ""; text_password.PasswordChar = '*';
GraphicsPath gPath = new GraphicsPath();
Rectangle rect = new Rectangle(0, 0, 540, 500);
gPath.AddRectangle(rect);
this.Region = new Region(gPath);
//Делаем таймер доступным
timer_time.Enabled = true;
//Запускаем таймер
timer_time.Start();
textBox_time.Text = DateTime.Now.ToString("dd MMMM yyyy | HH:mm:ss");
}
private void timer_time_Tick(object sender, EventArgs e)
{
textBox_time.Text = DateTime.Now.ToString("dd MMMM yyyy | HH:mm:ss");
33
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void button_ok_Click(object sender, EventArgs e)
{
string login;
string parol;
login = textBox_login.Text;
parol = text_password.Text;
if ((login == "") || (parol == ""))
{
MessageBox.Show("Заполните поля логин и пароль!!!");
}
else
{
if ((login == "admin") && (parol == "admin"))
{
Form_ved inf = new Form_ved();
this.Hide();
inf.ShowDialog();
this.Show();
PISHEM24.RU
8 800 551-60-95
}
else
{
MessageBox.Show("Вы ввели неверный логин и пароль!!!");
}
}
textBox_login.Text = "";
text_password.Text = "";
}
private void textBox_login_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
text_password.Select();
}
}
private void text_password_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
button_ok.PerformClick();
}
}
}}
При авторизации пользователя администратору программного
комплекса будет предоставлено основная форма учета маршрутов, смотрите
рисунок 10.
34
PISHEM24.RU
8 800 551-60-95
Рисунок 10 - Форма по учета маршрутов
Обработчики событий данной формы примут вид:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace avto
{
public partial class Form_avto : Form
{
public Form_avto()
{
InitializeComponent();
}
private void Form_avto_Load(object sender, EventArgs e)
{
GraphicsPath gPath = new GraphicsPath();
Rectangle rect = new Rectangle(0, 0, 918, 561);
gPath.AddRectangle(rect);
this.Region = new Region(gPath);
next();
ab_sp();
vod_sp();
textBox_data.Text = DateTime.Now.ToString("dd/MM/yyyy");
}
private void next()
35
{
BD bd = new BD();
List<marshrut> spisok = new List<marshrut>();
spisok = bd.Fill_marshrut();
spisok.Sort(delegate(marshrut us1, marshrut us2) { return
us1.Data.CompareTo(us2.Data); });
dataGridView1.DataSource = spisok;
dataGridView1.Columns[0].HeaderText = "Номер";
dataGridView1.Columns[1].HeaderText = "Транспорт";
dataGridView1.Columns[2].HeaderText = "Водитель";
dataGridView1.Columns[3].HeaderText = "Начало маршрута";
dataGridView1.Columns[4].HeaderText = "Конец маршрута";
dataGridView1.Columns[5].HeaderText = "Дата";
dataGridView1.Columns[6].HeaderText = "Время отправления";
dataGridView1.Columns[7].HeaderText = "Время в пути";
dataGridView1.Columns[8].HeaderText = "Выручка(Руб)";
dataGridView1.Columns[9].HeaderText = "Штраф";
}
private void ab_sp()
{
comboBox_avto.Items.Clear();
comboBox_avtoo.Items.Clear();
BD bd = new BD();
List<avto> spisok = new List<avto>();
spisok = bd.Fill_avto();
PISHEM24.RU
8 800 551-60-95
foreach (avto kot in spisok)
{
comboBox_avto.Items.Add(kot.Marka);
comboBox_avtoo.Items.Add(kot.Marka);
}
}
private void vod_sp()
{
comboBox_vad.Items.Clear();
comboBox_vadd.Items.Clear();
BD bd = new BD();
List<vod> spisok = new List<vod>();
spisok = bd.Fill_vod();
foreach (vod kot in spisok)
{
comboBox_vad.Items.Add(kot.FirstName);
comboBox_vadd.Items.Add(kot.FirstName);
}
}
private void выходToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
private void бДToolStripMenuItem_Click(object sender, EventArgs e)
{
36
next();
}
private void button2_Click(object sender, EventArgs e)
{
if (textBox_straf.Text == "" || textBox_dengi.Text == "" || textBox_t.Text ==
"" || textBox_tr.Text == "" || textBox_con.Text == "" || textBox_nach.Text == "" ||
textBox_data.Text == "" || comboBox_avto.Text == "" || comboBox_vad.Text == "")
{
MessageBox.Show("Заполните поля данных!!!");
}
else
{
BD bd = new BD();
marshrut z = new marshrut();
z.Id_avto = bd.Get_avto_marka(comboBox_avto.Text).Id;
z.Id_vod = bd.Get_vod_first(comboBox_vad.Text).Id;
z.Data = textBox_data.Text;
z.Nac = textBox_nach.Text;
z.Con = textBox_con.Text;
z.T= textBox_t.Text;
z.Tr = textBox_tr.Text;
z.Dengi = textBox_dengi.Text;
z.Straf = textBox_straf.Text;
PISHEM24.RU
8 800 551-60-95
try
{
bd.Inser_marshrut(z);
MessageBox.Show("Успешно!!!");
next();
}
catch (FormatException)
{ MessageBox.Show("Ошибка!"); }
}
}
private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
BD bd = new BD();
textBox_id.Text = dataGridView1[0,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_idd.Text = dataGridView1[0,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_iddd.Text = dataGridView1[0,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_idddd.Text = dataGridView1[0,
dataGridView1.CurrentRow.Index].Value.ToString();
comboBox_avtoo.Text = bd.Get_avto_Id(dataGridView1[1,
dataGridView1.CurrentRow.Index].Value.ToString()).Marka;
comboBox_vadd.Text = bd.Get_vod_Id(dataGridView1[2,
dataGridView1.CurrentRow.Index].Value.ToString()).FirstName;
textBox_conn.Text = dataGridView1[4,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_dataa.Text = dataGridView1[5,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_nachh.Text = dataGridView1[3,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_tt.Text = dataGridView1[6,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_trr.Text = dataGridView1[7,
37
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_dengii.Text = dataGridView1[8,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_straff.Text = dataGridView1[9,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_avto.Text = bd.Get_avto_Id(dataGridView1[1,
dataGridView1.CurrentRow.Index].Value.ToString()).Marka;
textBox_vad.Text = bd.Get_vod_Id(dataGridView1[2,
dataGridView1.CurrentRow.Index].Value.ToString()).FirstName;
textBox_co.Text = dataGridView1[4,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_na.Text = dataGridView1[3,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_dat.Text = dataGridView1[5,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_nt.Text = dataGridView1[6,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_ntr.Text = dataGridView1[7,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_deng.Text = dataGridView1[8,
dataGridView1.CurrentRow.Index].Value.ToString();
textBox_stra.Text = dataGridView1[9,
dataGridView1.CurrentRow.Index].Value.ToString();
}
PISHEM24.RU
8 800 551-60-95
private void button_delete_Click(object sender, EventArgs e)
{
if (textBox_id.Text == "")
{
MessageBox.Show("Заполните поля!!!");
}
else
{
BD bd = new BD();
bd.Delete(textBox_id.Text, "marshrut");
next();
}
}
private void button_update_Click(object sender, EventArgs e)
{
if (textBox_straff.Text == "" || textBox_dengii.Text == "" || textBox_tt.Text
== "" || textBox_trr.Text == "" || textBox_conn.Text == "" || textBox_nachh.Text == "" ||
textBox_dataa.Text == "" || textBox_idd.Text == "" || comboBox_avtoo.Text == "" ||
comboBox_vadd.Text == "")
{
MessageBox.Show("Заполните поля данных!!!");
}
else
{
marshrut z = new marshrut();
marshrut tek = new marshrut();
BD bd = new BD();
z.Id_avto = bd.Get_avto_marka(comboBox_avtoo.Text).Id;
z.Id_vod = bd.Get_vod_first(comboBox_vadd.Text).Id;
z.Data = textBox_dataa.Text;
z.Nac = textBox_nachh.Text;
z.Con = textBox_conn.Text;
z.T = textBox_tt.Text;
z.Tr = textBox_trr.Text;
38
z.Dengi = textBox_dengii.Text;
z.Straf = textBox_straff.Text;
tek.Id = Convert.ToInt32(textBox_idd.Text);
try
{
bd.Update_marshrut(tek, z);
MessageBox.Show("Успешно!!!");
next();
}
catch (FormatException)
{ MessageBox.Show("Ошибка!"); }
}
}
private void button4_Click(object sender, EventArgs e)
{
if (textBox_FIO.Text == "")
{
MessageBox.Show("Заполните поля поиска!!!");
}
else
{
PISHEM24.RU
8 800 551-60-95
if (radioButton2.Checked == true)
{
BD bd = new BD();
vod sp = new vod();
sp = bd.Get_vod_first(textBox_FIO.Text);
List<marshrut> spisok = new List<marshrut>();
spisok = bd.Fill_marshrut_Id_vad(sp.Id.ToString());
dataGridView1.DataSource = spisok;
}
if (radioButton1.Checked == true)
{
BD bd = new BD();
avto sp = new avto();
sp = bd.Get_avto_marka(textBox_FIO.Text);
List<marshrut> spisok = new List<marshrut>();
spisok = bd.Fill_marshrut_Id_avto(sp.Id.ToString());
dataGridView1.DataSource = spisok;
}
if (radioButton3.Checked == true)
{
BD bd = new BD();
List<marshrut> spisok = new List<marshrut>();
List<marshrut> spisok1 = new List<marshrut>();
spisok = bd.Fill_marshrut();
foreach (marshrut p in spisok)
39
{
if (p.Data.IndexOf(textBox_FIO.Text) > -1)
{
spisok1.Add(p);
}
}
dataGridView1.DataSource = spisok1;
}
}
}
private void Т(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox_iddd.Text == "")
{
MessageBox.Show("Заполните поля данных!!!");
}
else
{
int kt = Convert.ToInt32(textBox_iddd.Text);
Form_punkt inf = new Form_punkt(kt);
this.Hide();
inf.ShowDialog();
this.Show();
}
}
PISHEM24.RU
8 800 551-60-95
private void button3_Click(object sender, EventArgs e)
{
if (textBox_iddd.Text == "")
{
MessageBox.Show("Заполните поля данных!!!");
}
else
{
int kt = Convert.ToInt32(textBox_iddd.Text);
Form_bilet inf = new Form_bilet(kt);
this.Hide();
inf.ShowDialog();
this.Show();
next();
}
}
private void транспортToolStripMenuItem_Click(object sender, EventArgs e)
{
Form_avto1 inf = new Form_avto1();
this.Hide();
inf.ShowDialog();
this.Show();
ab_sp();
}
private void водителииToolStripMenuItem_Click(object sender, EventArgs e)
{
Form_vad inf = new Form_vad();
40
this.Hide();
inf.ShowDialog();
this.Show();
vod_sp();
}
}
}
Все в данном стиле.
2.4 Руководство пользователя
При запуске программного комплекса запускается стартовое окно
приложения, смотрите рисунок 11.
PISHEM24.RU
8 800 551-60-95
Рисунок 11 - Стартовое окно программы
Далее можно пройти авторизацию если ты администратор или оператор
БД, смотрите рисунок 12.
41
Рисунок 12 - Авторизация пользователя
PISHEM24.RU
8 800 551-60-95
Пройдя авторизацию мы попадаем в окно "Маршруты", смотрите
рисунок 13.
Рисунок 13 - Учет маршрутов
Здесь пользователь может добавить, удалить, обновить и найти
42
информацию об маршрутах .
И так далее. Мы попадаем в окно для работы с транспортам, смотрите
рисунок 14.
PISHEM24.RU
8 800 551-60-95
Рисунок 14 - Учет транспорта
Здесь пользователь может добавить, удалить, обновить и найти
информацию об транспорте.
С окна "Маршруты" мы можем попасть в окно "Водители", смотрите
рисунок 15.
Рисунок 15 - Учет водителей
Здесь пользователь может добавить, удалить, обновить и найти
43
информацию об водителях.
Далее можем пройти к пунктам маршрута, смотрите рисунок 16.
PISHEM24.RU
8 800 551-60-95
Рисунок 16 - Учет пунктов маршрута
Здесь пользователь может добавить, удалить, обновить и найти
информацию об пунктах маршрута.
Далее можем пройти к билетам маршрута , смотрите рисунки 17.
Рисунок 17 - Учет билетов
Здесь пользователь может добавить, удалить, обновить и найти
информацию об билетах на данный маршрут.
44
Заключение
В результате выполнения курсовой работы был достаточно подробна
изучен язык программирования C#, находящийся на платформе Visio Studio.
Конкретно платформа Windows Form С#.
В качестве хранения данных использовалась сервер Microsoft ACCESS
2007. Работа над данным контейнером, тоже привели к улучшению знаний у
автора о данной системе управления базой данных.
В процессе разработки, коды программы распределялись по файлам.
Данный подход закрепил умения и навыки автора по модульному
программированию.
PISHEM24.RU
8 800 551-60-95
В результате оформления ПЗ контрольной работы были закреплены
навыки построения алгоритмов в виде блок-схем и диаграмм активностей.
В результате выполнения данной курсовой работы был разработан
программный комплекс для автоматизированной деятельности автовокзала.
Данное программное обеспечение выполняет следующие функции:

Добавление, удаление и обновление информации об маршрутах;

Добавление, удаление и обновление информации об пунктах
маршрута;

Добавление, удаление и обновление информации об проданных
билетах;

Добавление, удаление и обновление информации об водителях;

Добавление, удаление и обновление информации об транспортах
автовокзала;

Добавление, удаление и обновление информации об выручке
маршрута и штрафах водителя;

Поиск билетов;

Поиск водителей;
45

Поиск транспорта;

Поиск маршрута по водителю;

Поиск маршрута по транспорту;

Поиск маршрута по дате;

Отчет маршрутов по водителю;

Отчет маршрута по транспорту;

Отчет маршрута по выручке;

Отчеты маршрутов по датам;

Авторизация;

Вывод отчета в Exel документ.
Программа проста для установки и имеет интуитивно понятный
графический
интерфейс.
Программный
комплекс
актуален
и
может
PISHEM24.RU
8 800 551-60-95
устанавливаться на всех ПК.
46
Список литературы
1. Агуров П.А. С#. Разработка компонентов в MS Visual Studio
2008/2010.СПб.: БХВ –Петербург, 2008. 480с.
2. Марченко А.Л. C#. Введение в программирование. Учебное пособие.
М.: МГУ им. М.В. Ломоносова ,2005. 317с.
3. Биллиг В.А. Основы программирования на C#//Учебное пособие.
2005. URL:http://www.intuit.ru/department/pl/csharp (дата обращения 16.01.12)
4. Фаулер М. UML. Основы. 3-е издание. Символ-Плюс, 2005, 192 с. [2]
PISHEM24.RU
8 800 551-60-95
Буч Г., Рамбо Д.,
5. Якобсон А. Язык UML. Руководство пользователя. Второе издание.
ДМК, 2006, 496 с.
6.Бутин Г., Якобсон А., Рамбо Д. UML. 2-е издание Классика CS.
Питер, 2005, 736 с.
7. Фримен, A. ASP.NET МVС 3 для профессионалов /А. Фримен, С.
Сандерсон. – Москва: Вильямс, 2012. – 680 с.: ил.
8. Троелсен, Э. Язык программирования C# 5.0 и платформа.NET 4.5
/Э. Троелсен – Москва: Вильямс, 2013–1312 с.: ил.
9.Либерти, Д. Программирование на C# /Д. Либерти. – СПб.: Питер,
2009. – 688 с.:ил.
10. Микелсен, К. Язык программирования C# /К. Микелсен. – ДиаСофт,
2002. – 656 с.:ил.
11. Информационные системы и технологии. Методические указания
по выполнению дипломного проекта для студентов специальностей 1–40 01
47
02 «Информационные системы и технологии» / сост.: О.И. Наранович. –
Барановичи: РИО БарГУ, 2009. – 39 с.
12. Петзольд, Ч. Программирование для Microsoft Windows на С# /Ч.
Петзольд. – М.: Русская редакция, 2010. – 880 с.:ил.
13. Рихтер, Д. Программирование на платформе Microsoft.NET
Framework / Д. Рихтер. – СПб.: Русская редакция, 2012. – 836 с.:ил.
14. Оформление раздела «Охрана труда» в дипломных проектах:
методические указания по выполнению дипломных работ и проектов для
студентов специальности 1–27 01 01 Экономика и организация производства;
1–40 01 02 Информационные системы и технологии / сост. Ю.И. Шадид. –
Барановичи: РИО БарГУ, 2009. – 12 с.
PISHEM24.RU
8 800 551-60-95
15. Троелсен, Э. Язык программирования C# 4.0 и платформа.NET 4.0
/Э. Троелсен – Москва: Вильямс, 2011–1214 с.: ил.
16. Визуальное моделирование с помощью IBM Rational Software
Architect и UML. Терри Кватрани, Джим Палистрант. Издательство: КУДИЦПресс, 2014 г.
17. Intuit.ru Курс “Визуальное моделирование в Rational Rose”.
18. Проектирование информационных систем: Методические указания
к выполнению курсовой работы для студентов специальности 351400
«Прикладная информатика в экономике» / Сост. П.В. Минеев. Красноярск,
КГТУ, 2014. 36 с.
19. Проектирование информационных систем: учеб. пособие / П. В.
Минеев ; Сиб. федер. ун-т, ХТИ - филиал СФУ. - Абакан : РИСектор ХТИ филиала СФУ, 2013
20. Дубаков А.А. Проектирование информационных систем: Учебное
пособие. Томск.: Изд. ТПУ, 2015.
48
21. Чен П.П. Модель “сущность-связь” – шаг к единому представлению
данных. СУБД, N3, 2015 г.
22. Вендров А.М. CASE-технологии. Современные методы и средства
проектирования информационных систем. М., Финансы и статистика, 2012.
23.
Вендров
А.М.
Проектирование
программного
обеспечения
экономических информационных систем. М., Финансы и статистика, 2014.
24. Фаулер М., Скотт К. UML в кратком изложении. Применение
стандартного языка объектного моделирования. М., Мир, 2014.
25. Буч Г. Объектно-ориентированный анализ и проектирование с
PISHEM24.RU
8 800 551-60-95
примерами приложений на C++. 2-е изд. М., Издательство Бином, СПб.,
Невский диалект, 2015.
26. Буч Г., Рамбо Д., Джекобсон А. Язык UML: руководство
пользователя. М., ДМК, 2016.
27. Лахатин, А.С. Языки программирования. Учеб. пособие / А.С.
Лахатин, Л.Ю. Искакова. - Екатеринбург, 1998. - 548с.: ил.
28. Богатырев, А. Язык программирования С [Электронный ресурс] / А.
Богатырев.- электр. дан. - Режим доступа: http://www.refby.com. - Загл. с
экрана.
29. Уэйт, М. Язык С. Руководство для начинающих. / М. Уэйт, С. Прага,
Д. Мартин. - М.: Мир, 1995. - 521с.: ил.
30. Павловская Т. А. C#. Программирование на языке высокого уровня:
Учебник для вузов. - СПб.: БХВ-Петербург. 2007.
31. Попов И. И., Партыка Т. Л. Языки программирования: Учебное
пособие. - М.: ФОРУМ: ИНФРА-М, 2008.
49
32. Голицина О. Л., Попов И. И. Основы алгоритмизации и
программирования: Учебное пособие. - М.: ФОРУМ: ИНФРА-М, 2005.
33. Фаронов В. В., Создание приложений с помощью C#: Руководство
программиста. - М.: Эксмо, 2008.
34. Свердлов С. З. Языки программирования и методы трансляции.
Учебное пособие. - СПб.: Питер, 2007.
35. Павловская Т. А. С/С++ Программирование на языке высокого
уровня. - СПб.: Питер, 2005.
36. Нортроп Тони, Уилдермьюс Шон, Райан Билл. Основы разработки
приложений на платформе Microsoft .Net Framework. Учебный курс Microsoft
PISHEM24.RU
8 800 551-60-95
/ Пер. с англ. - М.: «Русская редакция», СПб.: «Питер», 2007.
37. Чен П.П. Модель “сущность-связь” – шаг к единому представлению
данных. СУБД, N3, 2015 г.
38. Вендров А.М. CASE-технологии. Современные методы и средства
проектирования информационных систем. М., Финансы и статистика, 2012.
39.
Вендров
А.М.
Проектирование
программного
обеспечения
экономических информационных систем. М., Финансы и статистика, 2014.
40. Фаулер М., Скотт К. UML в кратком изложении. Применение
стандартного языка объектного моделирования. М., Мир, 2014.
41. Буч Г. Объектно-ориентированный анализ и проектирование с
примерами приложений на C++. 2-е изд. М., Издательство Бином, СПб.,
Невский диалект, 2015.
42. Буч Г., Рамбо Д., Джекобсон А. Язык UML: руководство
пользователя. М., ДМК, 2016.
50
Приложение А
SQL скрипт
USE [master]
GO
/****** Object: Database [vakzal]
Script Date: 01/15/2020 00:26:32
******/
CREATE DATABASE [vakzal] ON PRIMARY
( NAME = N'vakzal', FILENAME = N'C:\Program Files\Microsoft SQL
Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\vakzal.mdf' , SIZE = 3072KB , MAXSIZE
= UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'vakzal_log', FILENAME = N'C:\Program Files\Microsoft SQL
Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\vakzal_log.ldf' , SIZE = 1024KB ,
MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [vakzal] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [vakzal].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO
ALTER DATABASE [vakzal] SET ANSI_NULL_DEFAULT OFF
GO
ALTER DATABASE [vakzal] SET ANSI_NULLS OFF
GO
ALTER DATABASE [vakzal] SET ANSI_PADDING OFF
GO
ALTER DATABASE [vakzal] SET ANSI_WARNINGS OFF
GO
ALTER DATABASE [vakzal] SET ARITHABORT OFF
GO
ALTER DATABASE [vakzal] SET AUTO_CLOSE OFF
GO
ALTER DATABASE [vakzal] SET AUTO_CREATE_STATISTICS ON
GO
ALTER DATABASE [vakzal] SET AUTO_SHRINK OFF
GO
ALTER DATABASE [vakzal] SET AUTO_UPDATE_STATISTICS ON
GO
ALTER DATABASE [vakzal] SET CURSOR_CLOSE_ON_COMMIT OFF
GO
ALTER DATABASE [vakzal] SET CURSOR_DEFAULT GLOBAL
GO
ALTER DATABASE [vakzal] SET CONCAT_NULL_YIELDS_NULL OFF
GO
ALTER DATABASE [vakzal] SET NUMERIC_ROUNDABORT OFF
GO
ALTER DATABASE [vakzal] SET QUOTED_IDENTIFIER OFF
GO
ALTER DATABASE [vakzal] SET RECURSIVE_TRIGGERS OFF
GO
ALTER DATABASE [vakzal] SET DISABLE_BROKER
GO
ALTER DATABASE [vakzal] SET AUTO_UPDATE_STATISTICS_ASYNC OFF
PISHEM24.RU
8 800 551-60-95
51
GO
ALTER DATABASE [vakzal] SET DATE_CORRELATION_OPTIMIZATION OFF
GO
ALTER DATABASE [vakzal] SET TRUSTWORTHY OFF
GO
ALTER DATABASE [vakzal] SET ALLOW_SNAPSHOT_ISOLATION OFF
GO
ALTER DATABASE [vakzal] SET PARAMETERIZATION SIMPLE
GO
ALTER DATABASE [vakzal] SET READ_COMMITTED_SNAPSHOT OFF
GO
ALTER DATABASE [vakzal] SET HONOR_BROKER_PRIORITY OFF
GO
ALTER DATABASE [vakzal] SET READ_WRITE
GO
ALTER DATABASE [vakzal] SET RECOVERY SIMPLE
GO
ALTER DATABASE [vakzal] SET MULTI_USER
GO
ALTER DATABASE [vakzal] SET PAGE_VERIFY CHECKSUM
GO
ALTER DATABASE [vakzal] SET DB_CHAINING OFF
GO
USE [vakzal]
GO
/****** Object: Table [dbo].[avto]
Script Date: 01/15/2020 00:26:33
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[avto](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Marka] [nvarchar](50) NOT NULL,
[Model] [nvarchar](50) NOT NULL,
[Kol] [int] NOT NULL,
[God_v] [int] NOT NULL,
[God_r] [int] NOT NULL,
[Probeg] [int] NOT NULL,
CONSTRAINT [PK_avto] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[vod]
Script Date: 01/15/2020 00:26:33
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[vod](
[Id] [int] IDENTITY(1,1) NOT NULL,
[LastName] [nvarchar](50) NOT NULL,
[FirstName] [nvarchar](50) NOT NULL,
[MiddleName] [nvarchar](50) NOT NULL,
[Stag] [int] NOT NULL,
[God] [int] NOT NULL,
[Category] [nvarchar](50) NOT NULL,
[Class] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_vod] PRIMARY KEY CLUSTERED
(
PISHEM24.RU
8 800 551-60-95
52
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[marshrut]
Script Date: 01/15/2020 00:26:33
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[marshrut](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Id_avto] [int] NOT NULL,
[Id_vad] [int] NOT NULL,
[Nach] [nvarchar](50) NOT NULL,
[Con] [nvarchar](50) NOT NULL,
[Data] [nvarchar](50) NOT NULL,
[T] [nvarchar](50) NOT NULL,
[Tr] [nvarchar](50) NOT NULL,
[Dengi] [nvarchar](50) NOT NULL,
[Straf] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_marshrut] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[punkt]
Script Date: 01/15/2020 00:26:33
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[punkt](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Id_mar] [int] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_punkt] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: Table [dbo].[bilet]
Script Date: 01/15/2020 00:26:33
******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[bilet](
[Id] [int] IDENTITY(1,1) NOT NULL,
[Id_mar] [int] NOT NULL,
[Nac] [nvarchar](50) NOT NULL,
[Con] [nvarchar](50) NOT NULL,
[N] [int] NOT NULL,
[Mesta] [nvarchar](50) NOT NULL,
[Dengi] [nvarchar](50) NOT NULL,
CONSTRAINT [PK_bilet] PRIMARY KEY CLUSTERED
(
[Id] ASC
PISHEM24.RU
8 800 551-60-95
53
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
/****** Object: ForeignKey [FK_marshrut_avto]
Script Date: 01/15/2020
00:26:33 ******/
ALTER TABLE [dbo].[marshrut] WITH CHECK ADD CONSTRAINT [FK_marshrut_avto]
FOREIGN KEY([Id_avto])
REFERENCES [dbo].[avto] ([Id])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[marshrut] CHECK CONSTRAINT [FK_marshrut_avto]
GO
/****** Object: ForeignKey [FK_marshrut_vod]
Script Date: 01/15/2020
00:26:33 ******/
ALTER TABLE [dbo].[marshrut] WITH CHECK ADD CONSTRAINT [FK_marshrut_vod]
FOREIGN KEY([Id_vad])
REFERENCES [dbo].[vod] ([Id])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[marshrut] CHECK CONSTRAINT [FK_marshrut_vod]
GO
/****** Object: ForeignKey [FK_punkt_marshrut]
Script Date: 01/15/2020
00:26:33 ******/
ALTER TABLE [dbo].[punkt] WITH CHECK ADD CONSTRAINT [FK_punkt_marshrut]
FOREIGN KEY([Id_mar])
REFERENCES [dbo].[marshrut] ([Id])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[punkt] CHECK CONSTRAINT [FK_punkt_marshrut]
GO
/****** Object: ForeignKey [FK_bilet_marshrut]
Script Date: 01/15/2020
00:26:33 ******/
ALTER TABLE [dbo].[bilet] WITH CHECK ADD CONSTRAINT [FK_bilet_marshrut]
FOREIGN KEY([Id_mar])
REFERENCES [dbo].[marshrut] ([Id])
ON UPDATE CASCADE
ON DELETE CASCADE
GO
ALTER TABLE [dbo].[bilet] CHECK CONSTRAINT [FK_bilet_marshrut]
GO
PISHEM24.RU
8 800 551-60-95
54
Приложение Б
Работа с БД
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace avto
{
class BD
{
private SqlConnection connection;
private SqlCommand command;
PISHEM24.RU
8 800 551-60-95
private void ConnectTo()
{
string sp = "Data Source=.\\SQLEXPRESS;Initial Catalog=vakzal;Integrated
Security=true;";
connection = new SqlConnection(sp);
command = connection.CreateCommand();
}
public BD()
{
ConnectTo();
}
public void Delete(string Id, string tab)
//Удаление!!!!!!!!!!!!!!!!!!!!
{
try
{
command.CommandText = "DELETE FROM " + tab + " WHERE ID= " + Id;
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null) { connection.Close(); }
}
}
//marshrut
public void Inser_marshrut(marshrut zad)
{
int k = 0;
try
55
{
command.CommandText = "INSERT INTO marshrut
(Id_avto,Id_vad,Nach,Con,Data,T,Tr,Dengi,Straf) VALUES('" + zad.Id_avto + "', '" +
zad.Id_vod + "', '" + zad.Nac + "', '" + zad.Con + "', '" + zad.Data + "', '" + zad.T +
"', '" + zad.Tr + "', '" + zad.Dengi + "', '" + zad.Straf + "')";
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null) { connection.Close(); }
}
}
public void Update_marshrut(marshrut st, marshrut now)
{
try
{
command.CommandText = "UPDATE marshrut SET Id_avto = '" + now.Id_avto +
"',Id_vad ='" + now.Id_vod + "',Nach='" + now.Nac+ "',Con='" + now.Con + "',T='" + now.T
+ "',Tr='" + now.Tr + "',Dengi='" + now.Dengi + "',Straf='" + now.Straf + "',Data ='" +
now.Data + "' WHERE ID =" + st.Id;
command.CommandType = CommandType.Text;
connection.Open();
command.ExecuteNonQuery();
PISHEM24.RU
8 800 551-60-95
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null) { connection.Close(); }
}
}
public List<marshrut> Fill_marshrut()
{
List<marshrut> spisok = new List<marshrut>();
try
{
command.CommandText = "SELECT * FROM marshrut";
command.CommandType = CommandType.Text;
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
marshrut zad = new marshrut();
zad.Id = Convert.ToInt32(reader["Id"].ToString());
zad.Id_avto = Convert.ToInt32(reader["Id_avto"].ToString());
zad.Id_vod = Convert.ToInt32(reader["Id_vad"].ToString());
56
zad.Data = reader["Data"].ToString();
zad.Nac = reader["Nach"].ToString();
zad.Con = reader["Con"].ToString();
zad.T = reader["T"].ToString();
zad.Tr = reader["Tr"].ToString();
zad.Dengi = reader["Dengi"].ToString();
zad.Straf = reader["Straf"].ToString();
spisok.Add(zad);
}
return spisok;
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null)
{
connection.Close();
}
}
PISHEM24.RU
8 800 551-60-95
}
public List<marshrut> Fill_marshrut_Id_avto(String tab)
{
List<marshrut> spisok = new List<marshrut>();
try
{
command.CommandText = "SELECT * FROM marshrut WHERE Id_avto = " + tab;
command.CommandType = CommandType.Text;
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
marshrut zad = new marshrut();
zad.Id = Convert.ToInt32(reader["Id"].ToString());
zad.Id = Convert.ToInt32(reader["Id"].ToString());
zad.Id_avto = Convert.ToInt32(reader["Id_avto"].ToString());
zad.Id_vod = Convert.ToInt32(reader["Id_vad"].ToString());
zad.Data = reader["Data"].ToString();
zad.Nac = reader["Nach"].ToString();
zad.Con = reader["Con"].ToString();
zad.T = reader["T"].ToString();
zad.Tr = reader["Tr"].ToString();
zad.Dengi = reader["Dengi"].ToString();
zad.Straf = reader["Straf"].ToString();
spisok.Add(zad);
}
return spisok;
}
catch (Exception)
{
throw;
}
57
finally
{
if (connection != null) { connection.Close(); }
}
}
public List<marshrut> Fill_marshrut_Id_vad(String tab)
{
List<marshrut> spisok = new List<marshrut>();
try
{
command.CommandText = "SELECT * FROM marshrut WHERE Id_vad = " + tab;
command.CommandType = CommandType.Text;
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
marshrut zad = new marshrut();
zad.Id = Convert.ToInt32(reader["Id"].ToString());
zad.Id_avto = Convert.ToInt32(reader["Id_avto"].ToString());
zad.Id_vod = Convert.ToInt32(reader["Id_vad"].ToString());
zad.Data = reader["Data"].ToString();
zad.Nac = reader["Nach"].ToString();
zad.Con = reader["Con"].ToString();
zad.T = reader["T"].ToString();
zad.Tr = reader["Tr"].ToString();
zad.Dengi = reader["Dengi"].ToString();
zad.Straf = reader["Straf"].ToString();
PISHEM24.RU
8 800 551-60-95
spisok.Add(zad);
}
return spisok;
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null) { connection.Close(); }
}
}
public List<marshrut> Fill_marshrut_Con(String tab)
{
List<marshrut> spisok = new List<marshrut>();
try
{
command.CommandText = "SELECT * FROM marshrut WHERE Con = '" + tab+"'";
command.CommandType = CommandType.Text;
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
marshrut zad = new marshrut();
zad.Id = Convert.ToInt32(reader["Id"].ToString());
zad.Id_avto = Convert.ToInt32(reader["Id_avto"].ToString());
zad.Id_vod = Convert.ToInt32(reader["Id_vad"].ToString());
58
zad.Data = reader["Data"].ToString();
zad.Nac = reader["Nach"].ToString();
zad.Con = reader["Con"].ToString();
zad.T = reader["T"].ToString();
zad.Tr = reader["Tr"].ToString();
zad.Dengi = reader["Dengi"].ToString();
zad.Straf = reader["Straf"].ToString();
spisok.Add(zad);
}
return spisok;
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null) { connection.Close(); }
}
}
PISHEM24.RU
8 800 551-60-95
public List<marshrut> Fill_marshrut_Data(String tab)
{
List<marshrut> spisok = new List<marshrut>();
try
{
command.CommandText = "SELECT * FROM marshrut WHERE Data = '" + tab +
"'";
command.CommandType = CommandType.Text;
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
marshrut zad = new marshrut();
zad.Id = Convert.ToInt32(reader["Id"].ToString());
zad.Id_avto = Convert.ToInt32(reader["Id_avto"].ToString());
zad.Id_vod = Convert.ToInt32(reader["Id_vad"].ToString());
zad.Data = reader["Data"].ToString();
zad.Nac = reader["Nach"].ToString();
zad.Con = reader["Con"].ToString();
zad.T = reader["T"].ToString();
zad.Tr = reader["Tr"].ToString();
zad.Dengi = reader["Dengi"].ToString();
zad.Straf = reader["Straf"].ToString();
spisok.Add(zad);
}
return spisok;
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null) { connection.Close(); }
59
}
}
public marshrut Get_marshrut_Id(String tab)
{
marshrut zad = new marshrut();
try
{
command.CommandText = "SELECT * FROM marshrut WHERE Id = " + tab;
command.CommandType = CommandType.Text;
connection.Open();
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
zad.Id = Convert.ToInt32(reader["Id"].ToString());
zad.Id_avto = Convert.ToInt32(reader["Id_avto"].ToString());
zad.Id_vod = Convert.ToInt32(reader["Id_vad"].ToString());
zad.Data = reader["Data"].ToString();
zad.Nac = reader["Nach"].ToString();
zad.Con = reader["Con"].ToString();
zad.T = reader["T"].ToString();
zad.Tr = reader["Tr"].ToString();
zad.Dengi = reader["Dengi"].ToString();
zad.Straf = reader["Straf"].ToString();
PISHEM24.RU
8 800 551-60-95
}
return zad;
}
catch (Exception)
{
throw;
}
finally
{
if (connection != null) { connection.Close(); }
}
}
60
Скачать