Разработка клиентского приложения для работы с базой данных автомобильного предприятия

 

Оглавление


Введение

1. Постановка задачи и технико-экономическое обоснование

1.1 Постановка задачи

1.2 Анализ и оценка существующих аналогов

.3 Формирование задач и требований к разрабатываемой ИС

.4 Обоснование принятия решения о необходимости разработки ИС

. Выбор средств разработки

.1 Понятие и характеристики информационной системы

.2 Общие принципы построения информационной системы

.3 Выбор средств разработки

.4 Серверная и клиентская часть информационной системы

. Разработка и реализация ИС

.1 Разработка серверной части ИС

.2 Разработка клиентской части ИС

.3 Администрирование информационной системы

. Разработка технической документации к разрабатываемой ИС

.1 Описание применения

.2 Руководство системного администратор

.3 Руководство пользователя

. Программа, методика и результаты испытаний разрабатываемой ИС

.1 Объект испытаний

.2 Цели испытаний

.3 Средства и порядок испытаний

.4 Проведение программы испытаний

.5 Анализ результатов испытаний

. Экономическая часть

.1 План выполнения темы. Ленточный график

.2 Расчет затрат на разработку продукта

.2.1 Составление сметы затрат на разработку модуля

.2.2 Расчет цены для НИР

.3 Расчет и выводы по эффективности предложений

. Безопасность и экологичность проекта

.1 Организация рабочего места пользователя ПЭВМ

.2 Анализ опасных и вредных факторов при работе с ПЭВМ

.2.1 Влияние электрического тока

.2.2 Параметры микроклимата

.2.3 Уровень шума на рабочем месте

.2.4 Пожарная опасность

.2.5 Освещенность рабочего места

.3 Расчет общего искусственного освещения в помещении с ПЭВМ

.4 Эргономизация рабочего места с ПЭВМ

.5 Экологичность проекта

Заключение

Список использованных источников

Приложение А - Листинги разработанных программных модулей

Приложение Б - Графический материал


Введение


В прошлом информация считалась сферой бюрократической работы и ограниченным инструментом для принятия решений. Сегодня информацию рассматривают как один из основных ресурсов развития общества, а информационные системы и технологии как средство повышения производительности и эффективности работы людей. Наиболее широко информационные системы и технологии используются в производственной, управленческой и финансовой деятельности, хотя начались подвижки в сознании людей, занятых и в других сферах, относительно необходимости их внедрения и активного применения. Это определило угол зрения, под которым будут рассмотрены основные области их применения.

Главное внимание уделяется рассмотрению информационных систем и технологий с позиций использования их возможностей для повышения эффективности труда работников информационной сферы производства и поддержки принятия решений в организациях (фирмах).

Информационная система - взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации в интересах достижения поставленной цели. Современное понимание информационной системы предполагает использование в качестве основного технического средства переработки информации персонального компьютера. В крупных организациях наряду с персональным компьютером в состав технической базы информационной системы может входить мэйнфрейм или суперЭВМ. Кроме того, техническое воплощение информационной системы само по себе ничего не будет значить, если не учтена роль человека, для которого предназначена производимая информация и без которого невозможно ее получение и представление.

Создание и использование информационной системы для любой организации нацелены на решение следующих задач:

)Структура информационной системы, ее функциональное назначение должны соответствовать целям, стоящим перед организацией. Например, в коммерческой фирме - эффективный бизнес; в государственном предприятии - решение социальных и экономических задач.

)Информационная система должна контролироваться людьми, ими пониматься использоваться в соответствии с основными социальными и этическими принципами.

)Производство достоверной, надежной, своевременной и систематизированной информации.

Информация является одним из ценнейших ресурсов общества наряду с такими традиционными материальными видами ресурсов, как нефть, газ, полезные ископаемые и др., а значит, процесс ее переработки по аналогии с процессами переработки материальных ресурсов можно воспринимать как технологию. Информационная технология - процесс, использующий совокупность средств и методов сбора, обработки и передачи данных (первичной информации) для получения информации нового качества о состоянии объекта, процесса или явления (информационного продукта).

Цель технологии материального производства - выпуск продукции, удовлетворяющей потребности человека или системы.

Цель информационной технологии - производство информации для ее анализа человеком и принятия на его основе решения по выполнению какого-либо действия. В условиях развития современного общества информационные технологии глубоко проникают жизнь людей. Они являются стимулом для развития, как мировой экономики, так и других сфер человеческой деятельности. Сейчас затруднительно найти сферу деятельности, в которой не применяются информационные технологии. Без них современное общество в нынешнем виде не сможет существовать.[6]


1.Постановка задачи и технико-экономическое обоснование задания


1.1Постановка задачи


В рамках дипломной работы передо мной была поставлена задача по разработке программы доступа к данным автомобильного предприятия города.

Современная жизнь немыслима без эффективного управления. Важной категорией являются системы обработки информации, от которых во многом зависит эффективность работы любого предприятия ли учреждения. Такая система должна:

.обеспечивать получение общих и/или детализированных отчетов по итогам работы;

.позволять легко определять тенденции изменения важнейших показателей;

.обеспечивать получение информации, критической по времени, без существенных задержек;

.выполнять точный и полный анализ данных.

Целью данной работы проекта является разработка информационной системы с клиент-серверной архитектурой для хранения информации в предметной области «Автомобильные предприятия города» и приложения для работы с данной системой. Разработанная информационная система будет обеспечивать хранение информации о водителях, их зарплатах, отпусках, о закреплённых за водителями автомобилях, о ремонте автомобилей, транспортных перевозках, маршрутах перевозок. При работе с данной информацией пользователь может её редактировать, просматривать, добавлять и осуществлять поиск по записям в таблицах базы данных. Реляционная алгебра - это коллекция операций, которые принимают отношения в качестве операндов и возвращают отношение в качестве результата. Первая версия этой алгебры была определена Коддом.

Разработка и реализация инфологической модели ИС предполагает использование определенного математического аппарата, представляющего средства описания и управления данными. Для разрабатываемой модели данных была применена реляционная модель данных и средства реляционной алгебры.

Основу манипуляционной части реляционной модели составляют два базовых механизма манипулирования реляционными данными - основанная на теории множеств реляционная алгебра и базирующееся на математической логике (точнее, на исчислении предикатов первого порядка) реляционное исчисление. Реляционная алгебра предоставляет набор операторов, использующих отношения в качестве операндов и возвращающих отношения в качестве результата. Эдгаром Коддом была предложена «начальная» алгебра («алгебра Кодда»), состоящая из восьми операторов, условно разделенных на две группы:

Традиционные операции над множествами, модифицированные с позиции использования отношений в качестве операндов:

) Объединение. Операция возвращает отношение, содержащее все кортежи, которые принадлежат либо одному из двух заданных отношений, либо им обоим;

) Пересечение. Операция возвращает отношение, содержащее все кортежи, которые принадлежат одновременно двум заданным отношениям;

) Разность. Операция возвращает отношение, содержащее все кортежи, которые принадлежат первому из двух заданных отношений и не принадлежат второму;

) Расширенное декартово произведение. Операция возвращает отношение, содержащее все возможные кортежи, которые являются сочетанием двух кортежей, принадлежащих соответственно двум заданным отношениям.

Специальные реляционные операции:

) Выборка (Ограничение). Операция возвращает отношение, содержащее все кортежи из заданного отношения, которые удовлетворяют заданным условиям;

) Проекция. Операция возвращает отношение, содержащее все кортежи (подкортежи) из заданного отношения, которые остались в этом отношении после исключения из него некоторых атрибутов;

) Соединение. Операция возвращает отношение, содержащее все возможные кортежи, которые представляют собой комбинацию атрибутов двух кортежей, принадлежащим двум заданным отношениям, при условии, что в этих двух комбинируемых кортежах присутствуют одинаковые значения в одном или нескольких общих для исходных отношений атрибутах (При однократном появлении этих общих значений в результирующем кортеже).

) Деление. Для заданных двух унарных отношений и одного бинарного, операция возвращает отношение, содержащее все кортежи из первого унарного отношения, которые содержатся также в бинарном отношении и соответствуют всем кортежам во втором унарном отношении.

Хотя в основе теоретико-множественной части реляционной алгебры лежит классическая теория множеств, соответствующие операции реляционной алгебры обладают некоторыми особенностями.

Смысл операции объединения в реляционной алгебре в целом остается теоретико-множественным. Но если в теории множеств операция объединения осмысленна для любых двух множеств-операндов, то в случае реляционной алгебры результатом операции объединения должно являться отношение. Если допустить в реляционной алгебре возможность теоретико-множественного объединения произвольных двух отношений (с разными схемами), то, конечно, результатом операции будет множество, но множество разнотипных кортежей, т.е. не отношение. Это приводит к появлению понятия совместимости отношений по объединению: два отношения совместимы по объединению только в том случае, когда обладают одинаковыми заголовками(в заголовках обоих отношений содержится один и тот же набор имен атрибутов, и одноименные атрибуты определены на одном и том же домене, т. е. типе данных). Если два отношения совместимы, то при выполнении над ними операций объединения, пересечения и взятия разности результатом операции является отношение с корректно определенным заголовком, совпадающим с заголовком каждого из отношений-операндов. Если два отношения совместимы во всем, кроме имен атрибутов, то до выполнения операции типа соединения эти отношения можно сделать полностью совместимыми путем применения операции переименования. Каждое значение-отношение характеризуется заголовком (или схемой) и телом (или множеством кортежей).

Поскольку отношения являются множествами, для любых двух отношений возможно получение прямого произведения. Но результат не будет отношением и элементами результата будут не кортежи, а пары кортежей. Поэтому в реляционной алгебре используется специализированная форма операции взятия декартова произведения - расширенное декартово произведение отношений. При взятии расширенного декартова произведения двух отношений, элементом результирующего отношения является кортеж, который представляет собой объединение одного кортежа первого отношения и одного кортежа второго отношения.

Пусть имеются два отношения R1{a1, a2, …, an} и R2{b1, b2, …, bm}. Тогда результатом операции R1 TIMES R2 является отношение R{a1, a2, …, an, b1, b2, …, bm}, тело которого является множеством кортежей вида {ra1, ra2, …, ran, rb1, rb2, …, rbm} таких, что {ra1, ra2, …, ran} входит в тело R1, а {rb1, rb2, …, rbm} входит в тело R2.

Но теперь возникает проблема получения корректно сформированного заголовка отношения-результата. Поскольку схема результирующего отношения является объединением схем отношений-операндов, то очевидной проблемой может быть именование атрибутов результирующего отношения, если отношения-операнды обладают одноименными атрибутами. Эти соображения приводят к понятию совместимости по взятию расширенного декартова произведения. Два отношения совместимы по взятию расширенного декартова произведения только в том случае, если пересечение множеств имен атрибутов, взятых из их схем отношений, пусто. Любые два отношения всегда могут стать совместимыми по взятию декартова произведения, если применить операцию переименования к одному из этих отношений. Помимо набора операторов, реляционная алгебра обладает рядом свойств. Первым из них является свойство реляционной замкнутости. Эта особенность характеризует то, что результат выполнения любой операции над отношением также является отношением. Исходя из этого, можно сделать вывод о возможности использования результатов одной операции в качестве исходных данных для другой. Другими словами, возможно использование вложенных реляционных выражений (выражений, операнды которых сами являются реляционными выражениями произвольной сложности).

По поводу теоретико-множественных операций реляционной алгебры следует еще заметить, что все четыре операции являются ассоциативными коммутативными (кроме операции вычитания). То есть, если обозначить через OP любую из четырех операций, то (A OP B) OP C = A (B OP C), и следовательно, без введения двусмысленности можно писать A OP B OP C (A, B и C - отношения, обладающие свойствами, требуемыми для корректного выполнения соответствующей операции). Все операции, кроме взятия разности, являются коммутативными, т.е. A OP B = B OP A.

Реляционное исчисление является прикладной ветвью формального механизма исчисления предикатов первого порядка. Базисными понятиями исчисления являются понятие переменной с определенной для нее областью допустимых значений и понятие правильно построенной формулы, опирающейся на переменные, предикаты и кванторы.

В зависимости от того, что является областью определения переменной, различаются исчисление кортежей и исчисление доменов. В исчислении кортежей областями определения переменных являются отношения базы данных, т.е. допустимым значением каждой переменной является кортеж некоторого отношения. В исчислении доменов областями определения переменных являются домены, на которых определены атрибуты отношений базы данных, т.е. допустимым значением каждой переменной является значение некоторого домена. Основным формальным отличием исчисления доменов от исчисления кортежей является наличие дополнительного набора предикатов, позволяющих выражать так называемые условия членства. Если R - это n-арное отношение с атрибутами a1, a2,..., an, то условие членства имеет вид:


R (ai1:vi1, ai2:vi2,...,aim:vim) (m <= n),


где vij - это либо литерально задаваемая константа, либо имя кортежной переменной. Условие членства принимает значение true в том и только в том случае, если в отношении R существует кортеж, содержащий указанные значения указанных атрибутов. Если vij - константа, то на атрибут aij задается жесткое условие, не зависящее от текущих значений доменных переменных; если же vij - имя доменной переменной, то условие членства может принимать разные значения при разных значениях этой переменной.

Во всех остальных отношениях формулы и выражения исчисления доменов выглядят похожими на формулы и выражения исчисления кортежей. В частности, конечно, различаются свободные и связанные вхождения доменных переменных.

Следует отметить и недостатки представленной алгебры. Невозможность применения некоторых операций к произвольным парам значений отношений без предварительного переименования атрибутов отношений операндов означает, что алгебра Кодда не является алгеброй отношений в математическом смысле.

Поэтому Крисом Дейтом и Хью Дарвеном была предложена новая «минимальная» Алгебра А, базисом которой являются операции реляционного отрицания (дополнения), реляционной конъюнкции (или дизъюнкции) и проекции (удаления атрибута). Реляционные аналоги логических операций определяются в терминах отношений на основе обычных теоретико-множественных операций и позволяют выражать напрямую операции пересечения, декартова произведения, естественного соединения, объединения отношений и т. д. Путем комбинирования базовых операций выражаются операции переименования атрибутов, соединения общего вида, взятия разности отношений. Алгебра A позволяет лучше осознать логические основы реляционной модели, хотя, безусловно, является в меньшей степени ориентированной на практическое применение, чем алгебра Кодда.[8]


.2Анализ и оценка существующих аналогов


В рамках дипломной работы мной был проведен анализ существующих информационных систем, осуществляющих подобную деятельность. В целом, они схожи, так как предприятия подобного типа осуществляют одинаковую деятельность. Различия имеются в имеющемся автопарке, тарифах на перевозки, системах обслуживания. Результаты сравнения представлены в таблице 1. При анализе других информационных систем были выявлены следующие недостатки:

-загроможденный интерфейс;

-отсутствие кнопок для часто используемых функций;

-обилие полей для малоиспользуемых функций;

-ошибки в работе ИС;

Таблица 1 - Анализ существующих аналоговНазвание ПОРазработчикФункцииЦенаНедостаткиОбслуживание/ обучениеОбновлениеРарус:АвтотранспортРарусУчет ремонта и расхода топлива Начисление заработной платы водителям Расчет стоимости услуг автотранспортного предприятия. Планирование использования парка автомобилей Анализ результатов хозяйственной деятельности.5900Загроможденный интерфейс; большое количество редко используемых полей, большое количество бесполезных функций.Гарантийное обслуживание 1 годНеизвестноАвтоПредприятиеАвтоСофт Планирование перевозок Учет парка автомобилей Полный учёт операций ремонта транспорта; Учёт оказанных услуг (зарплата, прибыль, трудозатраты); рабочего времени; Самостоятельное управление настройками и модификация отчетовБесплатноЗагроможденный интерфейс; большое количество редко используемых полейОбучение по сопровождаемой ПО инструкцией к применению Раз в годАвтоПрокатPsoftОрганизация и планирование перевозок сотрудников Возможность перевода интерфейса программы на любой язык Учет ремонтов, ТО3000Загроможденный интерфейс, отсутствие кнопок для часто используемых функций, неработоспособность некоторых функцийНе предоставляется3 раза в годАвтопаркНеизвестноУчет работы и взаиморасчеты с водителями Учет ТО ремонтов, ДТП Организация перевозок Широкий набор функций для работы с персоналом Бухгалтерский учетНеизвестнобольшое количество ошибок (исходя из истории обновлений) большое количество редко используемых полейНе предоставляетсяНеизвестно

.3Формирование задач и требований к разрабатываемой ИС


Разрабатываемая ИС должна выполнять следующие задачи:

осуществлять вход пользователя в систему после корректно введенных данных входа;

выполнять операции по изменению строк таблиц БД (добавление, изменение, удаление);

выполнять поиск по критериям, предусмотренными системой.

Требования к разрабатываемой ИС:

-понятный и удобный интерфейс;

-безошибочная работа после отладки;

-разработка средствами, указанными в задании на ДП.


.4Обоснование принятия решения о необходимости разработки ИС


Проведя анализ существующих информационных систем, и, исходя из существующих недостатков, было принято решение о написании своей информационной системы. Такая система должна иметь следующие функции:

-хранить информацию об автомобилях, маршрутах, водителях и другом различном контенте, связанном с выбранной тематикой;

-добавлять, изменять и удалять записи, относящиеся к выбранной для разработки информационной системе;

-выполнять поиск данных;


Выбор средств разработки


2.1Понятие и характеристики информационной системы


Информационные технологии - весьма широкое определение, под которое попадает ряд отдельных технических средств и приемов работы с информацией. Но, как правило, в процессе работы с информацией люди имеют дело со вполне определенной связанной последовательностью взаимодействий с различными средствами. В зависимости от шкалы времени (от оперативных до долгосрочно-стратегических задач) и масштаба действий (от одного рабочего места до целой компании) могут обнаруживаться разные связи и последовательности, и для управления ими нужны разные методы. Методы варьируются также по степени алгоритмизации и рационализации. Наиболее рационально алгоритмизированная совокупность методов и средств работы с информацией - информационная система. Информационная система - взаимосвязанная совокупность средств, методов и персонала, используемых для хранения, обработки и выдачи информации. Информационные системы бывают разного назначения и масштаба. Также информационные системы отличаются по степени охвата сфер деятельности предприятия (учитывают ли они только бухгалтерию или также и склад, финансы, производство и т.д.). Однако все информационные системы обладают рядом свойств, которые являются для них общими:

·ИС предназначены для сбора, хранения и обработки информации. Таким образом, в основе любой информационной системы лежат средства хранения и доступа к данным;

·ИС предназначены для конечного пользователя, не являющегося специалистом в области вычислительной техники. Из этого следует, что ИС должны включать в себя клиентские приложения, обеспечивающие интуитивно понятный интерфейс.

Информационные системы бывают фактографическими и документальными. К первым относятся ИС, предназначенные для поиска однозначного ответа на запрос и для однозначного решения поставленных задач. Условно фактографические ИС делят в свою очередь на информационно-справочные системы, информационно-поисковые системы и системы оперативной обработки данных. Системы оперативной обработки данных решают такие задачи, как управление производством, бухгалтерский учет и т.п. По масштабу ИС делятся на:

·Настольные;

·Сетевые;

·ИС масштаба предприятия.

Документальные информационные системы предназначены для решения задач, не предусматривающих однозначного ответа на вопрос. Некоторые системы представляют собой смешанный тип фактографической и документальной ИС.

В большинстве случаев, когда требуется комплексная система, для хранения, обработки и поиска информации, процедура внедрения оказывается очень длительной и трудоемкой. Но несмотря на то, что процесс освоения предприятием такого нововведения, как ИС весьма сложен, в случае успешного завершения процесса затраченные ресурсы затем всегда окупаются за счет того, что:

·ИС автоматизирует применение математических методов к решению управленческих задач;

·ИС по крайней мере частично освобождает сотрудников от рутинного труда;

·ИС минимизирует вероятность появления ошибки в ходе передачи либо обработки информации;

·ИС снижает объем документов на бумаге;

·ИС совершенствует документооборот;

·ИС снижает затраты на производство товаров и услуг.[6]

.2Общие принципы построения информационной системы


Еще в 60-е годы прошлого столетия были сформулированы шесть основополагающих принципов, на которые необходимо опираться в процессе создания ИС: новых задач; системного подхода; первого руководителя; разумной типизации проектных решений; непрерывного развития системы; минимизации ввода-вывода информации. Развитие технической основы создания компьютеров и ИТ привело к переформулированию этих принципов и в ГОСТ РД 50-680-88 к ним отнесены следующие: системность, развитие (открытость), совместимость, стандартизация (унификация) и эффективность.

Принцип системности.

