Программное обеспечение вычислительной техники и автоматизированных систем

  • Вид работы:
    Отчет по практике
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    952,62 Кб
  • Опубликовано:
    2013-08-07
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Программное обеспечение вычислительной техники и автоматизированных систем

Содержание

Введение

. Создание и становление учетно-регистрационной работы в органах внутренних дел

. Организационная структура ИАКЦ МВД ПМР

. Описание аппаратного и программного обеспечения ИАКЦ

. Аналитический и литературный обзор предметной области

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

.1 Инфологическое проектирование модели базы данных

.2 Логическое проектирование модели базы данных

.3 Физическое проектирование модели базы данных

. Описание структуры программы

Заключение

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

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

Приложение Б. Листинг программы

Введение

Производственная практика является составной частью основной образовательной программы по специальности «Программное обеспечение вычислительной техники и автоматизированных систем».

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

При ее прохождении поставлены следующие цели:

- ознакомление с деятельностью организации;

изучение специфики работы учреждения;

изучение передового опыта работы специалистов учреждения;

изучение структуры организации в данном учреждении;

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

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

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

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

1. Создание и становление учетно-регистрационной работы в органах внутренних дел

ИНФОРМАЦИОННО-АНАЛИТИЧЕСКИЙ КОНТРОЛЬНЫЙ ЦЕНТР (ИАКЦ), подразделение Главного Организационно-инспекторского Управления Штаба МВД ПМР. Образован как Информационный центр (ИЦ) МВД в 1993 году с целью улучшения системы сбора, обработки, хранения информации, объединения данных, поступающих из Информационно-аналитических отделений (ИАО) горрайорганов республики и создания единой информационной структуры в системе МВД ПМР.

В 2004 году преобразован в соответствии с Решением Коллегии МВД ПМР в Информационно-аналитический Контрольный центр МВД ПМР.

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

2. Организационная структура ИАКЦ МВД ПМР

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

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

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

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

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

Совместно с ГС ИНиСР Министерства юстиции ПМР осуществляет контроль за местонахождением осужденных лиц с момента их осуждения до освобождения из учреждений ГС ИНиСР.

. Описание аппаратного и программного обеспечения ИАКЦ

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

1.   Старший инженер-программист:

·    Системная память 1014 Мб (DDR2-800 DDR2 SDRAM)

·        жесткий диск SAMSUNG HD161GJ (160 Гб, 7200 RPM, SATA-II)

·        процессор DualCore Intel Celeron E3300, 2500 MHz (12.5 x 200)

·        Операционная система Microsoft Windows XP Professional

