МегаПредмет

ПОЗНАВАТЕЛЬНОЕ

Сила воли ведет к действию, а позитивные действия формируют позитивное отношение


Как определить диапазон голоса - ваш вокал


Игровые автоматы с быстрым выводом


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


Целительная привычка


Как самому избавиться от обидчивости


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


Тренинг уверенности в себе


Вкуснейший "Салат из свеклы с чесноком"


Натюрморт и его изобразительные возможности


Применение, как принимать мумие? Мумие для волос, лица, при переломах, при кровотечении и т.д.


Как научиться брать на себя ответственность


Зачем нужны границы в отношениях с детьми?


Световозвращающие элементы на детской одежде


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


Как слышать голос Бога


Классификация ожирения по ИМТ (ВОЗ)


Глава 3. Завет мужчины с женщиной


Оси и плоскости тела человека


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


Отёска стен и прирубка косяков Отёска стен и прирубка косяков - Когда на доме не достаёт окон и дверей, красивое высокое крыльцо ещё только в воображении, приходится подниматься с улицы в дом по трапу.


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

ГЛАВА 3 ПОЛЬЗОВАТЕЛЬСКИЕ ФУНКЦИИ ПРИЛОЖЕНИЯ





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

 

int main();

int menu(int);

void mainMenu(department*);

void adminMenu(department*);

void addMenu(department**);

void editMenu(department**);

void deleteMenu(department**);

void printMenu(department*);

void searchMenu(department*);

void workWithUsers();

bool checkUser();

bool checkAdmin();

void addDepartment(department**);

void addWorker(department**);

void changeSurname(department**);

void changeName(department**);

void changeSecondName(department**);

void changePost(department**);

void changeSalary(department**);

void changeExperience(department**);

void changeDepartmentName(department**);

void changePersonnelNumber(department**);

void deleteWorker(department**);

void deleteDepartment(department**);

void printTableD();

void printDepartments(department*);

void printTableW();

void printWorkers(department*);

void readUsers(users**);

void writeUsers(users*);

void printDepartment(department*);

void printWorker(department*, worker*);

void searchByNumberOfWorkers(department*);

void searchByDepartmentName(department*);

void searchDeptById(department*);

void searchByNameSurname(department*);

void searchBySurnameDept(department*);

void searchByPostSurname(department*);

void searchWorkerById(department*);

void userMenu(department*);

int choiceDepartment(department*);

int choiceWorker(worker*);

void makeSalaryList(department*);

void writeFile(department*);

void readFile(department**);

void activate(users**);

void ban(users**);

 

int main(); основная функция. С нее начинается выполнение программы. При входе в программу вызывается функция void mainMenu(), которая ссылаясь на функцию menu() отображает меню:

1. Вход от имени администратора.

2. Вход от имени пользователя.

0. Выход.

int menu(int); Функция, созданная для удобного доступа ко всем меню программы. Состоит из оператора ветвления switch, варианты исполнения которого содержат в себе данные из меню.

void mainMenu(department*); Функция вывода на экран главного меню (1-го уровня). Функция повторяется, пока введенное значение не будет равно нулю. Осуществляется выбор между входом под администратором, пользователем или выходом.

Void adminMenu(department *head) – функция вызова меню администратора. Обращаясь к функции menu() она имеет следующий вид:

1. Добавление записи

2. Редактирование записи

3. Удаление записи

4. Начисление ЗП

5. Просмотр данных

6. Поиск

7. Управление пользователями

0. Выход в предыдущее меню

void addMenu(department**); - функция вывода на экран меню добавления информации и осуществления выбора между вводом нового отдела, нового работника или выходом. Функция повторяется до тех пор, пока не будет введено значение, удовлетворяющее условию.

void editMenu(department**); - функция вывода на экран меню редактирования и осуществление выбора пункта редактирования. Функция повторяется до тех пор, пока не будет введено значение, удовлетворяющее условию.

void deleteMenu(department**);- функция вывода на экран меню удаления и осуществления выбора между удалением отдела, удалением сотрудника или выходом. Функция повторяется до тех пор, пока не будет введено значение, удовлетворяющее условию.

void printMenu(department*); - функция вывода на экран меню просмотра информации в табличном виде и осуществлении выбора между выводимыми данными или выходом. Функция повторяется до тех пор, пока не будет введено значение, удовлетворяющее условию.

