Разработка программного продукта "Отдел кадров завода"

 

Содержание


Введение

. История предприятия «Приднестровский Государственный Университет»

. Организационная структура Инженерно-технического факультета

. Описание аппаратного и программного обеспечения сети, используемого на предприятии

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

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

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

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

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

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

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

Заключение

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

Приложения



Введение


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

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

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

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

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

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

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

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

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

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

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



1. История предприятия «Приднестровский Государственный Университет»


октября 1930 года на базе Молдавского государственного педагогического техникума был учрежден Молдавский институт народного образования в г. Тирасполе - первое высшее учебное заведение в Молдавии.

В институте тогда функционировало пять кафедр и три факультета: механико-математический, лингвистический и агробиологический, на которых обучались 123 студента и 80 слушателей подготовительного отделения. Преподавание велось на молдавском, украинском и русском языках. Первый выпуск подарил школам Приднестровья 20 учителей.

В 1933 году институт был преобразован в Молдавский педагогический институт с четырехлетним сроком обучения, а в марте 1939 года в ознаменование 125-летия со дня рождения великого украинского поэта и художника Т.Г. Шевченко институту присвоено его имя. В этом же году был открыт географический факультет.

В период немецко-румынской оккупации институт эвакуируется в тыл страны в г. Бугуруслан Оренбургской области (бывшая Чкаловская). Вместе с ним покинули город 12 педагогов. Многие преподаватели, студенты и сотрудники ушли на фронт.

год. Институт продолжает работать в эвакуации - в нем учатся 374 студента. Там же, в эвакуации, осуществляется выпуск 19 специалистов: 1 филолог, 4 математика и 14 историков.

С победоносным завершением Ясско-Кишиневской операции и освобождением Молдавии от фашистских захватчиков институт возвращается в Тирасполь. Трудно было в первый послевоенный год набирать студентов, так как молодежи с законченным средним образованием практически не было. В октябре 1945 года для подготовки молодежи в вуз при пединституте создается рабфак, который просуществовал до августа 1948 года.

В августе 1952 года институт был преобразован в Тираспольский государственный педагогический институт им. Т.Г. Шевченко (ТГПИ) с четырьмя факультетами: историко-филологическим, физико-математическим, естествознания и географическим. Институт становится региональным методическим центром.

С 1956/57 учебного года он переходит на подготовку учителей широкого профиля с пятилетним сроком обучения.

Здесь ежегодно проводились практические конференции, в которых принимали участие учителя городов, сел и районов республики. Открылся планетарий, работали агробиостанция, несколько лабораторий, начали функционировать юношеская физико-математическая школа, научное общество студентов и учащихся, клуб путешествий. Укреплялся и профессорско-преподавательский состав: в штате насчитывалось уже 5 докторов, 163 кандидата наук, большинству из которых было присвоено ученое звание доцента. В 1970 году за достигнутые успехи в подготовке и воспитании педагогическихи научных кадров Тираспольский государственный педагогический институт им. Т.Г. Шевченко был награжден Почетной грамотой Президиума Верховного Совета МССР, в 1974 - занесен в Золотую Книгу Почета республики, а в 1980 году указом Президиума Верховного Совета СССР награжден орденом «Знак Почета».

Создание Приднестровского Государственного Университета

Постановлением Временного Верховного Совета ПМССР № 25 от 21 сентября 1990 года с целью подготовки специалистов для отраслей народного хозяйства Приднестровья в Тирасполе создан Государственный университет, в котором были открыты 4 факультета: историко-юридический, экономический, физико-технический и аграрно-экологический.

С 11 января 1991 года учредителем госуниверситета стала Ассоциация местных Советов народных депутатов и предприятий Приднестровского региона, в связи с чем были изменены его статус и название - Тираспольский государственно-корпоративный университет Приднестровского региона (ПГКУ).

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

июня 1992 года в результате слияния двух вузов - Тираспольского государственного педагогического института им. Т.Г. Шевченко и Тираспольского государственно-корпоративного университета Приднестровского региона - был создан Приднестровский государственно-корпоративный университет им. Т.Г. Шевченко. С июня 1997 года в связи с изменением статуса вуз переименован в Приднестровский государственный университет (ПГУ) им. Т.Г. Шевченко.

