Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / отчет курсовая.docx
Скачиваний:
0
Добавлен:
11.02.2026
Размер:
1.46 Mб
Скачать

Структура программы

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

Вектор типа пара

Соседние файлы в папке курсовая