void searchMenu(department*); - функция вывода на экран меню поиска и осуществления выбора между удалением отдела, удалением работника или выходом. Функция повторяется до тех пор, пока не будет введено значение, удовлетворяющее условию.

void workWithUsers(); - функция вывода на экран меню для работы с пользователем для администратора и выбором между активацией, блокировкой пользователя или выходом. Функция повторяется до тех пор, пока не будет введено значение, удовлетворяющее условию.

bool checkUser(); - функция проверки логина и пароля пользователя. Проверка ведется до тех пор, пока указатель списка не достигнет последнего узла. В случае истинности передаёт значение true, иначе false.

bool checkAdmin();функция проверки логина и пароля пользователя. Проверка ведется до тех пор, пока указатель списка не достигнет последнего узла. В случае истинности передаёт значение true, иначе false.

void addDepartment(department**); - функция добавления нового отдела. Очищает консольное окно. Функция принимает указатель на начало списка.

void addWorker(department**); функция добавления нового работника в отдел. Очищает консольное окно. Функция принимает указатель на начало списка. Проверяется вводимое значенин, при введении недопустимого значения, либо ввода 0, функция завершает свою работу ивозвращает нас к предыдущему меню.

 

Функции редактирования 1-го из полей структур:

void changeSurname(department**); - редактирование фамилии работника

void changeName(department**); - редактирование имени работника

void changeSecondName(department**); - изменение отчества работника

void changePost(department**); - изменение должности

void changeTariffRate(department**); - изменение размера тарифной ставки

void changeExperience(department**); - изменение опыта работы

void changeDepartmentName(department**); - смена названия отдела

void changePersonnelNumber(department**); - смена персонального номера работника

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

Функции удаления узлов структур:

void deleteWorker(department**); - удаление работника из списка

void deleteDepartment(department**); - удаление отдела из списка

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

Функции вывода данных на экран:

void printTableD();- вывод на экран шапки таблицы

void printDepartments(department*); - вывод на экран списка отделов

void printTableW();- вывод шапки таблицы на экран

void printWorkers(department*); - вывод на экран списка работников

void printDepartment(department*); - вывод информации об отделе на экран

void printWorker(department*, worker*); - вывод на экран информации о работнике

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

void workWithSalary(department **); - функция начисления ЗП работникам, через установление времени, отработанного за месяц. Функция принимает указатель на начало списка. Проверяется вводимое значение, при введении недопустимого значения, либо ввода 0, функция завершает свою работу и возвращает нас к предыдущему меню. Выполняется проверка на наличие работников в отделе.

void readUsers(users**); - функция чтения из файла списка пользователей. Если файл открывается, с него считывается информация.

void writeUsers(users*); - функция записи списка пользователей в файл. Если файл открывается, в него записывается информация.

Функции поиска:

void searchByNumberOfWorkers(department*); - поиск отдела по количеству работников

void searchByDepartmentName(department*); - поиск отдела по его названию

void searchDeptById(department*); - поиск отдела по id

void searchByNameSurname(department*); - Поиск по имени и фамилии

void searchBySurnameDept(department*); - поиск по фамилии и отделу

void searchByPostSurname(department*); - поиск по должности и фамилии

void searchWorkerById(department*); - поиск по id

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

void userMenu(department*); - функция вывода на экран меню пользователя и осуществление выбора между просмотром данных, поиском и выходом. Функция будет выполняться до тех пор, пока не будет введено значение 0.

int choiceDepartment(department*); - функция вывода списка отделов на экран. При отсутствии отделов или неверном выборе отдела указывает на это и завершает работу.

int choiceWorker(worker*); - функция вывода списка работников на экран и выбор работника. При отсутствии работников или неверном выборе работник функция указывает на это и завершает работу.

void writeFile(department*); - функция для записи всей информации в файл. При отсутствии файла сообщает об этом и завершает работу.

void readFile(department**); - функция для чтения всей информации из файла. При отсутствии файла сообщает об этом и завершает работу.

void activate(users**); - функция для активации пользователя (добавления записи в список пользователей). Производится проверка, при совпадении вводимого пользователя и уже имеющегося в базе данных на экран выводится ошибка и функция прекращает работу.

void ban(users**); - функция для блокировки пользователя (удаления записи из списка пользователей). Если пользователь, которого пытаются удалить, не существует, на экран выводится соответствующая информация и функция завершает работу.

 

 





©2015 www.megapredmet.ru Все права принадлежат авторам размещенных материалов.