Системный подход предполагает учет всех этих взаимосвязей, анализ отдельных частей системы как ее самостоятельных структурных составляющих и параллельно -выявление роли каждой из них в функционировании всей системы в целом. Таким образом, реализуются процессы анализа и синтеза, фундаментальный смысл которых -разложение целого на составные части и воссоединение целого из частей. Принцип системности заключается в том, что при декомпозиции должны быть установлены такие связи между структурными компонентами системы, которые обеспечивают цельность корпоративной системы и ее взаимодействие с другими системами. Нельзя разрабатывать какую-либо задачу автономно от других и реализовывать только отдельные ее аспекты. Задача должна рассматриваться комплексно со всеми возможными информационными связями.

Пример: отбор персонала на вакантные рабочие места. Ее решение должно осуществляться с учетом следующих моментов:

использования результатов периодически проводимого профессионального и психофизиологического тестирования работников;

анализа результатов периодически проводимой аттестации рабочих мест;

анализа показателен трудовой дисциплины персонала;

разработки общих и дополнительных критериев отбора (при наличии нескольких претендентов на одно рабочее место);

использования банка данных претендентов, сформированного ранее;

индивидуального собеседования;

анализа анкетных данных и резюме (если претендент не является членом трудового коллектива).

Принцип развития (открытости)

Заключается в том, что внесение изменении в систему, обусловленных самыми различными причинами (внедрением новых информационных технологии, изменением законодательства, организационной перестройкой внутри фирмы и т. п.), должно осуществляться только путем дополнения системы без переделки уже созданного, т. е. не нарушать ее функционирования. Реализовать данный принцип на практике достаточно сложно, так как он требует очень глубокой аналитической предпроектной работы. Необходимо разделить решаемые задачи на определенные группы и для каждой из них предусмотреть возможные направления развития (например, выход в глобальные сети, применение средств для сканирования документов, шифрование информации). В любой фирме на протяжении ряда лет применяются традиционно сложившиеся методы и приемы управления. Но ситуация в компьютерном мире и в сфере экономики изменяется постоянно: модифицируется элементная база компьютеров, что делает их более мощными; появляются новые средства передачи и хранения данных; расширяются границы доступа к данным; вступают в силу новые законы и т.д. Все это необходимо учитывать как при решении традиционных задач (корректировании технологии решения, методов ввода, вывода и передачи информации), так и при постановке новых задач, принципиальное решение которых оказывается возможным только в условиях новых технологий. Если не отслеживать эти изменения и, тем более, не поспевать за ними, можно отстать от остальных пользователей и тем самым перс крыть доступ к общению с ними, а это абсолютно недопустимо, поскольку информационная изоляция имеет только негативные последствия.

Принцип современности

Заключается в том, что при создании системы должны быть реализованы информационные интерфейсы, благодаря которым она может взаимодействовать с другими системами согласно установленным правилам. В современных условиях это особенно касается сетевых связей локального и глобального уровней. Если в локальных сетях относительно несложно установить и соблюдать стандарты "общения" отдельных бизнес-процессов между собой и со смежными системами, то выход в глобальные сети требует:

.дополнительных ужесточенных мер по защите информации;

.знания и соблюдения различного рода протоколов, регламентирующих все пилы информационных обменов: знание сетевого этикета, предусматривающего такие правила, как:

регулярная проверка своей электронной почты;

периодическая чистка своего почтового ящика;

корректность в составлении сообщений;

указание координат для обратной связи и т.п.

Принцип стандартизации (унификации)

При создании системы должны быть рационально использованы типовые, унифицированные и стандартизованные элементы, проектные решения, пакеты прикладных программ, комплексы, компоненты. Задачи необходимо разрабатывать таким образом, чтобы они подходили к возможно более широкому кругу объектов. Игнорирование именно этого принципа привело в свое время к тому, что подсистема УК, несмотря на традиционный перечень задач и алгоритмов их решения, разрабатывалась на каждом предприятии самостоятельно, что привело к совершенно неоправданному расходу трудовых, материальных, финансовых и временных ресурсов. В современных разработках пакетов прикладных программ (ППП) рассматриваемый принцип задействован. Однако при знакомстве с конкретным ППП необходимо обращать внимание на сущность реализации типовых решений, поскольку каждый разработчик по-своему "видит" такие решения. Например, во многих пакетах по управлению кадрами присутствует задача "Отбор кадров". Однако в пакете фирмы Infin она реализована достаточно оригинально. Решение ее заключается в следующем. Экран разделен на две половины. Слева выводится достаточно большой список мужских и женских имен, по которому перемещается курсор. Если интересующее имя отмечено, то для него с правой стороны экрана приводится текст, и котором сообщается о том, кого обозначает имя и какими чертами характера обладает человек, имеющий его. Относиться к подобному подходу можно по-разному. Но можно сказать определенно -такого рода информации явно недостаточно для решения задачи и ограничиваться только ею нельзя.

Принцип эффективности

Предусматривает достижение рационального соотношения между затратами на создание системы и целевыми эффектами, включая конечные результаты, отражающиеся на прибыльности и получаемые по окончании внедрения автоматизации в управленческие процессы. Перечень рассмотренных принципов создания корпоративных систем взят из ГОСТ. Однако к их числу с полным правом можно отнести еще один из тех, которые были сформулированы в 60-е годы и по сей день не потеряли своей актуальности. Это - Принцип первого руководителя. Чрезвычайно важный принцип, распространяющийся на все сферы управленческой деятельности. Уровень компетентности руководителя любого уровня в производственных, административных, психологических и других вопросах определяет общие тенденции развития фирмы или се подразделении и социально-психологический климат в коллективе. Известно, что устойчивое бесконфликтное взаимопонимание среди персонала способствует росту творческих начал и эффективной повседневной деятельности. И именно руководитель и первую очередь должен обеспечивать все элементы стабильности. Сформировать такой коллектив достаточно сложно и далеко не каждый руководитель способен это сделать. Напротив, негативное отношение руководителя к каким-либо нововведениям является тормозом в развитии творческой и профессиональной инициативы работников всех категорий.[5]


.3Выбор средств разработки


Выбор СУБД

Существуют десятки СУБД, написанных для самых разных платформ, такие как Oracle, IBM DB2, SQL Server, Teradata, Sybase, Ingres, Informix, Empress, MySQL, mSQL, PostgreSQL, LEAP RDBMS, FirstBase, Ocelot, Progress, Typhoon, SQL/DS, Daffodil DB, Cloudscape, Compad Non-Stop SQL MX и SQL/MP, Linter RDBMS SQL, Interbase, Universe, GNU SQL Server.

Выбор конкретной СУБД часто является субъективным и зависит от многих параметров, среди которых не малое место занимает и ее стоимость. Язык описания данных (ЯОД) - Средства описания данных в БД и связей между ними. Средствами этого языка описывается структура БД, форматы записей, пароли, защищающие данные. Язык манипулирования данными (ЯМД) - язык для выполнения операций над данными, позволяющий менять их строение.

Для различных СУБД реализация этих уровней языков может быть различной. В одних случаях ЯОД и ЯМД требует составления пользователем программы полностью вручную, в других (что отражает современную тенденцию) в СУБД присутствует средства визуальной (зримой, наглядной) разработки программ. Для этого в современных СУБД имеются редакторы экранных форм, отчетов. Кирпичиками (инструментами) таких редакторов являются поля различных видов (поля ввода, поля вывода, вычисляемые поля), процедуры обработки различных типов (формы ввода, таблицы, отчеты, запросы). На основании созданных пользователем объектов программы - генераторы формируют программный код на языке конкретной машины или на промежуточном языке.

Рассмотри в качестве примера 3 СУБД, среди которых есть и платные и свободно распространяемые: MS SQL Server, MySQL, Oracle. Дадим краткую характеристику каждой из трех систем.

MS SQL Server

Исходный код MS SQL Server (до версии 7.0) основывался на коде Sybase SQL Server, и это позволило Microsoft выйти на рынок баз данных для предприятий, где конкурировали Oracle, IBM, и, позже, сама Sybase. Microsoft, Sybase и Ashton-Tate первоначально объединились для создания и выпуска на рынок первой версии программы, получившей название SQL Server 1.0 для OS/2 (около 1989 года), которая фактически была эквивалентом Sybase SQL Server 3.0 для Unix, VMS и др. Microsoft SQL Server 4.2 был выпущен в 1992 году и входил в состав операционной системы Microsoft OS/2 версии 1.3. Официальный релиз Microsoft SQL Server версии 4.21 для ОС Windows NT состоялся одновременно с релизом самой Windows NT (версии 3.1). Microsoft SQL Server 6.0 был первой версией SQL Server, созданной исключительно для архитектуры NT и без участия в процессе разработки Sybase.

Сервер баз данных Microsoft SQL Server в качестве языка запросов использует версию языка SQL, получившую название Transact-SQL (сокращённо T-SQL). Язык T-SQL является реализацией SQL-92 (стандарт ISO для языка SQL) с множественными расширениями. T-SQL позволяет использовать дополнительный синтаксис для хранимых процедур и обеспечивает поддержку транзакций (взаимодействие базы данных с управляющим приложением).

При взаимодействии с сетью Microsoft SQL Server и Sybase ASE используют протокол уровня приложения под названием Tabular Data Stream (TDS, протокол передачи табличных данных). Протокол TDS также был реализован в проекте FreeTDS с целью обеспечить различным приложениям возможность взаимодействия с базами данных Microsoft SQL Server и Sybase.

Для обеспечения доступа к данным Microsoft SQL Server поддерживает Open Database Connectivity (ODBC) - интерфейс взаимодействия приложений с СУБД. Версия SQL Server 2005 обеспечивает возможность подключения пользователей через веб-сервисы, использующие протокол SOAP. Это позволяет клиентским программам, не предназначенным для Windows, кроссплатформенно соединяться с SQL Server. Компания Microsoft также выпустила сертифицированный драйвер JDBC, позволяющий приложениям под управлением Java (таким как BEA и IBM WebSphere) соединяться с Microsoft SQL Server 2000 и 2005.

Также SQL Server поддерживает зеркалирование и кластеризацию баз данных. Кластер сервера SQL - это совокупность одинаково конфигурированных серверов; такая схема помогает распределить рабочую нагрузку между несколькими серверами. Все сервера имеют одно виртуальное имя, и данные распределяются по IP-адресам машин кластера в течение рабочего цикла. Также в случае отказа или сбоя на одном из серверов кластера доступен автоматический перенос нагрузки на другой сервер.

SQL Server поддерживает избыточное дублирование данных по трем сценариям:

-Снимок: Производится «снимок» базы данных, который сервер отправляет получателям.

-История изменений: Все изменения базы данных непрерывно передаются пользователям.

-Синхронизация с другими серверами: Базы данных нескольких серверов синхронизируются между собой. Изменения всех баз данных происходят независимо друг от друга на каждом сервере, а при синхронизации происходит сверка данных. Данный тип дублирования предусматривает возможность разрешения противоречий между БД.

В SQL Server 2005 встроена поддержка.NET Framework. Благодаря этому хранимые процедуры БД могут быть написаны на любом языке платформы.NET, используя полный набор библиотек, доступных для.NET Framework, включая Common Type System (система обращения с типами данных в Microsoft.NET Framework). Однако, в отличие от других процессов,.NET Framework, будучи базисной системой для SQL Server 2005, выделяет дополнительную память и выстраивает средства управления SQL Server вместо того, чтобы использовать встроенные средства Windows. Это повышает производительность в сравнении с общими алгоритмами Windows, так как алгоритмы распределения ресурсов специально настроены для использования в структурах SQL Server.

MYSQL

MySQL возникла как попытка применить mSQL к собственным разработкам компании: таблицам, для которых использовались ISAM - подпрограммы низкого уровня. В результате был выработан новый SQL-интерфейс, но API-интерфейс остался в наследство от mSQL.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

февраля 2008 года Sun Microsystems приобрела MySQL AB за 1 миллиард долларов.

января 2010 года Oracle Corporation приобрела Sun Microsystems и включила MySQL в свою линейку СУБД.

Сообществом разработчиков MySQL созданы различные ответвления кода, такие как Drizzle, OurDelta, Percona Server, и MariaDB. Все эти ответвления уже существовали на момент поглощения компаний Sun и MySQL AB корпорацией Oracle.

Современные версии MYSQL обладают следующими возможностями:

-Сегментирование - возможность разбить одну большую таблицу на несколько частей, размещенных в разных файловых системах, основываясь на определенной пользователем функции. При определенных условиях это может дать серьезное увеличение производительности и, кроме того, облегчает масштабирование таблиц.

-Изменено поведение ряда операторов, для обеспечения большей совместимости со стандартом SQL2003.

-Построчная репликация (англ. row-based replication), при которой в бинарный лог будет записываться только информация о реально измененных строках таблицы вместо оригинального (и, возможно, медленного) текста запроса. Построчную репликацию можно использовать только для определенных типов sql-запросов, в терминах MySQL - смешанная репликация (англ. mixed replication).

-Встроенный планировщик периодически запускаемых работ. По синтаксису добавление задачи похоже на добавление триггера к таблице, по идеологии - на crontab.

-Дополнительный набор функций для обработки XML, реализация поддержки XPath.

-Новые средства диагностики проблем и утилиты для анализа производительности. Расширены возможности по управлению содержимым лог-файлов, логи теперь могут быть сохранены и в таблицах general_log и slow_log. Утилита mysqlslap позволяет провести нагрузочное тестирование БД с записью времени реакции на каждый запрос.

-Для упрощения операции обновления подготовлена утилита mysql_upgrade, которая выполнит проверку всех существующих таблиц на предмет совместимости с новой версией, и при необходимости выполнит надлежащие корректировки.

-MySQL Cluster отныне выпущен как отдельный продукт, базирующийся на MySQL 5.1 и хранилище NDBCLUSTER.

-Значительные изменения в работе MySQL Cluster, такие, как, например, возможность хранения табличных данных на диске.

-Возврат к использованию встроенной библиотеки libmysqld, отсутствовавшей в MySQL 5.0.

-API для плагинов, которое позволяет загружать сторонние модули, расширяющие функциональность (например, полнотекстовый поиск), без перезапуска сервера.

-Реализация парсера полнотекстового поиска в виде plug-in.[1]

Oracle

СУБД Oracle - ветеран рынка реляционных СУБД. Разработка этой системы была начата практически в то же время, что и IBM DB2 и по настоящее время эти системы остаются основными конкурентами.

Oracle занимает лидирующие позиции на рынке СУБД и, что особенно важно, лидирует на платформах Unix и Windows. В России также обозначилось лидерство Oracle, особенно в области крупномасштабных информационных систем. Фактически в нашей стране СУБД Oracle стала стандартом государственных информационных систем.

Причина широкой распространенности Oracle заключается, прежде всего, в высоких эксплуатационных характеристиках СУБД, большом количестве подготовленных отечественных специалистов по Oracle, наличию поддерживающей инфраструктуры - учебных центров, широкой сети партнеров Oracle, большому числу технических курсов по Oracle в высших учебных заведениях и т.д. Так, только в Москве имеется более десятка учебных центров, предоставляющих широкий спектр технических курсов практически по всем линиям программных продуктов Oracle. Партнерская сеть по всей стране насчитывает более 160 организаций, что гарантирует поддержку ПО Oracle практически в любой точке страны. На русском языке уже издано достаточно много качественных книг по СУБД Oracle.

Служба технической поддержки Oracle построена на профессиональной основе. Служба технической поддержки в России сертифицирована по стандарту ISO 9000.

Кроме того, ведущие компании - партнеры Oracle, такие как FORS, RDTex имеют собственные центры технической поддержки.

Важным является и то, что наряду с СУБД, компания Oracle поставляет центральный инфраструктурный продукт - Internet Application Server, сервер приложений, функционирующих в среде Internet/Intranet, а также CASE-средства, средства быстрой разработки приложений, средства построения хранилищ данных, оперативного анализа данных, выявления сложных зависимостей в данных (Data Mining), что позволяет поставлять не отдельные продукты, но комплексные технологические решения для заказчиков.

С технической точки зрения важно то, что Oracle функционирует практически на всех существующих компьютерных платформах, в том числе и на больших ЭВМ (OS/390) и на еще сохраняющих популярность системах Vax VMS, не говоря уже о Windows NT и различных разновидностях Unix, в том числе Solaris, HP-UX, AIX, Linux, SCO Unix и т.д.

Другой важной характеристикой является поддержка Oracle всех возможных вариантов архитектур, в том числе симметричных многопроцессорных систем, кластеров, систем с массовым параллелизмом и т.д. Очевидна значимость этих характеристик для современных масштабных организаций, где эксплуатируется множество компьютеров различных моделей и производителей. В таких условиях фактором успеха является максимально возможная типизация предлагаемых решений, ставящая своей целью существенное снижение стоимости владения программным обеспечением. Унификация систем управления базами данных - один из наиболее значимых шагов на пути достижения этой цели.

Ядром СУБД Oracle является сервер базы данных, который поставляется в одном из четырех вариантов в зависимости от масштаба информационной системы, в рамках которой предполагается его применение. Для систем масштаба крупной организации предлагается продукт Oracle Database Enterprise Edition (корпоративная редакция), для которого имеется целый набор опций, архитектурно и функционально расширяющих возможности сервера. Именно Oracle Database Enterprise Edition устанавливается на кластерах (с опцией Parallel Server, по версию 8i включительно или RAC - Real Application Cluster, начиная с версии 9i и старше), позволяя создавать системы высокой готовности. Продукт Oracle Database Standard Edition (стандартная редакция) ориентирован на организации среднего масштаба или подразделения в составе крупной организации. Для персонального использования предназначен продукт Oracle Database Personal Edition (персональная редакция).

Важнейшим преимуществом Oracle перед конкурентами (и, прежде всего, перед DB2) является идентичность кода различных версий сервера баз данных Oracle для всех платформ, гарантирующая идентичность и предсказуемость работы Oracle на всех типах компьютеров, какие бы не входили в ее состав. Все варианты сервера Oracle имеют в своей основе один и тот же исходный программный код и функционально идентичны, за исключением некоторых опций, которые, например, могут быть добавлены к Oracle Database Enterprise Edition и не могут - к Oracle Database Standard Edition.

Таким образом, для всех платформ существует единая СУБД в различных версиях, которая ведет себя одинаково и предоставляет одинаковую функциональность вне зависимости от платформы, на которой она установлена.

Жесткая технологическая схема разработки Oracle, опирающаяся на принципы идентичности исходного программного кода для различных версий и платформ, контрастирует со схемами других компаний. Так, СУБД DB/2 представляет собой семейство продуктов, но не единый продукт. Функционально версия DB2 для IBM S/390 столь существенно отличается от DB2 для платформ UNIX и NT, что позволяет говорить вообще о разных продуктах.

СУБД Oracle скрывает детали реализации механизмов управления данным на каждой из платформ, что дает основание говорить о практически полной унификации базового программного обеспечения. Дополнительно к этому, архитектура Oracle позволяет переносить прикладные системы, реализованные на одной платформе, на другие платформы без изменений, как в структурах баз данных, так и кодов приложений. При этом, основным критерием, определяющим возможность переноса тех или иных программных компонентов между платформами является полное исключение их них машинно-зависимого кода.[19]

Проанализировав все вышерассмотренные СУБД, в данной дипломной работе будем использовать СУБД MS SQL Server.

Выбор языка программирования и среды разработки

Язык программирования - формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования определяет набор лексических, синтаксических и семантических правил, задающих внешний вид программы и действия, которые выполнит исполнитель (компьютер) под ее управлением.

Со времени создания первых программируемых машин человечество придумало более двух с половиной тысяч языков программирования. Каждый год их число увеличивается. Некоторыми языками умеет пользоваться только небольшое число их собственных разработчиков, другие становятся известны миллионам людей.

Для разработки программы, использующей обращение к СУБД, может быть использовано множество языков программирования. Рассмотрим некоторые из них, такие как Java, PHP, C/С++, Object Pascal.

Java

Программы на Java транслируются в байт-код, выполняемый виртуальной машиной Java (JVM) - программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор. Трансляция в байтовый код увеличивает скорость выполнения и уменьшает размер Java программ.

Достоинство подобного способа выполнения программ - в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, для которого существует соответствующая виртуальная машина. Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание.

Часто к недостаткам концепции виртуальной машины относят то, что исполнение байт-кода виртуальной машиной может снижать производительность программ и алгоритмов, реализованных на языке Java. Данное утверждение было справедливо для первых версий виртуальной машины Java, однако в последнее время оно практически потеряло актуальность. Этому способствовал ряд усовершенствований:

-применение технологии трансляции байт-кода в машинный код непосредственно во время работы программы (JIT-технология) с возможностью сохранения версий класса в машинном коде;

-широкое использование платформенно-ориентированного кода (native-код) в стандартных библиотеках;

