Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #define cnMAX 10000 // Размер массива чисел
- #define cnMAX_SIMVOL 40 //Размер массива символов
- #define cnVANN_EC 1 // Количество ванн в комнате с сервисом "ECONOM".
- #define cnVANN_ST 3 // Количество ванн в комнате с сервисом "STANDART".
- #define cnVANN_CO 5 // Количество ванн в комнате с сервисом "COMFORT".
- #define cnden 31
- #define cnvmeciac 12
- int main()
- {
- FILE *R = fopen("rooms.txt", "r"); // Открытие для чтения файла, в котором записана информация о комнатах.
- struct rooms // Создание структуры, в которой будут храниться данные о комнате.
- {
- int ID;
- int BANUM;
- char SERVICE[cnMAX_SIMVOL];
- int CAPACITY;
- int COST;
- int calendar[cnden][cnvmeciac];
- };
- int kolvo_komnat;
- fscanf(R, "%d", &kolvo_komnat); // Считывание с файла rooms.txt количество комнат.
- char service_ec[cnMAX_SIMVOL] = "ECONOMY";
- char service_st[cnMAX_SIMVOL] = "STANDARD";
- char service_co[cnMAX_SIMVOL] = "COMFORT";
- rooms mas[cnMAX]; // Создание массива структур.
- for (int i = 0; i <= cnMAX; i++)
- {
- for (int j = 0; j <= cnden; j++)
- {
- for (int l = 0; l <= cnvmeciac; l++)
- mas[i].calendar[l][j] = 0;
- }
- }
- int opred_vann = 0;
- for (int i = 0; i < kolvo_komnat; i++) // Проход по циклу, считывание информации о комнатах и определение количества ванн в каждой из них.
- {
- fscanf(R, "%d %s %d %d", &mas[i].ID, &mas[i].SERVICE, &mas[i].CAPACITY, &mas[i].COST);
- if (mas[i].SERVICE[0] == service_ec[0])
- {
- opred_vann = cnVANN_EC;
- mas[i].BANUM = opred_vann;
- }
- else
- if (mas[i].SERVICE[0] == service_st[0])
- {
- opred_vann = cnVANN_ST;
- mas[i].BANUM = opred_vann;
- }
- else
- if (mas[i].SERVICE[0] == service_co[0])
- {
- opred_vann = cnVANN_CO;
- mas[i].BANUM = opred_vann;
- }
- }
- FILE *I = fopen("input01.txt", "r"); // Открытие файл input.txt для чтения информации.
- int nomer_komnat = 0;
- FILE *O = fopen("output01.txt", "w"); // Открытие файл output.txt для вывода информации.
- int kolvo_zaprosov = 0;
- fscanf(I, "%d", &kolvo_zaprosov);
- for (int n = 0; n < kolvo_zaprosov; n++) // Проход по циклу и определение существования комнаты из запроса, если существует, то вывод информации о ней.
- {
- bool log = false;
- fscanf(I, "%*s%*s%*s%*s%d", &nomer_komnat); // Считывание номера комнаты с файла rooms.txt.
- for (int i = 0; i< kolvo_zaprosov; i++)
- {
- if (mas[i].ID == nomer_komnat) // Сравнивание номеров комнат.
- {
- log = true;
- fprintf(O, "ROOM %d : CAPACITY %d, %d BATHROOMS, %d ROUBLES. \n", nomer_komnat, mas[i].CAPACITY, mas[i].BANUM, mas[i].COST);
- break;
- }
- }
- if (log == false)
- fprintf(O, "THERE IS NO ROOM WITH ID = %d.\n", nomer_komnat);
- }
- FILE*Z = fopen("input02.txt", "r");
- FILE*Q = fopen("otput02.txt", "w");
- int p;
- int day1, month1, day2, month2;
- char u;
- char y[4] = "ADD";
- char t[4] = "GET";
- char serv[40];
- fscanf(Z, "%d", &p);
- for (int v = 0; v <= p; p++)
- {
- fscanf(Z, "%c", &u);
- if (u == y[0])
- {
- fscanf(Z, "%*s SERVICE = %s BEGIN_DATE = %d.%d.2020 END DATE = %d.%d.2020", &serv, &day1, &month1, &day2, &month2);
- for (int i = 0; i < kolvo_komnat; i++)
- {
- bool f = 1;
- for (int j = month1; j <= month2; j++)
- {
- for (int l = day1; l <= day2; l++)
- {
- if ((mas[i].calendar[l][j] == 0) && (serv[0] == mas[i].SERVICE[0]))
- {
- f = 0;
- mas[i].calendar[l][j] = 1;
- fprintf(Q, "THE ROOM %d IS BOOKED FOR %d ROUBLES PER DAY.", mas[i].ID, mas[i].COST);
- break;
- }
- }
- }
- }
- }
- else
- if (u == t[0])
- {
- for (int n = 0; n < kolvo_zaprosov; n++) // Проход по циклу и определение существования комнаты из запроса, если существует, то вывод информации о ней.
- {
- bool log = false;
- fscanf(I, "%*s%*s%*s%*s%d", &nomer_komnat); // Считывание номера комнаты с файла rooms.txt.
- for (int i = 0; i < kolvo_komnat; i++)
- {
- if (mas[i].ID == nomer_komnat) // Сравнивание номеров комнат.
- {
- log = true;
- fprintf(Q, "ROOM %d : CAPACITY %d, %d BATHROOMS, %d ROUBLES. \n", nomer_komnat, mas[i].CAPACITY, mas[i].BANUM, mas[i].COST);
- break;
- }
- }
- }
- }
- }
- fclose(R);//закрываем файл
- fclose(I);//закрываем файл
- fclose(O);
- fclose(Z);
- fclose(Q);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement