Курсовая работа (т): Автоматизация процесса начисления стипендий

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

};

};

} while(number != 0);;'4':_list.print();("pause");;:;

};

} while(ch!='0');= fopen("users.bin", "wb");(int i=0; i<user_list.get_size(); i++) {= user_list.get(i);(&user, sizeof(user_data), 1, file);

};(file);(file);

};

//меню админаmenu_admin() {ch;k;filename[25];

//выбор файла начальный(filename, choose_file());

//чтениеизфайла_file(filename);

{

//простое меню("cls");

printf("Работа происходит с файлом %s\n", filename);("1) Выбрать файл для работы с данными\n");("2) Добавить запись\n");("3) Отредактировать запись\n");("4) Удалить запись\n");("5) Просмотреть все записи\n");("6) Поиск и фильтрация данных\n");("7) Управление пользователями\n");("0) Выход из учетной записи\n");

printf(">: ");(stdin);("%c", &ch);

switch (ch)

{'1':

//если выбрали изменить файл, то записываем изменения в старый

write_file(filename);

//выбираем новый(filename, choose_file());

//читаем данные из нового

read_file(filename);

if(filename) {("Файлуспешнооткрыт!\n");("pause");

} else {("Возникли проблемы с файлом. Попробуйте снова!\n");("pause");

}

break;

//во всех других случаях вызов соответствующих функций

case '2':_student();;'3':_student();;'4':_student();;'5':_student();;'6':{("cls");

printf("1) Отфильтровать по социальной активности\n");("2) Отфильтровать по активности в группе\n");("3) Найти студентов-активистов-отличников\n");

printf("0) Выйти\n");(">: ");(stdin);("%c", &k);(k) {'1':_list.filter_soc();("pause");;'2':_list.filter_soc_group();("pause");;'3':_list.filter_soc_excellent();("pause");;:;

};

} while(k!='0');;'7':_rule_users();;:

break;

}

} while (ch!='0');

//запись изменений при выходе из меню

write_file(filename);

}

//меню пользователяmenu_user() {ch;k;filename[25];

//выбор файла начальный(filename, choose_file());

//чтение из файла_file(filename);

{

//простое меню("cls");

printf("Работа происходит с файлом %s\n", filename);("1) Выбрать файл для работы с данными\n");("2) Просмотреть все записи\n");("3) Выполнить задачу\n");("4) Поиск и фильтрация данных\n");("0) Выход из учетной записи\n");

printf(">: ");(stdin);("%c", &ch);

switch (ch)

{'1':

//если выбрали изменить файл, то записываем изменения в старый

write_file(filename);

//выбираем новый(filename, choose_file());

//читаем данные из нового

read_file(filename);

if(filename) {("Файлу спешно открыт!\n");("pause");

} else {

("Возникли проблемы с файлом. Попробуйте снова!\n");("pause");

}

break;

//во всех других случаях вызов соответствующих функций

case '2':_student();;'3':_list.complete_target();("pause");;'4':{("cls");("1) НайтипоФ.И.О.\n");

printf("2) Отфильтровать по группе\n");("3) Найти по Ф.И.О. и группе\n");

printf("0) Выйти\n");(">: ");(stdin);("%c", &k);(k) {'1':_list.filter_name();("pause");;'2':_list.filter_group();("pause");;'3':_list.filter_name_group();("pause");;:;

};

} while(k!='0');;:

break;

}

} while (ch!='0');

//запись изменений при выходе из меню

write_file(filename);

}main() {(LC_ALL, "Russian");symbol;

do

{

//меню первого уровня("cls");("1) Войти как администратор\n");("2) Войти как пользователь\n");

printf("0) Выход\n");(">: ");("%c", &symbol);

switch(symbol)

{'1':

//если авторизация прошла, то меню админа, иначе предупреждение

if(authorize("admin")) {_admin();

} else {("cls");("Проверьте комбинацию логина и пароля!\n");("pause");

};'2':

//если авторизация прошла, то меню админа, иначе предупреждение

if(authorize("user")) {_user();

} else {("cls");("Проверьте комбинацию логина и пароля!\n");("pause");

};:;

}

} while (symbol!='0');

}

//выбор имени файла* choose_file() {filename[25];

system("cls");("Введите название файла. Если такого файла не существует, то будет создан новый!\n");("Максимальная длина имени файла 25 символов!\n");(">: ");(stdin);

//fgets для контроля переполнения

fgets(filename, 25, stdin);[strlen(filename)-1]='\0';

//открываем файл для дозаписи, если его не было, то он будет создан

FILE *file = fopen(filename, "ab");(file);

//возвращаем имя файлаfilename;

}

//чтение данных из файлаread_file(char *filename) {

//открытие файла*file = fopen(filename, "rb");

//очистка списка_list.clear();

//инициализация после очистки_list.init();

//вычисление количества записей в файле(file, 0, SEEK_END);

int size = ftell(file)/sizeof(student);(file, 0, SEEK_SET);(int i=0; i<size; i++) {stud;

//чтение из файла(&stud, sizeof(student), 1, file);

//добавление в список_list.add_back(stud);

}

//закрытие файла(file);

}

//запись в файл

void write_file(char *filename) {

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

FILE *file = fopen(filename, "wb");(int i=1; i<=stud_list.get_size(); i++) {

//"достаемэлементизспсика"stud = stud_list.get(i);

//записываем его в файл(&stud, sizeof(student), 1, file);

}

//закрываем файл(file);(file);

//добавление студентаadd_student() {

//создание новой структурыstud;

//вызов функций ввода из этой структуры

stud.enter_name();.enter_group();.enter_mark();.enter_social();

//добавление структуры в список_list.add_back(stud);

}

//изменение студентаchange_student() {number;

do{

//вывод списка на экран_list.print();

//ввод номера студента для изменения("Введите номер студента для изменения. 0 - для выхода\n");(">: ");(stdin);("%d", &number);

//проверка не вылезает ли он за рамки

if(number < 0 || number > stud_list.get_size()) {("Неверный выбор!\n");("pause");

} else if (number != 0) {

//если мы не ввели 0, то вызываем функцию изменения студента из структуры со списком

stud_list.change(number);

}

} while(number!=0);

}

//удаление студента_student() {;

//все тоже самое, что и в изменении, только вызывается функция не изменения, а удаления{_list.print();("Введите номер студента для удаления. 0 - для выхода\n");(">: ");(stdin);("%d", &number);(number < 0 || number > stud_list.get_size()) {("Неверный выбор!\n");("pause");

} else if (number != 0) {_list.rem(number);

}

} while(number!=0);

}

//вывод на экран

voidprint_student() {

//вызов функции вывода на экран из структуры со списком

stud_list.print();("pause");

}

Источник: https://www.bibliofond.ru/detail.aspx?id=791927