-аппаратные средства, обеспечивающие ускоренную обработку байт-кода (например, технология Jazelle, поддерживаемая некоторыми процессорами фирмы ARM).

По данным сайта shootout.alioth.debian.org, для семи разных задач время выполнения на Java составляет в среднем в полтора-два раза больше, чем для C/C++, в некоторых случаях Java быстрее, а в отдельных случаях в 7 раз медленнее. С другой стороны, для большинства из них потребление памяти Java-машиной было в 10-30 раз больше, чем программой на C/C++.

Идеи, заложенные в концепцию и различные реализации среды виртуальной машины Java, вдохновили множество энтузиастов на расширение перечня языков, которые могли бы быть использованы для создания программ, исполняемых на виртуальной машине. Эти идеи нашли также выражение в спецификации общеязыковой инфраструктуры CLI, заложенной в основу платформы.NET компанией Microsoft.

СУБД Oracle включает JVM как свою составную часть, обеспечивающую возможность непосредственного программирования СУБД на языке Java, включая, например, хранимые процедуры.

Основные возможности языка Java:

-автоматическое управление памятью;

-расширенные возможности обработки исключительных ситуаций;

-богатый набор средств фильтрации ввода/вывода;

-набор стандартных коллекций, таких как массив, список, стек и т. п.;

-наличие простых средств создания сетевых приложений (в том числе с использованием протокола RMI);

-наличие классов, позволяющих выполнять HTTP-запросы и обрабатывать ответы;

-встроенные в язык средства создания многопоточных приложений;

-унифицированный доступ к базам данных:

-на уровне отдельных SQL-запросов - на основе JDBC, SQLJ;

-на уровне концепции объектов, обладающих способностью к хранению в базе данных - на основе Java Data Objects и Java Persistence API;

-поддержка шаблонов (начиная с версии 1.5);

-параллельное выполнение программ.[20]

PHP - один из популярных скриптовых языков благодаря своей простоте, скорости выполнения, богатой функциональности, кроссплатформенности и распространению исходных кодов на основе лицензии PHP.

Популярность в области построения веб-сайтов определяется наличием большого набора встроенных средств для разработки веб-приложений, таких как:

-автоматическое извлечение POST и GET-параметров, а также переменных окружения веб-сервера в предопределённые массивы;

-взаимодействие с большим количеством различных систем управления базами данных (MySQL, MySQLi, SQLite, PostgreSQL, Oracle (OCI8), Oracle, Microsoft SQL Server, Sybase, ODBC, mSQL, IBM DB2, Cloudscape и Apache Derby, Informix, Ovrimos SQL, Lotus Notes, DB++, DBM, dBase, DBX, FrontBase, FilePro, Ingres II, SESAM, Firebird / InterBase, Paradox File Access, MaxDB, Интерфейс PDO);

-автоматизированная отправка HTTP заголовков;

-работа с HTTP авторизацией;

-работа с cookies и сессиями;

-работа с локальными и удалёнными файлами, сокетами;

-обработка файлов, загружаемых на сервер;

-работа с XForms.

PHP-скрипты, обычно, обрабатываются интерпретатором в порядке, обеспечивающем кроссплатформенность разработанного приложения:

-лексический анализ исходного кода и генерация лексем;

-синтаксический анализ полученных лексем;

-генерация байт-кода;

-выполнение байт-кода интерпретатором (без создания исполняемого файла).

Для увеличения быстродействия приложений, возможно, использование специального программного обеспечения, так называемых акселераторов. Принцип их работы заключается в кэшировании однажды сгенерированного байт-кода в памяти и/или на диске, таким образом, из процесса работы приложения исключаются этапы 1-3, что в общем случае ведёт к значительному ускорению работы. Наибольшая эффективность акселератора достигается на скриптах с большим количеством исходного кода, содержащих небольшое количество операций, ресурсоёмких при выполнении, даже, считанного количества раз (например, таких, как масштабирование изображений).

Важной особенностью является то, что разработчику нет необходимости заботиться о распределении и освобождении памяти. Ядро PHP реализует средства для автоматического управления памятью; вся выделенная память возвращается системе после завершения работы скрипта.[23]

С/С++/С#++ - компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником - языком C, - наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «C++» происходит от языка C, в котором унарный оператор ++ обозначает инкремент переменной.

Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (например, видеоигры). Существует несколько реализаций языка C++ - как бесплатных, так и коммерческих. Их производят Проект GNU, Microsoft, Intel и Embarcadero (Borland). C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.

При создании C++ стремились сохранить совместимость с языком C. Множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико - отчасти благодаря тому, что синтаксис C++ был основан на синтаксисе C.

Нововведениями C++ в сравнении с C являются:

-поддержка объектно-ориентированного программирования;

-поддержка обобщённого программирования через шаблоны;

-дополнительные типы данных;

-исключения;

-пространства имён;

-встраиваемые функции;

-перегрузка операторов;

-перегрузка имён функций;

-ссылки и операторы управления свободно распределяемой памятью;

-дополнения к стандартной библиотеке.

Достоинства языка С++:

-Поддерживаются различные стили и технологии программирования, включая традиционное директивное программирование, ООП, обобщённое программирование, метапрограммирование (шаблоны, макросы).

-Предсказуемое выполнение программ является важным достоинством для построения систем реального времени. Весь код, неявно генерируемый компилятором для реализации языковых возможностей (например, при преобразовании переменной к другому типу), определён в стандарте. Также строго определены места программы, в которых этот код выполняется. Это даёт возможность замерять или рассчитывать время реакции программы на внешнее событие.

-Автоматический вызов деструкторов объектов при их уничтожении, причём в порядке, обратном вызову конструкторов. Это упрощает (достаточно объявить переменную) и делает более надёжным освобождение ресурсов (память, файлы, семафоры и т. п.), а также позволяет гарантированно выполнять переходы состояний программы, не обязательно связанные с освобождением ресурсов (например, запись в журнал).

-Пользовательские функции-операторы позволяют кратко и ёмко записывать выражения над пользовательскими типами в естественной алгебраической форме.

-Язык поддерживает понятия физической (const) и логической (mutable) константности. Это делает программу надёжнее, так как позволяет компилятору, например, диагностировать ошибочные попытки изменения значения переменной. Объявление константности даёт программисту, читающему текст программы дополнительное представление о правильном использовании классов и функций, а также может являться подсказкой для оптимизации. Перегрузка функций-членов по признаку константности позволяет определять изнутри объекта цели вызова метода (константный для чтения, не константный для изменения). Объявление mutable позволяет сохранять логическую константность при использовании кэшей и ленивых вычислений.

-Используя шаблоны, возможно создавать обобщённые контейнеры и алгоритмы для разных типов данных, а также специализировать и вычислять на этапе компиляции.

-Возможность имитации расширения языка для поддержки парадигм, которые не поддерживаются компиляторами напрямую. Например, библиотека Boost.Bind позволяет связывать аргументы функций.

-Возможность создания встроенных предметно-ориентированных языков программирования. Такой подход использует, например библиотека Boost.Spirit, позволяющая задавать EBNF-грамматику парсеров прямо в коде C++.

-Используя шаблоны и множественное наследование можно имитировать классы-примеси и комбинаторную параметризацию библиотек. Такой подход применён в библиотеке Loki, класс SmartPtr которой позволяет, управляя всего несколькими параметрами времени компиляции, сгенерировать около 300 видов «умных указателей» для управления ресурсами.

-Кроссплатформенность: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ. Для определения реальных свойств системы выполнения в стандартной библиотеке присутствуют соответствующие возможности. Доступны компиляторы для большого количества платформ, на языке C++ разрабатывают программы для самых различных платформ и систем.

-Эффективность. Язык спроектирован так, чтобы дать программисту максимальный контроль над всеми аспектами структуры и порядка исполнения программы. Ни одна из языковых возможностей, приводящая к дополнительным накладным расходам, не является обязательной для использования - при необходимости язык позволяет обеспечить максимальную эффективность программы.

-Имеется возможность работы на низком уровне с памятью, адресами.

-Высокая совместимость с языком C, позволяющая использовать весь существующий C-код (код на C может быть с минимальными переделками скомпилирован компилятором C++; библиотеки, написанные на C, обычно могут быть вызваны из C++ непосредственно без каких-либо дополнительных затрат, в том числе и на уровне функций обратного вызова, позволяя библиотекам, написанным на C, вызывать код, написанный на С++).[22]# - объектно ориентированный язык программирования. Разработан как язык разработки приложений для платформы Microsoft.NET Framework.# относится к семье языков с C-подобным синтаксисом, из них его синтаксис наиболее близок к C++ и Java. Язык имеет статическую типизацию, поддерживает полиморфизм, перегрузку операторов (в том числе операторов явного и неявного приведения типа), делегаты, атрибуты, события, свойства, обобщённые типы и методы, итераторы, анонимные функции с поддержкой замыканий, LINQ, исключения, комментарии в формате XML. Переняв многое от своих предшественников - языков C++, Java, Delphi, Модула и Smalltalk - С#, опираясь на практику их использования, исключает некоторые модели, зарекомендовавшие себя как проблематичные при разработке программных систем, например, C# не поддерживает множественное наследование классов (в отличие от C++). C# разрабатывался как язык программирования прикладного уровня для CLR и, как таковой, зависит, прежде всего, от возможностей самой CLR. Это касается, прежде всего, системы типов C#, которая отражает BCL. Присутствие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть транслирована в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем. (Однако эта закономерность была нарушена с выходом C# 3.0, представляющим собой расширения языка, не опирающиеся на расширения платформы.NET.) CLR предоставляет C#, как и всем другим.NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.[2]

Object Pascal

Object Pascal - результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal - динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией - данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию.

Также отличительным свойством Object Pascal от С++ является то, что объекты по умолчанию располагаются в динамической памяти. Однако можно переопределить виртуальные методы NewInstance и FreeInstance класса TObject.

Object Pascal (Delphi) является результатом функционального расширения Turbo Pascal. Начиная с версии среды разработки Delphi 7, фирма Borland стала официально называть язык Object Pascal как Delphi.

Простота, скорость и эффективность Delphi объясняют ее популярность. Delphi имеет один из самых быстрых компиляторов, порождающий, тем не менее, весьма и весьма неплохой объектный код. Есть и другие достоинства: простота изучения Object Pascal; облегчающие жизнь нововведения - вроде свойств (properties); программы, написанные на Delphi, не требуется снабжать дополнительными библиотеками (в отличие от связки C++/MFC). В самом деле, VCL предоставляет удобный, легко расширяемый объектно-ориентированный интерфейс к Windows, что ни в коей мере не мешает программисту опускаться в самые глубины Windows API. Создателям оригинальных компонентов это приходится делать довольно часто, в отличие

от "просто программистов". Как было сказано выше, модель программирования в Delphi - компонентная, что позволяет пользоваться компонентами, написанными другими разработчиками, даже не имея их исходного кода и уж подавно не изучая его. В Интернете есть огромное количество компонентов, значительная часть которых распространяется бесплатно. Применение компонентной модели приводит к тому, что довольно многое в поведении объектов программировать не нужно вообще, и многое, на что в других средах ушли бы недели, можно сделать за часы или даже минуты. К достоинствам можно отнести очень быстрый браузер классов и мгновенный вывод подсказки автозавершения кода (code completion). Конечно, Object Pascal накладывает определенные ограничения, но для тех вещей, для которых ее писали, Delphi подходит практически оптимально.

Проанализировав все вышерассмотренные языки программирования, в данной дипломной работе будем использовать объектно-ориентированный язык программирования С#.[5]

Среда разработки - система программных средств, используемая программистами для разработки программного обеспечения.

Обычно среда разработки включает в себя:

-текстовый редактор;

-компилятор и/или интерпретатор;

-средства автоматизации сборки;

-отладчик.

Иногда содержит также средства для интеграции с системами управления версиями и разнообразные инструменты для упрощения конструирования графического интерфейса пользователя. Многие современные среды разработки также включают браузер классов, инспектор объектов и диаграмму иерархии классов - для использования при объектно-ориентированной разработке программного обеспечения.

Хотя, и существуют среды разработки, предназначенные для нескольких языков программирования - такие, как Eclipse, NetBeans, Embarcadero RAD Studio, Qt Creator или Microsoft Visual Studio, обычно среда разработки предназначается для одного определённого языка программирования - как, например, Visual Basic, Delphi, Dev-C++.

Рассмотрим такие среды разработки, как Eclipse, NetBeans, Delphi, Microsoft Visual Studio.

Eclipse

Первоначально Eclipse разрабатывалась фирмой IBM как преемник среды разработки IBM VisualAge, в качестве корпоративного стандарта IDE для разработки на разных языках под платформы IBM. По сведениям IBM, проектирование и разработка стоили 40 миллионов долларов. Исходный код был полностью открыт и сделан доступным после того, как Eclipse был передан для дальнейшего развития независимому от IBM сообществу.

В Eclipse 3.0 (2003 год) были выбраны спецификации сервисной платформы OSGi, как архитектура времени выполнения. С версии 3.0 Eclipse перестал быть монолитной IDE, поддерживающей расширения, а сам стал набором расширений. В основе лежат фреймворк OSGi и SWT/JFace, на основе которых разработан следующий слой - RCP (Rich Client Platform, платформа для разработки полноценных клиентских приложений). RCP служит основой не только для Eclipse, но и для других RCP-приложений, например Azureus и File Arranger. Следующий слой - сам Eclipse, представляющий собой набор расширений RCP - редакторы, панели, перспективы, модуль CVS и модуль Java Development Tools (JDT).

Eclipse - в первую очередь полноценная Java IDE, нацеленная на групповую разработку: среда интегрирована с системами управления версиями - CVS в основной поставке, для других систем (например, Subversion, MS SourceSafe) существуют плагины. В силу бесплатности и

высокого качества, Eclipse во многих организациях является корпоративным стандартом для разработки приложений.

Второе назначение Eclipse - служить платформой для разработки новых расширений, чем он и завоевал популярность: любой разработчик может расширить Eclipse своими модулями. Уже существуют C/C++ Development Tools (CDT), разрабатываемые инженерами QNX совместно с IBM, и средства для языков COBOL, FORTRAN, PHP и пр. от различных разработчиков. Множество расширений дополняет среду Eclipse менеджерами для работы с базами данных, серверами приложений и др.

Eclipse написана на Java, потому является платформонезависимым продуктом, за исключением библиотеки SWT, которая разрабатывается для всех распространённых платформ. Библиотека SWT используется вместо стандартной для Java библиотеки Swing. Она полностью опирается на низлежащую платформу (операционную систему), что обеспечивает быстроту и натуральный внешний вид пользовательского интерфейса, но иногда вызывает на разных платформах проблемы совместимости и устойчивости приложений.

NetBeans

NetBeans IDE - свободная интегрированная среда разработки приложений (IDE) на языках программирования Java, JavaFX, Python, PHP, JavaScript, C++, Ада и ряде других.

Для разработки программ в среде NetBeans и для успешной инсталляции и работы самой среды NetBeans должен быть предварительно установлен Sun JDK или J2EE SDK подходящей версии. Среда разработки NetBeans по умолчанию поддерживала разработку для платформ J2SE и J2EE. Начиная с версии 6.0 Netbeans поддерживает разработку для мобильных платформ J2ME, C++ (только g++), PHP и Ruby без установки дополнительных компонентов.

Проект NetBeans IDE поддерживается и спонсируется компанией Oracle, однако разработка NetBeans ведется независимо сообществом разработчиков-энтузиастов (NetBeans Community) и компанией NetBeans Org.

По качеству и возможностям последние версии NetBeans IDE не уступают лучшим коммерческим (платным) интегрированным средам разработки для языка Java, таким, как IntelliJ IDEA, поддерживая рефакторинг, профилирование, выделение синтаксических конструкций цветом, автодополнение набираемых конструкций на лету, множество предопределённых шаблонов кода и др.

В версии NetBeans IDE 6.1 декларируется поддержка UML, SOA, языка программирования Ruby (включая поддержку Ruby on Rails), а также средства для создания приложений на J2ME для мобильных телефонов. В версии 6.5 добавлена поддержка языка PHP. Также для тестирования выложен модуль поддержки Python.

NetBeans IDE поддерживает плагины, позволяя разработчикам расширять возможности среды. Одним из самых популярных плагинов является мощный дизайнер отчётов iReport (основанный на библиотеке JasperReports).

На идеях, технологиях и в значительной части на исходном коде NetBeans IDE базируются предлагаемые фирмой Sun коммерческие интегрированные среды разработки для Java - Sun Java Studio Creator, Sun Java Studio Enterprise и Sun Studio (для ведения разработки на C, C++ или Фортран). Сравнительно недавно Sun стала предлагать эти среды разработки бесплатно для зарегистрировавшихся в Sun Developer Network (SDN) разработчиков, сама же регистрация на сайте бесплатна и не требует никаких предварительных условий, кроме согласия с лицензией CDDL.

NetBeans IDE доступна в виде готовых дистрибутивов (прекомпилированных бинарных файлов) для платформ Microsoft Windows, Linux, FreeBSD, Mac OS X, OpenSolaris и Solaris (как для SPARC, так и для x86 - Intel и AMD). Для всех остальных платформ доступна возможность скомпилировать NetBeans самостоятельно из исходных текстов.

В релизе NetBeans IDE 6.7 была добавлена интеграция с Project Kenai, поддержка языка Groovy и веб-фреймворка Grails. В версии 6.8 - поддержка PHP-фреймворка Symfony, а в 6.9 - Zend Framework.[20]

Delphi

Delphi - среда программирования, в которой используется язык программирования Object Pascal. Начиная со среды разработки Delphi 7.0, в официальных документах Borland стала использовать название Delphi для обозначения языка Object Pascal.

Изначально среда разработки была предназначена исключительно для разработки приложений Microsoft Windows, затем был реализован также для платформ Linux (как Kylix), однако после выпуска в 2002 году Kylix 3 его разработка была прекращена, и, вскоре после этого, было объявлено о поддержке Microsoft.NET. При этом высказывались предположения, что эти два факта взаимосвязаны.

Реализация среды разработки проектом Lazarus (Free Pascal, компиляция в режиме совместимости с Delphi) позволяет использовать его для создания приложений на Delphi для таких платформ, как Linux, Mac OS X и Windows CE.

Также предпринимались попытки использования языка в проектах GNU и написания компилятора для GCC.

Среди многих распространённых программных продуктов, сделанные на Delphi, можно найти:

Продукция Embarcadero:

Embarcadero Delphi, Embarcadero C++ Builder, Borland JBuilder 1 и 2 версии. Администрирование/разработка баз данных:

MySQL Tools (Administrator, Query Browser), Navicat, IBExpert, TOAD (software).

Инженерное ПО: Altium Designer/Protel, Ajuster (связь с устройствами, визуализация и хранение данных Modbus RTU, Modbus TCP/IP, Ajbus).

ПО для химической отрасли: Продукты ACD/Labs.

Просмотрщики графики: FastStone Image Viewer, FuturixImager, Photofiltre.

Видео и аудио проигрыватели: The KMPlayer (не путать с KMPlayer), X-Player, Snow Player, AIMP.

Доставка информации в Интернете: QIP и R&Q, Skype, The Bat! и si.Mail, PopTray, FeedDemon, XanaNews, Xnews, MIC (Magcomline Internet Communicator).

Создание музыки: FL Studio (ранее FruityLoops), Guitar Pro (до версии 6.0).

Разработка программного обеспечения: Dev-C++, Dev-PHP, Maguma Open Studio и Open Perl IDE (IDE), DUnit, Jedi Code Format, Game Maker, Help & Manual, Inno Setup.

Веб-разработка: Macromedia HomeSite (HTML-редактор), TopStyle, Pro (CSS-редактор), Macromedia Captivate, Quick Page 2008.

Веб-браузеры (оболочки для MSIE): Avant Browser, Netcaptor.

Утилиты: Spybot - Search & Destroy, Ad-Aware, jv16 PowerTools, FDK, Total Commander, Frigate, DarkCrypt TC/GUI, ImageSpyer, StegoTC, Copernic Desktop Search, MCubix, Download Master, ASProtect, XNResourceEditor, Victoria, Battery Eater Pro.

Текстовые редакторы: SynEdit, BirEdit, Notepad GNU, Bred, KeyNote, cEdit Professional, UniRed, gleditor.

Редакторы двоичных файлов (HEX-редакторы): Hexapad.

Бухучёт и налогообложение: Lacerte Professional Tax Software, Капитал CSE, Парус, ТурбоБухгалтер, AVARDA, Комплекс VirGo 2.5М.

Электронное декларирование и связь с госорганами: Альта ГТД PRO (подготовка и передача таможенных деклараций)

Торговый и складской учёт: Полюс (Система учёта).

Программы для чтения и каталогизации электронного текста: DarkLib, IxReader, Гарант F1.

