Программа осуществляющая учет кадров на предприятии и расчет заработной платы
ГОСУДАРСТВЕННЫЙ КОМИТЕТ
РОССИЙСКОЙ ФЕДЕРАЦИИ ПО РЫБОЛОВСТВУ
Федеральное государственное образовательное
учреждение
высшего профессионального образования
«Мурманский государственный технический университет»
Кафедра информационных систем и прикладной математики
Специальность 080801.65 «Прикладная информатика (в экономике)»
Пояснительная записка
к курсовому проекту
по дисциплине
«Высокоуровневые методы
информатики и
«Зарплата и кадры 1.0»
Студент: Терентьева Инесса Михайловна ______________________________
Группа ПИЭ–261
Научный руководитель: Кириченко Александр Эдуардович______________
Мурманск
2008
Содержание
Введение
Созданный компанией Microsoft для поддержки среды .NET Framework, язык С# опирается на богатое наследие в области программирования. Его главным архитектором был ведущий специалист в области программирования – Андерс Хейлсберг. С# – прямой потомок двух самых успешных в мире компьютерных языков С и С++. От C он унаследовал синтаксис, ключевые слова и операторы. Он позволяет построить и усовершенствовать объектную модель, определенную в С++. Более того, он, как и Java, поддерживает программирование распределенных систем и использует промежуточный код для достижения переносимости.
Опираясь на мощный фундамент, который составляют унаследованные характеристики, С# содержит ряд важнейших новшеств, поднимающих искусство программирования на новую ступень. Так например, в состав языка С# включены такие понятия как делегаты, свойства, индексаторы, события. Добавлен также синтаксис, который поддерживает атрибуты; упрощено создание компонентов за счет исключения проблем, связанных с COM. С# предлагает средства динамического обнаружения ошибок, обеспечения безопасности и управляемого выполнения программ.
На протяжении всей истории развития вычислительной техники эволюция языков программирования означала изменение вычислительной среды, способа мышления программистов и самого подхода к программированию. Язык С# не является исключением. В непрекращающемся процессе усовершенствования, адаптации и внедрения нововведений в С# в настоящее время находится на переднем крае. Это – язык, игнорировать существование которого не может ни один профессиональный программист.
Глава 1. Постановка задачи
Требуется создать простейшую базу данных, используя технологию файловых систем. При этом должны быть созданы файлы данных, реализованы задачи дополнения, корректировки и обработки данных, то есть осуществление ответов на запросы пользователя, а также выполнено графическое представление результатов обработки информации.
Написанная мной программа осуществляет учет кадров на предприятии и расчет заработной платы и носит название «Зарплата и кадры 1.0».
Система решает следующие задачи:
1. Создание базы сотрудников на 2007 год.
2. Дополнение базы новыми сотрудниками.
3. Корректировка данных о сотрудниках в базе.
4. Формирование ответов на
Входные данные
Входными данными для всех запросов являются записи с полями:
- табельный номер;
- месяц;
- подразделение;
- фамилия;
- имя;
- отчество;
- режим работы;
- система оплаты труда;
- оклад сотрудника;
- вид работы;
- категория;
- занимаемая должность;
- стаж работы сотрудника;
- сверхурочные часы работы в текущем месяце;
- ночные смены в текущем месяце.
При генерации списка сотрудников входными данными выступают массивы строкового типа, содержащие информацию, требуемую для заполнения в таблицу. А именно:
- string[] Number = // табельный номер
- string[] Department= // подразделение
- string[] Surname = // фамилия работника
- string[] Name = // имя работника
- string[] SName = // отчество работника
- string[] WorkDay = // режим работы
- string[] System = // система оплаты
- string[] WorkType = // вид работы
- string[] Degree = // категория
- string[] Place = // должность
Выходные данные
Выходными данными служит таблица: по строкам – записи файла, по столбцам – поля записей, а также ряд переменных, используемых для разнообразных расчетов.
В пункте меню «Сервис» в 1-м запросе «Расчет заработной платы сотрудников за месяц (без учета налоговых отчислений)» выходными данными служит информация:
- о месяце;
- фонде оплаты труда за данный месяц – double summa;
- табельном номере;
- подразделении;
- фамилии;
- режиме работы;
- системе оплаты;
- окладе;
- дополнительных выплатах по категории;
- дополнительных выплатах по стажу;
- дополнительных выплатах по занимаемой должности;
- дополнительных выплатах по системе оплаты;
- сумме к выплате сотруднику – double sum.
В пункте меню «Сервис» в 2-м запросе «Расчет заработной платы сотрудника за 2007 год (с учетом налоговых отчислений)» выходными данными служит информация о месяце осуществляемой выплаты, фамилии сотрудника, выплатах без учета налогов, а также с их учетом.
В пункте меню «Сервис» – «График изменения выплат по окладу сотрудникам в течение 2007 года» выходными данными служит графический образ, отражающий это изменение.
Информация, обрабатываемая
в системе, храниться в
Глава 2. Функциональная структура приложения
Ввод новых данных с клавиатуры, их корректировка осуществляются в пункте меню "Сервис", где представлены подменю "Добавление сотрудника", "Редактирование данных", "Генерация списка" (автоматическое создание списка сотрудников без их ввода пользователем вручную), в которых вывод данных в сводную таблицу осуществляется с их сортировкой по ключевому полю, однозначно идентифицирующему сотрудника, по табельному номеру. Также меню «Сервис» содержит "Удаление выбранной записи", "Очистка листа".
Возможен ввод данных в систему из типизированного файла путем выбора пункта меню "Файл" - "Открыть базу".
В пункте меню "Обслуживание" осуществляются ответы на запросы пользователя.
В подменю "Расчет заработной платы сотрудников за месяц (без учета налоговых отчислений)" осуществляется расчет заработной платы всех представленных на предприятии сотрудников с учет множества коэффициентов и дополнительных выплат. Причем расчет выплат реализован на основе определенной методике. После выбора из раскрывающегося списка 1 из интересующих месяцев в информационном окне будет выведено сообщение об общем размере фонда оплаты труда сотрудникам за текущий месяц, а затем представлен подробный отчет в табличной форме, который будет включать в себя следующие данные:
- табельный номер сотрудника;
- подразделение;
- фамилия;
- режим работы;
- система оплаты труда;
- оклад;
- дополнительные выплаты по категории;
- дополнительные выплаты по стажу;
- дополнительные выплаты по должности;
- дополнительные выплаты по системе оплаты;
- итоговая сумма начислений с учетом территориального и северного коэффициентов без учета налоговых вычетов.
Список будет отсортирован по табельным номерам.
В подменю "Расчет заработной платы сотрудника за 2007 год" при выборе одного из работающих на предприятии сотрудника появится итоговый отчет с информацией о начислениях без и с учетом налоговых отчислений для данного сотрудника по месяцам. Список будет отсортирован по месяцам.
Выход из системы
осуществляется с помощью
Помимо всех представленных возможностей, программа оснащена пунктом меню "Помощь", в которой представлены "Методика расчета заработной платы" и "Пояснения к программе".
Глава 3. Методика расчета заработной платы
Заработная плата складывается из нескольких составляющих:
- оклад сотрудника;
- выплаты по категории;
- выплаты по стажу работы;
- выплаты по занимаемой
- дополнительные начисления за счет формы оплаты труда;
- премии;
- учет коэффициентов (северный и территориальный).
Выплаты по категории.
Если категория сотрудника
выше 1-й, то начисляется
- для работников 2-й категории равная 20% от оклада;
- для работников 3-й категории равная 30% от оклада.
Выплаты по стажу.
Если стаж работы сотрудника выше или равен 3-м годам, но меньше 10 лет, то начисляется дополнительная сумма денег в размере 15% от оклада.
Если стаж сотрудника выше 10 лет, то выплата по стажу составляет 30% от оклада.
Выплаты по занимаемой должности.
Если сотрудник занимает должность "Рабочий", то дополнительная сумма денег к заработной плате составит 10% от суммарного размера оклада, выплаты по категории и стажа.
Если сотрудник занимает должность "Программист", то дополнительные начисления к заработной плате составят 40% от суммарного размера оклада, выплаты по категории и стажа.
Если сотрудник занимает должность "Инженер", то дополнительные начисления к заработной плате составят 60% от суммарного размера оклада, выплаты по категории и стажа.
Начисления по форме оплаты труда.
Сдельная прямая форма оплаты труда обеспечивает начисление самого оклада.
Сдельно-прогрессивная форма
Сдельно-премиальная форма расчета заработной платы учитывает дополнение оклада премией в размере 40% от оклада.
Повременная-поденая и
Повременно-премиальная форма
Учет коэффициентов.
Территориальный и северный коэффициенты увеличивают суммарный размер начислений в 2,2 раза.
Налоговые отчисления.
Из суммы денег, поступающих на лицевой счет сотрудника, изымается сумма в размере 13% в качестве налоговых поступлений.
Глава 4. Проверка данных при вводе
В системе предусмотрена проверка вводимых пользователем данных.
Во-первых, пока пользователь не введет все необходимые данные для сохранения сотрудника в базе, не будет возможен переход к его сохранению. При пропуске того или иного пункта, требуемого к заполнению, загорится специальный знак рядом с кнопкой "Ok", а само поле окрасится в яркий цвет. При заполнении всех полей кнопка "Ok" становится доступной.
Во-вторых, в связи с разработкой системы под конкретное предприятие, все поля, кроме табельного номера, фамилии, имени, отчества, стажа, оклада, сверхурочных часов и ночных смен, определены ограниченным заранее выбором из возможных вариантов:
- ввод месяца осуществляется выбором одного из 12 пунктов в раскрывающемся списке;
- представленные подразделения - 001, 002 и 003;
- режим работы: 5-дневный, 6-дневный, Свободный;
- система оплаты труда:
- вид работы: Основная, По совместительству, Прочее;
- категория: 1-я категория, 2-я категория,3-я категория;
- должность: Рабочий,
Числовые поля (табельный номер, стаж, оклад, сверхурочный часы, ночные смены) оснащены проверкой на ввод целых чисел.
Данные возможности в системе
достигаются благодаря
- private void ValidateAll() - метод, не позволяющий осуществить нажатие клавиши Ok без предварительного заполнения всех окон
- private void txtNumber_KeyPress(object sender,
System.Windows.Forms.
- private void cmbBoxEmpty_Validating(object sender,
System.ComponentModel.
- private void txtBoxEmpty_Validating(object sender,
System.ComponentModel.
Глава 5. Перечень классов и методов и их функциональное назначение
В программе представлены различные классы с соотвествтвующими методами:
1) public class mainForm: System.Windows.Forms.Form, который в свою очередь содержит несколько методов:
- private void Open() - метод, открывающий базу
- private void SortList() - метод, с помощью которого происходит сортировка по табельному номеру
- private void Escape() - метод, осуществляющий закрытие файла с сохранением или не сохранением данных. В него вложены методы FileSave(), в который вложен метод Save1()
- public void FileSave() - метод для сохранения файла при закрытии такового
- public void Save1() - метод сохранения данных
- private void GenerateList() - метод, используемый для генерации данных
- private void ClearList() - метод, в котором осуществляется очистка всего листа с данными
- public class Add : System.Windows.Forms.Form, который содержит методы:
- public Add()- метод, с помощью которого осуществляется добавление нового сотрудника в базу
- public Add(ref string s1…ref string s15) - метод, с помощью которого осуществляется редактирование данных о сотруднике
- private void txtBoxEmpty_Validating(object sender, System.ComponentModel.CancelEv
entArgs e) - метод, осуществляющий проверку на заполнение всех текстовых окон - private void cmbBoxEmpty_Validating(object sender, System.ComponentModel.CancelEv
entArgs e) - метод, осуществляющий проверку на заполнение всех раскрывающихся окон - private void txtNumber_KeyPress(object sender, System.Windows.Forms.KeyPressE
ventArgs e) - метод, осуществляющий проверку на ввод числового значения - private void ValidateAll() - метод, не позволяющий осуществить нажатие клавиши Ok без предварительного заполнения всех окон
- public class Diagram: System.Windows.Forms.Form - класс, в котором осуществляется построение графика и который содержит методы:
- public Diagram(ListView List) - метод, вызванный для проведения всех необходимых расчетов и выведения графика в специально отведенное для этого окно
- private void Diagram_Closing(object sender, System.ComponentModel.CancelEv
entArgs e)- метод, закрывающий окно и осуществляющий переход на родительскую форму через нажатие знака закрытия в верхнем правом углу окна
- public class Explanation : System.Windows.Forms.Form - - класс, в котором происходит вывод в окно справочной информации о правилах пользования программой "Зарплата и кадры 1.0". Он содержит метод:
- public Explanation()- метод, в котором осуществляется чтение информации из текстового файла
- public class Inquiry : System.Windows.Forms.Form - класс, предоставляющий возможность для выбора того или иного элемента из заданного списка при построении ответов на запросы пользователя с помощью метода:
- public Inquiry(string s, ref string[] mas)
- public class Invitation : System.Windows.Forms.Form - класс, в котором происходит вывод приветствия
- public Invitation() - метод, осуществляющий вывод приветствия
- public class MethodSalary : System.Windows.Forms.Form - класс, в котором производится вывод информации об используемой методике расчета заработной платы
- public MethodSalary()- метод, с помощью которого производится чтение методики расчета заработной платы из текстового файла
- public class UserInquiryList : System.Windows.Forms.Form - класс запросов
- private void SortList() - метод, осуществляющий сортировку по возрастанию табельного номера при выводе данных в таблицу
- public UserInquiryList(ListView List) - метод, реализующий первый запрос
- private void SortListMes() - метод, осуществляющий cсортировку по месяцу
- public UserInquiryList(ListView List, bool b) - метод, реализующий второй запрос
Глава 6. Инструкция для пользователя по работе с программным комплексом
При запуске программы появится окно приветствия, в котором будут представлены основные данные о разработчике и названии программы. Программа не будет переходить в состояние, предоставляющее возможность работать с базами о сотрудниках до тех пор, пока не будет нажата любая клавиша на клавиатуре.
Рис.1
С запуском программы в списке на панели задач появиться специальное обозначение с надписью «Зарплата и кадры 1.0».
Рис.2
При нажатии любой клавиши появится таблица, с которой будет осуществляться работа, и запрос об открытии того иного файла.
Рис.3
В случае невозможности или нежелания открытия файла, будет выведено сообщение о том, что файл отсутствует.
Рис.4
В случае существования необходимого файла и его выбора в таблицу будут введены все данные, находящиеся в нем в порядке возрастания табельного номера сотрудника, однозначно его идентифицирующего.
Рис.5
Структура программы состоит из 4 пунктов меню с соответствующим количеством подменю, которые имеют следующий вид:
Меню «Файл»: Меню «Сервис»:
Рис.6 Рис.7
Меню «Обслуживание»:
Рис.8
Меню «Помощь»:
Рис.9
Также Вы можете открыть базу самостоятельно, выбрав в пункте меню «Файл» подменю «Открыть базу» (Рис.6).
Для осуществления добавления сотрудников в базу необходимо выбрать пункт меню «Сервис» - «Добавление сотрудника» (Рис.7). Появится следующее окно (Рис.10), требующее заполнения всех окон.
Рис.10
В случае не заполнения всех окон, ввод нового сотрудника в базу будет невозможен, так как кнопка Ok станет доступной лишь после ввода всех необходимых данных. Более того, незаполненные поля будут окрашены в голубой цвет, сигнализирующий об ошибке. Также об отсутствии всей информации можно понять из контекстной помощи при наведении мыши на специальный знак рядом с кнопкой Ok. (Рис.11). Многие поля заполняются путем выбора одного из значений из раскрывающегося списка заранее определенных вариантов.
После нажатия клавиши Ok новый сотрудник будет помешен в базу на соответствующее его табельному номеру место.
Помимо добавления сотрудника в базу, можно осуществлять редактирование данных о том или ином сотруднике предприятия, предварительно выбрав интересующую запись, необходимую к изменению, и выделив ее в таблице путем нажатия клавишей мыши на любом из ее полей, а затем открыв пункт меню «Сервис» - «Редактирование данных» (Рис.7). Будет выведено окно, аналогичное окну «Добавление сотрудника», в котором будет необходимо изменить те или иные значения параметров данных о сотруднике.
Рис.12
В случае отсутствия необходимости ввода данных о сотрудниках, их можно вывести, автоматически и произвольно сгенерировав системой, выбрав пункт меню «Сервис» - «Генерация списка» (Рис.7).
С помощью выбора пункта меню «Сервис» (Рис.7) можно либо удалить предварительно выделенную таким же образом, как и при редактировании данных о сотруднике, запись с помощью пункта «Удаление выбранной записи», либо очистить весь список, вызвав команду «Очистка листа».
В пункте меню «Обслуживание» производятся ответы на запросы пользователя (Рис.8).
При необходимости вывода на экран размера заработной платы с учетом всех выплат за определенный месяц для всех работающих на предприятии сотрудников на тот момент, следует выбрать пункт меню «Обслуживание» - «Расчет заработной платы сотрудников за месяц (без учета налоговых отчислений)» (Рис.8).
Далее будет выдан запрос на выбор интересующего Вас месяца. (Рис.13)
Рис.13
Выбрав его, Вам будет представлен ФОТ за данный месяц, а затем подробный отчет на месяц обо всех выплатах всем сотрудникам за данный месяц, который будет содержать следующую информацию:
- табельный номер;
- подразделение;
- фамилия;
- режим работы;
- система оплаты;
- оклад;
- дополнительные выплаты по категории;
- дополнительные выплаты по должности;
- дополнительные выплаты по системе оплаты;
- итоговая сумма с учетом территориального и северного коэффициентов, но без вычета налоговых отчислений.
Рис.14
После закрытия данного окна с помощью нажатия на кнопку Ok с помощью мыши, либо с помощью клавиши Enter на клавиатуре, либо через нажатие знака закрытия в правом верхнем углу окна, Вы вновь окажетесь в главном окне программы.
Выбрав пункт меню «Обслуживание» - «Расчет заработной платы сотрудника за 2007 год (с учетом налоговых отчислений)» (Рис.8), Вам вновь будет предложено выбрать из раскрывающегося списка, но теперь уже фамилию сотрудника (Рис.15), после чего появится окно с таблицей, в которой будут выведены данные о начислениях без учета налогов и с их учетом за 2007 год (Рис.16).
Рис. 15
Рис.16
Выход из данного окна стандартный.
Помимо табличного анализа заработной платы сотрудников, можно проводить ее суммарный графический анализ за 2007 год, путем выбора пункта меню «Обслуживание» - «График изменения выплат по окладу сотрудникам в течение 2007 года» (Рис.8). Его вид следующий:
Рис.17
Выход из окна стандартный.
В пункте меню «Помощь» находятся инструкции по методике расчета заработной платы и пояснения к программе, а также информация о разработчиках. (Рис.9)
Для осуществления выхода из программы необходимо выбрать подменю «Выход» меню «Файл» (Рис.6). Причем при этом системой будет задан вопрос о сохранении или не сохранении данных в файле (Рис.18).
Рис.18
В случае положительного ответа на вопрос система поинтересуется о том, в какой директории и под каким именем сохранить файл (Рис.19):
Рис.19
Если Вы введете имя файла, уже существующего по заданному Вами пути, то будет задан соответствующий вопрос о замене файла (Рис.20):
Затем Вам будет необходимо ответить на вопрос (Рис.21):
Если Вы отвечаете положительно, то система выходит из приложения, иначе – можно продолжать работу с программой.
В приложении также предусмотрено предварительное сохранение данных в базе с помощью выбора пункта меню «Файл» - «Сохранить как...» (Рис.6).
Требования к компьютеру:
- наличие клавиатуры;
- мыши;
- монитора;
- ____ Mb свободного места на диске.