Учредителями ПГУ им. Т.Г. Шевченко являются Государственная администрация, Всероссийский фонд образования при Государственной думе Российской Федерации. В 1995 году университет стал действительным членом Ассоциации вузов Российской Федерации, а в 1999 году принят в Евразийскую Ассоциацию университетов (ЕАУ). Представительство ПГУ в Российской Федерации зарегистрировано Московской регистрационной палатой с правом ведения хозяйственной деятельности (свидетельство серия МРII, рег. № 000.628-У от 26 января 1994 г., код ОКПО 29278199).

июня 1996 года на расширенном заседании Ученого совета ректором Приднестровского государственного университета им. Т.Г. Шевченко был единогласно избран Степан Иорданович Берил - видный ученый, доктор физико-математических наук, профессор, член Российской Академии естественных наук (РАЕН).

Сегодня университет работает по российским учебным стандартам и планам. Его дипломы действительны на всей территории России.

С 1999 года выпускникам ПГУ выдаются дипломы нового государственного образца.

В составе университета - 79 кафедр, 12 основных факультетов (исторический, юридический, экономический, медицинский, сельскохозяйственный, инженерно-технический, инженерно-педагогический, филологический, педагогический (с отделением искусств), физико-математический, естественно-географический, физической культуры и спорта), научно-исследовательский отдел (НИО), 28 научно-исследовательских лабораторий, вычислительный центр, агробиологическая станция, центр довузовской подготовки, факультет общественных профессий, молодежно-культурный центр «Спутник», спортклуб «Рекорд». Научная библиотека университета является самой крупной в регионе - ее книжный фонд насчитывает свыше 850 тысяч экземпляров. Редакционно-издательский отдел обеспечивает потребность вуза в научно-методической и учебной литературе. Учебно-просветительская работа проводится в четырех музеях университета и обсерватории.



2. Организационная структура Института истории, государства и права


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

Институт осуществляет плодотворное сотрудничество с университетами и научными центрами России, Украины, Молдовы, Германии, Японии, Израиля.

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

Организационная структура

1.Декан

.Заместители декана:

по учебно-методической работе;

по организации учебного процесса;

по научной работе;

делам молодежи;

. Секретарь деканата

. Методисты:

методист дневной формы обучения;

методист заочной формы обучения.

Кафедры Института истории, государства и права

Кафедра конституционного, административного и муниципального права

Кафедра уголовного права, уголовного процесса и криминалистики

Кафедра теории и истории государства и права

Кафедра Всеобщей истории

Кафедра Отечественной истории

Кафедра философии

Кафедра основ политики и политического управления

Кафедра политологии и политических процессов

Кафедра гражданского и трудового права

Школа юного историка при Институте истории, государства и права ПГУ им. Т.Г. Шевченко

Сотрудниками кафедр постоянно проводятся научные изыскания по проблемам истории стран СНГ. Активно исследуются такие вопросы, как: формирование государственности Приднестровья; историография ПМР; история Приднестровского вооруженного конфликта; румынизация Молдавии в прошлом и настоящем; советско-американские отношения после Второй мировой войны; национальная идентичность в полиэтническом обществе; история Молдавской митрополии во второй половине XX в.; проблемы сталинских репрессий и развитие Молдавской Автономии; социально-экономическое и политическое развитие Подолии в XVIII в. Ежегодно преподаватели кафедр подводят итоги своих поисков в ходе конференции профессорско-преподавательского состава ПГУ им. Т.Г. Шевченко. В составе кафедр успешно функционируют научно-исследовательские лаборатории, например: «Археология» (заведующий - к.и.н., доцент Н.П. Тельнов) и «История Приднестровья» (заведующий - к.и.н., профессор Н.В. Бабилунга).

Сотрудниками установлены и поддерживаются рабочие контакты с ведущими научными центрами и специалистами России, Украины, Молдовы, Японии, Германии, США.

Специальности:

История (со специализациями "Отечественная история", "Новая и новейшая история", "История культуры", "История религии", "Историческая политология", "Археология")

Юриспруденция (со специализациями "Государственное право", "Гражданское право", "Уголовное право")

Социология (со специализациями "Социология рекламы и PR", "Социология коммуникаций", "Социальная работа")

Политология (со специализациями "Государственное управление", "Международные отношения")



. Описание аппаратного и программного обеспечения сети, используемого на предприятии


На рабочем месте было предоставлено следующее оборудование:

-ти дюймовый монитор с электроннолучевой трубкой Samsung SyncMaster 793DF;