Электронные энциклопедии и справочники: De2

Программы для создания анимаций: Pivot Stickfigure Animator.

Программы для сжатия данных: ALZip, PowerArchiver, PeaZip.

Компьютерные игры: Age of wonders, Космические рейнджеры, Космические рейнджеры 2, Venom. Codename: Outbreak, Space Empires 4, Space Empires V, Pythian project, Битва героев, GTA 2, Hedgewars, Правда о девятой роте.

Бизнес-аналитика: BaseGroup Deductorоказал огромное влияние на создание концепции языка C# для платформы.NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp.

Microsoft Visual StudioVisual Studio - линейка продуктов компании Майкрософт, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Studio включает один или несколько компонентов из следующих:

Visual Basic.NET, а до его появления - Visual Basic

Visual C++

Visual C#

Visual F# (включён в Visual Studio 2010)

Многие варианты поставки также включают Microsoft SQL Server либо Microsoft SQL Server Express.

Наиболее значимые версии пакета:

Visual Studio 97 - первая выпущенная версия Visual Studio, в ней впервые были собраны вместе различные средства разработки ПО. Она была выпущена в двух версиях Professional и Enterprise. Она включала в себя Visual Basic 5.0, Visual C++ 5.0, Visual J++ 1.1, Visual FoxPro 5.0, впервые появилась среда разработки ASP - Visual InterDev. Visual Studio 97 - была первой попыткой Microsoft создать единую среду для разработки на разных языках программирования: Visual C++, Visual J++, Visual InterDev, и MSDN использовали одну среду, называемую Developer Studio. Visual Basic и Visual FoxPro использовали отдельные среды для разработки.

Visual Studio 6.0 - выпущена в июне 1998 - последняя версия Visual Studio, работающая на платформе Win9x. По-прежнему популярна среди программистов, использующих Visual Basic. Данная версия являлась основной средой разработки приложений под Windows от Microsoft, до появления платформы.NET.

Visual Studio.NET (кодовое имя Rainier; внутренняя версия 7.0) - выпущена в феврале 2002 года (включает.NET Framework 1.0). Service Pack 1 для Visual Studio.NET (2002) выпущен в марте 2005.

Visual Studio.NET 2003 (кодовое имя Everett; внутренняя версия 7.1) - выпущена в апреле 2003 года (включает.NET Framework 1.1). Service Pack 1 для Visual Studio.NET 2003 выпущен 13 сентября 2006.

Visual Studio 2005 (кодовое имя Whidbey; внутренняя версия 8.0) - выпущена в конце октября 2005 года, последняя официально работающая на Windows 2000, (включает.NET Framework 2.0). В начале ноября 2005 также вышла серия продуктов в редакции Express: Visual C++ 2005 Express, Visual Basic 2005 Express, Visual C# 2005 Express и др. 19 апреля 2006 редакция Express стала бесплатной. Service Pack 1 для VS2005 и всех Express-редакций выпущен 14 декабря 2006 года. Дополнительный патч для SP1, решающий проблему совместимости с Windows Vista выпущен 6 марта 2007.

Visual Studio 2008 (кодовое имя Orcas; внутренняя версия 9.0) - выпущена 19 ноября 2007, одновременно с.NET Framework 3.5. Нацелена на создание приложений для ОС Windows Vista (но поддерживает и XP), Office 2007 и веб-приложений. Включает в себя LINQ, новые версии языков C# и Visual Basic. В студию не вошёл Visual J#. С 28 октября 2008 года впервые доступна версия на русском языке.

Visual Studio 2010 (кодовое имя Hawaii, для Ultimate - Rosario; внутренняя версия 10.0) - выпущена 12 апреля 2010 года вместе с.NET Framework 4.0. Visual Studio включает поддержку языков C# 4.0 и Visual Basic.NET 10.0, а также языка F#, отсутствовавшего в предыдущих версиях.

Проанализировав все вышерассмотренные среды программирования, в данной дипломной работе будем использовать среду программирования Microsoft Visual Studio.[7]

.4Серверная и клиентская часть информационной системы

Предметная область данного дипломного проекта - автомобильные предприятия города. Пусть в базе данных требуется хранить следующую информацию:

)автомобили, которые состоят в автопарке города;

)маршруты, по которым осуществляются поездки, причем много автомобилей может совершать поездки по нескольким маршрутам и за маршрутами может быть не закреплено автомобилей;

)ремонт, которому подвергаются автомобили, причем автомобили могут ремонтироваться несколькими видами ремонта, а также автомобили могут не подвергаться ремонту;

)водители, за которыми закреплены автомобили, причем за несколькими водителями может быть закреплено много автомобилей, а также автомобили могут не иметь закрепленных за ними водителей;

)перевозки, причем на нескольких автомобилях может осуществляться много видов перевозок, с другой стороны, перевозки могут не осуществляться ни на одном автомобиле;

)депо, в котором находятся автомобили вне работы, причем автомобиль имеет только одно место в депо, и он обязан иметь место в депо, а в депо может находиться не обязательно много автомобилей;

)поездки, совершаемые автомобилями, причем много автомобилей может совершать много поездок и может не совершать поездок, в свою очередь поездки могут совершаться на нескольких автомобилях и поездки могут вообще не совершаться;

)отпуска, получаемые водителями, причем водители обязательно уходят в отпуск и имеют только один отпуск в году.

9)стаж, который имеют водители, причем водители не обязательно имеют стаж и водитель имеет только один стаж, в том числе и нулевое значение;

10)зарплата, получаемая водителями, причем водители обязательно получают зарплату и водитель может иметь только одну зарплату.

)день недели, в который совершается поездка, причем любая поездка может проходить в любой день, и в другом случае в любой день может быть не запланировано поездок.

При работе с базой данных возможно выполнение операций по добавлению, изменению и удалению сведений информационной системы, необходимо реализовать поиск по таблицам базы данных, создать средства администрирования, вывести отчёты об автомобилях и водителях предприятия. Современные СУБД в основном являются приложениями Windows, так как данная среда позволяет более полно использовать

возможности персональной ЭВМ, нежели среда DOS. Снижение стоимости высокопроизводительных ПК обусловил не только широкий переход к среде Windows, где разработчик программного обеспечения может в меньше

степени заботиться о распределении ресурсов, но также сделал программное обеспечение ПК в целом и СУБД в частности менее критичными к аппаратным ресурсам ЭВМ.

Среди наиболее ярких представителей систем управления базами данных можно отметить: Lotus Approach, Microsoft Access, Borland dBase, Borland Paradox, Microsoft Visual FoxPro, Microsoft Visual Basic, а также баз данных Microsoft SQL Server и Oracle, используемые в приложениях, построенных по технологии «клиент-сервер». Структура информационной системы представляет собой клиентское приложение, написанное на языке C# в среде программирования MS Visual Studio, взаимодействующее с базой данных «Автомобильные предприятия города» с помощью технологии ADO. База данных разработана на языке Transact - SQL в системе управления базами данных Microsoft SQL Server 2005.

Информационная система построена по архитектуре клиент - сервер. При такой организации реализуются следующие основные функции: управление БД, обработка данных, представление данных. Для разработки была выбрана архитектура информационной системы, построенной с использованием клиент-серверных технологий (модель DBS - Date Base Server. В такой модели вся логика размещена на сервере. При этом программный код, реализующий обработку, оформляется в виде хранимых процедур, которые в свою очередь вызываются клиентом и возвращают необходимое значение. Клиенту остается лишь в удобной и понятной пользователю форме представить эти результаты.

Модель DBS имеет ряд достоинств:

1.низкая нагрузка на сеть, так как результаты выполнения хранимой процедуры обычно бывают весьма компактными;

.простота обновления логики обработки. Для внесения изменений в логику обработки достаточно поменять программный код хранимой процедуры. Причем возможно внесение изменений без остановки информационной системы.

Разработка и реализация ИС

.1Разработка серверной части ИС

Выделение сущностей и связей

В предметной области можно выделить следующие сущности:

Автомобили (Автомобиль);

Маршруты (Маршрут);

Ремонт (Ремонт);

Водители (Водитель);

Перевозки (Перевозка);

Депо (Депо);

Отпуска (Отпуск);

Стаж (Стаж);

Зарплата (Зарплата);

Поездки (Поездка).

Выделение связей между сущностями:

.Автомобиль имеет Маршрут;

.Автомобиль подвергается Ремонту;

.Автомобиль закреплен за Водителем;

.За Автомобилем закреплена Перевозка;

.Автомобиль имеет место в Депо;

.Водитель уходит в Отпуск;

.Водитель имеет Стаж;

.Водитель получает Зарплату.

Построение ER диаграммам


.автомобиль имеет маршрут.

для степени связи:

много автомобилей имеют много маршрутов;

много маршрутов закреплены за несколькими автомобилями.

Для класса принадлежности степени к связи (рисунок 1):

автомобиль необязательно имеет маршрут;

маршрут необязательно закреплен за автомобилем.

Рисунок 1 - ER-диаграмма «Автомобиль-Маршрут»


. Автомобиль подвергается ремонту.

Для степени связи:

много автомобилей подвергаются многим видам ремонта;

много видов ремонта доступно для ремонтирования автомобилей.

Для класса принадлежности степени к связи (рисунок 2):

существуют автомобили, которые не обязательно ремонтировать;

существуют виды ремонта, которые необязательны для некоторых автомобилей.


Рисунок 2 - ER-диаграмма «Автомобиль-Ремонт»


3.Автомобиль закреплен за водителем.

Для степени связи:

несколько автомобилей может быть закреплено за несколькими водителями;

несколько водителей может быть закреплено за несколькими автомобилями.

Для класса принадлежности степени к связи (рисунок 3):

существуют автомобили, за которыми не закреплены водители;

существую водители, которые не водят автомобили.

Рисунок 3 - ER-диаграмма «Автомобиль-Водитель»


4.За автомобилем закреплена перевозка.

Для степени связи:

за несколькими автомобилями может быть закреплено несколько перевозок;

несколько перевозок могут быть закреплены за несколькими автомобилями.

Для класса принадлежности степени к связи (рисунок 4):

существуют автомобили, за которыми не закреплены перевозки;

некоторые перевозки не осуществляются.


Рисунок 4 - ER-диаграмма «Автомобиль-Перевозка»


5.Автомобиль имеет место в депо.

Для степени связи:

автомобиль имеет одно место в депо;

одно место может отводиться для нескольких автомобилей;

Для класса принадлежности степени к связи (рисунок 5):

автомобиль обязательно имеет место в депо;

место обязательно должно быть занято;


Рисунок 5 - ER-диаграмма «Автомобиль-Депо»


6.Водитель уходит в отпуск.

Для степени связи:

водитель имеет один отпуск в году;

по одному отпуску дается каждому водителю.

Для класса принадлежности степени к связи (рисунок 6):

водитель обязательно уходит в отпуск, причем только один раз в году;

отпуск обязательно предоставляется каждому водителю.


Рисунок 6 - ER-диаграмма «Водитель-Отпуск»


7.Водитель имеет стаж.

Для степени связи:

водитель имеет один стаж;

один стаж может быть у нескольких водителей.

Для класса принадлежности степени к связи (рисунок 7):

водитель обязательно должен иметь стаж;

у некоторых водителей может не быть стажа.


Рисунок 7 - ER-диаграмма «Водитель-Стаж»

8.Водитель получает зарплату.

Для степени связи:

водитель получает только одну зарплату;

одна зарплата может быть у нескольких водителей.

Для класса принадлежности степени к связи (рисунок 8):

водители обязательно получают зарплату;

существует зарплата, которая не выплачивается ни одному водителю.


Рисунок 8 - ER-диаграмма «Водитель-Зарплата»

Формирование предварительных отношений по ER диаграммам


.Автомобиль имеет Маршрут.

По правилу 6:

Автомобили (Автомобиль)

Маршруты (Маршрут)

Распределение (Автомобиль, Маршрут)

.Автомобиль подвергается Ремонту.

По правилу 6:

Автомобили (Автомобиль)

Ремонт (Ремонт)

Ремонтирование (Автомобиль, Ремонт)

.Автомобиль закреплен за Водителем.

По правилу 6:

Автомобили (Автомобиль)

Водители (Водитель)

Закрепление (Автомобиль, Водитель)

.За Автомобилем закреплена Перевозка.

По правилу 6:

Автомобили (Автомобиль)

Перевозки (Перевозка)

Перевозится (Автомобиль, Перевозка)

.Автомобиль имеет место в Депо.

По правилу 4:

Депо (Депо)

Автомобили (Автомобиль, Депо)

.Водитель уходит в Отпуск.

По правилу 4:

Отпуска (Отпуск)

Водители (Водитель, Отпуск)

.Водитель имеет Стаж.

По правилу 4:

Стаж (Стаж)

Водители (Водитель, Отпуск, Стаж)

.Водитель получает зарплату.

По правилу 4:

Зарплата (Зарплата)

Водители (Водитель, Отпуск, Стаж, Зарплата)

Проверка отношений на БКНФ

Рассмотрим отношения и проверим их на БКНФ. На данном этапе графически изображаются функциональные зависимости атрибутов для каждого отношения в отдельности.

Автомобили:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 9).










Рисунок 9 - Диаграмма функциональной зависимости отношения «Автомобили»


Маршруты:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 10).





Рисунок 10 - Диаграмма функциональной зависимости отношения «Маршруты»


Ремонт:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 11).





Рисунок 11 - Диаграмма функциональной зависимости отношения «Ремонт»


Водители:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 12).









Рисунок 12 - Диаграмма функциональной зависимости отношения «Водители»


Перевозки:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 13).








Рисунок 13 - Диаграмма функциональной зависимости отношения «Перевозки»


Депо:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 14).




Рисунок 14 - Диаграмма функциональной зависимости отношения «Депо»


Стаж:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 15).




Рисунок 15 - Диаграмма функциональной зависимости отношения «Стаж»


Отпуска:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 16).






Рисунок 16 - Диаграмма функциональной зависимости отношения «Отпуска»


Распределение:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 17).







Рисунок 17 - Диаграмма функциональной зависимости отношения «Распределение»


Ремонтирование:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 18).





Рисунок 18 - Диаграмма функциональной зависимости отношения «Ремонтирование»


Закрепление:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 19).







Рисунок 19 - Диаграмма функциональной зависимости отношения Закрепление


Перевозится:

Отношение находится в первой нормальной форме, так как на пересечении строки и столбца находится одно значение; отношение находится во второй нормальной форме, так как каждый не ключевой атрибут функционально полно зависит от любого потенциального ключа; отношение находится в третьей нормальной форме, так как в нем нет транзитивных зависимостей не ключевых атрибутов от любого потенциального ключа в частности первичного. Отношение находится в БКНФ т.е. детерминант всех функциональных зависимостей является потенциальным ключом (рисунок 20).







Рисунок 20 - Диаграмма функциональной зависимости отношения «Перевозится»


Построение общей ER-диаграммы

Рисунок 21 - Общая ER-диаграмма


Подготовка списка атрибутов, распределение их по отношениям

Автомобили (Автомобиль, Марка, Вид, ГосНомер, Депо).

Маршруты (Маршрут, Назначение, Протяженность).

Ремонт (Ремонт, Вид).

Водители (Водитель, ФИО, Категория, Отпуск, Стаж, Зарплата).

Перевозки (Перевозка, Вид, День).

Депо (Депо, Вместимость).

Стаж (Стаж, Надбавка).

Отпуска (Отпуск, Длительность, Отпускные)

Распределение (Автомобиль, Маршрут, Начало, Конец)

Ремонтирование (Автомобиль, Ремонт, Длительность, Затраты)

Закрепление (Автомобиль, Водитель, ТехОсмотр, Статус)

Перевозится (Автомобиль, Перевозка, Стоимость, Срочность)

Логическая модель БД

Модель данных, в которой на логическом уровне полностью описывается информационное содержание базы данных, называется логической моделью базы данных. Логическая модель является основой для всех пользователей информационной системы (прикладных программ и людей). Пользователи и прикладные программы обращаются к базе данных посредством СУБД только в терминах логической модели. Логическая модель описывает всю базу данных как единое целое.

На этапе проектирования базы данных построена логическая модель, представления на рисунке 22. Названия таблиц, атрибуты и отношения между таблицами выполнены в соответствии с подготовленными ранее списком атрибутов в отношениях.


Рисунок 22 - Логическая модель БД


3.2Разработка клиентской части


Для организации взаимодействия с БД используются следующие компоненты: SqlCinnection, SqlCommand, TableAdapter, DataSet, BindingSource, DataGridView, Button, TexBox, TabControll, Label, ComboBox, CrystalReports. SqlCinnection используется для подключения к базе данных. SqlCommand используется для выполнения хранимых процедур базы данных, осуществляющих добавление, изменение и удаление данных. Этот компонент используется для всех процедур. DataSet используется для связи со всеми таблицами базы данных и их вывода в компонент DataSource для вывода в главном окне приложения. DataSource используется для связи TableAdapter с компонентами DataGridView главной формы. CrystalReports используется для создания отчетов.

Разработка форм

Основная рабочая форма является также главной формой программы (рисунок 23). В ней происходит основная работа с приложением.

Рисунок 23 - Главная форма программы


При запуске программы активируется окно регистрации Логин (рисунок 24), с помощью которого пользователь может войти в базу данных. Если база данных отключена или идентификационные данные пользователя неверны, то об этом выдается соответствующее сообщение. Если же данные верны и соединение выполнено устойчиво, то при нажатии кнопки «Войти» открывается главная форма программы.


Рисунок 24 - Форма авторизации


Все компоненты, необходимые для работы базы данных расположены ниже разработки главной формы (рисунок 25). Это сделано для удобства обращения к ним и редактирования их параметров.

Рисунок 25 - Компоненты, используемые при разработке


Разработка дистрибутива

Разработанная программа не требует установки. Это сделано в целях удобства распространения, а также для экономии ресурсов памяти. Для распространения программы необходимо скопировать исполняемый файл программы Krs.exe в любое место на жестком диске. Размер исполняемого файла 300 КБ. Кроме этого в той же директории хранится файл настроек Krs.exe.conf в формате XML, в котором содержится:

Строка соединения с БД;

Наименование провайдера;

Наименование строки соединения, используемой для подключения к БД.


3.3Администрирование информационной системы


Для развертывания БД используется скрипт, ознакомиться с которым можно в Приложении 1.

Администратор имеет права на добавление и удаление пользователей, а также на изменение их паролей.

Для этого необходимо выбрать пункт меню Меню -> Сменить учётную запись (рисунок 26).

Рисунок 26 - Главное окно программы. Смена учетной записи


Чтобы зайти под администратором необходимо ввести имя сервера, имя пользователя Admin и пароль администратора (рисунок 27).


Рисунок 27 - Форма входа


В появившемся окне расположены следующие объекты:

Выпадающий список логинов пользователей.

Выпадающий список категорий доступа. Категория доступа влияет на то, с какими таблицами может работать данный конкретный пользователь. После выбора необходимых данных необходимо нажать кнопку «Добавить».

Для добавления пользователя необходимо ввести имя нового пользователя, а также определить категорию его доступа. Пароль пользователя по умолчанию пустой (рисунок 28).


Рисунок 28 - Окно «Пользователи»


В случае успешного добавления пользователя появится сообщение, с текстом об успешном добавлении пользователя (рисунок 29).


Рисунок 29 - Подтверждение добавления пользователя


Для удаления пользователя необходимо выбрать его логин в выпадающем списке и нажать кнопку «Удалить» (рисунок 31).

Рисунок 30 - Удаление пользователя

Для изменения пароля пользователя необходимо выбрать его логин в выпадающем списке и нажать кнопку «Изменить».


В случае успешного изменения пароля пользователя появится сообщение, с текстом об успешном изменении пароля пользователя (рисунок 30).

Рисунок 31 - Изменение пароля пользователя


Разработка технической документации к разрабатываемой ИС


4.1Описание применения


лавное окно программы содержит средства для редактирования таблиц БД. С помощью полей ввода вносятся данные в строку таблицы. Добавляется строка после нажатия кнопки «Добавить». Удаление в каждой таблице происходит после ввода желаемого номера строки и нажатия кнопки «Удалить». Поиск по таблице осуществляется по критериям, определенным для каждой таблицы. Указав критерий, необходимо ввести параметр поиска и нажать кнопку «Найти». В нижней части располагаются вкладки с наименованиями таблиц. Для каждой таблицы своя отдельная вкладка.


.2Руководство системного администратора


Назначение и область применения программы

Программа предназначена для автоматизации процессов работы предприятия: сбора, хранения и обработки данных и представления их в удобном виде для редактирования. Продукт осуществляет такие действия, как: учет парка автомобилей, сбор сведений о сотрудниках, контроль за деятельностью в сфере перевозок. Данный продукт может применяться на автомобильных предприятиях городов, так как разработанная ИС направлена только на эту сферу деятельности.

