Программное обеспечение деятельности отдела кадров
Создание программного средства для реализации работы отдела кадров, построенное на основах ООП и STL. Доступный и простой интерфейс для занесения данных о рабочих и местах их прошлых работ. Алгоритм функционирования программы, ее характеристика.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 19.06.2012 |
Размер файла | 319,6 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Содержание
- Введение
- 1. Описание программы
- 1.1 Общие сведения
- 1.2 Функциональное назначение
- 1.3 Описание алгоритма функционирования программы
- 1.4 Логическая структура
- 1.4.1 Диаграмма Классов
- 1.4.2 Алгоритмы программы
- 1.5 Используемые технические и программные средства
- 1.6. Вызов и загрузка
- 1.7 Входные данные
- 1.8 Выходные данные
- 2. Программа и методика испытаний
- 2.1 Цель испытаний
- 2.2 Требования к программе
- 2.3 Средства и порядок испытаний
- 3. Руководство системного программиста
- 3.1 Назначение и условия применения программы
- 3.2 Характеристика программы
- 3.3 Структура программы
- 3.5 Дополнительные возможности
- 4. Руководство оператора
- Заключение
- Приложения
Аннотация
Задача курсовой работы - написать программное средство для реализации работы отдела кадров. Программа предназначена для работников отдела и автоматизации рабочего процесса с рабочими и их данными. Цель, которая ставится при написании программы - создать ПО, построенное на основах ООП и STL, предоставляющее пользователю доступный и простой интерфейс, и позволяющую заносить данные о рабочих и местах их прошлых работ.
Введение
Каждый день работникам отдела кадров приходится иметь дело с рабочими, новыми сотрудниками и их данными. Для ведения учета данных о рабочих была разработана программа. Работник отдела кадров без особого труда может записывать данные в программу, считывать их и переносить на любой накопитель. Программа была написана с удобным меню, с целью облегчить труд работников данного отдела.
1. Описание программы
1.1 Общие сведения
Обозначение и наименование программы - программное средство для реализации работы отдела кадров.
Для работы данной программы необходима операционная система не ниже Windows 98.
Программа разработана на языке высокого уровня C++. Язык С++, сохранив средства языка С, ввёл в практику программирования возможности нового технологического подхода к разработке программного обеспечения, получившего название "объектно-ориентированное программирование".
1.2 Функциональное назначение
При появлении новых сотрудников или при необходимости работы с данными старых, работник отдела заносит данные в программу. Данные сохраняются в текстовом документе. После чего файл можно использовать в качестве базы данных, которую можно записывать на любое переносное устройство.
1.3 Описание алгоритма функционирования программы
Программное обеспечение не взаимодействует с другим ПО.
Основные действия пользователя в программе представлены следующими пунктами:
1. Выбор нужного пункта в меню.
2. Просмотр информации.
3. Возможность добавления информации.
4. Выход из программы.
При осуществлении перечисленных операций система взаимодействует с текстовыми документами с информацией, хранящейся в папке с программой.
Данный алгоритм является достаточно простым и доступным для программной реализации и применения (Рис.1.).
Рис.1. Схема алгоритмов работы программы
1. Происходит чтение информации из файла
2. Происходит вывод меню на экран
3. Происходит чтение кода команд
4. Происходит внесение из файла Work в вектор C Work
5. Происходит внесение из файла Worker в вектор C Worker
6. Происходит внесение из файла Docent в вектор CDocent
7. Происходит запись из вектора CWork в файл
8. Происходит запись из вектора CWorker в файл
9. Происходит запись из вектора CDocent в файл
10. Происходит вывод содержимого вектора CWork на экран
11. Происходит вывод содержимого вектора CWorker на экран
12. Происходит вывод содержимого вектора CDocent на экран
13. Происходит запись в вектор CWork нового содержимого
14. Происходит запись в вектор CWorker нового содержимого
15. Происходит запись в вектор CDocent нового содержимого
16. Происходит завершение работы программы
1.4 Логическая структура
1.4.1 Диаграмма Классов
Программа функционируют следующим образом. Пользователь класса может запросить информацию в любой момент времени. Однако реально информация считывается через определенные интервалы в свойство класса, служащего для хранения последнего считанного значения, и которое в некотором приближении может считаться текущим. Пользователь класса, обратившись к классу для считывания текущего значения, получает информацию из этого свойства.
Разработанный класс CWork:
Класс CWork (список информации о прошлых местах работы) служит для хранения данных о прошлых местах работы.
Разработанный класс CWork:
Имя: CWork.
Ответственность: хранение и выдача информации о прошлых местах работы
Свойства:
std:: vector <CWorker *> pr; хранит связывающий вектор для работников
int WorkBegin; хранит информацию о дате начала работы
int WorkEnd; хранит информацию о дате окончания работы
char Work [20]; хранит информацию о должности
char WorkPlace [25]; хранит информацию о месте работы
char Reason [40]; хранит информацию о причине увольнения
Операции
int getWorkBegin (void); возвращает значение даты начала работы
void setWorkBegin (int AWorkBegin); изменяет значение даты начала работы
int getWorkEnd (void); возвращает значение даты конца работы
void setWorkEnd (int AWorkEnd); изменяет значение даты конца работы
char *getWork (void); возвращает значение должности
void setWork (char *AWork); изменяет значение должности
char *getWorkPlace (void); возвращает значение места работы
void setWorkPlace (char *APlace); изменяет значение места работы
char *getReason (void); возвращает значение причины увольнения
void setReason (char *AReason); изменяет значение причины увольнения
void AddWorkerIntoWork (CWorker *g) запись новой информации в вектор для места работы
void RemoveWorker (CWorker * g); удаление информации из вектора места работы
int CountWorkerInWork (); подсчет количества записей о местах работы
void WriteV (); вывод содержимого вектора на экран для мест работ
void WriteFV (std:: ofstream &t); вывод содержимого вектора в файл для мест работ
void ReadFV (std:: ifstream &t); чтения объектов из файла в вектор для мест работ
void Read () считывания информации c консоли для мест работ
void Write () вывод информации об объекте на экран для мест работ
void ReadF (std:: ifstream &f) считывание информации из файлового потока для мест работ
void WriteF (std:: ofstream &f) записи информации в текстовый файл для мест работ
CWork (); конструктор по умолчанию для мест работ
CWork (CWork & As); конструктор копирования для мест работ
CWork (int AWorkBegin, int AWorkEnd, char *AWork, char *AWorkPlace, char *AReason); инициализация полей в конструкторе для мест работ
Разработанный класс CWorker:
Класс CWorker (информация о билетах) служит для хранения данных о билетах.
Имя: CWorker.
Ответственность: хранение и выдача информации о работниках
Свойства:
int PersonID; хранит информацию о персональном ИД
char *Family; хранит информацию о фамилии
char Birth [12]; хранит информацию о дате рождения
Операции:
int getPersonID (void); возвращает значение персонального ИД
void setPersonID (int APersonID); изменяет значение персонального ИД
char *getFamily (void); возвращает значение фамилии
void setFamily (char *AFamily); изменяет значение фамилии
char *getBirth (void); возвращает значение даты рождения
void setBirth (char *ABirth); изменяет значение даты рождения
void Read () считывания информации c консоли для класса CWorker
void Write () вывод информации об объекте на экран для класса CWorker
void ReadF (std:: ifstream &f) считывание информации из файлового потока для класса CWorker
void WriteF (std:: ofstream &f) записи информации в текстовый файл для класса CWorker
CWorker (); конструктор по умолчанию для рабочих
CWorker (CWorker & As); конструктор копирования для рабочих
CWorker (int APersonID, char *AFamily, char *ABirth); инициализация полей в конструкторе для рабочих
~CWorker (); деструктор для рабочих
У класса CDocent имеется родительский класс CWorker Таким образом нам нужно описать класс CDocent. Это позволит добавлять данные о скидке на билеты.
Разработанный класс CDocent:
Имя: CDocent.
Ответственность: хранение и выдача информации о получении научной степени.
Свойства:
int GodZ; хранит информацию о годе приобретения
char UchSpec [15]; хранит информацию об ученой степени
Операции:
int getGodZ (void); возвращает значение года приобретения
void setGodZ (int AGodZ); изменяет значение года приобретения
char *getUchSpec (void); возвращает значение ученой степени
void setUchSpec (char *AUchSpec); изменяет значение ученой степени
void Read () считывания информации c консоли для класса CDocent
void Write () вывод информации об объекте на экран для класса CDocent
void ReadF (std:: ifstream &f) считывание информации из файлового потока для класса CDocent
void WriteF (std:: ofstream &f) записи информации в текстовый файл для класса CDocent
CDocent (); конструктор по умолчанию для ученой степени
CDocent (CDocent & As); конструктор копирования для ученой степени
CDocent (int APersonID, char *AFamily, char *ABirth, int AGodZ, char *AUchSpec); инициализация полей для CDocent
На рис.2 представлена диаграмма классов.
программное обеспечение отдел кадров
(Рис.2. Диаграммы классов)
1.4.2 Алгоритмы программы
При разработке данной программы использовались следующие конструкции программирования: операторы ветвления - условный оператор if и switch; операторы цикла - цикл с параметром for; операторы передачи управления-break, return. В программе используются алгоритмы стандартной библиотеки шаблонов - метод добавления элемента в конец списка (push_back), метод, удаление всех элементов списка.
Полный листинг программы приведён в ПРИЛОЖЕНИИ 1.
1.5 Используемые технические и программные средства
Данная программа написана на языке высокого уровня C++. Программное обеспечение разрабатывается для персонального компьютера IBM PC с процессором не ниже Pentium-120 со следующими характеристиками:
объем ОЗУ не менее 16 Mb;
графический адаптер SVGA;
манипулятор типа "мышь".
1.6. Вызов и загрузка
Данная программа занимает 898 Кбайт в оперативной памяти компьютера.
Общий объем дискового пространства, занимаемого программой - 675 Кбайт.
Общий объем дискового пространства, занимаемого исходным кодом программы - 661 Кбайт.
Для запуска программы необходимо открыт "Мой компьютер" и нажать на ярлык программы.
1.7 Входные данные
Входные данные вводятся с клавиатуры или добавляются из файла.
Чтобы добавить данные с файла необходимо в меню нажать пункт и открыть файл.
Из файла с именем Worker. txt вводится информация о рабочем. Файл имеет следующую структуру:
1. Сохранено число, обозначающее, количество рабочих находящихся в этом файле.
2. Сохранен персональный ИД.
3. Сохранена фамилия.
4. Сохранена дата рождения.
Из файла с именем Work. txt вводится информация о рейсах
1. Сохранено число, обозначающее, количество мест работ на данный момент.
2. Сохранена дата начала работы.
3. Сохранена дата окончания работы.
4. Сохранена должность.
5. Сохранено место работы.
6. Сохранена причина увольнения.
Если есть ученая степень, то добавляется тип ученой степени.
Из файла с именем Docent. txt вводится информация о ученой степени
1. Сохранено число, обозначающее, количество ученых степеней в этом файле.
2. Сохранен год получения уч. Степени.
3. Сохранен тип ученой степени.
1.8 Выходные данные
Выходные данные выводятся на экран и сохраняются в файлы. Выходной и входной файл имеют одинаковый формат.
Данные о работе в файл Work. txt
Данные о работнике в файл Worker. txt
Данные о ученой степени в файл Docent. txt
2. Программа и методика испытаний
2.1 Цель испытаний
Цель испытаний заключается в проверке корректности структуры программы, разработанных алгоритмов программы, а также в корректности использования алгоритмов стандартной библиотеки шаблонов. Таким образом, следствием тестирования данной программы является получение рекомендаций по её улучшению, а также получения сведений о возможности применения данной программы.
2.2 Требования к программе
К данной программе предъявляются следующие требования:
· система должна работать в консольном режиме и поддерживать работу с клавиатурой;
· добавление новых данных к имеющимся - добавление новой группы (с созданием нового файла); добавление информации о работе; добавление информации о работниках; добавление информации о ученой степени.
· сохранение данных, полученных при работе программы в текстовый файл;
· вывод данных на экран, требуемых пользователем - список мест работ, список информации о работниках, информация о ученой степени.
2.3 Средства и порядок испытаний
Перечень используемых при испытаниях технических средств:
· персональный компьютер IBM PC с процессором не ниже Pentium;
· объем ОЗУ не менее 16 Mb;
· графический адаптер SVGA;
· манипулятор типа "мышь";
Перечень используемых при испытаниях программных средств:
· Microsoft Windows 98,Microsoft Visual C++ 6.0.
Испытания проходили в следующей последовательности:
проверка корректного написания и последующее исправление ошибок, если таковые имеются, о наличии которых можно судить по сообщениям, выдаваемым редактором или отсутствии ожидаемого результата;
проверка правильности работы для каждого отдельного пункта меню:
загрузка из файла работ/работников/ученой степени
сохранение в файл работ/работников/ученой степени
вывод на экран работ/работников/ученой степени
добавление работ/работников/ученой степени
Было выполнено несколько раз испытание на правильное функционирование.
В ходе испытаний ошибок или сбоев найдено не было. Все работает верно.
3. Руководство системного программиста
3.1 Назначение и условия применения программы
Программа предназначена для удобства работы отдела кадров. Она обеспечивает хранение данных о местах работы, работниках, ученых степенях.
Перечислим основные функции, выполняемые программой:
§ Запуск исполняемого файла
§ Загрузка начальных данных из файла или ввод данных вручную.
§ Сохранение данных, полученных в результате работы программы, в текстовые файлы.
Условия, необходимые для выполнения программы:
Перечень требуемых технических средств:
· персональный компьютер IBM PC с процессором не ниже Pentium;
· объем ОЗУ не менее 16 Mb;
· графический адаптер SVGA;
· манипулятор типа "мышь";
· Keyboard.
Перечень требуемых программных средств:
§ Microsoft Windows;
§ DOS.
3.2 Характеристика программы
Данный программный проект эффективен даже при работе с маломощными системами с малым объемом ОЗУ и ПЗУ, кроме этого программа рационально использует вычислительные ресурсы процессора. Разработанное ПО работает быстро и надежно с любыми аппаратными и программными платформами, отвечающими требованиям, представленным в п.3.1.
3.3 Структура программы
Данная программа состоит их файлов с расширениями *. dsw, *. dsp, *. h,*. cpp, *. txt
Файлы расширения *. dsw и *. dsp являются файлами проекта. Это Work. dsw и Work. dsp
Программа состоит из следующих частей:
Header files:
Work. h, Worker. h, Docent. h
Source files:
Work. cpp, Worker. cpp, Docent. cpp, main. cpp
Text files:
Work. txt, Worker. txt, Docent. txt
3.4 Настройка программы
Проверкой работоспособности программы является соответствие работы программы с предъявляемыми к ней требованиям:
система должна работать в консольном режиме и поддерживать работу с клавиатурой;
полученная информация должна быть автоматически сохранена на магнитном носителе в выходном файле;
выходной файл должен быть представлен в текстовом формате;
3.5 Дополнительные возможности
Не имеется
4. Руководство оператора
Для установки требуется скопировать папку на компьютер в директорию.
Для запуска программы необходимо запустить файл.
Рис.3. Меню программы
В программе расположено меню:
1. Worker File - > vector
2. Worker vector - > File
3. Worker vector - > Display
4. Add Worker to vector
5. Work File - > vector
6. Work vector - > File
7. Work vector - > Display
8. Add Work to vector
9. BiletSkidka File - > vector
10. Docent vector - > File
11. Docent vector - > Display
12. Add Docent to vector"
0. Exit
Выбрав пункт 1 или 2, считывается информация о работнике из файла в вектор, при этом указать имя файла.
Выбрав пункт 3 на экран монитора выводится количество работников, данные о которых занесли в программу.
Выбрав пункт 4 вводится информация о работниках (персональный ИД, фамилия, дата рождения).
Выбрав пункт 5 и 6, считывается информация о месте прошлой работы из файла в вектор, при этом указать имя файла.
Выбрав пункт 7 на экран монитора выводится количество мест работы, которые были записаны в программе.
Выбрав пункт 8 вводится информация о местах работы (дата начала работы, дата окончания работы, должность, место работы и причина увольнения)
Выбрав пункт 9 и 10, считывается информация о ученой степени из файла в вектор, при этом указать имя файла.
Выбрав пункт 11 выводит на экран количество ученых степеней для различных работников.
Выбрав пункт 12 вводится информация ученых степенях (год получения, тип ученой степени).
Выбрав пункт 0 завершает программу.
Заключение
Решение какой-либо задачи с помощью ЭВМ распадается на три основных этапа: постановка задачи, составление алгоритма решения, программная реализация алгоритма на ЭВМ. В данной курсовой работе реализованы все указанные выше этапы в среде программирования Visual C++.
В результате выполнения разработанной программы, охватывающие основные возможности языка программирования Visual C++, позволяющие выполнять все необходимые действия по составлению, отладке и выполнению программы. Все условия, необходимые для реализации данного проекта выполнены, т.е. составлено программное обеспечение деятельности отела кадров.
Таким образом, основная цель курсовой работы по овладению основами программирования в среде Visual C++ выполнена.
Список литературы
1. Единая система программной документации. - М.: Изд-во стандартов, 1985.
2. Шлеер С., Меллор С. Объектно-ориентированный анализ: моделирование мира в состояниях. - К.: Диалектика, 1993.
3. Боэм Б.У. Инженерное проектирование программного обеспечения. - М.: Радио и связь, 1985.
4. Буч Г. Объектно-ориентированное проектирование, 2-е изд. - М.: Бином, 1999.
Приложения
Приложение 1. Техническое задание
1. ВВЕДЕНИЕ
Наименование - прикладное программное обеспечение деятельности отдела кадров.
Краткая характеристика - обеспечение накопления и хранения информации кадров.
2. ОСНОВАНИЕ ДЛЯ РАЗРАБОТКИ
Учебный план специальности 230201 и задание преподавателя для выполнения курсовой работы.
3. НАЗНАЧЕНИЕ РАЗРАБОТКИ
Прикладное программное обеспечение деятельности отдела кадров позволяет пройти все этапы: ввод данных о предыдущем месте работы, добавление сотрудников в реестр (персональный ИД, фамилия, дата рождения).
4. ТРЕБОВАНИЯ К ПРОГРАММЕ
4.1 Требования к функциональным характеристикам
4.1.1 Программное обеспечение должно хранить информацию о:
местах предыдущих работ:
дата начала и окончания работы;
должность;
место работы;
причина увольнения;
работниках:
персональный ИД;
фамилия;
дата рождения;
4.1.2 Программное обеспечение должно обеспечивать вычисление параметров:
количество работников с ученой степенью;
количество прошлых мест работ для работников;
количество работников на данный момент;
4.1.3 По требованию пользователя система должна обеспечить выдачу:
БД мест работ;
БД работников;
БД ученых степеней;
4.1.4 Программное обеспечение должно работать в консольном режиме и поддерживать работу с клавиатуры.
4.1.5 Собранная информация может быть сохранена на внешнем носителе в выходном файле автоматически и по требованию пользователя.
4.1.6. Структура выходного файла должна быть разработана с учетом сохранения всех первичных параметров и моментов их измерений.
4.1.7 Программное обеспечение при запуске может использовать в качестве входной информации файл с ранее записанными данными.
4.1.8 Системное время и дата поддерживаются встроенными часами.
4.2 Требования к надежности
4.2.1 Программа должна обрабатывать ошибочные действия пользователя и сообщать ему об этом.
4.2.2 Программа должна учитывать отсутствие данных за требуемый период в связи с возникшим сбоем.
4.3 Условия эксплуатации
4.3.1 Данным программным обеспечение может управлять любой квалифицированный сотрудник.
4.4 Требования к составу и параметрам технических средств
4.4.1 Программное обеспечение разрабатывается для персонального компьютера IBM PC с процессором не ниже Pentium-120 со следующими характеристиками:
объем ОЗУ не менее 16 Mb;
манипулятор типа "мышь".
4.4.2 ЭВМ должна работать под управлением операционной системы не ниже MS-DOS 6.2.
4.5 Требования к информационной и программной совместимости
4.5.1 Требование информационной совместимости должно быть обеспечено работой с файлами сбора информации о мониторинге определенной структуры в качестве входной и выходной информации.
5. ТРЕБОВАНИЯ К ПРОГРАММНОЙ ДОКУМЕНТАЦИИ
Программная документация должна содержать пояснительную записку к курсовой работе и графическую часть.
6. ТЕХНИКО-ЭКОНОМИЧЕСКИЕ ПОКАЗАТЕЛИ
В результате внедрения разработанного ПО, предполагается улучшить работу отдела кадров.
7. СТАДИИ И ЭТАПЫ РАЗРАБОТКИ
7.1 Стадия аналитической разработки:
ознакомление с теоретическим материалом;
аналитическая обработка теоретической информации.
объектно-ориентированный анализ;
разработка диаграммы объектов;
разработка диаграммы последовательности;
объектно-ориентированное проектирование;
разработка диаграммы классов.
7.2 Стадия программной разработки:
разработка классов и отдельных модулей программы;
отладка полученных классов и модулей;
объединение структур и формирование единой программы;
тестирование и получение результатов работы программы.
7.3 Стадия аналитического анализа:
анализ данных, полученных в результате работы программы;
выработка рекомендаций по увеличению эффективности использования объекта моделирования.
8. ПОРЯДОК КОНТРОЛЯ И ПРИЕМКИ
8.1 При сдаче работы производится демонстрация разработанной программы на контрольном примере.
8.2 Копии всех документов включают:
исходный текст программы;
загрузочные модули (скомпилированная программа и файлы с входными данными);
текстовую и графическую документацию.
Приложение 2. Листинг программы
класс Cwork
#include <fstream>
#include <vector>
#include "Worker. h"
class CWork
{
private:
std:: vector <CWorker *> pr;
int WorkBegin;
int WorkEnd;
char Work [20];
char WorkPlace [25];
char Reason [40];
public:
int getWorkBegin (void);
void setWorkBegin (int AWorkBegin);
int getWorkEnd (void);
void setWorkEnd (int AWorkEnd);
char *getWork (void);
void setWork (char *AWork);
char *getWorkPlace (void);
void setWorkPlace (char *APlace);
char *getReason (void);
void setReason (char *AReason);
void AddWorkerIntoWork (CWorker * g);
void RemoveWorker (CWorker * g);
int CountWorkerInWork ();
void WriteV ();
void WriteFV (std:: ofstream &t);
void ReadFV (std:: ifstream &t);
void Read ();
void Write ();
void ReadF (std:: ifstream &t);
void WriteF (std:: ofstream &t);
CWork ();
CWork (CWork & As);
CWork (int AWorkBegin, int AWorkEnd, char *AWork, char *AWorkPlace, char *AReason);
};
класс Cworker
#ifndef _PEO__
#define _PEO__
#include <fstream>
#include <vector>
class CWorker
{
private:
int PersonID;
char *Family;
char Birth [12];
public:
int getPersonID (void);
void setPersonID (int APersonID);
char *getFamily (void);
void setFamily (char *AFamily);
char *getBirth (void);
void setBirth (char *ABirth);
void Read ();
void Write ();
void ReadF (std:: ifstream &f);
void WriteF (std:: ofstream &f);
CWorker ();
CWorker (CWorker & As);
CWorker (int APersonID, char *AFamily, char *ABirth);
~CWorker ();
};
#endif
класс CDocent
#include <fstream>
#include "Worker. h"
class CDocent: public CWorker
{
private:
int GodZ;
char UchSpec [15];
public:
int getGodZ (void);
void setGodZ (int AGodZ);
char *getUchSpec (void);
void setUchSpec (char *AUchSpec);
void Write ();
void Read ();
void WriteF (std:: ofstream & t);
void ReadF (std:: ifstream & t);
CDocent ();
CDocent (CDocent & As);
CDocent (int APersonID, char *AFamily, char *ABirth, int AGodZ, char *AUchSpec);
};
Файл Work. cpp
#include "stdafx. h"
#include <vector>
#include "Work. h"
#include "Worker. h"
#include "Docent. h"
#include <string. h>
#include <iostream. h>
extern std:: vector <CWorker *> v;
extern std:: vector <CWork *> w;
extern std:: vector <CDocent *> v2;
void CWork:: AddWorkerIntoWork (CWorker * g)
{
pr. push_back (g);
}
void CWork:: WriteV ()
{
cout << "Kollichestvo rabotnikov: " << CountWorkerInWork () << endl;
for (int i=0; i< CountWorkerInWork (); i++)
{
pr [i] - >Write ();
}
}
void CWork:: WriteFV (std:: ofstream &t)
{
t << CountWorkerInWork () << std:: endl;
for (int i =0; i< CountWorkerInWork (); i++)
{
for (int n=0; n<v. size (); n++)
{
if (v [n] == pr [i]) break;
}
t << n << std:: endl;
}
}
void CWork:: ReadFV (std:: ifstream & t)
{
int N2, n2;
t >> N2;
for (int i = 0; i < N2; i++)
{
t >> n2;
pr. push_back (v [n2]);
}
}
int CWork:: CountWorkerInWork ()
{
return pr. size ();
}
int CWork:: getWorkBegin (void) {
return WorkBegin;
}
void CWork:: setWorkBegin (int AWorkBegin) {
WorkBegin=AWorkBegin;
}
int CWork:: getWorkEnd (void) {
return WorkEnd;
}
void CWork:: setWorkEnd (int AWorkEnd) {
WorkEnd=AWorkEnd;
}
char *CWork:: getWork (void) {
return Work;
}
void CWork:: setWork (char *AWork) {
strcpy (Work, AWork);
}
char *CWork:: getWorkPlace (void) {
return WorkPlace;
}
void CWork:: setWorkPlace (char *AWorkPlace) {
strcpy (WorkPlace, AWorkPlace);
}
char *CWork:: getReason (void) {
return Reason;
}
void CWork:: setReason (char *AReason) {
strcpy (Reason, AReason);
}
void CWork:: Read ()
{
cout << "Vvedite WorkBegin" << endl;
cin >> WorkBegin;
cout << "Vvedite WorkEnd" << endl;
cin >> WorkEnd;
cout << "Vvedite Work" << endl;
cin >> Work;
cout << "Vvedite WorkPlace" << endl;
cin >> WorkPlace;
cout << "Vvedite Reason" << endl;
cin >> Reason;
int i;
int command = 1;
CWorker * Temp100;
while (command! = 0)
{
cout << "Please enter operation." << endl;
cout << "1. Add new Worker into Work" << endl;
cout << "2. Add Worker into Work" << endl;
cout << "0. Exit from this menu" << endl;
cin >> command;
if (command==1)
{
Temp100=new CWorker ();
Temp100->Read ();
v. push_back (Temp100);
AddWorkerIntoWork (Temp100);
}
else if (command==2)
{
cout << "Vvedite nomer Workera iz globalnogo spiska";
cin >> i;
AddWorkerIntoWork (v [i]);
}
else
{
cout << "Invalid command" << endl;
}
}
}
void CWork:: Write ()
{
cout << "WorkBegin - " << getWorkBegin () << endl;
cout << "WorkEnd - " << getWorkEnd () << endl;
cout << "Work - " << getWork () << endl;
cout << "WorkPlace - " << getWorkPlace () << endl;
cout << "Reason - " << getReason () << endl;
}
void CWork:: ReadF (std:: ifstream &t)
{
t >> WorkBegin >> WorkEnd >> Work >> WorkPlace >> Reason;
ReadFV (t);
}
void CWork:: WriteF (std:: ofstream &t)
{
t << WorkBegin << std:: endl << WorkEnd << std:: endl << Work << std:: endl << WorkPlace << std:: endl << Reason << std:: endl;
WriteFV (t);
}
CWork:: CWork ()
{
WorkBegin = 1990;
WorkEnd = 2000;
strcpy (Work, "Director");
strcpy (WorkPlace, "Lotus");
strcpy (Reason, "Po sobstvennomu jelaniyu");
}
CWork:: CWork (CWork & As)
{
WorkBegin = As. WorkBegin;
WorkEnd = As. WorkEnd;
strcpy (Work, As. Work);
strcpy (WorkPlace, As. WorkPlace);
strcpy (Reason, As. Reason);
}
CWork:: CWork (int AWorkBegin, int AWorkEnd, char *AWork, char *AWorkPlace, char *AReason)
{
WorkBegin = AWorkBegin;
WorkEnd = AWorkEnd;
strcpy (Work, AWork);
strcpy (WorkPlace, AWorkPlace);
strcpy (Reason, AReason);
}
Файл Worker. cpp
#include "StdAfx. h"
#include <string. h>
#include "Worker. h"
#include <iostream. h>
int CWorker:: getPersonID (void) {
return PersonID;
}
void CWorker:: setPersonID (int APersonID) {
PersonID=APersonID;
}
char *CWorker:: getFamily (void) {
return Family;
}
char *CWorker:: getBirth (void) {
return Birth;
}
void CWorker:: setBirth (char *ABirth)
{
strcpy (Birth, ABirth);
}
void CWorker:: Read ()
{
cout << "Vvedite PersonID" << endl;
cin >> PersonID;
cout << "Vvedite Family" << endl;
cin >> Family;
cout << "Vvedite Birth" << endl;
cin >> Birth;
}
void CWorker:: Write ()
{
cout << "PersonID - " << getPersonID () << endl;
cout << "Family - " << getFamily () << endl;
cout << "Birth - " << getBirth () << endl;
}
void CWorker:: ReadF (std:: ifstream &f)
{
f >> PersonID >> Family >> Birth;
}
void CWorker:: WriteF (std:: ofstream &f)
{
f << PersonID << std:: endl << Family << std:: endl << Birth << std:: endl;
}
CWorker:: CWorker ()
{
PersonID = 10;
Family = new char [14];
strcpy (Family, "Ivanov");
strcpy (Birth, "01.01.10");
}
CWorker:: CWorker (CWorker & As)
{
PersonID = As. PersonID;
Family = new char [strlen (As. Family) +1];
strcpy (Birth, As. Birth);
}
CWorker:: CWorker (int APersonID, char *AFamily, char *ABirth)
{
PersonID = APersonID;
Family = new char [strlen (AFamily) +1];
strcpy (Family, AFamily);
strcpy (Birth, ABirth);
}
CWorker:: ~CWorker ()
{
delete [] Family;
}
void CWorker:: setFamily (char *AFamily)
{
if (Family! =0)
delete [] Family;
Family = new char [strlen (AFamily) +1];
strcpy (Family, AFamily);
}
Файл Docent. cpp
#include "stdafx. h"
#include <string. h>
#include "Docent. h"
#include "Worker. h"
#include <iostream. h>
int CDocent:: getGodZ (void)
{
return GodZ;
}
void CDocent:: setGodZ (int AGodZ)
{
GodZ = AGodZ;
}
char *CDocent:: getUchSpec (void) {
return UchSpec;
}
void CDocent:: setUchSpec (char *AUchSpec) {
strcpy (UchSpec, AUchSpec);
}
CDocent:: CDocent (): CWorker ()
{
GodZ = 1997;
strcpy (UchSpec, "Docent");
}
CDocent:: CDocent (int APersonID, char *AFamily, char *ABirth, int AGodZ, char *AUchSpec): CWorker (APersonID, AFamily, ABirth)
{
GodZ = AGodZ;
strcpy (UchSpec, AUchSpec);
}
CDocent:: CDocent (CDocent & As)
{
GodZ = As. GodZ;
strcpy (UchSpec, As. UchSpec);
}
void CDocent:: Read (void)
{
cout << "vvedite informazhiy o GodZ and UchSpec " << endl;
cout << "vvedite GodZ"<< endl;
cin >> GodZ;
cout << "vvedite UchSpec"<< endl;
cin >> UchSpec;
}
void CDocent:: ReadF (std:: ifstream & t)
{
CDocent:: ReadF (t);
t >> GodZ >> UchSpec;
}
void CDocent:: Write (void)
{
cout << endl;
cout << "informazhiya o GodZ and UchSpec " << endl;
cout << "GodZ: " << GodZ <<endl;
cout << "UchSpec: " << UchSpec <<endl;
}
void CDocent:: WriteF (std:: ofstream & t)
{
CDocent:: WriteF (t);
t << GodZ << std:: endl << UchSpec << std:: endl;
}
Файл main. cpp
#include "stdafx. h"
#include <string. h>
#include <iostream. h>
#include <fstream>
#include "Work. h"
#include "Worker. h"
#include "Docent. h"
#include <vector>
void ReadFAllCWorker (char * tn, std:: vector < CWorker *> & v)
{
std:: ifstream t (tn);
int N;
t>>N;
CWorker *m;
for (int i=0; i<N; i++)
{
m = new CWorker ();
m->ReadF (t);
v. push_back (m);
}
t. close ();
}
void WriteFAllCWorker (char * tn, std:: vector < CWorker *> v)
{
std:: ofstream t (tn);
t<<v. size () << std:: endl;
for (int i=0; i<v. size (); i++)
{
v [i] - >WriteF (t);
}
t. close ();
}
void WriteAllCWorker (std:: vector <CWorker *> v)
{
cout<<"kolich Worker =" <<v. size () << endl;
for (int i=0; i<v. size (); i++)
{
v [i] - >Write ();
}
}
void ReadFAllCWork (char * tn, std:: vector < CWork *> & w)
{
std:: ifstream t (tn);
int N;
t>>N;
CWork *m;
for (int i=0; i<N; i++)
{
m = new CWork ();
m->ReadF (t);
w. push_back (m);
}
t. close ();
}
void WriteFAllCWork (char * tn, std:: vector < CWork *> w)
{
std:: ofstream t (tn);
t<<w. size () << std:: endl;
for (int i=0; i<w. size (); i++)
{
w [i] - >WriteF (t);
}
t. close ();
}
void WriteAllCWork (std:: vector <CWork *> w)
{
cout<<"kolich Workov =" <<w. size () << endl;
for (int i=0; i<w. size (); i++)
{
w [i] - >Write ();
}
}
void ReadFAllCDocent (char * tn, std:: vector < CDocent *> & v2)
{
std:: ifstream t (tn);
int N;
t>>N;
CDocent *m;
for (int i=0; i<N; i++)
{
m = new CDocent ();
m->ReadF (t);
v2. push_back (m);
}
t. close ();
}
void WriteFAllCDocent (char * tn, std:: vector < CDocent *> v2)
{
std:: ofstream t (tn);
t<<v2. size () << std:: endl;
for (int i=0; i<v2. size (); i++)
{
v2 [i] - >WriteF (t);
}
t. close ();
}
void WriteAllCDocent (std:: vector < CDocent *> v2)
{
cout<<"kolich specialnostei =" <<v2. size () << endl;
for (int i=0; i<v2. size (); i++)
{
v2 [i] - >Write ();
}
}
std:: vector <CWorker *> v;
std:: vector <CWork *> w;
std:: vector <CDocent *> v2;
void main (void)
{
ReadFAllCWorker ("Worker. txt", v);
ReadFAllCWork ("Work. txt", w);
ReadFAllCDocent ("Docent. txt", v2);
char tn [600];
int kod;
do{
cout << endl;
cout << "1. Worker File - > vector" << endl;
cout << "2. Worker vector - > File" << endl;
cout << "3. Worker vector - > Display" << endl;
cout << "4. Add Worker to vector" << endl;
cout << "5. Work File - > vector" << endl;
cout << "6. Work vector - > File" << endl;
cout << "7. Work vector - > Display" << endl;
cout << "8. Add Work to vector" << endl;
cout << "9. Docent File - > vector" << endl;
cout << "10. Docent vector - > File" << endl;
cout << "11. Docent vector - > Display" << endl;
cout << "12. Add Docent to vector" << endl;
cout << "0. Exit" << endl;
cout << "Select: 1-12 or 0." << endl;
cin >> kod;
switch (kod)
{
case 1:
cout << endl;
cout << "Input File name: " << endl;
cin >> tn;
ReadFAllCWorker (tn, v);
break;
case 2:
cout << endl;
cout << "Input File name: " << endl;
cin >> tn;
WriteFAllCWorker (tn, v);
break;
case 3:
WriteAllCWorker (v);
break;
case 4:
CWorker *m;
m=new CWorker;
m->Read ();
v. push_back (m);
break;
case 5:
cout << endl;
cout << "Input File name: " << endl;
cin >> tn;
ReadFAllCWork (tn, w);
break;
case 6:
cout << endl;
cout << "Input File name: " << endl;
cin >> tn;
WriteFAllCWork (tn, w);
break;
case 7:
WriteAllCWork (w);
break;
case 8:
CWork *a;
a=new CWork;
a->Read ();
w. push_back (a);
break;
case 9:
cout << endl;
cout << "Input File name: " << endl;
cin >> tn;
ReadFAllCDocent (tn, v2);
break;
case 10:
cout << endl;
cout << "Input File name: " << endl;
cin >> tn;
WriteFAllCDocent (tn, v2);
break;
case 11:
WriteAllCDocent (v2);
break;
case 12:
CDocent *o;
o=new CDocent;
o->Read ();
v2. push_back (o);
break;
}
} while (kod > 0);
cout << "GOOD BYE";
}
Размещено на Allbest.ru
Подобные документы
Создание автоматизированного рабочего места сотрудника отдела кадров администрации Петровского муниципального района г. Светлоград. Задачи проектирования: реализация информационной подсистемы "Отдел кадров". Информационное и программное обеспечение.
дипломная работа [7,7 M], добавлен 24.06.2011Использование информационной системы отдела кадров предприятия для уменьшения времени выполнения функций, автоматического создания документации, проставления дат и табельных номеров, простоты поиска. Интерфейс программы и структура базы данных приложения.
курсовая работа [254,7 K], добавлен 25.03.2011Методология проектирования, входная-выходная информация для разработки программного средства для автоматизации работы отдела кадров предприятия. Программная реализация приема и увольнения сотрудника, отчетов за период и личной карточки сотрудника.
презентация [3,3 M], добавлен 10.07.2012Анализ предметной области. Технико-экономическое обоснование разработки программного обеспечения информационной системы отдела кадров. Проектирование пользовательского интерфейса. Оптимизация параметров микроклимата помещений, оборудованных ПЭВМ.
дипломная работа [6,8 M], добавлен 16.01.2015Особенности кадрового дела. Разработка схемы базы данных для отдела кадров. Реализация разработанной схемы в конкретной СУБД (MS Access). Создание экранных форм для ввода данных, отчетов, запросов. Автоматизация работы с созданной базой данных.
курсовая работа [2,8 M], добавлен 10.05.2011Дерево целей ООО "ЖБИ-7". Концептуальный план создания автоматизированной системы управления, информационное и организационное обеспечение. Логическая и даталогическая модель информационной базы начальника отдела кадров. Функции программы "кадры".
дипломная работа [2,9 M], добавлен 11.02.2013Разработка прикладного программного обеспечения деятельности отдела кадров университета в среде Microsoft Access 2003. Характеристика этапов проектирования базы данных. Построение семантической модели. Нормализация данных, понятие нормальной формы.
курсовая работа [4,4 M], добавлен 14.11.2012Общая характеристика предприятия и структура его отдела кадров. Назначение и область применения программы, основные требования к ее функциональности, оценка возможностей. Базы данных и системы управления ими, этапы и принципы проектирования, значение.
дипломная работа [1,2 M], добавлен 03.07.2015Понятие, сущность и структура баз данных. Принципы регистрации новых сотрудников в базе данных отдела кадров. Методика создания приложения баз данных, позволяющее автоматизировать операции учета и процессы составления отчетных документов в отделе кадров.
курсовая работа [2,1 M], добавлен 01.12.2010Разработка концептуальной и логической моделей базы данных "Отдела кадров (института)". Примеры построения запросов для получения данных по различным критериям выборки, описание получения отчетных документов. Формы для ввода и редактирования данных.
курсовая работа [1,8 M], добавлен 16.12.2015