Процессор Intel Celeron 2.53 ГГц;

Мб ОЗУ DDR;

-Принтер Canon Laser Shot L1121Е;

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

Программа «Абитуриент»;

Такое же оборудование установлено на аналогичных рабочих местах.

Программа «Абитуриент» создана для учёта поступающих абитуриентов в Приднестровский государственный университет и хранения их данных. Программа написана на языке C#. В программе существует несколько видов пользователей: Секретарь, Оператор, Технический секретарь. Каждый из них имеет свои доступ и права по введённому паролю.

Программа «Абитуриент» не готова для нормальной стабильной работы. Интерфейс программы перегружен, но большинству пользователей удалось бы разобраться с ней. При работе с программой возникает множество ошибок.

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



Рисунок 3.1 - Вид программы (вкладка администратор)


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


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

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

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

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

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

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

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

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

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

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

-подготовка контрактов и контроль сроков их действия;

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

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

-определение критериев и методов оценки персонала;

-совершенствование принципов расстановки кадров;

-перевод, перемещение, повышение, понижение, увольнение в зависимости от результатов труда каждого;

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

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

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

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


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


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


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

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

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

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

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

Сущность «Сотрудники» обладает атрибутами: ID, Фамилия, Имя, Отчество, Улица, Дом, Квартира, Номер телефона (домашний), Номер телефона (мобильный), номер телефона (дополнительный), Дата поступления. В качестве ключевого атрибута можно принять ID, который определяется числовыми значениями.

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

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

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

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





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


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





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


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





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


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

аппаратный программный обеспечение сеть
























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


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


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

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

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

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

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


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

Имя атрибутаДоменИмя поляУсловие на значениеОписаниеIDЧисловойIDТабельный номерФамилияТекстовыйФамилияФамилияИмяТекстовыйИмяИмяОтчествоТекстовыйОтчествоОтчествоУлицаТекстовыйУлицаУлицаКвартираТекстовыйКвартираКвартираДомТекстовыйДомДомНомер телефона (домашний)ТекстовыйНомер телефона (дом)Номер телефонаНомер телефона (мобильный)ТекстовыйНомер телефона (моб)Номер телефонаНомер телефона (дополнительный)ТекстовыйНомер телефона (доп)Номер телефонаДата поступленияДата/ВремяДата поступленияДата приема на работу

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

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

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

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


Таблица 2 - Схема отношения «Бухгалтерия»

Имя атрибутаДоменИмя поляУсловие на значениеОписаниеIDЧисловойIDТабельный номер сотрудникаЗаработная платаДенежныйЗаработная платаОклад за месяцПремиальныеДенежныйПремиальныеПремиальные за месяц

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

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

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

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


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

Имя атрибутаДоменИмя поляУсловие на значениеОписаниеКод подразделенияЧисловойКод подразделенияКод подразделенияНазваниеТекстовыйНазваниеНазвание подразделенияГлаваТекстовыйГлаваГлава подразделения

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

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

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

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



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

Имя атрибутаДоменИмя поляУсловие на значениеОписаниеIDЧисловойIDТабельный номер сотрудникаКод подразделенияЧисловойКод подразделенияКод подразделенияДолжностьТекстовыйДолжностьНазвание должностиЗанятостьТекстовыйЗанятостьЗанятостьРазрядЧисловойРазрядНомер разряда

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


Для создания базы данных была выбрана система управления базами данных Microsoft Access. MS Access входит в состав самого популярного пакета Microsoft Office. Основные преимущества: знаком многим конечным пользователям и обладает высокой устойчивостью данных, позволяет готовить отчеты из баз данных различных форматов. Предназначен для создания отчетов произвольной формы на основании различных данных. Microsoft Access обеспечивает средства для создания клиентских частей в приложениях «клиент-сервер», которые сочетают в себе средства просмотра, графический интерфейс и средства построения запросов.

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

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

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



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



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


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













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


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


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


Структура обработки информации представляется в следующем виде:








Рисунок 7.1 - Структура обработки информации


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

string InstConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb";con;= new OleDbConnection(InstConnectString);

Для осуществления поиска по полям таблицы Сотрудники в программе предусмотрен специальный метод Search, который не только позволяет быстро находить необходимые данные по всем полям таблицы, но и начинает работать уже с первого введенного в поле для поиска символа, что значительно ускоряет этот процесс.void Search(string SQL)