Состав программы, основные принципы ее функционирования

Программа реализована на языке С#. Информационная система состоит из функций, с помощью которых реализуются действия приложения. Выполняется соединение с базой данных для работы с содержимым БД. Интерфейс программы позволяет редактировать данные и просматривать их в удобном для пользователя виде.

Системные требования для программы

Минимальные системные требования:

1.Windows XP, Vista, 7;

.256 Мб ОЗУ;

.1024 Мб свободного пространства.

Для администрирования и внесения изменений в работу программы администратору необходимо установить пакет Microsoft Visual Studio и Microsoft SQL Server. Для этого необходимо иметь минимум 1,7 Гб свободного дискового пространства. Информационная система не требует установки.

Для работы программы требуется наличие сервера с операционной системой Microsoft Windows ХP, Vista, 7, платформой.NET Framework 2.0 и выше, и СУБД Microsoft SQL Server 2008.

Клиентское место должно быть оборудовано схожей конфигурацией аппаратного обеспечения и подключено к локальной сети (если система используется локально).

Создание пользователя

Для создания пользователя необходимо ввести логин и пароль. Затем задать уровень доступа.


Рисунок 32 - Окно управления пользователями


.3Руководство пользователя


При запуске программы появляется окно авторизации (рисунок 33).


Рисунок 33 - Окно авторизации


Для входа в программу необходимо ввести имя сервера, имя пользователя и пароль в соответствующие поля и нажать кнопку «Войти» (рисунок 34).


Рисунок 34 - Проверка идентификационных данных


Если подключение к базе данных невозможно осуществить, или введены некорректные данные пользователя, то появится сообщение о том, что невозможно подключиться к базе данных (рисунок 35).

Рисунок 35 - Ошибка подключения


В главном окне программы (рисунок 36) реализовано:

переключатель между таблицами базы данных;

таблица, в которой отображается информация из выбранной в данный момент таблицы базы данных;

кнопка для добавления/изменения записей;

кнопка поиска;

кнопка удаления;

поля для ввода данных.


Рисунок 36 - Главное окно программы


Для переключения между таблицами используются вкладки, расположенные в нижней части программы. Нажатие на соответствующую вкладку открывает соответствующую таблицу (рисунок 37).

Рисунок 37 - Главное окно программы. Смена таблицы


При добавлении записи необходимо заполнить соответствующие поля, которые соответствуют столбцам таблицы, и нажать кнопку «Добавить» (рисунок 38).


Рисунок 38 - Главное окно программы. Добавление записи


После добавления записи, она появляется в таблице (рисунок 39).

Рисунок 39 - Главное окно программы. Запись добавлена


5Программа, методика и результаты испытаний разрабатываемой ИС


5.1Объект испытаний


Полное наименование - Разработка программного обеспечения и администрирование информационной системы автоматизации автомобильного предприятия города.

Испытания проводятся для всех функций системы. Так же испытания включают проверку функций администрирования информационной системы.

.2Цели испытаний

Целью проведения испытаний является: - проверка взаимодействия функций системы; - проверка работоспособности системы; - проверка соответствия системы требованиям, приведенным в пункте 2.4«Серверная и клиентская часть информационной системы»; - проверка системы на наличие ошибок в процессе работы.

.3Средства и порядок испытаний

Испытания проводятся на целевом оборудовании разработчика. Программное обеспечение должно быть предоставлено в той конфигурации, которая запланирована для начального развёртывания системы, и указана в Задании на дипломное проектирование. Во время испытаний проводится тестирование всех функций ИС. В ходе проведения опытной эксплуатации пользователь, вошедший в систему получает доступ для проведения тестирования. В момент авторизации осуществляется проверка имени пользователя и пароля. Полномочия пользователя определяются администратором.


.4Проведение программы испытаний


Для тестирования программы проверим работоспособность ее основных функций.

Добавим запись в таблицу «Перевозится» (рисунок 40, 41).


Рисунок 40 - Добавление записи


Рисунок 41 - Запись добавлена


Изменим запись в таблице «Автомобили» (рисунок 42, 43).

Рисунок 42 - Внесение изменений


Рисунок 43 - Изменения внесены


Удалим запись из таблицы «Перевозится» (рисунок 44, 45).


Рисунок 44- Ввод номера удаляемой строки


Рисунок 45- Выбранная строка удалена


Выполним поиск автомобиля из таблицы «Автомобили» по марке (рисунок 46, 47).


Рисунок 46- Задание критериев поиска


Рисунок 47- Выполненный поиск данных


Проверим срабатывания условий на неверный ввод данных и перехват ошибок при добавлении записи. В таблице «Закрепление» в поле «Автомобиль» введем текст (рисунок 48).


Рисунок 48- Неверный ввод данных при добавлении


После ввода и попытки программа выдаст сообщение об ошибке, так как в этом поле предусмотрен ввод только целых чисел (рисунок 49).

Рисунок 49 - Сообщение об ошибке


Проверим срабатывания условий на неверный ввод данных и перехват ошибок при изменении записи. В таблице «Автомобили» в поле «Марка» введем числовое значение (рисунок 50).


Рисунок 50 - Неверный ввод данных при изменении


После ввода и попытки изменения строки программа выдаст сообщение об ошибке, так как в этом поле предусмотрен ввод только текстовой строки (рисунок 51).


Рисунок 51 - Сообщение об ошибке

Проверим срабатывания условий на неверный ввод данных и перехват ошибок при удалении записи. В таблице «Перевозится» поле «Строка» оставим пустым (рисунок 52).


Рисунок 52 - Не задан номер строки при удалении


После попытки удалить строку программа выдаст сообщение об ошибке, так как в поле необходимо ввести номер удаляемой строки (рисунок 53).


Рисунок 53 - Сообщение об ошибке


Проверим срабатывания условий на неверный ввод данных и перехват ошибок при удалении записи. В таблице «Перевозится» в поле «Строка» введем номер несуществующей строки (рисунок 54).


Рисунок 54 - Неверный ввод данных


После попытки удалить строку программа выдаст сообщение об ошибке, так как строки не существует (рисунок 55).


Рисунок 55 - Сообщение об ошибке


Операции добавления пользователя, изменения пароля и удаления пользователя были выполнены в пункте 3.3 «Администрирование информационной системы».


.5Анализ результатов испытаний


В ходе проведения испытания были протестированы основные функции программы. К ним относятся:

Добавление записи в таблицу;

Изменение записи в таблице;

Удаление записи из таблицы;

Поиск записи в таблице;

Перехват ошибок при неверно введенных данных.

Результаты испытаний полностью совпали с ожидаемыми. Проведенное тестирование ошибок не выявило.


Экономическая часть


Технико-экономическое обоснование проекта

Данный программный продукт позволит работать с базой данных автомобильного предприятия города. Разрабатываемое ПО будет обладать следующими достоинствами:

удобный и простой интерфейс, позволяющий сократить время адаптации пользователя к работе с ПО;

- узкая специализация программы и наличие только минимума необходимых функций позволит минимизировать время до получения конечного результата расчета;

низкая стоимость ПО;

низкие требования к персональному компьютеру (ПК);

Дипломный проект будет выполнен на языке программирования С#, в среде программирования MS Visual Studio. Серверная часть выполнена на MS SQL Server.

В данной части проекта рассматриваются экономические аспекты проектирования и применения разрабатываемого продукта.

Оцениваются затраты труда на создание продукта, строится ленточный график выполнения проекта, производится расчет планируемых затрат, цены для НИР, а также строится зависимость прибыли от числа копий продукта.

6.1 План выполнения темы. Ленточный график

Чтобы уложится в отведенные сроки, необходимо спланировать перечень работ по реализации проекта. Для каждой работы определить исполнителей, по трудоемкости выполнения работ определить соответствующую продолжительность (по типовым нормам времени), таким образом, чтобы общая продолжительность проведения проектных работ по срокам совпадала с отпущенными на разработку днями. В этом случае наиболее удобным является ленточный график проведения работ, направленный на осуществлении разработки.

Ленточный график прост и нагляден. Он представляет собой таблицу, где указан перечень работ, трудоемкость, численность исполнителей, длительность выполнения каждого вида работ.

Экспертная оценка сложности рассматриваемого проекта позволила сделать вывод о том, что данный проект может быть выполнен приблизительно в течении 2-х месяцев одним исполнителем. Проектирование начато 20.02.2012 и заканчивается 1.06.2012; данный период содержит 72 календарных дня. На основании этого можно планировать длительность этапов разработки в соответствии с типовыми этапами. Представим порядок и длительность выполнения работ в виде ленточного графика.

Работа включает следующие этапы:

1.Разработка технического задания.

2.Изучение технического задания.

3.Подбор литературы и ее изучение.

4.Разработка программного обеспечения (ПО).

5.Отладка ПО.

6.Оформление пояснительной записки.

7.Оформление графического материала.

8.Сдача проекта.

Составим таблицу, содержащую план проектирования программной продукции по стадиям разработки i = 1,2, …,8 (Таблица 1). На основании экспертных оценок была определена трудоемкость Тi отдельных этапов работы в человеко - днях. Соответствующие трудоемкости этапов приведены в таблице 1. В разработке проекта принимают участие два человека: руководитель проекта и студент - дипломник; руководитель совместно с дипломником выполняют первый этап разработки, после чего дипломник самостоятельно выполняет пункты 2 - 8. При построении ленточного графика продолжительность каждой работы Тп будет определяться по формуле:


Тп = Ti / ni


где Ti - трудоемкость работ, человеко-дни;

ni - численность исполнителей, человек.

Для каждого ресурса, используемого при разработке (руководитель проекта, дипломник, ЭВМ) заносим в соответствующий столбец время использования ресурса на соответствующей стадии. Суммируя полученные значения по столбцам, получаем общее время работы над проектом руководителя и студента (в днях), а также общее время использования ЭВМ при выполнении проекта (в днях).


Таблица 2 - План проектирования программной продукции по стадиям разработки

N этапа, iСтадия разработки проектаТрудоемкость этапа Ti, чел-дн.Кол-во исполнителей Этапа ni, чел.Длительность этапа Тп,дн.Длительность этапа, %ресурсыИсполнителиСредства трудаРуково- дительДиплом- никЭВМУчастие в этапеДней на этапеУчастие в этапе Дней на этапеТребуется на этапеДней на этапе 1Разработка ТЗ 10256.955 2Изучение ТЗ 7179.77 3Подбор литературы и ее изучение 18118251812 4Разработка ПО 2012027.72020 5Отладка ПО 5156.955 6Оформление пояснительной записки 1211216.61212 7Оформление графического материала 4145.544 8Сдача проекта 1111.41 Итого: 77 72 100% 5 72 53

Таким образом, трудоемкость проекта составляет 77 человеко - дня, время работы над проектом составляет 72 рабочих дня. При этом ЭВМ использовалась 53 дня. Для визуального отображения процесса проектирования был использован ленточный план - график, отражающий длительность каждого этапа работ, представленный на рисунке 56.


Этап8 17 46 12554 203 182 715 10 20 30 40 50 60 72Рисунок 56 - Ленточный график выполнения работы по стадиям проектирования

6.2 Расчет затрат на разработку продукта


.2.1 Составление сметы затрат на разработку модуля

Вычисление плановой себестоимости работ на проектирование программного обеспечения производится по следующим статьям затрат:

·материальные затраты;

·затраты на оплату труда:

·прочие затраты.

Материальные затраты

На статью "материальные затраты" относятся затраты на сырье, основные и вспомогательные материалы, покупные полуфабрикаты и комплектующие изделия (за вычетом возвратных отходов).

Затраты по этой статье определяются по действующим оптовым ценам, без учета налога на добавленную стоимость (НДС), с учетом транспортно-заготовительных расходов, величина которых составляет 7-10% от стоимости материалов. В таблице 3 приведены основные расходные материалы.


Таблица 3 - Расходные материалы

Материалы Количество Цена за единицу, руб. Сумма, руб.CD-диск1 шт1010Канцтовары--100Тонер для лазерного принтера1 шт.190190Упаковка бумаги (500 листов)1 шт.217217Итого517Итого без НДС438Транспортно- заготовительные расходы52Всего490

Затраты на оплату труда

В данные расходы включаются любые начисления работникам в денежной форме и (или) натуральных формах, стимулирующие начисления и надбавки, компенсационные начисления, связанные с режимом работы или условиями труда, премии и единовременные поощрительные начисления, расходы, связанные с содержанием этих работников, предусмотренные нормами законодательства Российской Федерации, трудовыми договорами и (или) коллективными договорами. К расходам на оплату труда относятся, в частности:

·суммы, начисленные по тарифным ставкам, должностным окладам, сдельным расценкам, или в процентах от выручки;

·начисления стимулирующего характера;

·начисления стимулирующего характера, связанные с режимом работы и условиями труда;

·стоимость бесплатно предоставляемых работникам коммунальных услуг, питания и продуктов;

·Оплата очередных и дополнительных отпусков, льготных часов подростков и др.

·Виды доплат, предусмотренных законами РФ и включаемые в фонд оплаты труда

В данном проекте эта статья складывается из затрат на заработную плату исполнителей(руководителя проекта и студента - дипломника). Дипломник получает стипендию, которая на апрель 2012 года составляет 1400 рублей, руководитель проекта получает 11267 рублей. Тогда фонд оплаты труда составляет:


Фзп= ЗПрук+ ЗПст,


гдеЗПрук - расходы на оплату труда руководителя проекта;

ЗПст - расходы на оплату труда студента.

Время работы руководителя над проектом - 5 дней, а студента - 72 дня, тогда расходы на оплату труда будут определяться следующим образом:

ЗПрук =11267/22,4*5=2514,9 руб.,

ЗПст =1400/22,4*72=4500 руб.

Таким образом, фонд оплаты труда составит:


Фзп = ЗПрук+ ЗПст =2514,9+4500=7014,9 руб.


Общие прямые затраты составят следующую сумму:


Зпрям = 3м + Фзп = 490 + 7014,9 = 7504,9 руб.


Прочие расходы:

страховые взносы берутся в размере 30 % от величины фонда оплаты труда. В нашем случае они составили 2104,5 руб.

величина остальных прочих расходов берется от суммы прямых общих затрат в установленном размере. Для разработки устройства они составят (10 %):

величина остальных прочих расходов = 7504,9 ´ 0,1 =750,5 руб.

Прочие расходы составят:


Зпр = страховые взносы + величина остальных прочих расходов = 2104,5 + +750,5 = 2855 руб.


Общие затраты на разработку составят:


= 3прям + 3пр = 7504,9 + 2855 = 10359,9 руб.


Необходимые расходы сведены в таблице 4.


Таблица 4 - Смета затрат

Наименование калькуляционных статей расходовСумма, руб.Удельный вес, % Материальные затраты, Зм 4904,7 Затраты на заработную плату, Фзп7014,967,7 Прочие расходы, Зн285527,5 Общие затраты, З10359,9100,00

6.2.2 Расчет цены для НИР

Цена для НИР складывается из трех составляющих: смета затрат, закладываемая прибыль и сумма налога на добавленную стоимость.


Цнир = З+Пр+НДС


Прибыль рассчитывается как 15% от сметы затрат и составляет:


Пр = 0,15*З = 0,15*10359,9 = 1554 руб.

Цнир без НДС= З+Пр=10359,9+1554=11913,9 руб.


НДС сейчас составляет 18%, и цена научно-исследовательской работы будет рассчитываться по следующей формуле:


Цнир с НДС= Цнир без НДС*1,18= 11913,9 *1,18=14058,4 руб.


.3 Расчет и выводы по эффективности предложений


Для расчета эффективности предложения необходимо рассчитать цену производства, которая включает в себя цену диска CD-R (15 руб.) и затраты на запись программного обеспечения на диск (5 руб.).

Зпр-ва=15+5=20 руб.

Рассмотрим зависимость прибыли от реализации продукта при цене, равной 500 руб.

Цена в 500 руб. достаточно привлекательна с точки зрения минимизации количества проданных копий для выхода на уровень безубыточности.

При реализации N экземпляров продукта по рыночной цене прибыль от реализации одного экземпляра определяется как:


Пр =ЦРЫН /1,18-З/N-Зпр-ва


При этом общая сумма прибыли от реализации n экземпляров составит:


ПРS=N*Пр


Зависимость прибыли от объема реализации продукта при рыночной цене 500 руб. представлена в таблице 5.


Таблица 5 - Зависимость прибыли от объема реализации продукта

Объем реализации экземпляров, экз15101520 25 26 Прибыль на один экземпляр -9956,2 -1668,3 -632,3 -289 -114,3 -10,7 5,2Суммарная прибыль, руб. -9956,2 -8341,4 -6323 -4305 -2286 -267,5 136,3

При данной рыночной цене экономический эффект будет положительным при реализации 26 и более экземпляров продукта.

Зависимость прибыли от числа копий


Рисунок 57 - Зависимость общего экономического эффекта от объема реализации при рыночной цене в 500 руб.


Выводы по экономической части


Анализ показывает, что разработанный программный модуль эффективен с экономической точки зрения при реализации продукта на рынке программных средств по свободной рыночной цене, так как продукт начинает окупаться при продаже 26 и более экземпляров. Такой тираж является минимальной партией для программного модуля данного класса, поэтому можно надеяться на внушительную прибыль при его продаже.


Безопасность и экологичность проекта


Решение проблемы безопасности жизнедеятельности состоит в обеспечении нормальных условий деятельности людей, в защите человека и окружающей его среды от вредных факторов, превышающих нормативно-допустимые уровни. Поддержание оптимальных условий труда и отдыха человека создает предпосылки для высшей работоспособности и продуктивности.

В данном дипломном проекте осуществляется разработка клиентского приложения для работы с базой данных автомобильного предприятия города. Работа над проектом непосредственно связана с применением персональной ЭВМ (ПЭВМ). Как при разработке программы на персональном компьютере, так и при использовании ее в дальнейшем в производственном процессе на ПЭВМ различного типа и разработчик, и оператор ПЭВМ сталкиваются с различного рода воздействием вредных и опасных факторов, неизбежно сопутствующих работе на ПЭВМ. Поэтому анализ воздействия вредных и опасных факторов на оператора, а также рассмотрение мер, устраняющих или уменьшающих это воздействие, предупреждающих несчастные случаи, создающих высокопроизводительные, здоровые и безопасные условия труда, являются частью данного дипломного проекта.

В России безопасные условия труда на ПЭВМ регламентируются в различных нормативно-правовых актах, включая СанПиН 2.2.2/2.4.1340-03 «Гигиенические требования к персональным электронно-вычислительным машинам и организации работы».


.1 Организация рабочего места пользователя ПЭВМ


Разработка программного модуля принятия решений оценки реконструктивных гипотез проводилась в помещении, план которого представлен на рисунке 58.

Рассмотрим помещение, где работает пользователь ПЭВМ:

1)размеры помещения - 4x4x3 м;

2)площадь помещения S=16 м2;

)объём помещения V=48 м3;

)имеется одно окно размером 2x2,2м (оснащено жалюзи), световой проем выходит на северную часть здания;

5)одна дверь размером 1x2,Зм;

6)два деревянных шкафа размером 1,5x1,5x0,5м;

)количество рабочих мест с ПЭВМ - 1;

)помещение снабжено системой центрального водяного отопления;

)питание электрооборудования осуществляется от одной из фаз трехфазной сети переменного тока частотой 50 Гц и напряжением 380/220В с глухозаземленной нейтралью источника (при этом один из проводников является фазным, а другой подключен к глухозаземленной нейтрали источника питания).


Рисунок 58 - Схема комнаты


В данной комнате имеется один письменный стол и одно компьютеризированное рабочее место, которое имеет в своем составе:

)рабочий стол;

)кресло;

)системный блок ПЭВМ;

)монитор;

)клавиатура и мышь;

)принтер.

Поэтому в данном разделе необходимо рассмотреть проблемы безопасности труда программиста на его рабочем месте в данном помещении и наметить пути преодоления трудностей и дискомфорта при работе.[10]

.2Анализ опасных и вредных факторов при работе с ПЭВМ

Производственные условия в ряде случаев могут характеризоваться наличием опасных и вредных факторов.

Опасным называется производственный фактор, воздействие которого на работающего приводит, в определенных условиях, к травме или внезапному резкому ухудшению здоровья. Если же производственный фактор приводит к заболеванию или снижению работоспособности, то его считают вредным.

ГОСТ 12.003-74 «ССБТ. Опасные и вредные производственные факторы. Классификация» приводит классификацию условий труда, выступающих в роли опасных и вредных производственных факторов.

Они подразделяются на 4 группы:

1)физические;

2)химические;

)биологические;

)психологические.