·        Монитор Samsung SAMTRON 55(M)E (Plus) [15" CRT] (HJAR300226);

2.   Инженер-программист:

·    жесткий диск SAMSUNG HD503HI (500 Гб, 5400 RPM, SATA-II)

·        процессор DualCore Intel Celeron E3400, 2600 MHz (13 x 200)

·        Операционнаяя система Microsoft Windows XP Professional

·    Системная память 2012 Мб (DDR3-1333 DDR3 SDRAM)

·        Монитор Samsung SyncMaster 927DF(I)/927MB(I)/997DF/997MB [19" CRT] (HMBL700999);

3.   Начальник ОПО:

·    жесткий диск MAXTOR STM3250310AS (250 Гб, 7200 RPM, SATA-II) и SAMSUNG HD253GJ (250 Гб, 7200 RPM, SATA-II)

·        процессор DualCore Intel Core 2 Duo E7500, 2933 MHz (11 x 267)

·        Операционнаяя система Microsoft Windows XP Professional

·    Системная память 2016 Мб (DDR2-800 DDR2 SDRAM)

·        Монитор LG W2253 (Analog) [22" LCD] (19081);

Программное обеспечение ИАКЦ основано на базе ICS (интегрированная криминологическая система), которая была разработана в 1994 году на базе MS-DOS.

В настоящее время программное обеспечение разрабатывается программистами ИАКЦ с использование СУБД ORACLE на языках программирования Visual FoxPro, Delphi.

4. Аналитический и литературный обзор предметной области

программа автоматизированное база данные

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

База данных должна содержать информацию о сотрудниках, званиях, должностях, окладе. База данных должна иметь возможность поиска информации о сотруднике по номеру паспорта, по фамилии.

Программа должна предоставить возможность формирования отчетов:

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

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

Информация, хранящаяся в базах данных ИАКЦ, доступна для просмотра и корректировки (в зависимости от введенного пароля) во всех городских и районных отделах внутренних дел ПМР.

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

.        Анкетные данные лица:

фамилия;

имя;

отчество;

дата рождения;

место рождения;

адрес места жительства.

. Сведения о должностном лице, составившем протокол:

фамилия и инициалы;

звание;

должность;

. Сведения о месте и времени составления протокола:

время админнарушения;

место админнарушения;

фабула админнарушения;

статья КоАП;

дата составления протокола;

сведения о понятых, присутствующих при составлении протокола;

объяснения и подпись нарушителя;

описание предметов, изъятых при составлении протокола.

. Сведения о рассмотрении админпротокола:

мера наказания;

кем принято решение;

. Сведения о дате исполнения протокола.

5. Проектирование базы данных

.1 Инфологическое проектирование модели базы данных

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

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

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

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

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

Сущность «Сведения о званиях» обладает атрибутами: Звание, Срок. В качестве ключевого атрибута можно принять ID звания, который определяется числовыми значениями.

Сущность «Сведения о сотрудниках» содержит следующие атрибуты: Фамилия, Имя, Отчество, Номер паспорта, Звание, Должность, Дата поступления на работу, Дата присвоения звания, Стаж, Повышение. Идентифицирующим ключом данной сущности является Номер паспорта, так как он определяется числовыми значениями.

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



Рисунок 5.1 - Связь между сущностями «Сведения о званиях» и «Сведения о сотрудниках»

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



Рисунок 5.2 - Связь между сущностями «Сведения о должностях» и «Сведения о сотрудниках»

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

Проанализировав предметную область, можно построить следующую ER-диаграмму предметной области «Отдел кадров»:

Рисунок 5.3 - ER-диаграмма предметной области «Отдел кадров»

5.2 Логическое проектирование модели базы данных

На логическом этапе проектирования модели базы данных описывается перевод сущностей инфологической модели в отношения.

Отношение «Сведения о сотрудниках» (Фамилия, Имя, Отчество, Номер паспорта, Звание, Должность, Дата присвоения звания, Дата поступления на работу, Стаж, Повышение) находится в первой нормальной форме (1NF), так как на пересечении каждого столбца и строки находятся только элементарные значения атрибутов.

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

Отношения находится в третьей нормальной форме (3NF), если они находится во второй нормальной форме и не содержат транзитивных зависимостей. В данном случае отношение «Сведения о сотрудниках» находится во второй нормальной форме и транзитивные зависимости отсутствуют. Следовательно, данное отношение находится в третьей нормальной форме.

Следуя из приведенного определения и анализа структуры отношения, определим схему отношения «Сведения о сотрудниках», которая будет реализована в виде таблицы «сотрудники» в системе управления базами данных.

Таблица 1  - Схема отношения «Сведения о сотрудниках»

Имя атрибута

Домен

Имя поля

Условие на значение

 Описание

Фамилия

Текстовый

фамилия


Фамилия

Имя

Текстовый

имя


Имя

Отчество

Текстовый

отчество


Отчество

Номер паспорта

Числовой

номер_паспорта


Номер паспорта

ID звания

Числовой

ID_звания


ID звания

ID должности

Числовой

ID_должности


ID должности

Дата присвоения звания

Дата/время

дата_присвоения_ звания


Дата присвоения звания

Дата поступления на работу

Дата/время

дата_поступления_на_работу


Дата поступления на работу

Стаж

Текстовый

стаж


Стаж (дней.месяцев.лет)

Повышение

Текстовый

повышение


Повышение (да/нет)



Отношение «Сведения о званиях» (ID звания, Звание, Срок) находится в первой нормальной форме, так как на пересечении каждого столбца и строки находятся только элементарные значения атрибутов.

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

Отношение «Сведения о званиях» находится в третьей нормальной форме, так как она находится во второй нормальной форме и транзитивные зависимости отсутствуют.

Таким образом, определим схему отношения «Сведения о званиях», которая будет реализована в виде таблицы «звания» в системе управления базами данных.

Таблица 2 - Схема отношения «Сведения о званиях»

Имя атрибута

Домен

Имя поля

Условие на значение

 Описание

ID звания

Числовой

Id_звания


ID звания

Звание

Текстовый

звание


Звание

Срок

Числовой

срок


Через сколько лет повышение звания


Отношение «Сведения о должностях» (ID должности, Должность, Оклад) находится в первой нормальной форме, так как на пересечении каждого столбца и строки находятся только элементарные значения атрибутов.

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

Отношение «Сведения о должностях» находится в третьей нормальной форме, так как она находится во второй нормальной форме и транзитивные зависимости отсутствуют.

Таким образом, определим схему отношения «Сведения о должностях», которая будет реализована в виде таблицы «оклады» в системе управления базами данных.

Таблица 3 - Схема отношения «Сведения о должностях»

Имя атрибута

Домен

Имя поля

Условие на значение

 Описание

ID должности

Числовой

id_должности


ID должности

Должность

Текстовый

должность


Должность

Оклад

Числовой

оклад


Оклад

.3 Физическое проектирование модели базы данных

Для создания базы данных была выбрана система управления базами данных MS Access 2003. Выгодным преимуществом MS Access 2003 является тесная интеграция с Microsoft Visual Studio.

Для разработки приложения используется интегрированная среда разработки Visual Studio 2005, язык C#.

Ниже представлена схема данных предметной области «Отдел кадров» в СУБД MS Access 2003:

Рисунок 5.9 - Схема данных в СУБД MS Access 2003

6. Описание структуры программы


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

Рисунок 6.1 - Структурная схема программного продукта (объектная декомпозиция)

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

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

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

-        отчеты - формирование отчетов;

         поиск - режим поиска по заданным реквизитам;

         выход - выход из программы.

Заключение

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

В программе были реализованы следующие функции:

добавление данных о вновь принятых сотрудниках

хранение данных о сотрудниках

изменение данных о сотрудниках, званиях, должностях и окладах

автоматический подсчет стажа работы

напоминание о сроке присвоения очередного звания

вывод списка сотрудников с группировкой по должностям

вывод общего списка сотрудников

создание отчётов, возможность их сохранения и печати.

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

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


1.   Герберт Шилдт «Полный справочник по C#», перевод с англ., издательский дом «Вильямс», Москва, 2004г.-752с.:ил.

2.      Данилина Т.Г. Конспект лекций по «Технологии Программирования», РИО ПГУ, 2008 г.

.        Джесс Либерти «Создание .NET приложений. Программирование на C#», Издание 2-ое. Издательство «Символ-Плюс». Москва, 2005 г.-684с.

4.      Ермолаев. Б. Л <#"656321.files/image004.gif">

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

Для работы с таблицей «сотрудники» выбираем пункт меню таблицыàсотрудники и действие, которое требуется выполнить. Аналогичные действия необходимо выполнить для работы с таблицей «должности»

Рисунок 6.2 - Основное меню программы

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

Рисунок 6.3 - Добавление нового сотрудника

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

Рисунок 6.4 - Удаление сотрудника

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

 

Рисунок 6.5 - Удаление сотрудника

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

Рисунок 6.6 - Изменения данных о сотрудниках

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

При каждом запуске программы сравнивается дата присвоения звания с текущей датой. Вычисленная разница (количество лет) сравнивается с полем «срок» из таблицы звания. При совпадении результатов индикатор «повышение» таблицы сотрудники меняется на «да».

При изменении штатного расписания корректируется таблица должности:

.        Появление новых должностей. Выбираем пункт меню таблицыàдолжностиàдобавить.

 

Рисунок 6.7 - Добавление должности

2.   Сокращение должностей. Выбираем пункт меню

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

Рисунок 6.8 - Удаление должности

3.   Изменение оклада. Выбираем пункт меню

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

Рисунок 6.8 - Удаление должности

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

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

Рисунок 6.9 - Режим поиска

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

Рисунок 6.10 - Отчет «личные карточки»

Рисунок 6.11 - Общий отчет

 

 

Приложение Б

Листинг программы

.cs

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.Data.OleDb;WindowsApplication1

{partial class Form1 : Form

{datAdap;I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form1()

{();= new OleDbConnection(I);.Open();

}void сотрудникиToolStripMenuItem_Click(object sender, EventArgs e)

{DT = new DataTable("[сотрудники]");= new OleDbDataAdapter("Select* From [сотрудники]", con);.Fill(DT);.DataSource = DT;

}void должностиToolStripMenuItem_Click(object sender, EventArgse)

{DT = new DataTable("[оклады]");= new OleDbDataAdapter("Select* From [оклады]", con);.Fill(DT);.DataSource = DT;

}void званияToolStripMenuItem_Click(object sender, EventArgs e)

{DT = new DataTable("[звания]");= new OleDbDataAdapter("Select* From [звания]", con);.Fill(DT);.DataSource = DT;

}void изменениеToolStripMenuItem_Click(object sender, EventArgse)

{f2 = new Form2();.ShowDialog();

}void удалитьToolStripMenuItem_Click(object sender, EventArgs e)

{f3 = new Form3();.ShowDialog();

}void выходToolStripMenuItem_Click(object sender, EventArgs e)

{.Close();

}void измененToolStripMenuItem_Click(object sender, EventArgs e)

{f4 = new Form4();.ShowDialog();

}void изменитьToolStripMenuItem_Click(object sender, EventArgse)

{f5 = new Form5();.ShowDialog();

}void Form1_Activated(object sender, EventArgs e)

{Com = new OleDbCommand("SELECT сотрудники.дата_поступления_на_работу FROM сотрудники;", con);(OleDbDataReader dr = Com.ExecuteReader())

{(dr.Read())

{a = DateTime.Now;b = Convert.ToDateTime(dr.GetValue(0).ToString());y1 = a.Year;m1 = a.Month;d1 = a.Day;y2 = b.Year;m2 = b.Month;d2 = b.Day;r = d1 - d2, rm, ry;(d1 - d2 < 0)

{(m1)

{5:7:8:10:12:= d1 - d2 + 30;--;;3:(d1 - d2 < 0)(y1 % 4 == 0)= d1 - d2 + 29;r = d1 - d2 + 28;--;;1:--;= d1 - d2 + 31;= 12;;:= d1 - d2 + 31;;

}

}(m1 - m2 < 0)

{--;= m1 - m2 + 12;

}rm = m1 - m2;= y1 - y2;staj = r.ToString() + '.' + rm.ToString() + '.' + ry.ToString();u = "UPDATE сотрудники SET сотрудники.стаж = '" + staj + "' WHERE сотрудники.дата_поступления_на_работу= '" + b.ToShortDateString() + "' ;";insCom = new OleDbCommand(u, con);.ExecuteNonQuery();

}

}Com1 = new OleDbCommand("SELECT сотрудники.номер_паспотрта, сотрудники.звание, сотрудники.дата_присвоения_звания FROM сотрудники;", con);(OleDbDataReader dr1 = Com1.ExecuteReader())

{(dr1.Read())

{a = DateTime.Now;zv = dr1.GetValue(1).ToString();nomer = dr1.GetValue(0).ToString(); ;b = Convert.ToDateTime(dr1.GetValue(2).ToString());y1 = a.Year;m1 = a.Month;d1 = a.Day;y2 = b.Year;m2 = b.Month;d2 = b.Day;r = d1 - d2, rm, ry;(d1 - d2 < 0)

{(m1)

{5:7:8:10:12:= d1 - d2 + 30;--;;3:(d1 - d2 < 0)(y1 % 4 == 0)= d1 - d2 + 29;r = d1 - d2 + 28;--;;1:--;= d1 - d2 + 31;= 12;;:= d1 - d2 + 31;;

}

}(m1 - m2 < 0)

{--;= m1 - m2 + 12;

}rm = m1 - m2;= y1 - y2;(zv)

{"рядовой":"младший сержант":"сержант":"старший сержант":"старшина":"прапорщик":"старший прапорщик":"младший лейтенант":"лейтенант":(ry >= 1)

{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();

};"старший лейтенант":(ry >= 3)

{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();

};"капитан":(ry >= 4)

{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();

};"майор":(ry >= 4)

{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();

};"подполковник":(ry >= 5)

{u1 = "UPDATE сотрудники SET сотрудники.повышение = 'да' WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";insCom1 = new OleDbCommand(u1, con);.ExecuteNonQuery();

};: break;

}

}

}I1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con1 = new OleDbConnection(I1);.Open();.ClearSelection();dt = new DataTable("[сотрудники]");dA1 = new OleDbDataAdapter("Select* From [сотрудники]", con1);.Fill(dt);.DataSource = dt;.Close();

}void удалитьToolStripMenuItem1_Click(object sender, EventArgse)

{f6 = new Form6();.ShowDialog();

}void изменитьToolStripMenuItem1_Click(object sender, EventArgse)

{f7 = new Form7();.ShowDialog();

}void aToolStripMenuItem_Click(object sender, EventArgs e)

{f10 = new Form10();.ShowDialog();

}void сотрудникиToolStripMenuItem1_Click(object sender, EventArgs e)

{f9 = new Form9();.ShowDialog();

}void повышениеToolStripMenuItem_Click(object sender, EventArgs e)

{DR;=MessageBox.Show("Всем сотрудникам, которым необходимо присвоить звание будет присвоено очередное звание. Дата присвоения звания будет сегоднешней. Продолжить?", "повышение", MessageBoxButtons.YesNo, MessageBoxIcon.Question);(DR == DialogResult.Yes)

{Com1 = new OleDbCommand("SELECT сотрудники.номер_паспотрта, сотрудники.звание, сотрудники.повышение FROM сотрудники WHERE (((сотрудники.повышение)='да'));", con);(OleDbDataReader dr1 = Com1.ExecuteReader())

{(dr1.Read())

{zv = dr1.GetValue(1).ToString();nomer = dr1.GetValue(0).ToString();Com2 = new OleDbCommand("SELECT звания.ID_звания FROM звания WHERE (((звания.звание)='" + zv + "'));", con);(OleDbDataReader dr2 = Com2.ExecuteReader())

{Nz = Convert.ToInt32(dr2.GetValue(0).ToString());++;Com3 = new OleDbCommand("SELECT звания.звание FROM звания WHERE (((звания.ID_звания)=" + Nz + "));", con);(OleDbDataReader dr3 = Com3.ExecuteReader())

{(dr3.Read())

{zvanie = dr3.GetValue(0).ToString();u = "UPDATE сотрудники SET сотрудники.повышение = 'нет', сотрудники.дата_присвоения_звания = '" + DateTime.Now.ToShortDateString() + "', сотрудники.звание = '" + zvanie + "'WHERE (((сотрудники.номер_паспотрта)=" + nomer + "));";cmd = new OleDbCommand(u, con);.ExecuteNonQuery();

}

}

}

}

}

}

}

}void поНомеруПаспортаToolStripMenuItem_Click(object sender, EventArgs e)

{.Visible = true;.Text = "введите номер паспорта";.Visible = true;.Visible = true;

}void button1_Click(object sender, EventArgs e)

{(label1.Text == "введите номер паспорта")

{(textBox1.Text != "")

{

{DT = new DataTable("[сотрудники]");= new OleDbDataAdapter("SELECT сотрудники.* FROM сотрудники WHERE (((сотрудники.номер_паспотрта)=" + textBox1.Text + "));", con);.Fill(DT);.DataSource = DT;

}(Exception ex)

{.Show("поле 'номер паспорта' не может содержать букв", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}MessageBox.Show("введите номер паспорта", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

}(textBox1.Text != "")

{

{DT = new DataTable("[сотрудники]");= new OleDbDataAdapter("SELECT сотрудники.* FROM сотрудники WHERE (((сотрудники.фамилия)='" + textBox1.Text + "'));", con);.Fill(DT);.DataSource = DT;

}(Exception ex)

{.Show("поле 'фамилия' не может содержать цифр", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}MessageBox.Show("введите номер паспорта", "", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

void поФамилииToolStripMenuItem_Click(object sender, EventArgs e)

{.Visible = true;.Text = "введите фамилию сотрудника";.Visible = true;.Visible = true;

}void таблицыToolStripMenuItem_Click(object sender, EventArgs e)

{.Visible = false;.Visible = false;.Visible = false;.ClearSelection();

}

}

}.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1

{partial class Form2 : Form

{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form2()

{();= new OleDbConnection(I);.Open();Com = new OleDbCommand("SELECT [звания].звание FROM [звания];", con);(OleDbDataReader dr = Com.ExecuteReader())

{(dr.Read())

{.Items.Add(dr.GetValue(0).ToString());

}

}Com1 = new OleDbCommand("SELECT [оклады].должность FROM [оклады];", con);(OleDbDataReader dr1 = Com1.ExecuteReader())

{(dr1.Read())

{.Items.Add(dr1.GetValue(0).ToString());

}

}

}void button1_Click(object sender, EventArgs e)

{datAdap;

{(textBox1.Text != "" && textBox2.Text != "" && textBox3.Text != "" && textBox4.Text != "" && comboBox1.Text != "" && comboBox2.Text != "")

{data = dateTimePicker1.Value.ToShortDateString();data2 = dateTimePicker2.Value.ToShortDateString();t1 = textBox1.Text, t2 = textBox2.Text, t3 = textBox3.Text;t11 = "", t22 = "", t33 = "";+= t1[0]; t22 += t2[0]; t33 += t3[0];= t11.ToUpperInvariant(); t22 = t22.ToUpperInvariant(); t33 = t33.ToUpperInvariant();= t11 + t1.Substring(1); t2 = t22 + t2.Substring(1); t3 = t33 + t3.Substring(1);q = "INSERT INTO [сотрудники] VALUES('" + t1 + "','" + t2 + "','" + t3 + "'," + textBox4.Text + ",'" + comboBox1.SelectedItem.ToString() + "','" + comboBox2.SelectedItem.ToString() + "','" + data + "','" + data2 + "',' ','нет');";i = new OleDbCommand(q, con);(i.ExecuteNonQuery() == 1).Show("добавлен новый сотрудник", "Изменение", MessageBoxButtons.OK,MessageBoxIcon.Information);.Show("ошибка", "Изменение", MessageBoxButtons.OK, MessageBoxIcon.Error);dt = new DataTable("[сотрудники]");= new OleDbDataAdapter("Select* From [сотрудники]", con);.Fill(dt);.Close();

}MessageBox.Show("не заполены поля", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}(Exception ex)

{.Show(ex.ToString(),"ошибка",MessageBoxButtons.OK,MessageBoxIcon.Error);

}

}void button2_Click(object sender, EventArgs e)

{.Close();

}

}

}

Form3.cs

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1

{partial class Form3 : Form

{string t = "";I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form3()

{();= new OleDbConnection(I);.Open();Com3 = new OleDbCommand("SELECT сотрудники.фамилия, сотрудники.имя, сотрудники.отчество, сотрудники.номер_паспотрта FROM сотрудники;", con);(OleDbDataReader dr3 = Com3.ExecuteReader())

{(dr3.Read())

{.Items.Add(dr3.GetValue(0).ToString() + ' ' + dr3.GetValue(1).ToString() + ' ' + dr3.GetValue(2).ToString() + ' ' + dr3.GetValue(3).ToString());

}

}

}

void button2_Click(object sender, EventArgs e)

{.Close();

}void button1_Click(object sender, EventArgs e)

{

{del = "DELETE сотрудники.номер_паспотрта, сотрудники.фамилия, сотрудники.имя, сотрудники.отчество, сотрудники.ID_звания, сотрудники.дата_поступления_на_работу, сотрудники.ID_должности FROM сотрудники WHERE (((сотрудники.номер_паспотрта)=" + t + "));";insCom = new OleDbCommand(del, con);(insCom.ExecuteNonQuery() == 1)

{.Show("сотрудник удален", "удаление", MessageBoxButtons.OK);.Close();

}.Show("ошибка", "удаление", MessageBoxButtons.OK);

}(Exception e3)

{.Show(e3.ToString(), "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}void comboBox3_SelectedIndexChanged(object sender, EventArgse)

{d = "";= comboBox3.Text;fam = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);im = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);ot = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);n = Convert.ToInt32(t);q = "select * from [сотрудники] where (((сотрудники.имя)='" + im + "') AND ((сотрудники.фамилия)='" + fam + "') AND ((сотрудники.отчество)='" + ot + "') AND ((сотрудники.номер_паспотрта)=" + n + ")) ;";C = new OleDbCommand(q, con);(OleDbDataReader dr = C.ExecuteReader())

{(dr.Read())

{(int i = 0; i < 10; i++)+= dr.GetValue(i).ToString() + " ";

}

}.Visible = true;.Text = d;

}

}

}

Form4.cs

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1

{partial class Form4 : Form

{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form4()

{();= new OleDbConnection(I);.Open();

}void button2_Click(object sender, EventArgs e)

{.Close();

}void button1_Click(object sender, EventArgs e)

{datAdap;[] a = new int[100];k = 0;Com = new OleDbCommand("SELECT [оклады].ID_должности FROM [оклады];", con);(OleDbDataReader dr = Com.ExecuteReader())

{(dr.Read())

{[k] = Convert.ToInt32(dr.GetValue(0));++;

}

}++;

{(textBox1.Text != "" && textBox2.Text != "")

{cifr = "0123456789";flag = 0;(int p = 0; p < 10; p++)(textBox1.Text.IndexOf(cifr[p]) != -1)

{= 1;

}(flag == 1).Show("поле должность не должно содержать цифр", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

{q = "INSERT INTO [оклады] VALUES(" + k + ",'" + textBox1.Text + "',"

+ textBox2.Text + ");";i = new OleDbCommand(q, con);(i.ExecuteNonQuery() == 1).Show("добавлена новая должность", "Изменение", MessageBoxButtons.OK, MessageBoxIcon.Information);.Show("ошибка", "Изменение", MessageBoxButtons.OK, MessageBoxIcon.Error);dt = new DataTable("[оклады]");= new OleDbDataAdapter("Select* From [оклады]", con);.Fill(dt);.Close();

}

}MessageBox.Show("не заполены поля", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}(Exception ex)

{(ex.ToString().Contains("Отсутствует значение")).Show("поле оклад может содержать только численное значение", "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);.Show(ex.ToString(), "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

}

}.csSystem;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1

{partial class Form5 : Form

{string t = "";I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form5()

{();= new OleDbConnection(I);.Open();Com1 = new OleDbCommand("SELECT [звания].звание FROM [звания];", con);(OleDbDataReader dr1 = Com1.ExecuteReader())

{(dr1.Read())

{.Items.Add(dr1.GetValue(0).ToString());

}

}Com2 = new OleDbCommand("SELECT [оклады].должность FROM [оклады];", con);(OleDbDataReader dr2 = Com2.ExecuteReader())

{(dr2.Read())

{.Items.Add(dr2.GetValue(0).ToString());

}

}Com3 = new OleDbCommand("SELECT сотрудники.фамилия, сотрудники.имя, сотрудники.отчество, сотрудники.номер_паспотрта FROM сотрудники;", con);(OleDbDataReader dr3 = Com3.ExecuteReader())

{(dr3.Read())

{.Items.Add(dr3.GetValue(0).ToString() + ' ' + dr3.GetValue(1).ToString() + ' ' + dr3.GetValue(2).ToString() + ' ' + dr3.GetValue(3).ToString());

}

}

}void button1_Click(object sender, EventArgs e)

{

{insCom = new OleDbCommand("UPDATE сотрудники SET сотрудники.звание = '" + comboBox2.Text + "', сотрудники.дата_присвоения_звания='"+dateTimePicker1.Value.ToShortDateString()+"' WHERE сотрудники.номер_паспотрта=" + textBox4.Text + ";", con);(insCom.ExecuteNonQuery() == 1)

{.Show("звание изменено", "изменение", MessageBoxButtons.OK);.Close();

}.Show("ошибка", "изменение", MessageBoxButtons.OK);

}(Exception e4)

{.Show(e4.ToString());

}

}void button3_Click(object sender, EventArgs e)

{.Close();

}void button2_Click(object sender, EventArgs e)

{u = "UPDATE [сотрудники] SET [сотрудники].должность = '" + comboBox4.Text + "' WHERE ((([сотрудники].номер_паспотрта)=" + textBox4.Text + "));";insCom = new OleDbCommand(u, con);(insCom.ExecuteNonQuery() == 1)

{.Show("должность изменена", "изменение", MessageBoxButtons.OK);.Close();

}.Show("ошибка", "изменение", MessageBoxButtons.OK);

}void comboBox3_SelectedIndexChanged(object sender, EventArgse)

{d = "";= comboBox3.Text;fam = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ')+1);im = t.Substring(0,t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);ot = t.Substring(0, t.IndexOf(' '));= t.Substring(t.IndexOf(' ') + 1);n = Convert.ToInt32(t);q = "select * from [сотрудники] where (((сотрудники.имя)='" + im + "') AND ((сотрудники.фамилия)='" + fam + "') AND ((сотрудники.отчество)='" + ot + "') AND ((сотрудники.номер_паспотрта)=" + n + ")) ;";C = new OleDbCommand(q, con);(OleDbDataReader dr = C.ExecuteReader())

{(dr.Read())

{(int i = 0; i < 10; i++)+= dr.GetValue(i).ToString() + " ";.Value = Convert.ToDateTime(dr.GetValue(7).ToString());.Text = dr.GetValue(4).ToString();.Text = dr.GetValue(5).ToString();

}

}.Visible = true;.Text = d;.Text = fam;.Text = im;.Text = ot;.Text = n.ToString();

}void button4_Click(object sender, EventArgs e)

{u = "UPDATE [сотрудники] SET [сотрудники].имя = '" + textBox2.Text + "', [сотрудники].фамилия = '" + textBox1.Text + "' , [сотрудники].отчество = '" + textBox3.Text + "', [сотрудники].номер_паспотрта = " + textBox4.Text + " WHERE (([сотрудники].номер_паспотрта)=" + t + ");";insCom = new OleDbCommand(u, con);(insCom.ExecuteNonQuery() == 1)

{.Show("личные данные сотрудника успешно изменены", "изменение", MessageBoxButtons.OK);.Close();

}.Show("ошибка", "изменение", MessageBoxButtons.OK);

}void comboBox2_SelectedIndexChanged(object sender, EventArgs e)

{.Value = DateTime.Now;

}

}

}

Form6.cs

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1

{partial class Form6 : Form

{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form6()

{();= new OleDbConnection(I);.Open();Com = new OleDbCommand("SELECT [оклады].должность FROM [оклады];", con);(OleDbDataReader dr = Com.ExecuteReader())

{(dr.Read())

{.Items.Add(dr.GetValue(0).ToString());

}

}

}void button3_Click(object sender, EventArgs e)

{

{del = "DELETE * FROM оклады WHERE (((оклады.должность)='" + comboBox1.SelectedItem + "'));";insCom = new OleDbCommand(del, con);(insCom.ExecuteNonQuery() == 1)

{.Show("должность удалена", "удаление", MessageBoxButtons.OK);q = "Update сотрудники Set сотрудники.должность=' ' Where сотрудники.должность='" + comboBox1.Text + "';";cmd = new OleDbCommand(q, con);.ExecuteNonQuery();.Close();

}.Show("ошибка", "удаление", MessageBoxButtons.OK);

}(Exception e2)

{.Show(e2.ToString());

}

}void button1_Click(object sender, EventArgs e)

{.Close();

}

}

}

Form7.cs

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Data.OleDb;System.Drawing;System.Text;System.Windows.Forms;WindowsApplication1

{partial class Form7 : Form

{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con;Form7()

{();= new OleDbConnection(I);.Open();Com = new OleDbCommand("SELECT [оклады].должность FROM [оклады];", con);(OleDbDataReader dr = Com.ExecuteReader())

{(dr.Read())

{.Items.Add(dr.GetValue(0).ToString());

}

}

}

void button4_Click(object sender, EventArgs e)

{

{insCom = new OleDbCommand("UPDATE оклады SET оклады.оклад = " + textBox3.Text + " WHERE оклады.должность='" + comboBox1.Text + "';", con);(insCom.ExecuteNonQuery() == 1)

{.Show("оклад изменен", "изменение", MessageBoxButtons.OK);.Close();

}.Show("ошибка", "изменение", MessageBoxButtons.OK);

}(Exception e1)

{.Show(e1.ToString(), "ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}void comboBox1_SelectedIndexChanged(object sender, EventArgse)

{Com = new OleDbCommand("SELECT [оклады].оклад FROM [оклады] WHERE [оклады].должность='" + comboBox1.Text + "';", con);(OleDbDataReader dr = Com.ExecuteReader())

{(dr.Read())

{.Text = (dr.GetValue(0).ToString());

}

}

}void button1_Click(object sender, EventArgs e)

{.Close();

}

}

}

Form9.cs

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.Data.SqlClient;System.Data.OleDb;System.Text.RegularExpressions;WindowsApplication1

{partial class Form9 : Form

{Form9()

{();

}void crystalReportViewer1_Load(object sender, EventArgs e)

{

}

}

}

Form10.cs

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;CrystalDecisions.Shared;CrystalDecisions.CrystalReports.Engine;CrystalDecisions.Windows.Forms;System.Web.UI.WebControls;System.Data.OleDb;System.IO;System.Diagnostics;WindowsApplication1

{partial class Form10 : Form

{string id;static string Start = Application.StartupPath;Form10()

{();

}void crystalReportViewer1_Load(object sender, EventArgs e)

{I = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"db1.mdb";con = new OleDbConnection(I);.Open();da = new OleDbDataAdapter();dt = new DataTable();= new OleDbDataAdapter("SELECT сотрудники.фамилия, сотрудники.имя, сотрудники.отчество, сотрудники.звание, сотрудники.должность, сотрудники.дата_поступления_на_работу, сотрудники.стаж FROM сотрудники ", con);.Fill(dt);.Close();cr = new CrystalReport3();.SetDataSource(dt);.ReportSource = cr;

}

}

}

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!