- •Ф едеральное агенство воздушного транспорта (росавиация)
- •Аннотация
- •Оглавление
- •Цель курсовой работы
- •Задание на выполнение курсовой работы
- •Назначение и возможности разработанной системы
- •Программа системы
- •Структура программы
- •Схемы алгоритмов функций
- •Руководство по использованию программы
- •Листинг программ Файл Header.H
- •Файл Header.Cpp
- •Файл menu.Cpp
- •Исходные файлы с данными
- •Результат работы программы
Структура программы
main()
addEmployeeFromKeybord()
showEmployees()
addEmployeeFromFile()
modifySalaryFromKeybord()
deletingFromKeybord()
Search()
modifySalaryFromFile()
Sort()
deletingFromFile()
Схемы алгоритмов функций
Рисунок 1. Алгоритм функции main()
Этот алгоритм – реализация меню для удобной работы с программой
Наименование переменной |
Назначение переменной |
Database dt("C:\\employees.txt") |
Объект класса |
int c |
Переменная для выбора варианта |
Рисунок 2. Алгоритм функции addEmployee()
Этот алгоритм нужен для добавления сотрудников в соответствующие бинарные файлы
Рисунок 3. Алгоритм функции showEmployees()
Этот алгоритм нужен для просмотра данных о сотрудниках в заданном отделе
Наименование переменной |
Назначение переменной |
string dep |
Вводимый пользователем отдел |
int buf |
Переменная для определения, был ли найден такой отдел |
Рисунок 4. Алгоритм функции addEmployeeFromFile()
Этот алгоритм нужен для добавления сотрудников в базу из заготовленного файла
Наименование переменной |
Назначение переменной |
string s |
Файл с данными сотрудников для дополнения |
Employees f |
Элемент структуры Employees |
string f |
Исходный файл |
Рисунок 5. Алгоритм функции addEmployeeFromKeybord()
Этот алгоритм нужен для добавления сотрудников в базу с клавиатуры
Наименование переменной |
Назначение переменной |
string ff |
Исходный файл |
Employees f |
Элемент структуры Employees |
Рисунок 6. Алгоритм функции modifySalaryFromKeybord()
Этот алгоритм нужен для модификации оклада, где данные вводятся с клавиатуры
Наименование переменной |
Назначение переменной |
string dep |
Вводимый пользователем отдел |
int buf |
Переменная для определения, был ли найден такой отдел |
string n |
Имя сотрудника |
int c |
Дельта, на которую изменяется оклад |
Рисунок 7. modifySalaryFromFile()
Этот алгоритм нужен для модификации оклада, где данные берутся из заготовленного файла
Наименование переменной |
Назначение переменной |
string ff |
Файл с данными для модификации |
string ss |
Исходный файл |
char memory[1000] |
Массив чаров |
int count1 |
Счетчик для определения размеров файла модификации |
Employees F1 |
Элемент структуры Employees |
Алгоритм Search() нужен для поиска сотрудника в заданном отделе
В этой функции есть 7 вариантов оператора switch. В сути своей они одинаковые и делают одно и то же, меняется только вводимый критерий для поиска (должность; год рождения; оклад; должность и год рождения; должность и оклад; должность, год рождения и оклад). Сначала вводится название отдела, в котором работает сотрудник. Введенный отдел ищется в карте, где хранятся названия всех отделов. Если такой отдел не был найден, то пользователя просят ввести отдел снова. Далее выводится меню с выбором варианта, по которому будет производиться поиск. Рассмотрим один из вариантов. При вводе варианта «1» поиск будет производиться по должности сотрудника. Идем по размеру вектора структур, в котором есть данные о всех сотрудниках. Ищем совпадение должности и отдела, после чего выводим найденного сотрудника в консоль. В конце выводится надпись, что удаление сотрудника произошло успешно.
Наименование переменной |
Назначение переменной |
string dep |
Вводимый пользователем отдел |
int buf |
Переменная для определения, был ли найден такой отдел |
int c |
Переменная для выбора варианта |
string pos |
Позиция, занимаемая сотрудником |
int buf |
Счетчик, который смотрит, был ли найден человек по заданным параметрам |
int year |
Год рождения сотрудника |
int sal |
Оклад сотрудника |
Алгоритм deletingFromKeyboard() нужен для удаления сотрудника из заданного отдела, где данные вводятся с клавиатуры
В этой функции есть 5 вариантов оператора switch. В сути своей они одинаковые и делают одно и то же, меняется только вводимый критерий для удаления (имя, должность, год рождения, оклад и номер сотрудника). Сначала вводится название отдела, в котором работает сотрудник. Введенный отдел ищется в карте, где хранятся названия всех отделов. Если такой отдел не был найден, то пользователя просят ввести отдел снова. Далее выводится меню с выбором варианта, по которому будет производиться удаление. Рассмотрим один из вариантов. При вводе варианта «1» удаление будет производиться по имени сотрудника. Идем по размеру вектора структур, в котором есть данные о всех сотрудниках. Ищем совпадение имени и отдела, после чего осуществляем удаление из вектора, исходного текстового файла и соответствующего бинарного файла. В конце выводится надпись, что удаление сотрудника произошло успешно.
Наименование переменной |
Назначение переменной |
string dep |
Вводимый пользователем отдел |
int buf |
Переменная для определения, был ли найден такой отдел |
int c |
Переменная для выбора варианта |
int buf |
Счетчик, который смотрит, был ли найден человек по заданным параметрам |
string n |
Имя сотрудника |
string pos |
Позиция, занимаемая сотрудником |
int year |
Год рождения сотрудника |
int sal |
Оклад сотрудника |
int num |
Номер сотрудника |
Рисунок 10. Алгоритм функции deletingFromFile()
Этот алгоритм нужен для удаления сотрудника из заданного отдела, где данные берутся из заготовленного файла
Наименование переменной |
Назначение переменной |
string del |
Файл с данными для удаления |
string emp |
Исходный файл |
char memory[1000] |
Массив чаров |
int count2 |
Счетчик для определения размеров файла удаления |
Employees F1 |
Элемент структуры Employees |
Рисунок 11. Алгоритм функции cmp(pair<string, int>& a, pair<string, int>& b)
Этот алгоритм нужен для сравнения пар
Рисунок 12. Алгоритм функции Sort()
Этот алгоритм нужен для сортировки отделов по количеству удаленных записей
Наименование переменной |
Назначение переменной |
typedef pair<string, int> Pair |
Тип данных пара типа пара |
vector <Pair> vec |
Вектор типа пара |