К группе биологически вредных факторов, которые могут привести к заболеванию или ухудшению состояния здоровья пользователя, относится повышенное содержание в воздухе рабочей зоны патогенных микроорганизмов (бактерий, вирусов и др.) Они могут появиться в помещении с большим количеством работающих при недостаточной вентиляции, например, в период эпидемии. Чтобы избежать их появление, помещение необходимо проветривать. А в период эпидемии находиться на рабочем месте в марлевых повязках.

Психофизиологические факторы, воздействующие на пользователя ПЭВМ, приводят к его физическим и нервно-психическим перегрузкам.

Характерной при работе с ПЭВМ является такая физическая перегрузка, как длительное статическое напряжение мышц. Оно обусловлено вынужденным продолжительным сидением в одной и той же позе, часто неудобной, необходимостью постоянного наблюдения за экраном (напрягаются мышцы шеи, ухудшается мозговое кровообращение), набором большого количества знаков за рабочую смену (статическое перенапряжение мышц плечевого пояса и рук). При этом возникает также локальная динамическая перегрузка пальцев и кистей рук.

Пользователи ПЭВМ сталкиваются, в основном, с воздействием физических и психологически опасных и вредных производственных факторов. Наиболее значительные из этих факторов, их нормы и методы уменьшения их влияния рассмотрены ниже.

Наличие химических опасных и вредных факторов в помещениях с ПЭВМ в основном обусловлено широким применением полимерных и синтетических материалов для отделки интерьера, при изготовлении мебели, ковровых изделий, радиоэлектронных устройств и их компонентов, изолирующих элементов систем электропитания. Технология производства ПЭВМ предусматривает применение покрытий на основе лаков, красок, пластиков. При работе ПЭВМ нагреваются, что способствует увеличению концентрации в воздухе таких вредных веществ как формальдегид, фенол, полихлорированные бифенилы, аммиак, двуокись углерода, озон, хлористый винил.

К числу наиболее важных физических производственных факторов относятся следующие:

1)влияние электрического тока;

2)параметры микроклимата;

)уровень шума на рабочем месте;

)пожарная опасность;

)освещенность рабочего места.

Воздействие указанных неблагоприятных факторов приводит к снижению работоспособности, вызываемому утомлением. Длительное нахождение оператора в зоне комбинированного воздействия различных неблагоприятных факторов может привести к профессиональному заболеванию.

Рассмотрим теперь подробнее указанные факторы, их влияние на человека, установленные нормы, причины возникновения и способы устранения или уменьшения влияния.[11]


.2.1Влияние электрического тока

Электроопасность является особо опасным фактором, потому что электрический ток невидим, без цвета и запаха. Воздействия электрического тока на организм человека носит разносторонний характер (биологическое, термическое, электролитическое воздействия). Наиболее часто поражение электрическим током имеет вид электрического удара. Тяжесть поражения электрическим током зависит от значения силы тока, электрического сопротивления тела человека, длительности протекания тока через человека, от рода и частоты тока, индивидуальных свойств. Наиболее опасен переменный ток с частотой 20-100 Гц.

Основными причинами электротравм при работе с ПЭВМ являются следующие:

1)случайное прикосновение человека к токоведущим частям, находящимся под напряжением;

)прикосновение к металлическим нетоковедущим частям (корпусу, элементам), которые могут оказаться под напряжением случайно при повреждении изоляции.

Электробезопасность регламентируется ГОСТ 12.1.019-79 «ССБТ. Электробезопасность. Общие требования», согласно которому необходимой мерой обеспечения электробезопасности в сети с глухозаземленной нейтралью является зануление корпусов электроаппаратуры. Все зануления выполнены в соответствии с требованиями Правила устройства электроустановок (ПУЭ).

Опасность поражения электрическим током во многом зависит и от условий эксплуатации электроаппаратуры, характеризующих помещение. К ним относятся:

1)сырость (относительная влажность воздуха превышает 75%);

2)повышенная температура воздуха, превышающая +35°С;

)токопроводящий (без изолирующего покрытия) пол;

)токопроводящая пыль;

)химически активная или органическая среда (агрессивные пары, отложения или плесень, разрушающие изоляцию и токоведущие части);

)возможность одновременного прикосновения человека к имеющим соединение с землей металлоконструкциям зданий, механизмов и т.п. и металлическим элементам электроустройств, которые могут оказаться под напряжением при повреждении рабочей изоляции.

В рассматриваемом помещении (рисунок 9.1) поддерживается относительно постоянная температура и влажность воздуха за счет проветривания помещений и центрального отопления. Все токоопасные поверхности изолированы. В соответствии с ГОСТ 12.4.124-83 «ССБТ. Средства защиты от статического электричества» пол покрыт деревянным паркетом, что позволяет снизить величину статического электричества. Все электрические розетки имеют зануление. Таким образом, согласно ПУЭ, рассматриваемое помещение в отношении опасности поражения человека электрическим током классифицируется как помещения без повышенной опасности, в которых отсутствуют условия, создающие повышенную или особую опасность.

Основными техническими средствами защиты человека от поражения электрическим током, используемыми отдельно или в сочетании друг с другом, являются (ПУЭ): защитное заземление, защитное зануление, защитное отключение, электрическое разделение сети, малое напряжение, электрозащитные средства, уравнивание потенциалов, двойная изоляция, предупредительная сигнализация, блокировка, знаки безопасности.

Для защиты оператора ПЭВМ от поражения электрическим током в рассматриваемом помещении применяется двойная и усиленная изоляция, а также, согласно ГОСТ 12.1.019-79 «ССБТ. Электробезопасность. Общие требования», защитное зануление (провод ПЭВМ для подключения к питающей сети имеет дополнительную зануляющую жилу и евровилку). В комнате применяются евророзетки с клеммой заземления. При защитном занулении безопасность человека, касающегося корпуса поврежденной установки, обеспечивается за счет уменьшения времени воздействия опасного напряжения, действующего до момента срабатывания элемента защиты. Согласно ПУЭ-07 на вводе в помещение необходимо установить устройство защитного отключения с номинальным отключающим дифференциальным током не более 30 мА.

Основным организационным мероприятием, позволяющим повысить электробезопасность, является периодически проводимый инструктаж и обучение безопасным методам труда, а так же проверка знаний правил безопасности и инструкций.


.2.2 Параметры микроклимата

Микроклимат в помещении определяется действующими на организм человека сочетаниями температуры, влажности, скорости движения воздуха и является одним из важнейших факторов, определяющих состояние санитарно-гигиенических условий труда.

Высокая температура воздуха вызывает быструю утомляемость и большое потоотделение. Это ведет к снижению внимания, вялости и приводит к повышению вероятности несчастного случая. Низкая температура может вызывать местное и общее охлаждение организма и стать причиной ряда заболеваний.

Влажность воздуха определяется содержанием в ней водяных паров. Оптимальная влажность составляет 40÷60%. В воздухе, избыточно насыщенном водяными парами, затрудняется испарение влаги с поверхности кожи и из легких. В сочетании с другими факторами это способствует перегреванию организма. Пониженная влажность приводит к высыханию слизистых оболочек верхних дыхательных путей.

Скорость воздуха на рабочем месте имеет большое значение для создания благоприятных условий труда. Легкое движение воздуха способствует хорошему самочувствию.

Системы вентиляции, отопления и кондиционирования воздуха в помещениях с ПЭВМ должны быть выполнены в соответствии с требованиями СанПиН 2.2.4.548-96 «Гигиенические требования к микроклимату производственных помещений» и СНиП 2.04.05-91 «Отопление, вентиляция и кондиционирование».

В холодный период года оптимальными параметрами микроклимата являются: температура 22-24°С; относительная влажность - 40-60%; скорость движения воздуха 0,1м/с, а допустимыми параметрами соответственно - 21-25°С, 75% и 0,1м/с.

В теплый период года оптимальные параметры: 23-25°С; 40-60%; 0,1м/с, а допустимые 22-28°С; 40-60 %; 0,2м/с.

На рабочем месте программиста в рассматриваемом помещении (рисунок 9.1) поддерживаются следующие микроклиматические условия:

1)средняя температура воздуха - 22°С (в холодное - 20°С, в теплое - 24°С);

2)относительная влажность - около 40%-70% (в зависимости от погоды на улице);

)движения воздуха от 0.1 м/с при безветренной погоде, до 0,3 м/с при ветре (основная причина по которой увеличивается скорость ветра в помещении - это отсутствие герметичности оконной коробки).

Для создания и автоматического поддержания в помещении независимо от наружных условий оптимальных значений температуры в холодное время года используется водяное отопление.

Проведя сравнение реальных микроклиматических условий с требуемыми, можно сделать вывод, что в целом условия труда соответствуют допустимым параметрам микроклимата. Однако следует принять ряд мер по улучшению некоторых из них:

1)для уменьшения скорости ветра в помещении при ветреной погоде, необходимо установить герметичные пластиковые оконные пакеты;

для поддержания оптимальной относительной влажности и температуры в помещении необходимо установить кондиционер мультисплит Airwell (Франция), который позволит регулировать данные параметры.[13]


.2.3 Уровень шума на рабочем месте

Шумом называют всякий неблагоприятный, действующий на человека звук. Действие шума на человека зависит от его интенсивности, звукового давления и частотного диапазона. Кроме непосредственного воздействия на орган слуха, шум влияет на различные отделы головного мозга, что приводит к повышенной утомляемости, раздражительности.

С целью обеспечения нормальной работы обслуживающего персонала уровень шума в различных помещениях нормируется.

При работе с ПЭВМ допустимые уровни звукового давления, звука и эквивалентные уровни звука должны соответствовать требованиям СН 2.2.4/2.1.8.562-96 «Шум на рабочих местах, в помещениях жилых, общественных зданий и на территории жилой застройки». В помещениях программистов и операторов уровень звука не должен превышать 50 дБА.

Уровень шума на рассматриваемом рабочем месте является допустимым, поэтому каких-либо мер по снижению уровня шума принимать не требуется.[15]


.2.4 Пожарная опасность

В рассматриваемом помещении находится много горючих предметов (бумага, столы, шкафы, изоляция токопроводящих элементов и др.). Пожар в комнате может привести к очень неблагоприятным последствиям (потеря ценной информации, порча имущества, гибель людей и т.д.). Поэтому пожарная безопасность в данном помещении является очень актуальной.

Опасными факторами пожара, воздействующими на людей и материальные ценности, согласно ГОСТ 12.1.004-91 «ССБТ. Пожарная безопасность. Общие требования» являются: пламя и искры; повышенная температура окружающей среды; токсичные продукты горения и термического разложения; дым; пониженная концентрация кислорода. К вторичным проявлениям опасных факторов пожара относятся осколки и части разрушившихся аппаратов, конструкций; токсичные вещества и материалы, вышедшие из разрушенных аппаратов; электрический ток, возникший в результате выноса высокого напряжения на токопроводящие части конструкций, аппаратов; опасные факторы взрыва, происшедшего вследствие пожара; огнетушащие вещества.

Как известно пожар может возникнуть при взаимодействии горючих веществ (деревянный стол, стул, бумага, изоляция электрических проводов, строительные материалы для акустической и эстетической отделки помещений, дверь, полы), окислителя (кислород) и источников зажигания.

Причины возникновения пожара. Причины возникновения пожара можно разделить на причины электрического и неэлектрического характера.

К факторам возникновения пожара электрического характера относятся следующие: короткое замыкание; перегрузки в сети; большие переходные сопротивления; отсутствие устройств защиты от перегрузок по току и напряжению; перегретые элементы в электронных схемах ПЭВМ, устройств электропитания, кондиционирования воздуха; электрические искры и дуги, способные вызвать загорания горючих материалов.

К причинам неэлектрического характера относятся: неосторожное обращение с огнем (курение в не отведенном для этого месте); использование оборудования не по назначению; применение неисправного оборудования; оставление без присмотра различных отопительных приборов.

Противопожарная защита - это комплекс организационных и технических мероприятий, направленных на обеспечение безопасности людей, на предотвращение пожара, ограничение его распространения, а также на создание условий для успешного тушения пожара.

По пожарной опасности помещения с ПЭВМ согласно НПБ 105-03 «Определение категорий помещений, зданий и наружных установок по взрывопожарной и пожарной опасности» относятся к категории В (пожароопасные - характеризуются наличием горючих жидкостей с температурой вспышки паров выше 61°С; горючей пыли или волокон, нижний предел взрываемости которых более 65 г/м3 к объему воздуха; веществ, способных только гореть при взаимодействии с кислородом воздуха или друг с другом; твердых сгораемых веществ и материалов).

Пожароопасная категория помещения (В1-В4) зависит от величины его пожарной нагрузки Q (МДж), которая включает в себя различные сочетания горючих и трудногорючих жидкостей, твёрдых веществ и материалов:

= ?Gi ? Qнi,


где Gi - количество i-гo материала пожарной нагрузки, кг; Hi - низшая теплота сгорания i-гo материала, МДж/кг. Например, низшая теплота сгорания древесины - 20, оргстекла - 25, резины - 39, полиэтилена и бензина - 46 МДж/кг.

Для рассматриваемого помещения:= 2?61?20 + 2?38?20 + 34?20 + 4?3,5?25 = 4990 МДж.

Определение пожароопасной категории помещения (В1-В4) осуществляется путём сравнения максимального значения удельной пожарной нагрузки g помещения с нормируемой величиной удельной пожарной нагрузки gн, приведённой в таблице 6. Удельная пожарная нагрузка g (МДж/м2) определяется из соотношения g = Q/S, где S - площадь размещения пожарной нагрузки, м2.


Таблица 6 - Классификация помещений по пожароопасности

Категория помещенияВ1В2В3В4Удельная пожарная нагрузка gH, МДж/м2Более 22001401-2200181-14001-180

Для рассматриваемого помещения:= 4990/16 = 311,875 МДж/м2.

Следовательно, согласно таблице 5, данное помещение по пожарной опасности относится к категории В3.

Поэтому, для предотвращения пожаров и усиления пожарной безопасности в рассматриваемом помещении необходимо строгое выполнение и соблюдение следующих правил и требований ГОСТ 12.1.004-91 «ССБТ. Пожарная безопасность. Общие требования» и ППБ 01-03 «Правила пожарной безопасности в РФ»:

)запрещается складывать дела, книги, бумаги на отопительные приборы, шкафы и на подоконники;

)двери оборудуются в притворах уплотнителями, чтобы не допустить задымления отдельных помещений;

)система вентиляции должна быть оборудована датчиком ее отключения в случае пожара;

)в помещениях для ПЭВМ запрещается курить и применять открытый огонь, электронагревательные приборы (электропаяльники) допустимо применять только с напряжением не выше 36 В;

)нельзя оставлять устройства ВТ подключенными к источнику питания при уходе с рабочего места;

)не реже одного раза в месяц необходимо производить очистку от пыли агрегатов и узлов, кабельных каналов и межпольного пространства;

)устройства ПЭВМ необходимо устанавливать вдали от отопительных и нагревательных приборов (расстояние не менее 1 м и в местах, где не затруднена их вентиляция и нет прямых солнечных лучей);

)запрещается устанавливать для защиты электросети самодельные предохранители.

В соответствии с требованиями ГОСТ 12.1.004-91 «ССБТ. Пожарная безопасность. Общие требования» пожарная безопасность достигается системами предотвращения пожара и пожарной защиты. Для первичного тушения пожара в помещении установлены два ручных углекислотных огнетушителя типа ОУ-8. В огнетушителе ОУ-8 раструб присоединяется к запорной головке через бронированный шланг длиной 0,8 м. Баллоны огнетушителей заполнены жидкой углекислотой под давлением 6-7 МПа.

Мероприятия по пожарной профилактике

Профилактическая работа на объектах включает: периодические проверки состояния пожарной безопасности объекта в целом и его отдельных участков, а также обеспечение контроля над своевременным выполнением предложенных мероприятий; постоянный контроль над проведением пожароопасных работ, проведение бесед-инструктажей и специальных занятий с учащимися и преподавателями кафедры по вопросам пожарной безопасности и других мероприятий по противопожарной пропаганде и агитации; проверку исправности и правильного содержания стационарных автоматических и первичных средств пожаротушения, систем извещения о пожарах; установку в аудиториях систем пожарной автоматики.

В приведении в жизнь мероприятий по устранению пожарной опасности участвует как инженерно-технический персонал, так и учащиеся.

Устранить причины возникновения пожаров возможно с помощью следующих мероприятий:

) Организационные - обучение противопожарным правилам, проведение бесед, лекций, инструктажей и т.п.

) Эксплуатационные - предусматривают правильную эксплуатацию машин, оборудования, правильное содержание зданий, территории.

) Технические - соблюдение противопожарных норм и правил.

4) Режимные - запрещение курения в неустановленных местах, производства сварочных работ в пожароопасных помещениях и т.д.[11]

.2.5 Освещенность рабочего места

При работе на ПЭВМ увеличиваются нагрузки на глаза, появляется необходимость различения мелких деталей на экране монитора и т.д. Для уменьшения утомляемости глаз необходимо обеспечить достаточное освещение рабочих мест. Выбор типа освещения основывается на учете психологических, экономических, физиологических и других факторов.

Работа на ПЭВМ может осуществляться при наличии естественного и искусственного освещения. Величина коэффициента естественной освещенности должна соответствовать нормативным уровням по СНиП 23-05-95 «Естественное и искусственное освещение».

Искусственное освещение в помещениях с ПЭВМ следует осуществлять системой общего равномерного освещения. Освещенность на поверхности стола в зоне размещения рабочего документа от системы общего освещения должна быть 300-500 лк.[14]

.3 Расчет общего искусственного освещения в помещении с ПЭВМ

Целью расчета является определение числа и расположения светильников, а также числа и мощности ламп, необходимых для обеспечения требуемого нормативного уровня освещенности для работы оператора ПЭВМ.

Расчет искусственного освещения будет проводиться для помещения общей площадью S = 16 м2 (длина помещения a = 4 м, ширина b = 4 м, высота h = 3 м).

В соответствии с СанПиН 2.2.2/2.4.1340-03 «Гигиенические требования к ПЭВМ и организации работы» освещенность на поверхности стола в зоне размещения рабочего документа должна быть 300 - 500 лк. Для расчета требуемый нормативный уровень освещенности Ен выберем равной 400 лк.

Для освещения помещения используется система общего освещения, так как она обеспечивает большую равномерность освещенности рабочих поверхностей.

Расчет общего равномерного освещения будет производиться методом коэффициента использования светового потока, учитывающий величину светового потока, отраженного от потолка и стен.

Для освещения данного помещения выбираем тип светильника ЛСП02-2х40 с люминесцентными лампами типа ЛБ40 (в количестве двух штук, мощностью по 40 Вт каждая и световым потоком Фл = 3120 лм), габаритные размеры которого 158x280x1234 мм.

Количество светильников с люминесцентными лампами заданного типа и мощности определяется по формуле:



где Ен = 400 лк - требуемый нормативный уровень освещенности рабочей поверхности;= 16 м2 - площадь освещаемого помещения;

Кз = 1,5 - коэффициент запаса, учитывающий запыленность светильников в процессе эксплуатации;= 1,1 - коэффициент неравномерности освещения;

Фл = 3120лм - световой поток одной люминесцентной лампы в светильнике;л.св = 2 - количество ламп в одном светильнике;

- коэффициент используемого излучаемого светильником светового потока при освещении рабочей поверхности, зависящий от коэффициентов отражения света от потолка (р=0,7) и стен (р=0,5), а также от индекса помещения (i).

Индекс помещения определяется по формуле:



где a = 4 м - ширина помещения;

b = 4 м - длина помещения;

hр = 0,73 м- высота рабочей поверхности над полом.

Найдем индекс помещения:

i = = 2,74

Зная индекс помещения и коэффициенты отражения, из таблицы коэффициентов использования определяем ? = 0,46.

Подставляем полученные значения в формулу для определения количества светильников:

Таким образом, принимаем количество светильников равным 4, каждый из которых укомплектован двумя люминесцентными лампами.

Проверим фактический уровень освещенности по формуле:



Полученное фактическое значение (Ефакт=434,9 лк) отличается от требуемого (Ен=400 лк) на +9%. Это соответствует норме.

Учитывая проведенные расчеты, получим план рабочего помещения (рисунок 59).


Рисунок 59 - План рабочего помещения


.4Эргономизация рабочего места с ПЭВМ


Помимо анализа помещения, в котором проводилась разработка программного модуль задачи реконструкции структурированных систем с поведением, необходимо проанализировать и само рабочее место программиста.

При организации рабочего места пользователя ПЭВМ следует обеспечить соответствие конструкции всех элементов рабочего места и их взаимного расположения эргономическим требованиям с учетом характера выполняемой деятельности, комплектности технических средств, форм организации труда и основного рабочего положения пользователя. Эти вопросы нашли отражение в ГОСТ 12.2.032-78 «Рабочее место при выполнении работ сидя. Общие эргономические требования» и СНиП 2.2.2.542-96 «Гигиенические требования к ВДТ, ПЭВМ и организации работы».

