Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ConsoleApplication7.cpp: определяет точку входа для консольного приложения.
- //
- #include "stdafx.h"
- #include "locale.h"
- #include "iostream"
- #include "stdio.h"
- #include <stdlib.h>
- #include <conio.h>
- struct subj { char disc[20]; int sem; char rep[10];} sub;
- int in();
- int out();
- int update();
- int search();
- int main()
- {
- setlocale(LC_ALL, "");
- system("chcp 1251 & cls");
- int p = 0 ;
- system("cls");
- puts("Выберите действие:");
- puts("1 - Создание файла");
- puts("2 - Просмотр файла");
- puts("3 - Добавление в файл");
- puts("4 - Поиск в файле");
- puts("5 - Выход");
- scanf("%d", &p);
- switch (p)
- {
- case 1:in(); break;
- case 2:out(); break;
- case 3:update(); break;
- case 4:search(); break;
- case 5: return 0; break;
- default:
- printf( "Неправильный ввод.\n" );
- };
- };
- int in()
- {
- int l = 0;
- FILE *txt = fopen("in.dat", "wb");
- system("cls");
- printf("Заполнение структуры:\n");
- printf("Кол-во дисциплин:");
- scanf("%d", &l);
- for (int i = 0; i < l; i++)
- {
- printf("\nДисциплина:"); scanf("%s", sub.disc);
- printf("\nНомер семестра:"); scanf("%d", &sub.sem);
- printf("\nВид отчетности:"); scanf("%s", sub.rep);
- fwrite(&sub, sizeof(sub), 1, txt);
- };
- fclose(txt);
- main();
- return 0;
- };
- int out()
- {
- FILE *txt;
- int i;
- system("cls");
- txt = fopen("in.dat", "rb");
- i = 1;
- fread(&sub, sizeof(sub), 1, txt);
- while (!feof(txt))
- {
- printf("%d) Дисциплина: %-10s Семестр: %d Отчетность: %s\n", i, sub.disc, sub.sem, sub.rep);
- fread(&sub, sizeof(sub), 1, txt);
- i++;
- }
- system("pause");
- main();
- return 0;
- }
- int update()
- {
- system("cls");
- FILE *txt;
- char m;
- txt = fopen("in.dat", "ab");
- printf("Добавление элементов структуры:\n");
- do
- {
- printf("\nДисциплина:"); scanf("%s", sub.disc);
- printf("\nНомер семестра:"); scanf("%d", &sub.sem);
- printf("\nВид отчетности:"); scanf("%s", sub.rep);
- fwrite(&sub, sizeof(sub), 1, txt);
- printf("\nЗакончить ввод? y\\n");
- m = getch();
- } while (m != 'y');
- fclose(txt);
- main();
- return 0;
- }
- int search()
- {
- FILE *txt;
- txt = fopen("in.dat", "rb");
- system("cls");
- int n = 0;
- puts("Введите номер семестра: ");
- scanf("%d", &n);
- fread(&sub, sizeof(sub), 1, txt);
- printf("По окончанию %d-го семестра будут следующие экзамены:\n", n);
- while (!feof(txt))
- {
- if ((sub.sem == n) && strcmp(sub.rep, "Зачет"))
- {
- printf("%s\n", sub.disc);
- }
- fread(&sub, sizeof(sub), 1, txt);
- }
- fclose(txt);
- system("pause");
- main();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement