не останній).
Функція виведення вмісту списку на екран void print (). Якщо список порожній, то виводиться попередження, інакше виводиться таблиця з наявними даними.
Функція void clear () для очищення всього списку. Якщо розмір списку не дорівнює нулю, то в циклі викликається функція видалення елемента за індексом, описана вище.
Функції voidfilter_soc (), voidfilter_soc_group (), voidfilter_soc_excellent (), voidfilter_name (), voidfilter_group (), voidfilter_name_group () призначені для пошуку даних про студентів по конкретному полю (критерієм) або комбінації полів. Якщо список порожній, то виводиться попередження, в іншому випадку будується таблиця з даними, що задовольняють критеріям фільтрації.
Функція void complete_target () перевіряє, порожній чи список. Якщо список порожній, то виводиться повідомлення, інакше користувачеві пропонується ввести номер групи. Для даної групи формується таблиця з даними про студентів, стипендії, середньому балі (попередньо вираховується з трьох наявних оцінок). Середній бал порівнюється з четвіркою і вісімкою, залежно від результатів порівняння нараховується стипендія в тому чи іншому розмірі.
3.3 Функції для роботи з користувачами
Спершу йде функція voidinit (char * prights), необхідна для початкової ініціалізації даних про користувача. Як параметр виступає інформація про права. Значення параметра копіюється в значення прав користувача, а він активується.
Функція void enter_login () необхідна для введення логіна користувача, при цьому введена рядок не повинна перевищувати 15 символів.
Функція void enter_password () для введення пароля користувача. Спершу на екран виводиться запрошення ввести пароль. Пароль зчитується посимвольно, кожен символ звіряється на натискання клавіші введення або видалення. У разі натискання клавіші «Enter» в кінець пароля дописується символ кінця рядка, у випадку клавіші видалення і при ненульовий рядку останній символ стирається. Якщо ж символ не збігається ні з одним з цих двох варіантів, то він виводиться на екран у вигляді символу зірочки з метою безпеки пароля. Довжина пароля не повинна перевищувати 15 символ. Наприкінці даної функції викликається інша функція по шифровці пароля.
Функція void encrypt () потрібна для шифровки пароля. Для цього вираховується довжина пароля, множиться на 11, далі додається код кожного символу, помножений на 11. Отримане числове значення наводимо до символьного типу і одержуваний готовий зашифрований пароль.
3.4 Функції для роботи з двусвязний списком користувачів
Функція void init () для початкової ініціалізації. Ставить значення довжини списку рівним нулю і значення покажчиків на перший і останній елемент списку рівними NULL.
Функція voidadd_front (user_datapdata) необхідна для додавання інформації про користувачів в початок списку. Розглядаються два випадки: список порожній і буде додано перший елемент; список вже містить хоча б один елемент. Принцип дії аналогічний принципу роботи функції void add_front (student pdata) для роботи зі списком студентів, описаної в пункті 3.2.
Функція voidadd_back (user_datapdata) призначена для додавання інформації про користувачів в кінець двусвязного списку. Розглядаються випадки порожнього списку та списку з уже наявними записами. Принцип дії аналогічний функції voidadd_back (studentpdata) для роботи зі списком студентів, описаної в пункті 3.2
Функція voidrem (intindex) для видалення елемента зі списку по заданому індексу. Якщо список порожній, то виводиться попередження. Також розглядаються ситуації: видалення першого елемента списку; видалення останнього елемента списку; видалення єдиного елементу в списку; видалення елемента з середини списку (не перший і не останній). Принцип дії аналогічний однойменної функції по роботі зі списком студентів, описаної в пункті 3.2.
Функція user_data amp; get (intindex) повертає інформацію про користувача по заданому індексу в списку. Для пошуку потрібного елемента використовується цикл.
Функція int get_size () повертає значення розміру списку.
Функція void print () виводить на екран дані про наявні в списку користувачів у вигляді таблиці. Якщо список порожній, то на екран виводиться попередження.
Функція void clear () повністю очищає список, якщо він не порожній. Для цього в циклі, що не перевищує розмірність списку, викликається метод rem (i), який видаляє елемент за індексом. Таким чином в циклі видаляються послідовно всі наявні записи у списку.
3.5 Функції...