Основными элементами рабочего места, оснащенного ПЭВМ, является рабочий стол, рабочий стул, экран дисплея и клавиатура.

Рабочий стол для ПЭВМ может быть любой конструкции, отвечающей современным требованиям эргономики с учетом характера выполняемой деятельности. Он должен обеспечивать оптимальное размещение на рабочей поверхности используемого оборудования с учетом его количества и конструктивных особенностей (дисплея, клавиатуры и др.), а также возможность выполнения трудовых операций в пределах досягаемости.

Поверхности рабочих столов с ПЭВМ должны быть цвета натуральной древесины, голубого, светло-зеленого или светло-серого цвета. Требуемые размеры рабочей поверхности стола определяются габаритами технических средств вычислительной техники и должны быть не менее 800 мм в ширину и глубину.

Высота рабочей поверхности стола должна регулироваться в пределах от 680 до 800 мм в зависимости от роста пользователя, а при отсутствии такой возможности составлять 725 мм. Стол пользователя должен иметь пространство для ног высотой не менее 600 мм, шириной - не менее 500 мм.

Рабочий стул (кресло) должен обеспечивать поддержание рациональной рабочей позы в зависимости от характера работы с учетом роста пользователя, а его конструкция должна обеспечивать возможность изменения позы пользователя с целью снижения статического напряжения мышц шейно-плечевой области и спины для предупреждения утомления.

Установка правильной высоты сиденья является первоочередной задачей при организации рабочего места, так как этот параметр определяет прочие пространственные параметры - высоты положения экрана, клавиатуры, поверхности для записей и пр. Одним из способов снижения утомления мышц во время сидения является создание опоры туловища на спинку сидения. Самым эффективным является упор в поясничной области, который поддерживает естественный изгиб позвоночника, и менее эффективным - упор в области лопаток.

Для выполнения указанных требований рабочий стул должен быть подъемно-поворотным, регулируемым по высоте и углам наклона сидения и спинки. Поверхность элементов стула должна быть полумягкой, с нескользящим, неэлектризующимся и воздухонепроницаемым покрытием, обеспечивающим легкую чистку от загрязнения.

Экран должен находиться от глаз пользователя на оптимальном расстоянии 600-700 мм с учетом размеров знаков и символов, но не ближе 500 мм.

Уровень глаз пользователя должен приходиться на центр экрана или на 2/3 его высоты. Линия взора должна быть перпендикулярна центру экрана, а оптимальное ее отклонение в вертикальной плоскости должно находиться в пределах +5, а допустимое - +10 градусов. Оптимальный обзор в горизонтальной плоскости от центральной оси экрана должен быть в пределах +30 градусов.[16]

.5 Экологичность проекта

Данный программный модуль проектируется на ПЭВМ и предназначен для работы на ПЭВМ. Известно, что ПЭВМ является источником вредных электромагнитных излучений и других неблагоприятных факторов, представляет некоторую опасность и вредность для людей, обслуживающих или же находящихся в непосредственной близости от нее. Однако, разработанный в данном дипломном проекте программный модуль задачи реконструкции структурированных систем с поведением, не оказывает вредного влияния на окружающую среду и организм человека, так как в ПЭВМ не применяются комплектующие из радиоактивных и других опасных веществ, она не излучает в радиодиапазоне. В процессе разработки и эксплуатации нет выброса вредных веществ в атмосферу.

Единственным важным требованием по предотвращению загрязнения окружающей среды является своевременная уборка отработанной бумаги от принтера в специальные мусорные контейнеры, препятствующие распространению её на прилегающей территории, а также сортировка и правильная утилизация изношенных частей ПЭВМ. Немаловажным является и снижение электропотребления ПЭВМ путем перевода ее в режим ожидания или ее выключения, если ПЭВМ не используется.

Таким образом, данный проект полностью удовлетворяет требованиям по охране окружающей среды, предъявляемым к его проектированию и эксплуатации, то есть является экологически безопасным.[4]

информационный автомобильный sharp программирование


Заключение


В рамках данной дипломной работы мною было разработано клиентское приложение для работы с базой данных автомобильного предприятия города.

Разработанное программное обеспечение обладает набором функций для работы с таблицами, удобным интерфейсом. Программа позволяет заносить информацию об автомобилях, водителях, маршрутах и других атрибутов функционирования данного предприятия. Программа не требует инсталляции и потребляет маленькое количество ресурсов компьютера.

Вход в программу можно осуществить как под администратором, так и под обычным пользователем. Администратор имеет права по добавлению и удалению пользователей. Также существуют уровни пользователя, которые отражают тот набор таблиц, с которыми может работать пользователь. Для пользователя доступна возможность по добавлению, изменению и удалению записей из своих таблиц, а также возможность поиска по ним.

Интерфейс обладает определенным удобством. Даже незнакомый с программой пользователь сможет легко и быстро разобраться в ней.

Программное обеспечение было разработано на объектно-ориентированном языке программирования C Sharp. Это позволило существенно сократить сроки разработки и получить достаточно высокое качество программного обеспечения. Серверная часть была выполнена под управлением СУБД SQL Server 2008, что позволяет получить доступ к базе данных одновременно нескольким пользователям, удаленным от сервера, на котором хранится БД.

Исходя, из всего вышесказанного можно сделать вывод, что данный проект является удачным и может расширять свои функциональные возможности.


Список использованных источников


1.Шилдт, Герберт. Полный справочник по С#.: Пер. с англ. - М.: Издательский дом Вильямс, 2008. - 752 с.: ил.. - Парал. тит. англ.

.Фленов Михаил Библия С# - СПб:БХВ-Петербург, 2009.- 560с.

.[Электронный ресурс] /Статья «Принципы создания информационных систем». - Режим доступа #"justify">4.Обеспечение пожарной безопасности: методические указания для дипломников / Рязан. гос. радиотехн. ун-т; сост.: Н.В. Весёлкин, В.А. Крысанов; - Рязань, 2011. - 20 с

5.Проектирование информационых систем [Электронный ресурс]: Интернет университет информационных технологий - Режим доступа: <#"justify">9.Культин Н. Б.? Microsoft Visual C# в задачах и примерах., БХВ-Петсрбург, 2009г., 320с

10.ГОСТ 12.1.004-85. ССБТ. Пожарная безопасность. Общие требования.

.СНиП 2.01.02-85. Противопожарные нормы и правила.

.ГОСТ 12.1.005-88 ССБТ. Воздух рабочей зоны. Общие санитарно-гигиенические требования.

.СНиП 11-33-75 Отопление, вентиляция и кондиционирование воздуха. Нормы проектирования.

.СНиП 23.05-95 Естественное и искусственное освещение.

.ГОСТ 27.818-88. Машины вычислительные и системы обработки данных. Допустимые уровни шума на рабочих местах и методы его определения.

.СаНПин 2.2.2.542-96. Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы.

.ГОСТ 7.32-2001. Отчет о научно-исследовательской работе. Структура и правила оформления.

.ГОСТ 19.504-79. Руководство программиста. Требования к содержанию и оформлению

19.Рон Хардман, Майкл МакЛафлин <#"justify">23.Джон Коггзолл, PHP 5. Полное руководство, Диалектика, 2006 г., 752 с


Приложение А - Листинги разработанных программных модулей


Скрипт развертывания базы данных

- Создание базы данных, соответствующей предметной области Автомобильное предприятие города.

CREATE DATABASE Auto_Pred_DB

