Отчет по практике


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

Содержание


Введение

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

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

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

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

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

.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.Ермолаев. Б. Л Приложение А


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

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





Рисунок 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

{(m1)

{5:7:8:10:12:= d1 - d2 + 30;--;;3:(d1 - d2

}

}(m1 - m2

{--;= 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

{(m1)

{5:7:8:10:12:= d1 - d2 + 30;--;;3:(d1 - d2

}

}(m1 - m2

{--;= 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())

{(dr2.Read())

{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

}

}.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

{= 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

}

}.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;

}

}

}


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

Другие материалы:
Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

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

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