fy">}
//якщо цикл закінчений, і збігів, не знайдено, то закриваємо файл і повертаємо false
fclose (file_user_data); false;
} menu_rule_users () {ch; k; number; _data user; _data_list user_list; _list.init (); * file=fopen ( users.bin raquo ;, rb ); ( file, 0, SEEK_END); size=ftell (file)/sizeof (user_data); (file, 0, SEEK_SET); (int i=0; i lt; size; i ++) {( amp; user, sizeof (user_data), 1, file); _ list.add_back (user);
}; (file); {( cls );
printf ( 1) Додати користувача n ); ( 2) Видалити користувача n ); ( 3) Забанити користувача n ); ( 4) переглянути користувачів n );
printf ( 0) Вихід n ); ( gt ;: ); (stdin); (% c raquo ;, amp; ch); (ch) { 1 : ( cls ); ( 1) Адміністратор n ); ( 0) Користувач n ); ( gt ;: ); (stdin); ( laquo ;% c raquo ;, amp; k); (k == 1 ) {.init ( admin );
} else {.init ( user );
}.enter_login();.enter_password();_list.add_back(user);;laquo;2raquo;:{_list.print();
printf ( Введіть номер видаляється елемента або 0 для виходу n );
printf ( gt ;: ); (stdin); (% c raquo ;, amp; k);=atoi ( amp; k); (number!=0) { (number gt; 1 amp; amp; number lt;=user_list.get_size ()) {_list.rem (number);
};
};
} while (number!=0) ;; 3 : {_ list.print ();
printf ( Введіть номер користувача для зміни статусу або 0 для виходу n );
printf ( gt ;: ); (stdin); (% c raquo ;, amp; k);=atoi ( amp; k); (number!=0) { (number gt; 1 amp; amp; number lt;=user_list.get_size ()) {_list.get (number - 1) .active =! user_list.get (number - 1) .active;
};
};
} while (number!=0) ;; 4 : _ list.print (); ( pause ) ;;:;
};
} while (ch!= 0 );=fopen ( users.bin raquo ;, wb ); (int i=0; i lt; user_list.get_size (); i ++) {= user_list.get (i); ( amp; user, sizeof (user_data), 1, file);
}; (file); (file);
};
//меню адмінаmenu_admin () {ch; k; filename [25];
//вибір файлу початковий (filename, choose_file ());
//чтеніеізфайла_file (filename);
{
//просте меню ( cls );
printf ( Робота відбувається з файлом% s n raquo ;, filename); ( 1) Вибрати файл для роботи з даними n ); ( 2) Додати запис n raquo ;); ( 3) Відредагувати запис n ); ( 4) Видалити запис n ); ( 5) Переглянути всі записи n ); ( 6) Пошук і фільтрація даних n ); ( 7) Управління користувачами n ); ( 0) Вихід з облікового запису n );
printf ( gt ;: ); (stdin); (% c raquo ;, amp; ch);
switch (ch)
{ 1 :
//якщо вибрали змінити файл, то записуємо зміни в старий
write_file (filename);
//вибираємо новий (filename, choose_file ());
//читаємо дані з нового
read_file (filename);
if (filename) {( Файлуспешнооткрит! n ); ( pause );
} else {( Виникли проблеми з файлом. Спробуйте знову! n ); ( pause );
}
break;
//у всіх інших випадках виклик відповідних функцій
case laquo;2raquo;:_student();;laquo;3raquo;:_student();;laquo;4raquo;:_student();;laquo;5raquo;:_student();;laquo;6raquo;:{(laquo;clsraquo;);
printf ( 1) Відфільтрувати по соціальної активності n ); ( 2) Відфільтрувати по активності в групі n ); ( 3) Знайти студентів-активістів-відмінників n );
printf ( 0) Вийти n ); ( gt ;: ); (stdin); (% c raquo ;, amp; k); (k) {laquo;1raquo;:_list.filter_soc();(laquo;pauseraquo;);;laquo;2raquo;:_list.filter_soc_group();(laquo;pauseraquo;);;laquo;3raquo;:_list.filter_soc_excellent();(laquo;pauseraquo;);;:;
};
} while (k!= 0 ) ;; 7 : _ rule_users () ;;:
break;
}
} while (ch! = 0 );
//запис змін при виході з меню
write_file (filename);
}
//меню пользователяmenu_user () {ch; k; filename [25];
//вибір файлу початковий (filename, choose_file ());
//читання з файла_file (filename);
{
//прост...