(NAME = 'Auto_Pred_DB_Data',= 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\Auto_Pred_DB_Data.mdf',= 2,= 20,= 2)


-Включение БДAuto_Pred_DB


--Создание таблицы Автомобили

CREATE TABLE [Автомобили] (

[Автомобиль] [int] PRIMARY KEY,

[Марка] [char] (15),

[Вид] [char] (30),

[ГосНомер] [char] (15) NOT NULL UNIQUE,

[Депо] [int],[FK_Автомобили_Депо] KEY ([Депо])

REFERENCES [Депо] ([Депо]))


-Создание таблицы Маршруты

CREATE TABLE [Маршруты] (

[Маршрут] [int] PRIMARY KEY,

[Назначение] [char] (50),

[Расстояние] [int])


-Создание таблицы Ремонт

CREATE TABLE [Ремонт] (

[Ремонт] [int] PRIMARY KEY,

[Вид] [char] (20))


-Создание таблицы Депо

CREATE TABLE [Депо] (

[Депо] [int] PRIMARY KEY,

[Вместимость] [int] CHECK ([Вместимость]>0))



--Создание таблицы Стаж

CREATE TABLE [Стаж] (

[Стаж] [int] PRIMARY KEY,

[Надбавка] [money])


--Создание таблицы Перевозки

CREATE TABLE [Перевозки] (

[Перевозка] [int] PRIMARY KEY,

[Вид] [char] (15),

[День] [char] (15))



-Создание таблицы Зарплаты

CREATE TABLE [Зарплаты](

[Зарплата] [money] PRIMARY KEY,

[Кол-во_Смен] [int] CHECK ([Кол-во_Смен]>=0),

[Премиальные] [money])


-Создание таблицы ВодителиTABLE [Водители]

([Водитель] int PRIMARY KEY,

[ФИО] char (50) NOT NULL UNIQUE,

[Категория] char (3) NOT NULL,

[Отпуск] int NOT NULL,

[Стаж] int DEFAULT 0,

[Зарплата] money NOT NULL)

CONSTRAINT [FK_Водители_Зарплаты] KEY ([Зарплата]) [Зарплаты] ([Зарплата]),[FK_Водители_Отпуска] KEY ([Отпуск]) [Отпуска] ([Отпуск]),

CONSTRAINT [FK_Водители_Стаж] KEY ([Стаж])

REFERENCES [Стаж] ([Стаж])


-Создание таблицы Отпуска

CREATE TABLE [Отпуска] (

[Отпуск] PRIMARY KEY,

[Длительность] [int] NOT NULL DEFAULT 28,

[Отпускные] [money] NOT NULL CHECK ([Отпускные]>0))


--Создание таблицы Распределение

CREATE TABLE [Распределение] (

[Автомобиль] [int] NOT NULL,

[Маршрут] [int] NOT NULL,

[Начало] [datetime],

[Конец] [datetime],[PK_Распределение] KEY ([Автомобиль], [Маршрут]),

CONSTRAINT [FK_Распределение_Автомобили] KEY ([Автомобиль]) [Автомобили] ([Автомобиль]),[FK_Распределение_Маршруты]

FOREIGN KEY ([Маршрут])[Маршруты] ([Маршрут]))



--Создание таблицы Ремонтирование

CREATE TABLE [Ремонтирование] (

[Автомобиль] [int] NOT NULL,

[Ремонт] [int] NOT NULL,

[Длительность] [char] (10),

[Затраты] [money],[PK_Ремонтирование] KEY ([Автомобиль], [Ремонт]),[FK_Ремонтирование_Автомобили] KEY ([Автомобиль]) [Автомобили] ([Автомобиль]),[FK_Ремонтирование_Автомобили] KEY ([Автомобиль]) [Автомобили] ([Автомобиль]))


-Создание таблицы Закрепление

CREATE TABLE [Закрепление] (

[Автомобиль] [int] NOT NULL,

[Водитель] [int] NOT NULL,

[Техосмотр] [char] (10),

[Статус] [char] (10), [PK_Закрепление] KEY ([Автомобиль], [Водитель]),[FK_Закрепление_Автомобили] KEY ([Автомобиль]) [Автомобили] ([Автомобиль]),[FK_Закрепление_Водители] KEY ([Водитель]) [Водители] ([Водитель])


-Создание таблицы ПеревозитсяTABLE [Перевозится] (

[Автомобиль] [int] NOT NULL,

[Перевозка] [int] NOT NULL,

[Стоимость] [money],

[Срочность] [char] (15),

CONSTRAINT [PK_Перевозится]

PRIMARY KEY ([Автомобиль], [Перевозка]),[FK_Перевозится_Автомобили] KEY ([Автомобиль]) [Автомобили] ([Автомобиль]), [FK_Перевозится_Перевозки] KEY ([Перевозка]) [Перевозки] ([Перевозка]))


Листинг главной формы

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.Data.SqlClient;

Krs

{partial class Form1: Form

{string tmpstr = "";string cs;Form1(string name)

{();= name;

}void Form1_Load(object sender, EventArgs e)

{

/*cs = Auto_Pred_DB.Properties.Settings.Default.ConecStr;

автомобилиTableAdapter.Connection.ConnectionString = cs;

водителиTableAdapter.Connection.ConnectionString = cs;

депоTableAdapter.Connection.ConnectionString = cs;

закреплениеTableAdapter.Connection.ConnectionString = cs;

зарплатыTableAdapter.Connection.ConnectionString = cs;

маршрутыTableAdapter.Connection.ConnectionString = cs;

отпускаTableAdapter.Connection.ConnectionString = cs;

перевозитсяTableAdapter.Connection.ConnectionString = cs;

перевозкиTableAdapter.Connection.ConnectionString = cs;

распределениеTableAdapter.Connection.ConnectionString = cs;

ремонтTableAdapter.Connection.ConnectionString = cs;

ремонтированиеTableAdapter.Connection.ConnectionString = cs;

стажTableAdapter.Connection.ConnectionString = cs;*/


// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Стаж' table. You can move, or remove it, as needed..стажTableAdapter.Fill(this.auto_Pred_DBDataSet.Стаж);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Ремонтирование' table. You can move, or remove it, as needed..ремонтированиеTableAdapter.Fill(this.auto_Pred_DBDataSet.Ремонтирование);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Ремонт' table. You can move, or remove it, as needed..ремонтTableAdapter.Fill(this.auto_Pred_DBDataSet.Ремонт);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Распределение' table. You can move, or remove it, as needed..распределениеTableAdapter.Fill(this.auto_Pred_DBDataSet.Распределение);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Перевозки' table. You can move, or remove it, as needed..перевозкиTableAdapter.Fill(this.auto_Pred_DBDataSet.Перевозки);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Перевозится' table. You can move, or remove it, as needed..перевозитсяTableAdapter.Fill(this.auto_Pred_DBDataSet.Перевозится);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Отпуска' table. You can move, or remove it, as needed..отпускаTableAdapter.Fill(this.auto_Pred_DBDataSet.Отпуска);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Маршруты' table. You can move, or remove it, as needed..маршрутыTableAdapter.Fill(this.auto_Pred_DBDataSet.Маршруты);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Зарплаты' table. You can move, or remove it, as needed..зарплатыTableAdapter.Fill(this.auto_Pred_DBDataSet.Зарплаты);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Закрепление' table. You can move, or remove it, as needed..закреплениеTableAdapter.Fill(this.auto_Pred_DBDataSet.Закрепление);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Депо' table. You can move, or remove it, as needed..депоTableAdapter.Fill(this.auto_Pred_DBDataSet.Депо);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Водители' table. You can move, or remove it, as needed..водителиTableAdapter.Fill(this.auto_Pred_DBDataSet.Водители);

// TODO: This line of code loads data into the 'auto_Pred_DBDataSet.Автомобили' table. You can move, or remove it, as needed..автомобилиTableAdapter.Fill(this.auto_Pred_DBDataSet.Автомобили);


}

//Редактирование таблицы Автомобилиvoid refreshAvto_Click(object sender, EventArgs e)

{.автомобилиTableAdapter.Fill(this.auto_Pred_DBDataSet.Автомобили);

}

void addAvto_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddAvto @Автомобиль,@Марка,@Вид,@ГосНомер,@Депо";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addAvtoCarTextBox.Text);.Parameters.Add("@Марка", SqlDbType.VarChar).Value = addAvtoMarkaTextBox.Text;.Parameters.Add("@Вид", SqlDbType.VarChar).Value = addAvtoVidTextBox.Text;.Parameters.Add("@ГосНомер", SqlDbType.VarChar).Value = addAvtoGosNomerTextBox.Text;.Parameters.Add("@Депо", SqlDbType.Int).Value = Convert.ToInt32(addAvtoDepoTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delAvto_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelAvto @ГосНомер";

{.Parameters.Add("@ГосНомер", SqlDbType.VarChar).Value = delAvtoTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changeAvto_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPchangeAvto @Автомобиль,@Марка,@Вид,@ГосНомер,@Депо";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addAvtoCarTextBox.Text);.Parameters.Add("@Марка", SqlDbType.VarChar).Value = addAvtoMarkaTextBox.Text;.Parameters.Add("@Вид", SqlDbType.VarChar).Value = addAvtoVidTextBox.Text;.Parameters.Add("@ГосНомер", SqlDbType.VarChar).Value = addAvtoGosNomerTextBox.Text;.Parameters.Add("@Депо", SqlDbType.Int).Value = Convert.ToInt32(addAvtoDepoTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findAvto_Click(object sender, EventArgs e)

{(rbAvtoMarka.Checked)

{

автомобилиBindingSource.Position =

автомобилиBindingSource.Find("Марка", searchAvtoTextBox.Text);

}(rbAvtoVid.Checked)

{

автомобилиBindingSource.Position =

автомобилиBindingSource.Find("Вид", searchAvtoTextBox.Text);

}(rbAvtoGosNomer.Checked)

{

автомобилиBindingSource.Position =

автомобилиBindingSource.Find("ГосНомер", searchAvtoTextBox.Text);

}

}


//Редактирование таблицы Водителиvoid refreshDrivers_Click(object sender, EventArgs e)

{.водителиTableAdapter.Fill(this.auto_Pred_DBDataSet.Водители);

}

void addDrivers_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddDrivers @Водитель,@ФИО,@Категория,@Отпуск,@Стаж,@Зарплата";

{.Parameters.Add("@Водитель", SqlDbType.Int).Value = Convert.ToInt32(addDriversDriverTextBox.Text);.Parameters.Add("@ФИО", SqlDbType.VarChar).Value = addDriversFIOTextBox.Text;.Parameters.Add("@Категория", SqlDbType.VarChar).Value = addDriversCategoryTextBox.Text;.Parameters.Add("@Отпуск", SqlDbType.Int).Value = Convert.ToInt32(addDriversOtpuskTextBox.Text);.Parameters.Add("@Стаж", SqlDbType.Int).Value = Convert.ToInt32(addDriversStajTextBox.Text);.Parameters.Add("@Зарплата", SqlDbType.Money).Value = addDriversZarplataTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delDrivers_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelDrivers @ФИО";

{.Parameters.Add("@ФИО", SqlDbType.VarChar).Value = delDriversTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода");

}

{.Close();_Click(sender, e);

}

}

void changeDrivers_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPchangeDrivers @Водитель,@ФИО,@Категория,@Отпуск,@Стаж,@Зарплата";

{.Parameters.Add("@Водитель", SqlDbType.Int).Value = Convert.ToInt32(addDriversDriverTextBox.Text);.Parameters.Add("@ФИО", SqlDbType.VarChar).Value = addDriversFIOTextBox.Text;.Parameters.Add("@Категория", SqlDbType.VarChar).Value = addDriversCategoryTextBox.Text;.Parameters.Add("@Отпуск", SqlDbType.Int).Value = Convert.ToInt32(addDriversOtpuskTextBox.Text);.Parameters.Add("@Стаж", SqlDbType.Int).Value = Convert.ToInt32(addDriversStajTextBox.Text);.Parameters.Add("@Зарплата", SqlDbType.Money).Value = addDriversZarplataTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findDrivers_Click(object sender, EventArgs e)

{(rbDriversFIO.Checked)

{

водителиBindingSource.Position =

водителиBindingSource.Find("ФИО", searchDriversTextBox.Text);

}(rbDriversCategory.Checked)

{

водителиBindingSource.Position =

водителиBindingSource.Find("Категория", searchDriversTextBox.Text);

}(rbDriversStaj.Checked)

{

водителиBindingSource.Position =

водителиBindingSource.Find("Стаж", searchDriversTextBox.Text);

}

}


//Редактирование таблицы Депоvoid refreshDepo_Click(object sender, EventArgs e)

{.депоTableAdapter.Fill(this.auto_Pred_DBDataSet.Депо);

}

void addDepo_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddDepo @Депо,@Вместимость";

{.Parameters.Add("@Депо", SqlDbType.Int).Value = Convert.ToInt32(addDepoNumberTextBox.Text);.Parameters.Add("@Вместимость", SqlDbType.Int).Value = Convert.ToInt32(addDepoCapacityTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delDepo_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelDepo @Депо";

{.Parameters.Add("@Депо", SqlDbType.Int).Value = Convert.ToInt32(delDepoTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changeDepo_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangeDepo @Депо,@Вместимость";

{.Parameters.Add("@Депо", SqlDbType.Int).Value = Convert.ToInt32(addDepoNumberTextBox.Text);.Parameters.Add("@Вместимость", SqlDbType.Int).Value = Convert.ToInt32(addDepoCapacityTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findDepo_Click(object sender, EventArgs e)

{(rbDepoNumber.Checked)

{

депоBindingSource.Position =

депоBindingSource.Find("Депо", searchDepoTextBox.Text);

}(rbDepoCapacity.Checked)

{

депоBindingSource.Position =

депоBindingSource.Find("Вместимость", searchDepoTextBox.Text);

}

}


//Редактирование таблицы Закреплениеvoid refreshZakrep_Click(object sender, EventArgs e)

{.закреплениеTableAdapter.Fill(this.auto_Pred_DBDataSet.Закрепление);

}

void addZakrep_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE @beda =SPaddZakrep @Автомобиль,@Водитель,@Техосмотр, @Статус ";.Parameters.Add("@beda", SqlDbType.Int);.Parameters["@beda"].Direction = ParameterDirection.Output;

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addZakrepCarTextBox.Text);.Parameters.Add("@Водитель", SqlDbType.Int).Value = Convert.ToInt32(addZakrepDriverTextBox.Text);.Parameters.Add("@Техосмотр", SqlDbType.VarChar).Value = addZakrepTOTextBox.Text;.Parameters.Add("@Статус", SqlDbType.VarChar).Value = addZakrepStatusTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delZakrep_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelZakrep @Марка,@ФИО";

{.Parameters.Add("@Марка", SqlDbType.VarChar).Value = delZakrepMarkaTextBox.Text;.Parameters.Add("@ФИО", SqlDbType.VarChar).Value = delZakrepFIOTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changeZakrep_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE @beda =SPchangeZakrep @Автомобиль,@Водитель,@Техосмотр, @Статус ";.Parameters.Add("@beda", SqlDbType.Int);.Parameters["@beda"].Direction = ParameterDirection.Output;

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addZakrepCarTextBox.Text);.Parameters.Add("@Водитель", SqlDbType.Int).Value = Convert.ToInt32(addZakrepDriverTextBox.Text);.Parameters.Add("@Техосмотр", SqlDbType.VarChar).Value = addZakrepTOTextBox.Text;.Parameters.Add("@Статус", SqlDbType.VarChar).Value = addZakrepStatusTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findZakrep_Click(object sender, EventArgs e)

{(rbZakrepDriver.Checked)

{

закреплениеBindingSource.Position =

закреплениеBindingSource.Find("Водитель", searchZakrepTextBox.Text);

}(rbZakrepTO.Checked)

{

закреплениеBindingSource.Position =

закреплениеBindingSource.Find("Техосмотр", searchZakrepTextBox.Text);

}(rbZakrepStatus.Checked)

{

закреплениеBindingSource.Position =

закреплениеBindingSource.Find("Статус", searchZakrepTextBox.Text);

}

}

//Редактирование таблицы Зарплатыvoid refreshZarplati_Click(object sender, EventArgs e)

{.зарплатыTableAdapter.Fill(this.auto_Pred_DBDataSet.Зарплаты);

}

void addZarplati_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddZarplati @Зарплата,@КолвоСмен,@Премиальные";

{.Parameters.Add("@Зарплата", SqlDbType.Money).Value = addZarplatiZarplataTextBox.Text;.Parameters.Add("@КолвоСмен", SqlDbType.Int).Value = Convert.ToInt32(addZarplatiKolvoSmenTextBox.Text);.Parameters.Add("@Премиальные", SqlDbType.Money).Value = addZarplatiPremialnieTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delZarplati_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelZarplati @Зарплата";

{.Parameters.Add("@Зарплата", SqlDbType.Money).Value = delZarplatiTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changeZarplati_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangeZarplati @Зарплата,@КолвоСмен,@Премиальные";

{.Parameters.Add("@Зарплата", SqlDbType.Money).Value = addZarplatiZarplataTextBox.Text;.Parameters.Add("@КолвоСмен", SqlDbType.Int).Value = Convert.ToInt32(addZarplatiKolvoSmenTextBox.Text);.Parameters.Add("@Премиальные", SqlDbType.Money).Value = addZarplatiPremialnieTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findZarplati_Click(object sender, EventArgs e)

{(rbZarplatiZarplata.Checked)

{

зарплатыBindingSource.Position =

зарплатыBindingSource.Find("Зарплата", searchZarplatiTextBox.Text);

}(rbZarplatiKolvoSmen.Checked)

{

зарплатыBindingSource.Position =

зарплатыBindingSource.Find("Кол-во_Смен", searchZarplatiTextBox.Text);

}(rbZarplatiPremialnie.Checked)

{

зарплатыBindingSource.Position =

зарплатыBindingSource.Find("Премиальные", searchZarplatiTextBox.Text);

}

}


//Редактирование таблицы Маршрутыvoid refreshMarsh_Click(object sender, EventArgs e)

{.маршрутыTableAdapter.Fill(this.auto_Pred_DBDataSet.Маршруты);

}

void addMarsh_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddMarsh @Маршрут,@Назначение,@Расстояние";

{.Parameters.Add("@Маршрут", SqlDbType.Int).Value = Convert.ToInt32(addMarshNumberTextBox.Text);.Parameters.Add("@Назначение", SqlDbType.VarChar).Value = addMarshNaznachenieTextBox.Text;.Parameters.Add("@Расстояние", SqlDbType.Int).Value = Convert.ToInt32(addMarshRasstoyanieTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delMarsh_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelMarsh @Маршрут";

{.Parameters.Add("@Маршрут", SqlDbType.Int).Value = Convert.ToInt32(delMarshTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changeMarsh_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangeMarsh @Маршрут,@Назначение,@Расстояние";

{.Parameters.Add("@Маршрут", SqlDbType.Int).Value = Convert.ToInt32(addMarshNumberTextBox.Text);.Parameters.Add("@Назначение", SqlDbType.VarChar).Value = addMarshNaznachenieTextBox.Text;.Parameters.Add("@Расстояние", SqlDbType.Int).Value = Convert.ToInt32(addMarshRasstoyanieTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findMarsh_Click(object sender, EventArgs e)

{(rbMarshNumber.Checked)

{

маршрутыBindingSource.Position =

маршрутыBindingSource.Find("Маршрут", searchMarshTextBox.Text);

}(rbMarshNaznachenie.Checked)

{

маршрутыBindingSource.Position =

маршрутыBindingSource.Find("Назначение", searchMarshTextBox.Text);

}(rbMarshRasstoyanie.Checked)

{

маршрутыBindingSource.Position =

маршрутыBindingSource.Find("Расстояние", searchMarshTextBox.Text);

}

}


//Редактирование таблицы Отпускаvoid refreshOtpuska_Click(object sender, EventArgs e)

{.отпускаTableAdapter.Fill(this.auto_Pred_DBDataSet.Отпуска);

}

void addOtpuska_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddOtpuska @Отпуск,@Длительность,@Отпускные";

{.Parameters.Add("@Отпуск", SqlDbType.Int).Value = Convert.ToInt32(addOtpuskaNumberTextBox.Text);.Parameters.Add("@Длительность", SqlDbType.Int).Value = Convert.ToInt32(addOtpuskaDlitTextBox.Text);.Parameters.Add("@Отпускные", SqlDbType.Money).Value = addOtpuskaOtpusknieTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delOtpuska_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelOtpuska @Отпуск";

{.Parameters.Add("@Отпуск", SqlDbType.Int).Value = Convert.ToInt32(delOtpuskaTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода");

}

{.Close();_Click(sender, e);

}

}

void changeOtpuska_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangeOtpuska @Отпуск,@Длительность,@Отпускные";

{.Parameters.Add("@Отпуск", SqlDbType.Int).Value = Convert.ToInt32(addOtpuskaNumberTextBox.Text);.Parameters.Add("@Длительность", SqlDbType.Int).Value = Convert.ToInt32(addOtpuskaDlitTextBox.Text);.Parameters.Add("@Отпускные", SqlDbType.Money).Value = addOtpuskaOtpusknieTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}


}

void findOtpuska_Click(object sender, EventArgs e)

{(rbOtpuskaNumber.Checked)

{

отпускаBindingSource.Position =

отпускаBindingSource.Find("Отпуск", searchOtpuskaTextBox.Text);

}(rbOtpuskaDlit.Checked)

{

отпускаBindingSource.Position =

отпускаBindingSource.Find("Длительность", searchOtpuskaTextBox.Text);

}

}

//Редактирование таблицы Перевозитсяvoid refreshPerevozitsya_Click(object sender, EventArgs e)

{.перевозитсяTableAdapter.Fill(this.auto_Pred_DBDataSet.Перевозится);

}

void addPerevozitsya_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddPerevozitsya @Автомобиль,@Перевозка,@Стоимость,@Срочность";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addPerevozitsyaCarTextBox.Text);.Parameters.Add("@Перевозка", SqlDbType.Int).Value = Convert.ToInt32(addPerevozitsyaPerevozkaTextBox.Text);.Parameters.Add("@Стоимость", SqlDbType.Money).Value = addPerevozitsyaCostTextBox.Text;.Parameters.Add("@Срочность", SqlDbType.VarChar).Value = addPerevozitsyaSrochnostTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delPerevozitsya_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelPerevozitsya @Автомобиль";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(delPerevozitsyaCarNumberTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changePerevozitsya_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangePerevozitsya @Автомобиль,@Перевозка,@Стоимость,@Срочность";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addPerevozitsyaCarTextBox.Text);.Parameters.Add("@Перевозка", SqlDbType.Int).Value = Convert.ToInt32(addPerevozitsyaPerevozkaTextBox.Text);.Parameters.Add("@Стоимость", SqlDbType.Money).Value = addPerevozitsyaCostTextBox.Text;.Parameters.Add("@Срочность", SqlDbType.VarChar).Value = addPerevozitsyaSrochnostTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findPerevozitsya_Click(object sender, EventArgs e)

{(rbPerevozitsyaCost.Checked)

{

перевозитсяBindingSource.Position =

перевозитсяBindingSource.Find("Стоимость", searchPerevozitsyaTextBox.Text);

}(rbPerevozitsyaSrochnost.Checked)

{

перевозитсяBindingSource.Position =

перевозитсяBindingSource.Find("Срочность", searchPerevozitsyaTextBox.Text);

}

}

//Редактирование таблицы Перевозкиvoid refreshPerevozki_Click(object sender, EventArgs e)

{.перевозкиTableAdapter.Fill(this.auto_Pred_DBDataSet.Перевозки);

}

void addPerevozki_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddPerevozki @Перевозка,@Вид,@День";

{.Parameters.Add("@Перевозка", SqlDbType.Int).Value = Convert.ToInt32(addPerevozkiPerevozkaTextBox.Text);.Parameters.Add("@Вид", SqlDbType.VarChar).Value = addPerevozkiVidTextBox.Text;.Parameters.Add("@День", SqlDbType.VarChar).Value = addPerevozkiDayTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delPerevozki_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelPerevozki @Перевозка";

{.Parameters.Add("@Перевозка", SqlDbType.Int).Value = Convert.ToInt32(delPerevozkiNumberTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changePerevozki_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangePerevozki @Перевозка,@Вид,@День";

{.Parameters.Add("@Перевозка", SqlDbType.Int).Value = Convert.ToInt32(addPerevozkiPerevozkaTextBox.Text);.Parameters.Add("@Вид", SqlDbType.VarChar).Value = addPerevozkiVidTextBox.Text;.Parameters.Add("@День", SqlDbType.VarChar).Value = addPerevozkiDayTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findPerevozki_Click(object sender, EventArgs e)

{(rbPerevozkiVid.Checked)

{

перевозкиBindingSource.Position =

перевозкиBindingSource.Find("Вид", searchPerevozkiTextBox.Text);

}(rbPerevozkiDay.Checked)

{

перевозкиBindingSource.Position =

перевозкиBindingSource.Find("День", searchPerevozkiTextBox.Text);

}

}

//Редактирование таблицы Распределениеvoid refreshRaspr_Click(object sender, EventArgs e)

{.распределениеTableAdapter.Fill(this.auto_Pred_DBDataSet.Распределение);

}

void addRaspr_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddRaspr @Автомобиль,@Маршрут,@Начало,@Конец";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addRasprCarTextBox.Text);.Parameters.Add("@Маршрут", SqlDbType.Int).Value = Convert.ToInt32(addRasprMarshrutTextBox.Text);.Parameters.Add("@Начало", SqlDbType.DateTime).Value = addRasprStartTextBox.Text;.Parameters.Add("@Конец", SqlDbType.DateTime).Value = addRasprFinishTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delRaspr_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelRaspr @Автомобиль";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addRasprCarTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changeRaspr_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangeRaspr @Автомобиль,@Маршрут,@Начало,@Конец";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addRasprCarTextBox.Text);.Parameters.Add("@Маршрут", SqlDbType.Int).Value = Convert.ToInt32(addRasprMarshrutTextBox.Text);.Parameters.Add("@Начало", SqlDbType.DateTime).Value = addRasprStartTextBox.Text;.Parameters.Add("@Конец", SqlDbType.DateTime).Value = addRasprFinishTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findRaspr_Click(object sender, EventArgs e)

{(rbRasprCarNumber.Checked)

{

распределениеBindingSource.Position =

распределениеBindingSource.Find("Автомобиль", searchRasprTextBox.Text);

}(rbRasprMarshrut.Checked)

{

распределениеBindingSource.Position =

распределениеBindingSource.Find("Маршрут", searchRasprTextBox.Text);

}

}

//Редактирование таблицы Ремонтvoid refreshRemont_Click(object sender, EventArgs e)

{.ремонтTableAdapter.Fill(this.auto_Pred_DBDataSet.Ремонт);

}

void addRemont_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddRemont @Ремонт,@Вид";

{.Parameters.Add("@Ремонт", SqlDbType.Int).Value = Convert.ToInt32(addRemontRemontTextBox.Text);.Parameters.Add("@Вид", SqlDbType.VarChar).Value = addRemontVidTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delRemont_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelRemont @Ремонт";

{.Parameters.Add("@Ремонт", SqlDbType.Int).Value = Convert.ToInt32(delRemontTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changeRemont_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangeRemont @Ремонт,@Вид";

{.Parameters.Add("@Ремонт", SqlDbType.Int).Value = Convert.ToInt32(addRemontRemontTextBox.Text);.Parameters.Add("@Вид", SqlDbType.VarChar).Value = addRemontVidTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findRemont_Click(object sender, EventArgs e)

{(rbRemontRemont.Checked)

{

ремонтBindingSource.Position =

ремонтBindingSource.Find("Ремонт", searchRemontTextBox.Text);

}(rbRemontVid.Checked)

{

ремонтBindingSource.Position =

ремонтBindingSource.Find("Вид", searchRemontTextBox.Text);

}

}

//Редактирование таблицы Ремонтированиеvoid refreshRemontirovanie_Click(object sender, EventArgs e)

{.ремонтированиеTableAdapter.Fill(this.auto_Pred_DBDataSet.Ремонтирование);

}

void addRemontirovanie_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddRemontirovanie @Автомобиль,@Ремонт,@Длительность,@Затраты";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addRemontirovanieCarTextBox.Text);.Parameters.Add("@Ремонт", SqlDbType.Int).Value = Convert.ToInt32(addRemontirovanieRemontTextBox.Text);.Parameters.Add("@Длительность", SqlDbType.VarChar).Value = addRemontirovanieDlitTextBox.Text;.Parameters.Add("@Затраты", SqlDbType.Money).Value = addRemontirovanieZatratiTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delRemontirovanie_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelRemontirovanie @Автомобиль";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(delRemontirovanieTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changeRemontirovanie_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangeRemontirovanie @Автомобиль,@Ремонт,@Длительность,@Затраты";

{.Parameters.Add("@Автомобиль", SqlDbType.Int).Value = Convert.ToInt32(addRemontirovanieCarTextBox.Text);.Parameters.Add("@Ремонт", SqlDbType.Int).Value = Convert.ToInt32(addRemontirovanieRemontTextBox.Text);.Parameters.Add("@Длительность", SqlDbType.VarChar).Value = addRemontirovanieDlitTextBox.Text;.Parameters.Add("@Затраты", SqlDbType.Money).Value = addRemontirovanieZatratiTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findRemontirovanie_Click(object sender, EventArgs e)

{(rbRemontirovanieCar.Checked)

{

ремонтированиеBindingSource.Position =

ремонтированиеBindingSource.Find("Автомобиль", searchRemontirovanieTextBox.Text);

}(rbRemontirovanieDlit.Checked)

{

ремонтированиеBindingSource.Position =

ремонтированиеBindingSource.Find("Длительность", searchRemontirovanieTextBox.Text);

}

}

//Редактирование таблицы Стажvoid refreshStaj_Click(object sender, EventArgs e)

{.стажTableAdapter.Fill(this.auto_Pred_DBDataSet.Стаж);

}

void addStaj_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPaddStaj @Стаж,@Надбавка";

{.Parameters.Add("@Стаж", SqlDbType.Int).Value = Convert.ToInt32(addStajStajTextBox.Text);.Parameters.Add("@Надбавка", SqlDbType.Money).Value = addStajNadbavkaTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void delStaj_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();com = con.CreateCommand();.CommandText = "EXECUTE SPdelStaj @Стаж";

{.Parameters.Add("@Стаж", SqlDbType.Int).Value = Convert.ToInt32(delStajTextBox.Text);.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void changeStaj_Click(object sender, EventArgs e)

{con = new SqlConnection(tmpstr);.Open();

com = con.CreateCommand();.CommandText = "EXECUTE SPchangeStaj @Стаж,@Надбавка";

{.Parameters.Add("@Стаж", SqlDbType.Int).Value = Convert.ToInt32(addStajStajTextBox.Text);.Parameters.Add("@Надбавка", SqlDbType.Money).Value = addStajNadbavkaTextBox.Text;.ExecuteNonQuery();

}(Exception)

{.Show("Ошибка ввода", "Сообщение"););

}

{.Close();_Click(sender, e);

}

}

void findStaj_Click(object sender, EventArgs e)

{(rbStajStaj.Checked)

{

стажBindingSource.Position =

стажBindingSource.Find("Стаж", searchStajTextBox.Text);

}(rbStajNadbavka.Checked)

{

стажBindingSource.Position =

стажBindingSource.Find("Надбавка", searchStajTextBox.Text);

}

}

void toolStripMenuItem3_Click(object sender, EventArgs e)

{

// this.Form1.Close();

}

void toolStripMenuItem2_Click(object sender, EventArgs e)

{.DialogResult = DialogResult.OK;

}


}

}

Листинг формы входа в системуSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.Data.SqlClient;

Krs

{partial class Login: Form

{

//string tmpstr = "";Login()

{();

}void Form1Show(string name)

{form1 = new Form1(name);.Hide();(form1.ShowDialog() == DialogResult.OK)

{.Show();

}

}

void button1_Click(object sender, EventArgs e)

{val = 0;tmpstr = "Data Source =" + textBox1.Text + "; Initial Catalog = Auto_Pred_DB;User Id =" + textBox2.Text + "; Password =" + textBox3.Text;name = tmpstr.ToString();con = new SqlConnection(tmpstr);com = new SqlCommand("Conworks", con);.CommandType = CommandType.StoredProcedure;

{param = new SqlParameter("@ff", SqlDbType.Int);.Direction = ParameterDirection.Output;.Parameters.Add(param);.Open();.ExecuteNonQuery();= (int)param.Value;(val == 1)

{.Show("Подключение выполнено", "Сообщение");Show(name);

}

}(Exception)

{(val != 1)

{.Show("Подключение не удалось", "Сообщение");

}

}


{}

}void Login_Load(object sender, EventArgs e)

{.Text="fsstud";.Text="sa";.Text="sa";

}

}

}


Листинг запуска приложения


using System;System.Collections.Generic;System.Windows.Forms;

Krs

{class Program

{

/// <summary>

/// The main entry point for the application.

/// </summary>

[STAThread]void Main()

{.EnableVisualStyles();.SetCompatibleTextRenderingDefault(false);.Run(new Login());

}

}

}


Приложение Б - Графический материал


Слайд 1 - Титульный слайд


Слайд 2 - Постановка задачи


Слайд 3 - Инфологическая модель


Слайд 4 - Инфологическая модель


Слайд 5 - Схема базы данных


Слайд 6 - Интерфейс пользователя


Слайд 7 - Интерфейс пользователя


Слайд 8 - Управление системой


Слайд 9 - Экономическая часть


Слайд 10 - Экономическая часть


Оглавление Введение 1. Постановка задачи и технико-экономическое обоснование 1.1 Постановка задачи 1.2 Анализ и оценка существующих аналогов

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2019 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