{

{dt = new DataTable();da = new OleDbDataAdapter(SQL, con);.Fill(dt);.DataSource = dt;

}

{.Show("Введены некорректные данные", "Поиск", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

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

private void textBox1_TextChanged(object sender, EventArgs e)

{(tabControl1.SelectedTab.Text == "Сотрудники")

{(NameOfField == "ID" && textBox1.Text.Length != 0)("Select* from Сотрудники where CInt(Mid(CStr(Сотрудники.ID),1," + textBox1.Text.Length + "))=" + int.Parse(textBox1.Text));if (NameOfField == "Фамилия" && textBox1.Text.Length != 0)("Select* from Сотрудники where Сотрудники.Фамилия Like '" + textBox1.Text + "%'");if (textBox1.Text.Length == 0)

{dt = new DataTable("Сотрудники");da = new OleDbDataAdapter("Select* from Сотрудники", con);.Fill(dt);.DataSource = dt;

}

}

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

OleDbCommand insCom = new OleDbCommand("Delete from Сотрудники where ((Сотрудники.ID)=" + int.Parse(textBox2.Text) + ");", con);(insCom.ExecuteNonQuery() == 1).Show("Запись удалена", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Information);.Show("Запись не удалена", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Error);dt = new DataTable("Сотрудники");da = new OleDbDataAdapter("Select* from Сотрудники", con);.Fill(dt);.DataSource = dt;

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

private void dg1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

{= dg1.CurrentCell.Value;= (int)dg1.CurrentRow.Cells[0].Value;= dg1.Columns[dg1.CurrentCellAddress.X].HeaderText;void dg1_CellEndEdit(object sender, DataGridViewCellEventArgs e)

{

{(ColumnName == "ID")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}if (ColumnName == "Дата поступления")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}(edit.ToString() != dg1.CurrentCell.Value.ToString() && DialogResult.Yes == MessageBox.Show("Принять изменения?", "Редактирование", MessageBoxButtons.YesNo, MessageBoxIcon.Question))

{com = new OleDbCommand("Update Сотрудники Set [" + ColumnName + "]='" + dg1.CurrentCell.Value + "' Where ID=" + ID, con);.ExecuteNonQuery();

}.CurrentCell.Value = edit;

}

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;

}

Для таблицы Должности элемента ComboBox заполняются программно из базы данных с помощью следующего алгоритма.InstConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb";con;rdr1, rdr2, rdr3;cmd1, cmd2, cmd3;Form2()

{();= new OleDbConnection(InstConnectString);.Open();= con.CreateCommand();.CommandText = "Select [Код подразделения] From Подразделения";= cmd1.ExecuteReader();(rdr1.Read())

{tmp = ""; //для каждого нового пункта списка очищаем(tmp != "")// если в массиве данных есть значения+= " ";+= rdr1[0].ToString(); //формируем пункт поля со списком.Items.Add(tmp); //добавляем пункт списка к объекту

}

}

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

В данном приложении алгоритм добавления данных выглядит следующим образом.

int id = SearchID.Start("Сотрудники", "ID", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb");today = new DateTime();= Convert.ToDateTime(monthCalendar1.TodayDate.Date.ToShortDateString());

{insSQL2 = "Insert into Бухгалтерия values(" + id + ","

+ int.Parse(textBox12.Text) + "," + int.Parse(textBox13.Text) + ")";insCom2 = new OleDbCommand(insSQL2, con);insSQL = "Insert into Сотрудники values(" + id + ",'"

+ textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','"

+ textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','"

+ textBox7.Text + "','" + textBox8.Text + "','" + textBox9.Text + "','"

+ Convert.ToDateTime(today) + "')";insCom = new OleDbCommand(insSQL, con);insSQL3 = "Insert into Должности values(" + id + ","

+ int.Parse(comboBox1.SelectedItem.ToString()) + ",'" + textBox10.Text + "','" + textBox11.Text + "',"

+ int.Parse(comboBox1.SelectedItem.ToString()) + ")";insCom3 = new OleDbCommand(insSQL3, con);(insCom2.ExecuteNonQuery() == 1 && insCom.ExecuteNonQuery() == 1 && insCom3.ExecuteNonQuery() == 1).Show("Запись добавлена", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

{.Show("Введены некорректные данные", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Error);

}



Заключение


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

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

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

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

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

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

ведение бухгалтерии

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

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

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



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


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

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

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

.Карли Ватсон и др. «C#»,перевод с англ., издательство «Лори», Москва, 2005г.-862с.

5.Кузнецов Сергей «Базы данных. Модели и языки», издательство "Бином-Пресс", 2008 г.

6.Лабор В.В. «Си шарп: Создание приложений для Windows», издательство «Харвест», Минск, 2003г.-384с.

.Троелсен Э. «C# и платформа .NET. Библиотека программиста», издательский дом «Питер», Санкт-Петербург, 2004г.-796с.:ил.

.Фролов А.В., Фролов Г.В. Язык C#. Самоучитель. - М.: ДИАЛОГ-МИФИ, 2003. - 560с.

.Чарльз Петцольд «Программирование для Microsoft Windows на C#», Том 2, перевод с англ., Издательско-торговый дом «Русская редакция», Москва , 2002г.-624с.:ил.



Приложения


Приложение А


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

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


Рисунок 1. Рабочее окно программы


Если необходимо добавить в базу данных нового сотрудника, то нужно нажать на кнопку «Добавить сотрудника». Откроется новое окно Form2.cs, в котором необходимо заполнить все предложенные поля, это позволит добавить данные о сотруднике во все таблицы базы данных одновременно, что необходимо для обеспечения целостности базы данных.



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


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


Рисунок 3 - Диалоговое сообщение, подтверждающее добавление нового сотрудника



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


Рисунок 4 - Изменение данных в таблице


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


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


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


Рисунок 6 - Поиск по таблице



Приложение Б


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

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.Runtime.InteropServices;System.IO;System.Data.OleDb;System.Text.RegularExpressions;Отдел_кадров_завода

{partial class Form1 : Form

{InstConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb";con;NameOfField, ColumnName;edit;ID;Form1()

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

}void Form1_FormClosed(object sender, FormClosedEventArgs e)

{.Exit();

}void Form1_Load(object sender, EventArgs e)

{dt1 = new DataTable();da1 = new OleDbDataAdapter("Select* from Сотрудники", con);.Fill(dt1);.DataSource = dt1;dt2 = new DataTable();da2 = new OleDbDataAdapter("Select* from Должности", con);.Fill(dt2);.DataSource = dt2;dt3 = new DataTable();da3 = new OleDbDataAdapter("Select* from Подразделения", con);.Fill(dt3);.DataSource = dt3;dt4 = new DataTable();da4 = new OleDbDataAdapter("Select* from Бухгалтерия", con);.Fill(dt4);.DataSource = dt4;

}void Search(string SQL)

{

{dt = new DataTable();da = new OleDbDataAdapter(SQL, con);.Fill(dt);.DataSource = dt;

}

{.Show("Введены некорректные данные", "Поиск", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}void textBox1_TextChanged(object sender, EventArgs e)

{(tabControl1.SelectedTab.Text == "Сотрудники")

{(NameOfField == "ID" && textBox1.Text.Length != 0)("Select* from Сотрудники where CInt(Mid(CStr(Сотрудники.ID),1," + textBox1.Text.Length + "))=" + int.Parse(textBox1.Text));if (NameOfField == "Фамилия" && textBox1.Text.Length != 0)("Select* from Сотрудники where Сотрудники.Фамилия Like '" + textBox1.Text + "%'");if (textBox1.Text.Length == 0)

{dt = new DataTable("Сотрудники");da = new OleDbDataAdapter("Select* from Сотрудники", con);.Fill(dt);.DataSource = dt;

}

}(tabControl1.SelectedTab.Text == "Должности")

{(NameOfField == "ID" && textBox1.Text.Length != 0)

{dt = new DataTable();da = new OleDbDataAdapter("Select* from Должности where CInt(Mid(CStr(Должности.ID),1," + textBox1.Text.Length + "))=" + int.Parse(textBox1.Text), con);.Fill(dt);.DataSource = dt;

}if (NameOfField == "Код подразделения" && textBox1.Text.Length != 0)

{dt = new DataTable();da = new OleDbDataAdapter("Select* from Должности where CInt(Mid(CStr(Должности.[Код подразделения]),1," + textBox1.Text.Length + "))=" + int.Parse(textBox1.Text), con);.Fill(dt);.DataSource = dt;

}if (textBox1.Text.Length == 0)

{dt = new DataTable("Должности");da = new OleDbDataAdapter("Select* from Должности", con);.Fill(dt);.DataSource = dt;

}

}(tabControl1.SelectedTab.Text == "Подразделения")

{(NameOfField == "Код подразделения" && textBox1.Text.Length != 0)

{dt = new DataTable();da = new OleDbDataAdapter("Select* from Подразделения where CInt(Mid(CStr(Подразделения.[Код подразделения]),1," + textBox1.Text.Length + "))=" + int.Parse(textBox1.Text), con);.Fill(dt);.DataSource = dt;

}if (textBox1.Text.Length == 0)

{dt = new DataTable("Подразделения");da = new OleDbDataAdapter("Select* from Подразделения", con);.Fill(dt);.DataSource = dt;

}

}(tabControl1.SelectedTab.Text == "Бухгалтерия")

{(NameOfField == "ID" && textBox1.Text.Length != 0)

{dt = new DataTable();da = new OleDbDataAdapter("Select* from Бухгалтерия where CInt(Mid(CStr(Бухгалтерия.ID),1," + textBox1.Text.Length + "))=" + int.Parse(textBox1.Text), con);.Fill(dt);.DataSource = dt;

}if (textBox1.Text.Length == 0)

{dt = new DataTable("Бухгалтерия");da = new OleDbDataAdapter("Select* from Бухгалтерия", con);.Fill(dt);.DataSource = dt;

}

}

}void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

{= comboBox1.SelectedItem.ToString();.Enabled = true;

}void button1_Click(object sender, EventArgs e)

{

{insCom = new OleDbCommand("Delete from Сотрудники where ((Сотрудники.ID)=" + int.Parse(textBox2.Text) + ");", con);(insCom.ExecuteNonQuery() == 1).Show("Запись удалена", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Information);.Show("Запись не удалена", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Error);dt = new DataTable("Сотрудники");da = new OleDbDataAdapter("Select* from Сотрудники", con);.Fill(dt);.DataSource = dt;insCom2 = new OleDbCommand("Delete from Бухгалтерия where ((Бухгалтерия.ID)=" + int.Parse(textBox2.Text) + ");", con);.ExecuteNonQuery();dt2 = new DataTable("Бухгалтерия");da2 = new OleDbDataAdapter("Select* from Бухгалтерия", con);.Fill(dt2);.DataSource = dt2;dt3 = new DataTable("Подразделения");da3 = new OleDbDataAdapter("Select* from Подразделения", con);.Fill(dt3);.DataSource = dt3;dt4 = new DataTable("Должности");da4 = new OleDbDataAdapter("Select* from Должности", con);.Fill(dt4);.DataSource = dt4;

}

{.Show("Введены некорректные данные", "Удаление", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}void dg1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

{= dg1.CurrentCell.Value;= (int)dg1.CurrentRow.Cells[0].Value;= dg1.Columns[dg1.CurrentCellAddress.X].HeaderText;

}void dg1_CellEndEdit(object sender, DataGridViewCellEventArgs e)

{

{(ColumnName == "ID")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}if (ColumnName == "Дата поступления")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}(edit.ToString() != dg1.CurrentCell.Value.ToString() && DialogResult.Yes == MessageBox.Show("Принять изменения?", "Редактирование", MessageBoxButtons.YesNo, MessageBoxIcon.Question))

{com = new OleDbCommand("Update Сотрудники Set [" + ColumnName + "]='" + dg1.CurrentCell.Value + "' Where ID=" + ID, con);.ExecuteNonQuery();

}.CurrentCell.Value = edit;

}

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;

}

}void dg2_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

{= dg2.CurrentCell.Value;= (int)dg2.CurrentRow.Cells[0].Value;= dg2.Columns[dg2.CurrentCellAddress.X].HeaderText;

}void dg2_CellEndEdit(object sender, DataGridViewCellEventArgs e)

{

{(ColumnName == "ID")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}if (ColumnName == "Код подразделения")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}(edit.ToString() != dg2.CurrentCell.Value.ToString() && DialogResult.Yes == MessageBox.Show("Принять изменения?", "Редактирование", MessageBoxButtons.YesNo, MessageBoxIcon.Question))

{com = new OleDbCommand("Update Должности Set [" + ColumnName + "]='" + dg2.CurrentCell.Value + "' Where ID=" + ID, con);.ExecuteNonQuery();

}.CurrentCell.Value = edit;

}

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;

}

}void dg3_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

{= dg3.CurrentCell.Value;= (int)dg3.CurrentRow.Cells[0].Value;= dg3.Columns[dg3.CurrentCellAddress.X].HeaderText;

}void dg3_CellEndEdit(object sender, DataGridViewCellEventArgs e)

{

{(ColumnName == "Код подразделения")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}(edit.ToString() != dg3.CurrentCell.Value.ToString() && DialogResult.Yes == MessageBox.Show("Принять изменения?", "Редактирование", MessageBoxButtons.YesNo, MessageBoxIcon.Question))

{com = new OleDbCommand("Update Подразделения Set [" + ColumnName + "]='" + dg3.CurrentCell.Value + "' Where [Код подразделения]=" + ID, con);.ExecuteNonQuery();

}.CurrentCell.Value = edit;

}

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;

}

}void dg4_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)

{= dg4.CurrentCell.Value;= (int)dg4.CurrentRow.Cells[0].Value;= dg4.Columns[dg4.CurrentCellAddress.X].HeaderText;

}void dg4_CellEndEdit(object sender, DataGridViewCellEventArgs e)

{

{(ColumnName == "ID")

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;;

}(edit.ToString() != dg4.CurrentCell.Value.ToString() && DialogResult.Yes == MessageBox.Show("Принять изменения?", "Редактирование", MessageBoxButtons.YesNo, MessageBoxIcon.Question))

{com = new OleDbCommand("Update Бухгалтерия Set [" + ColumnName + "]='" + dg4.CurrentCell.Value + "' Where ID=" + ID, con);.ExecuteNonQuery();

}.CurrentCell.Value = edit;

}

{.Show("Изменение этого поля невозможно", "Редактирование", MessageBoxButtons.OK, MessageBoxIcon.Error);.CurrentCell.Value = edit;

}

}void button2_Click(object sender, EventArgs e)

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

}

}

}

Form2.cs

using System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Text;System.Windows.Forms;System.Runtime.InteropServices;System.IO;System.Data.OleDb;System.Text.RegularExpressions;Отдел_кадров_завода

{partial class Form2 : Form

{InstConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb";con;rdr1, rdr2, rdr3;cmd1, cmd2, cmd3;Form2()

{();= new OleDbConnection(InstConnectString);.Open();= con.CreateCommand();.CommandText = "Select [Код подразделения] From Подразделения";= cmd1.ExecuteReader();(rdr1.Read())

{tmp = ""; //для каждого нового пункта списка очищаем(tmp != "")// если в массиве данных есть значения+= " ";+= rdr1[0].ToString(); //формируем пункт поля со списком.Items.Add(tmp); //добавляем пункт списка к объекту

}

}void button1_Click(object sender, EventArgs e)

{id = SearchID.Start("Сотрудники", "ID", "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"Организация.mdb");today = new DateTime();= Convert.ToDateTime(monthCalendar1.TodayDate.Date.ToShortDateString());

{insSQL2 = "Insert into Бухгалтерия values(" + id + ","

+ int.Parse(textBox12.Text) + "," + int.Parse(textBox13.Text) + ")";insCom2 = new OleDbCommand(insSQL2, con);insSQL = "Insert into Сотрудники values(" + id + ",'"

+ textBox1.Text + "','" + textBox2.Text + "','" + textBox3.Text + "','"

+ textBox4.Text + "','" + textBox5.Text + "','" + textBox6.Text + "','"

+ textBox7.Text + "','" + textBox8.Text + "','" + textBox9.Text + "','"

+ Convert.ToDateTime(today) + "')";insCom = new OleDbCommand(insSQL, con);insSQL3 = "Insert into Должности values(" + id + ","

+ int.Parse(comboBox1.SelectedItem.ToString()) + ",'" + textBox10.Text + "','" + textBox11.Text + "',"

+ int.Parse(comboBox1.SelectedItem.ToString()) + ")";insCom3 = new OleDbCommand(insSQL3, con);(insCom2.ExecuteNonQuery() == 1 && insCom.ExecuteNonQuery() == 1 && insCom3.ExecuteNonQuery() == 1).Show("Запись добавлена", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

{.Show("Введены некорректные данные", "Добавление", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

}

}


Содержание Введение . История предприятия «Приднестровский Государственный Университет» . Организационная структура Инженерно-техническог

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