Advertisement
Guest User

Untitled

a guest
May 26th, 2019
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 33.50 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5. #include <conio.h>
  6. #include <windows.h>
  7. #include <string.h>
  8.  
  9. #define SC system("cls");
  10. #define SP system("pause");
  11. #define TZP printf("\n\aТаблица заказов пуста\n");
  12. #define TPP printf("\n\aТаблица продукции пуста\n");
  13. #define gets gets_s
  14. void menu(void); // Меню выбора администратора либо пользователя
  15. void menuAdm(void); // Меню администратора
  16. void menuPol(void);// Меню пользователя
  17. void menuSKR(void); // Меню ввода продукции либо заказа
  18. void menuexit(void); // Меню выхода
  19. void exitProg(void); // функция закрытия программы
  20. void vvod(void); // функция ввода
  21. void zapis(void);  // функция записи продукции
  22. void vvodZak(void); // функция ввода заказа
  23. void menusort(void); // меню сортировки
  24. void menusearch(void);// меню поиска
  25. void menuvivod(void); // мею вывода
  26. void sort(void); // функция сортировки продукции
  27. void sortZak(void); // функция сортировки заказов
  28. void searchZak(void); // функция поиска заказов
  29. void search(void); // функция поиска продукции
  30. void change(void); // функция изменения продукции
  31. void changemenu(void); // меню изменения
  32. void changeZak(void); // функция изменения заказов
  33. void deletee(void); // функция удаления продукции
  34. void deleteemenu(void); // меню удаления
  35. void deleteeZak(void); //функция удаления заказов
  36. void deleteePol(void); // функция удаления пользователей
  37. void vivodProd(void); // функция вывода продукции
  38. void vivodZakaz(void); // функция вывода заказов
  39. void zapisZak(void); // функция записи заказов
  40. void vhodADMIN(void); // функция отвечающая за ввод логина и пароля для администратора
  41. void vhod(void); // функция отвещающая за ввод логина и пароля для пользователя
  42. void schitatPIP(void);// функция считывания пользователей из бинарного файла
  43. void zapisatPIP(void);// функция записи новых пользователей в бинарный файл
  44. void dobavitPIP(void);// функция добавления новых пользователей
  45. void loginPol(void); // функция выбора для пользователя
  46. void vivodtopProd(void); // функция вывода топ продукции
  47. void vivodtopZakaz(void);// функция вывода топ заказов
  48. int structsize = 0, i, j, k, kol, q, intbuf, res, structsize1 = 0, structsize2 = 0, bal, vib = 0;
  49. char choice, buffer[30], check, block;
  50.  
  51. struct strct {
  52.     char dataa[30];
  53. };
  54.  
  55. struct struct1 {
  56.     struct strct data;
  57.     char prod[30], kolv[30];
  58.     int sum, sumZa;
  59.  
  60. };
  61.  
  62. struct struct1 client[50];
  63. struct struct1 tmp;
  64.  
  65. struct struct2 {
  66.     struct strct dataz;
  67.     char prodz[30], kolvz[30], adres[30];
  68.     int stom;
  69.  
  70. };
  71.  
  72. struct struct2 clp[50];
  73. struct struct2 ppa;
  74.  
  75.  
  76. struct struct3 {
  77.     char login[30], parol[30];
  78.     char role[30];
  79. };
  80. struct struct3 pip[50];
  81. int pipsize = 0;
  82.  
  83.  
  84.  
  85. FILE *file, *file2, *file3;
  86. FILE *users;
  87.  
  88. void schitatPIP() {
  89.     users = fopen("users", "rb");
  90.     fread(&pipsize, sizeof(int), 1, users);
  91.     for (int i = 0; i < pipsize; i++)
  92.         fread(&pip[i], sizeof(struct struct3), 1, users);
  93.     fclose(users);
  94.     getchar();
  95. }
  96.  
  97. void zapisatPIP() {
  98.     users = fopen("users", "w+b");
  99.     fwrite(&pipsize, sizeof(int), 1, users);
  100.     for (int i = 0; i < pipsize; i++)
  101.         fwrite(&pip[i], sizeof(struct struct3), 1, users);
  102.     fclose(users);
  103.     getchar();
  104. }
  105.  
  106. void dobavitPIP() {
  107.     struct struct3 noviy_pip;
  108.     strcpy(noviy_pip.role, "user");
  109.     printf("Введите логин\n");
  110.     fflush(stdin);
  111.     gets(noviy_pip.login);
  112.     gets(noviy_pip.login);
  113.     printf("Введите пароль\n");
  114.     fflush(stdin);
  115.     gets(noviy_pip.parol);
  116.     pip[pipsize] = noviy_pip;
  117.     pipsize += 1;
  118.     zapisatPIP();
  119. }
  120.  
  121. void udalitPIP() {
  122.     char login[30];
  123.     printf("Введите логин\n");
  124.     fflush(stdin);
  125.     gets(login);
  126.     gets(login);
  127.     int i, j;
  128.     for (i = 0; i < pipsize; i++) {
  129.         if (strcmp(pip[i].login, login) == 0) {
  130.             for (j = i; j < pipsize - 1; j++) {
  131.                 pip[j] = pip[j + 1];
  132.             }
  133.             zapisatPIP();
  134.             return;
  135.         }
  136.     }
  137.     printf("Ошибка ввода\n");
  138.     system("pause");
  139. }
  140.  
  141. void vhodADMIN() {
  142.     char login[30], parol[30], role[30];
  143.     strcpy(role, "admin");
  144.     int i;
  145.     schitatPIP();
  146.     printf("Введите логин\n");
  147.     fflush(stdin);
  148.     gets(login);
  149.     gets(login);
  150.     printf("Введите пароль\n");
  151.     fflush(stdin);
  152.     gets(parol);
  153.     for (i = 0; i < pipsize; i++) {
  154.         if (strcmp(pip[i].login, login) == 0 && strcmp(pip[i].parol, parol) == 0 && strcmp(pip[i].role, role) == 0) {
  155.             SC
  156.                 menuAdm();
  157.             system("cls");
  158.             return;
  159.         }
  160.     }
  161.     printf("Ошибка входа\n");
  162.     system("pause");
  163. }
  164.  
  165. void sort() {
  166.     struct struct1 tmp1;
  167.     int temp, i, j;
  168.     for (i = 0; i < structsize - 1; i++) {
  169.         temp = i;
  170.         for (j = i + 1; j < structsize; j++) {
  171.             if (client[j].sumZa > client[temp].sumZa) {
  172.                 temp = j;
  173.             }
  174.         }
  175.         tmp1 = client[temp];
  176.         client[temp] = client[i];
  177.         client[i] = tmp1;
  178.     }
  179.     return;
  180. }
  181.  
  182. void vhod() {
  183.     char login[30], parol[30], role[30];
  184.     strcpy(role, "user");
  185.     int i;
  186.     schitatPIP();
  187.     printf("Введите логин\n");
  188.     fflush(stdin);
  189.     gets(login);
  190.     gets(login);
  191.     printf("Введите пароль\n");
  192.     fflush(stdin);
  193.     gets(parol);
  194.     for (i = 0; i < pipsize; i++) {
  195.         if (strcmp(pip[i].login, login) == 0 && strcmp(pip[i].parol, parol) == 0 && strcmp(pip[i].role, role) == 0) {
  196.             SC
  197.                 menuPol();
  198.             system("cls");
  199.             return;
  200.         }
  201.     }
  202.     printf("Ошибка входа\n");
  203.     system("pause");
  204. }
  205.  
  206. void menu(void) {
  207.     while (1) {
  208.         schitat();
  209.         schitatPIP();
  210.         schitatZak();
  211.         printf("1)Войти как администратор\n2)Войти как пользователь\n0)Выйти из программы\n");
  212.         scanf("%c", &block);
  213.         switch (block)
  214.         {
  215.         case '1':
  216.             SC
  217.                 vhodADMIN();
  218.             system("cls");
  219.             break;
  220.         case '2':
  221.             SC
  222.                 loginPol();
  223.             system("cls");
  224.             break;
  225.         case '0':
  226.             SC
  227.                 exitProg();
  228.             system("cls");
  229.             break;
  230.             return;
  231.         default:
  232.             system("cls");
  233.             break;
  234.         }
  235.     }
  236.     system("cls");
  237. }
  238.  
  239. void menuAdm(void) {
  240.     while (1) {
  241.         printf("МЕНЮ АДМИНИСТРАТОРА\n1)Меню ввода данных\n2)Меню сортировки\n3)Меню поиска\n4)Меню изменения\n5)Меню удаления\n6)меню вывода\n7)Управление пользователями\n0)Выйти\n");
  242.         scanf(" %c", &choice);
  243.         switch (choice)
  244.         {
  245.         case '1':
  246.             SC
  247.                 menuSKR();
  248.             system("cls");
  249.             break;
  250.         case '2':
  251.             SC
  252.                 if (structsize < 1 && structsize1 < 1) {
  253.                     printf("Ведите данные!\n");
  254.                     SP
  255.                         SC
  256.                         break;
  257.                 }
  258.             SC
  259.                 menusort();
  260.             SC
  261.                 break;
  262.         case '3':
  263.             SC
  264.                 if (structsize < 1 && structsize1 < 1) {
  265.                     printf("Ведите данные!\n");
  266.                     SP
  267.                         SC
  268.                         break;
  269.                 }
  270.             SC
  271.                 menusearch();
  272.             SC
  273.                 break;
  274.         case '4':
  275.             SC
  276.                 if (structsize < 1 && structsize1 < 1) {
  277.  
  278.                     printf("Ведите данные!\n");
  279.                     SP
  280.                         SC
  281.                         break;
  282.                 }
  283.             SC
  284.                 changemenu();
  285.             SP
  286.                 SC
  287.                 break;
  288.         case '5':
  289.             SC
  290.                 if (structsize < 1 && structsize1 < 1) {
  291.  
  292.                     printf("Ведите данные!\n");
  293.                     SP
  294.                         SC
  295.                         break;
  296.                 }
  297.             SC
  298.                 deleteemenu();
  299.             SP
  300.                 SC
  301.                 break;
  302.         case '6':
  303.             SC
  304.                 if (structsize < 1 && structsize1 < 1) {
  305.  
  306.                     printf("Ведите данные!\n");
  307.                     SP
  308.                         SC
  309.                         break;
  310.                 }
  311.             menuvivod();
  312.             SP
  313.                 SC
  314.                 break;
  315.         case '7':
  316.             deleteePol();
  317.             system("cls");
  318.             break;
  319.         case '0':
  320.             zapis();
  321.             zapisatPIP();
  322.             zapisZak();
  323.             SC
  324.                 menuexit();
  325.             system("cls");
  326.             break;
  327.         default:
  328.             system("cls");
  329.             break;
  330.         }
  331.     }
  332.     return;
  333. }
  334.  
  335. void vvod(void)
  336. {
  337.     printf("#%d\n", structsize + 1);
  338.     printf("Тип продукции\n");
  339.     fflush(stdin);
  340.     gets(client[structsize].prod);
  341.     gets(client[structsize].prod);
  342.     printf("Количество\n");
  343.     fflush(stdin);
  344.     gets(client[structsize].kolv);
  345.     printf("Цена за всю партию\n");
  346.     scanf("%d", &client[structsize].sum);
  347.     printf("Цена за десток\n");
  348.     scanf("%d", &client[structsize].sumZa);
  349.     printf("Дата последнего изменения\n");
  350.     fflush(stdin);
  351.     gets(client[structsize].data.dataa);
  352.     gets(client[structsize].data.dataa);
  353.     char proverka[30];
  354.     int data[30];
  355.     if (client[structsize].data.dataa[2] != '.' || client[structsize].data.dataa[5] != '.' || strlen(client[structsize].data.dataa) != 10) {
  356.         printf("Ошибка ввода\n");
  357.         system("pause");
  358.         return;
  359.     }
  360.     proverka[0] = client[structsize].data.dataa[0];
  361.     proverka[1] = client[structsize].data.dataa[1];
  362.     data[0] = atoi(proverka);
  363.     for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  364.         proverka[pro]=' ';
  365.     }
  366.     proverka[0] = client[structsize].data.dataa[3];
  367.     proverka[1] = client[structsize].data.dataa[4];
  368.     data[1] = atoi(proverka);
  369.     for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  370.         proverka[pro]=' ';
  371.     }
  372.     proverka[0] = client[structsize].data.dataa[6];
  373.     proverka[1] = client[structsize].data.dataa[7];
  374.     proverka[2] = client[structsize].data.dataa[8];
  375.     proverka[3] = client[structsize].data.dataa[9];
  376.     data[2] = atoi(proverka);
  377.     if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  378.         printf("Ошибка ввода\n");
  379.         system("pause");
  380.         return;
  381.     }
  382.     structsize++;
  383.     while (1) {
  384.         printf("\n1)продолжить ввод\n2)прекратить\n");
  385.         scanf(" %c", &choice);
  386.         switch (choice) {
  387.         case '1':
  388.  
  389.             printf("#%d\n", structsize + 1);
  390.             printf("Тип продукции\n");
  391.             fflush(stdin);
  392.             gets(client[structsize].prod);
  393.             gets(client[structsize].prod);
  394.             printf("Количество\n");
  395.             fflush(stdin);
  396.             gets(client[structsize].kolv);
  397.             printf("Цена за всю партию\n");
  398.             scanf("%d", &client[structsize].sum);
  399.             printf("Цена за десток\n");
  400.             scanf("%d", &client[structsize].sumZa);
  401.             printf("Дата последнего изменения\n");
  402.             fflush(stdin);
  403.             gets(client[structsize].data.dataa);
  404.             gets(client[structsize].data.dataa);
  405.             char proverka[30];
  406.             int data[3];
  407.             if (client[structsize].data.dataa[2] != '.' || client[structsize].data.dataa[5] != '.' || strlen(client[structsize].data.dataa) != 10) {
  408.                 printf("Ошибка ввода\n");
  409.                 system("pause");
  410.                 return;
  411.             }
  412.             proverka[0] = client[structsize].data.dataa[0];
  413.             proverka[1] = client[structsize].data.dataa[1];
  414.             data[0] = atoi(proverka);
  415.             for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  416.         proverka[pro]=' ';
  417.     }
  418.             proverka[0] = client[structsize].data.dataa[3];
  419.             proverka[1] = client[structsize].data.dataa[4];
  420.             data[1] = atoi(proverka);
  421.             for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  422.         proverka[pro]=' ';
  423.     }
  424.             proverka[0] = client[structsize].data.dataa[6];
  425.             proverka[1] = client[structsize].data.dataa[7];
  426.             proverka[2] = client[structsize].data.dataa[8];
  427.             proverka[3] = client[structsize].data.dataa[9];
  428.             data[2] = atoi(proverka);
  429.             if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  430.                 printf("Ошибка ввода\n");
  431.                 system("pause");
  432.                 return;
  433.             }
  434.             structsize++;
  435.             break;
  436.         case '2':
  437.             zapis();
  438.             return;
  439.         default:
  440.             system("cls");
  441.             break;
  442.         }
  443.     }
  444.     return;
  445. }
  446.  
  447. void loginPol(void) {
  448.     while (1) {
  449.         printf("1)Аккаунт существует\n");
  450.         printf("2)Создать новый аккаунт\n");
  451.         printf("0)Назад\n");
  452.         scanf("%c", &block);
  453.         switch (block)
  454.         {
  455.         case '1':
  456.             SC
  457.                 vhod();
  458.             system("cls");
  459.             break;
  460.         case '2':
  461.             SC
  462.                 dobavitPIP();
  463.             system("cls");
  464.             break;
  465.         case '0':
  466.             SC
  467.                 return;
  468.         default:
  469.             system("cls");
  470.             break;
  471.         }
  472.     }
  473. }
  474.  
  475. void vvodZak(void)
  476. {
  477.     int pro;
  478.     char proverka[30];
  479.     int data[3];
  480.     data[0]=0;
  481.     data[1]=0;
  482.     data[2]=0;
  483.     printf("#%d\n", structsize1 + 1);
  484.     printf("Тип продукции\n");
  485.     fflush(stdin);
  486.     gets(clp[structsize1].prodz);
  487.     gets(clp[structsize1].prodz);
  488.     printf("Нужное количество(десятки)\n");
  489.     fflush(stdin);
  490.     gets(clp[structsize1].kolvz);
  491.     printf("Стоимость заказа\n");
  492.     scanf("%d", &clp[structsize1].stom);
  493.     printf("Дата добавления заказа:\n");
  494.     fflush(stdin);
  495.     gets(clp[structsize1].dataz.dataa);
  496.     gets(clp[structsize1].dataz.dataa);
  497.     if (clp[structsize1].dataz.dataa[2] != '.' || clp[structsize1].dataz.dataa[5] != '.' || strlen(clp[structsize1].dataz.dataa) != 10) {
  498.         printf("Ошибка ввода1\n");
  499.         system("pause");
  500.         return;
  501.     }
  502.     proverka[0] = clp[structsize1].dataz.dataa[0];
  503.     proverka[1] = clp[structsize1].dataz.dataa[1];
  504.     data[0] = atoi(proverka);
  505.     for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  506.         proverka[pro]=' ';
  507.     }
  508.     proverka[0] = clp[structsize1].dataz.dataa[3];
  509.     proverka[1] = clp[structsize1].dataz.dataa[4];
  510.     data[1] = atoi(proverka);
  511.     for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  512.         proverka[pro]=' ';
  513.     }
  514.     proverka[0] = clp[structsize1].dataz.dataa[6];
  515.     proverka[1] = clp[structsize1].dataz.dataa[7];
  516.     proverka[2] = clp[structsize1].dataz.dataa[8];
  517.     proverka[3] = clp[structsize1].dataz.dataa[9];
  518.     data[2] = atoi(proverka);
  519.     if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  520.         printf("Ошибка ввода2\n");
  521.         system("pause");
  522.         return;
  523.     }
  524.     printf("Адрес:\n ");
  525.     fflush(stdin);
  526.     gets(clp[structsize1].adres);
  527.     structsize1++;
  528.     while (1) {
  529.         printf("\n1)продолжить ввод\n2)прекратить\n");
  530.         scanf(" %c", &choice);
  531.         switch (choice) {
  532.         case '1':
  533.             data[0]=0;
  534.             data[1]=0;
  535.             data[2]=0;
  536.             printf("#%d\n", structsize1 + 1);
  537.             printf("Тип продукции\n");
  538.             fflush(stdin);
  539.             gets(clp[structsize1].prodz);
  540.             gets(clp[structsize1].prodz);
  541.             printf("Нужное количество(десятки)\n");
  542.             fflush(stdin);
  543.             gets(clp[structsize1].kolvz);
  544.             printf("Стоимость заказа\n");
  545.             scanf("%d", &clp[structsize1].stom);
  546.             printf("Дата добавления заказа:\n");
  547.             fflush(stdin);
  548.             gets(clp[structsize1].dataz.dataa);
  549.             gets(clp[structsize1].dataz.dataa);
  550.             if (clp[structsize1].dataz.dataa[2] != '.' || clp[structsize1].dataz.dataa[5] != '.' || strlen(clp[structsize1].dataz.dataa) != 10) {
  551.                 printf("Ошибка ввода3\n");
  552.                 system("pause");
  553.                 return;
  554.             }
  555.             proverka[0] = clp[structsize1].dataz.dataa[0];
  556.             proverka[1] = clp[structsize1].dataz.dataa[1];
  557.             data[0] = atoi(proverka);
  558.             for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  559.                 proverka[pro]=' ';
  560.             }
  561.             proverka[0] = clp[structsize1].dataz.dataa[3];
  562.             proverka[1] = clp[structsize1].dataz.dataa[4];
  563.             data[1] = atoi(proverka);
  564.             for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  565.                 proverka[pro]=' ';
  566.             }
  567.             proverka[0] = clp[structsize1].dataz.dataa[6];
  568.             proverka[1] = clp[structsize1].dataz.dataa[7];
  569.             proverka[2] = clp[structsize1].dataz.dataa[8];
  570.             proverka[3] = clp[structsize1].dataz.dataa[9];
  571.             data[2] = atoi(proverka);
  572.             if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  573.                 printf("Ошибка ввода4\n");
  574.                 system("pause");
  575.                 return;
  576.             }
  577.             printf("Адрес:\n ");
  578.             fflush(stdin);
  579.             gets(clp[structsize1].adres);
  580.             structsize1++;
  581.             break;
  582.         case '2':
  583.             zapisZak();
  584.             return;
  585.         default:
  586.             system("cls");
  587.             break;
  588.         }
  589.     }
  590.     return;
  591. }
  592.  
  593. void menusort(void)
  594. {
  595.     while (1) {
  596.         printf("1)Сортировать продукцию\n2)Сортировать заказы\n0)Выйти\n");
  597.         scanf(" %c", &block);
  598.         switch (block)
  599.         {
  600.         case '1':
  601.             SC
  602.                 sort();
  603.             system("cls");
  604.             break;
  605.         case '2':
  606.             SC
  607.                 sortZak();
  608.             system("cls");
  609.             break;
  610.         case '0':
  611.             return;
  612.         default:
  613.             system("cls");
  614.             break;
  615.         }
  616.     }
  617.     system("cls");
  618. }
  619.  
  620. void menusearch(void)
  621. {
  622.     while (1) {
  623.         printf("1)Поиск продукции\n2)Поиск заказов\n0)Выйти\n");
  624.         scanf(" %c", &block);
  625.         switch (block)
  626.         {
  627.         case '1':
  628.             SC
  629.                 search();
  630.             SP
  631.                 system("cls");
  632.             break;
  633.         case '2':
  634.             SC
  635.                 searchZak();
  636.             SP
  637.                 system("cls");
  638.             break;
  639.         case '0':
  640.             return;
  641.         default:
  642.             system("cls");
  643.             break;
  644.         }
  645.     }
  646.     system("cls");
  647. }
  648.  
  649. void menuSKR(void)
  650. {
  651.     while (1) {
  652.         printf("1)Ввести продукцию\n2)Ввести заказы\n0)Выйти\n");
  653.         scanf(" %c", &block);
  654.         switch (block)
  655.         {
  656.         case '1':
  657.             SC
  658.                 vvod();
  659.             system("cls");
  660.             break;
  661.         case '2':
  662.             SC
  663.                 vvodZak();
  664.             system("cls");
  665.             break;
  666.         case '0':
  667.             return;
  668.         default:
  669.             system("cls");
  670.             break;
  671.         }
  672.     }
  673.     system("cls");
  674. }
  675.  
  676. void sortZak(void)
  677. {
  678.     struct struct2 tmp;
  679.     int temp, i, j;
  680.     for (i = 0; i < structsize1 - 1; i++) {
  681.         temp = i;
  682.         for (j = i + 1; j < structsize1; j++) {
  683.             if (clp[j].stom > clp[temp].stom) {
  684.                 temp = j;
  685.             }
  686.         }
  687.         tmp = clp[temp];
  688.         clp[temp] = clp[i];
  689.         clp[i] = tmp;
  690.     }
  691.     return;
  692. }
  693.  
  694. void zapis(void)
  695. {
  696.     FILE *clients;
  697.     clients = fopen("clients", "w+b");
  698.     fwrite(&structsize1, sizeof(int), 1, clients);
  699.     for (int i = 0; i < structsize1; i++)
  700.         fwrite(&client[i], sizeof(struct struct1), 1, clients);
  701.     fclose(clients);
  702.     getchar();
  703. }
  704. void schitat(void)
  705. {
  706.     FILE *clients;
  707.     clients = fopen("clients", "rb");
  708.     fread(&structsize1, sizeof(int), 1, clients);
  709.     for (int i = 0; i < structsize1; i++)
  710.         fread(&client[i], sizeof(struct struct1), 1, clients);
  711.     fclose(clients);
  712.     getchar();
  713. }
  714.  
  715. void zapisZak(void) {
  716.     FILE *zaks;
  717.     zaks = fopen("zaks", "w+b");
  718.     fwrite(&structsize1, sizeof(int), 1, zaks);
  719.     for (int i = 0; i < structsize1; i++)
  720.         fwrite(&clp[i], sizeof(struct struct2), 1, zaks);
  721.     fclose(zaks);
  722.     getchar();
  723. }
  724. void schitatZak(void) {
  725.     FILE *zaks;
  726.     zaks = fopen("zaks", "r+b");
  727.     fread(&structsize1, sizeof(int), 1, zaks);
  728.     for (int i = 0; i < structsize1; i++)
  729.         fread(&clp[i], sizeof(struct struct2), 1, zaks);
  730.     fclose(zaks);
  731.     getchar();
  732. }
  733. void deleteePol(void)
  734. {
  735.     SC
  736.         while (1) {
  737.             printf("1)Создать нового пользователя\n");
  738.             printf("2)Удалить пользователя\n");
  739.             printf("3)Изменить пароль\n");
  740.             printf("0)Назад\n");
  741.             scanf(" %c", &block);
  742.             switch (block)
  743.             {
  744.             case '1':
  745.                 SC
  746.                    
  747.                     dobavitPIP();
  748.                 SP
  749.                     system("cls");
  750.                 break;
  751.             case '2':
  752.                 SC
  753.                     schitatPIP();
  754.                     udalitPIP();
  755.                 SP
  756.                     system("cls");
  757.                 break;
  758.             case '0':
  759.                 return;
  760.             default:
  761.                 system("cls");
  762.                 break;
  763.             }
  764.         }
  765.     system("cls");
  766.     SP
  767. }
  768.  
  769. void deleteemenu(void)
  770. {
  771.     while (1) {
  772.         printf("1)Удалить продукцию\n2)Удалить заказ\n0)Выйти\n");
  773.         scanf(" %c", &block);
  774.         switch (block)
  775.         {
  776.         case '1':
  777.             SC
  778.                 deletee();
  779.             SP
  780.                 system("cls");
  781.             break;
  782.         case '2':
  783.             SC
  784.                 deleteeZak();
  785.             SP
  786.                 system("cls");
  787.             break;
  788.         case '0':
  789.             return;
  790.         default:
  791.             system("cls");
  792.             break;
  793.         }
  794.     }
  795.     system("cls");
  796. }
  797.  
  798. void search(void) {
  799.     vivodProd();
  800.     printf("Искать\n1)Тип продукции\n2)Количество\n3)Цену\n4)Дату посл. изменения\n");
  801.     scanf(" %c", &choice);
  802.     char searchvar[30];
  803.     int flag = 0, searchint;
  804.     switch (choice)
  805.     {
  806.     case '1':
  807.         kol = 0;
  808.         printf("?-> ");
  809.         fflush(stdin);
  810.         gets(searchvar);
  811.         gets(searchvar);
  812.         puts("");
  813.         for (i = 0; i < structsize; i++) {
  814.             if (strcmp(searchvar, client[i].prod) == 0) {
  815.                 kol++;
  816.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\n\n", client[i].prod, client[i].kolv, client[i].sum, client[i].data.dataa);
  817.             }
  818.         }
  819.         break;
  820.     case '2':
  821.         kol = 0;
  822.         printf("?-> ");
  823.         fflush(stdin);
  824.         gets(searchvar);
  825.         gets(searchvar);
  826.         puts("");
  827.         for (i = 0; i < structsize; i++) {
  828.             if (strcmp(searchvar, client[i].kolv) == 0) {
  829.                 kol++;
  830.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\n\n", client[i].prod, client[i].kolv, client[i].sum, client[i].data.dataa);
  831.             }
  832.         }
  833.         break;
  834.     case '3':
  835.         kol = 0;
  836.         printf("?-> ");
  837.         scanf("%d", &searchint);
  838.         puts("");
  839.         for (i = 0; i < structsize; i++) {
  840.             if (searchint == client[i].sum) {
  841.                 kol++;
  842.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\n\n", client[i].prod, client[i].kolv, client[i].sum, client[i].data.dataa);
  843.             }
  844.         }
  845.         break;
  846.     case '4':
  847.         kol = 0;
  848.         printf("?-> ");
  849.         fflush(stdin);
  850.         gets(searchvar);
  851.         gets(searchvar);
  852.         puts("");
  853.         for (i = 0; i < structsize; i++) {
  854.             if (strcmp(searchvar, client[i].data.dataa) == 0) {
  855.                 kol++;
  856.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\n\n", client[i].prod, client[i].kolv, client[i].sum, client[i].data.dataa);
  857.             }
  858.         }
  859.         break;
  860.     default:
  861.         system("cls");
  862.         break;
  863.     }
  864.     return;
  865. }
  866.  
  867. void searchZak(void) {
  868.     vivodZakaz();
  869.     printf("Искать\n1)Тип продукции\n2)Количество\n3)Цену\n4)Дату посл. изменения\n5)Адрес\n0)Выход\n");
  870.     scanf(" %c", &choice);
  871.     char searchvar2[30];
  872.     int flag2 = 0, searchint2;
  873.     switch (choice)
  874.     {
  875.     case '1':
  876.         kol = 0;
  877.         printf("?-> ");
  878.         fflush(stdin);
  879.         gets(searchvar2);
  880.         gets(searchvar2);
  881.         puts("");
  882.         for (i = 0; i < structsize1; i++) {
  883.             if (strcmp(searchvar2, clp[i].prodz) == 0) {
  884.                 kol++;
  885.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\nАдрес %s\n\n", clp[i].prodz, clp[i].kolvz, clp[i].stom, clp[i].dataz.dataa, clp[i].adres);
  886.             }
  887.         }
  888.         break;
  889.     case '2':
  890.         kol = 0;
  891.         printf("?-> ");
  892.         fflush(stdin);
  893.         gets(searchvar2);
  894.         gets(searchvar2);
  895.         puts("");
  896.         for (i = 0; i < structsize1; i++) {
  897.             if (strcmp(searchvar2, clp[i].kolvz) == 0) {
  898.                 kol++;
  899.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\nАдрес %s\n\n", clp[i].prodz, clp[i].kolvz, clp[i].stom, clp[i].dataz.dataa, clp[i].adres);
  900.             }
  901.         }
  902.         break;
  903.     case '3':
  904.         kol = 0;
  905.         printf("?-> ");
  906.         scanf("%d", &searchint2);
  907.         puts("");
  908.         for (i = 0; i < structsize1; i++) {
  909.             if (searchint2 == clp[i].stom) {
  910.                 kol++;
  911.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\nАдрес %s\n\n", clp[i].prodz, clp[i].kolvz, clp[i].stom, clp[i].dataz.dataa, clp[i].adres);
  912.             }
  913.         }
  914.         break;
  915.     case '4':
  916.         kol = 0;
  917.         printf("?-> ");
  918.         fflush(stdin);
  919.         gets(searchvar2);
  920.         gets(searchvar2);
  921.         puts("");
  922.         for (i = 0; i < structsize1; i++) {
  923.             if (strcmp(searchvar2, clp[i].dataz.dataa) == 0) {
  924.                 kol++;
  925.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\nАдрес %s\n\n", clp[i].prodz, clp[i].kolvz, clp[i].stom, clp[i].dataz.dataa, clp[i].adres);
  926.             }
  927.         }
  928.         break;
  929.     case '5':
  930.         kol = 0;
  931.         printf("?-> ");
  932.         fflush(stdin);
  933.         gets(searchvar2);
  934.         gets(searchvar2);
  935.         puts("");
  936.         for (i = 0; i < structsize1; i++) {
  937.             if (strcmp(searchvar2, clp[i].adres) == 0) {
  938.                 kol++;
  939.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\nАдрес %s\n\n", clp[i].prodz, clp[i].kolvz, clp[i].stom, clp[i].dataz.dataa, clp[i].adres);
  940.             }
  941.         }
  942.         break;
  943.     case '0':
  944.         return;
  945.     default:
  946.         system("cls");
  947.         break;
  948.     }
  949.     return;
  950. }
  951.  
  952. void change(void) {
  953.     vivodProd();
  954.     printf("\nИзменить\n");
  955.     scanf("%d", &i);
  956.     if (i<1 || i>structsize) {
  957.         printf("ошибка\n");
  958.         return;
  959.     }
  960.     printf("1)Продукция \n2)Количество\n3)Цена\n4)Дата\n");
  961.     scanf(" %c", &choice);
  962.     switch (choice)
  963.     {
  964.     case '1':
  965.         printf("Введите продукцию\n");
  966.         fflush(stdin);
  967.         gets(client[i - 1].prod);
  968.         gets(client[i - 1].prod);
  969.         break;
  970.     case '2':
  971.         printf("Введите количество\n ");
  972.         fflush(stdin);
  973.         gets(client[i - 1].kolv);
  974.         gets(client[i - 1].kolv);
  975.         break;
  976.     case '3':
  977.         printf("Введите цену\n ");
  978.         scanf("%d", &client[i - 1].sum);
  979.         break;
  980.     case '4':
  981.         printf("Введите дату\n");
  982.         fflush(stdin);
  983.         gets(client[i - 1].data.dataa);
  984.         gets(client[i - 1].data.dataa);
  985.         break;
  986.     default:
  987.         system("cls");
  988.         break;
  989.     }
  990.     return;
  991. }
  992.  
  993. void changemenu(void)
  994. {
  995.     while (1) {
  996.         printf("1)Изменить продукцию\n2)Изменить заказы\n0)Выйти\n");
  997.         scanf(" %c", &block);
  998.         switch (block)
  999.         {
  1000.         case '1':
  1001.             SC
  1002.                 change();
  1003.             system("cls");
  1004.             break;
  1005.         case '2':
  1006.             SC
  1007.                 changeZak();
  1008.             system("cls");
  1009.             break;
  1010.         case '0':
  1011.             return;
  1012.         default:
  1013.             system("cls");
  1014.             break;
  1015.         }
  1016.     }
  1017.     system("cls");
  1018. }
  1019.  
  1020. void changeZak(void)
  1021. {
  1022.     vivodZakaz();
  1023.     char proverka[30];
  1024.     int data[3];
  1025.     printf("\nИзменить\n");
  1026.     scanf("%d", &i);
  1027.     if (i<1 || i>structsize1) {
  1028.         printf("ошибка\n");
  1029.         return;
  1030.     }
  1031.     printf("1)Продукция \n2)Количество\n3)Цена\n4)Дата\n5)Адрес\n0)Выход");
  1032.     scanf(" %c", &choice);
  1033.     switch (choice)
  1034.     {
  1035.     case '1':
  1036.         printf("Введите продукцию\n");
  1037.         fflush(stdin);
  1038.         gets(clp[i - 1].prodz);
  1039.         gets(clp[i - 1].prodz);
  1040.         break;
  1041.     case '2':
  1042.         printf("Введите количество\n ");
  1043.         fflush(stdin);
  1044.         gets(clp[i - 1].kolvz);
  1045.         gets(clp[i - 1].kolvz);
  1046.         break;
  1047.     case '3':
  1048.         printf("Введите цену\n ");
  1049.         scanf("%d", &clp[i - 1].stom);
  1050.         break;
  1051.     case '4':
  1052.         printf("Введите дату\n");
  1053.         fflush(stdin);
  1054.         gets(clp[i - 1].dataz.dataa);
  1055.         gets(clp[i - 1].dataz.dataa);
  1056.         if (clp[i - 1].dataz.dataa[2] != '.' || clp[i - 1].dataz.dataa[5] != '.' || strlen(clp[i - 1].dataz.dataa) != 10) {
  1057.             printf("Ошибка ввода\n");
  1058.             system("pause");
  1059.             return;
  1060.         }
  1061.         proverka[0] = clp[i - 1].dataz.dataa[0];
  1062.         proverka[1] = clp[i - 1].dataz.dataa[1];
  1063.         data[0] = atoi(proverka);
  1064.         for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  1065.         proverka[pro]=' ';
  1066.     }
  1067.         proverka[0] = clp[i - 1].dataz.dataa[3];
  1068.         proverka[1] = clp[i - 1].dataz.dataa[4];
  1069.         data[1] = atoi(proverka);
  1070.         for (pro=0;pro<strlen(clp[structsize1].dataz.dataa);pro++){
  1071.         proverka[pro]=' ';
  1072.     }
  1073.         proverka[0] = clp[i - 1].dataz.dataa[6];
  1074.         proverka[1] = clp[i - 1].dataz.dataa[7];
  1075.         proverka[2] = clp[i - 1].dataz.dataa[8];
  1076.         proverka[3] = clp[i - 1].dataz.dataa[9];
  1077.         data[2] = atoi(proverka);
  1078.         if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  1079.             printf("Ошибка ввода\n");
  1080.             system("pause");
  1081.             return;
  1082.         }
  1083.         break;
  1084.     case '5':
  1085.         printf("Введите адрес\n");
  1086.         fflush(stdin);
  1087.         gets(clp[i - 1].adres);
  1088.         gets(clp[i - 1].adres);
  1089.         break;
  1090.     case '0':
  1091.         return;
  1092.     default:
  1093.         system("cls");
  1094.         break;
  1095.     }
  1096.     return;
  1097. }
  1098.  
  1099. void deletee(void) {
  1100.     vivodProd();
  1101.     printf("Доступно для удаления %d\nУдалить поле №\n", structsize);
  1102.     scanf("%d", &j);
  1103.     if (j<1 || j>structsize) {
  1104.         printf("Такой структуры не существует\n");
  1105.         return;
  1106.     }
  1107.     for (i = j - 1; i < structsize; i++) {
  1108.         client[i] = client[i + 1];
  1109.         structsize--;
  1110.     }
  1111.     return;
  1112. }
  1113.  
  1114. void deleteeZak(void)
  1115. {
  1116.     vivodZakaz();
  1117.     printf("Доступно для удаления %d\nУдалить поле №\n", structsize1);
  1118.     scanf("%d", &j);
  1119.     if (j<1 || j>structsize1) {
  1120.         printf("Такой структуры не существует\n");
  1121.         return;
  1122.     }
  1123.     for (i = j - 1; i < structsize1; i++) {
  1124.         clp[i] = clp[i + 1];
  1125.         structsize1--;
  1126.     }
  1127.     return;
  1128.  
  1129. }
  1130.  
  1131. void vivodProd(void) {
  1132.     if (structsize == 0)
  1133.     {
  1134.         printf("Введите что нить\n");
  1135.     }
  1136.     else {
  1137.  
  1138.         puts("|   Тип Продукции   |     Количество    | Цена всей партии |  Цена за десяток  |   Дата изменения  |");
  1139.         puts("|___________________|___________________|__________________|___________________|___________________|");
  1140.         for (i = 0; i < structsize; i++)
  1141.         {
  1142.  
  1143.             printf("|%d)%17s|%19s|%14d BYN|%15d BYN|%19s|", i + 1, client[i].prod, client[i].kolv, client[i].sum, client[i].sum, client[i].data.dataa);
  1144.             printf("\n");
  1145.             puts("|___________________|___________________|__________________|___________________|___________________|");
  1146.         }
  1147.     }
  1148.     return;
  1149. }
  1150. void vivodtopProd(void) {
  1151.     if (structsize == 0)
  1152.     {
  1153.         printf("Введите что нить\n");
  1154.     }
  1155.     else {
  1156.  
  1157.         puts("|   Тип Продукции   |     Количество    | Цена всей партии |  Цена за десяток  |   Дата изменения  |");
  1158.         puts("|___________________|___________________|__________________|___________________|___________________|");
  1159.         for (i = 0; i < 3; i++)
  1160.         {
  1161.  
  1162.             printf("|%d)%17s|%19s|%14d BYN|%15d BYN|%19s|", i + 1, client[i].prod, client[i].kolv, client[i].sum, client[i].sum, client[i].data.dataa);
  1163.             printf("\n");
  1164.             puts("|___________________|___________________|__________________|___________________|___________________|");
  1165.         }
  1166.     }
  1167.     return;
  1168. }
  1169.  
  1170. void vivodtopZakaz(void) {
  1171.     if (structsize1 == 0)
  1172.     {
  1173.         printf("Введите что нить\n");
  1174.     }
  1175.     else {
  1176.         puts("___________________________________________________________________________________________________");
  1177.         puts("|   Тип Продукции   |     Количество    |    Общая цена    |     Дата заказа   |   Адрес доставки  |");
  1178.         puts("|___________________|___________________|__________________|___________________|___________________|");
  1179.         for (i = 0; i < 3; i++)
  1180.         {
  1181.  
  1182.             printf("|%d)%17s|%19s|%14d BYN|%19s|%19s|", i + 1, clp[i].prodz, clp[i].kolvz, clp[i].stom, clp[i].dataz.dataa, clp[i].adres);
  1183.             printf("\n");
  1184.             puts("|___________________|___________________|__________________|___________________|___________________|");
  1185.         }
  1186.     }
  1187.     return;
  1188. }
  1189. void vivodZakaz(void)
  1190. {
  1191.     if (structsize1 == 0)
  1192.     {
  1193.         printf("Введите что нить\n");
  1194.     }
  1195.     else {
  1196.         puts("___________________________________________________________________________________________________");
  1197.         puts("|   Тип Продукции   |     Количество    |    Общая цена    |     Дата заказа   |   Адрес доставки  |");
  1198.         puts("|___________________|___________________|__________________|___________________|___________________|");
  1199.         for (i = 0; i < structsize1; i++)
  1200.         {
  1201.  
  1202.             printf("|%d)%17s|%19s|%14d BYN|%19s|%19s|", i + 1, clp[i].prodz, clp[i].kolvz, clp[i].stom, clp[i].dataz.dataa, clp[i].adres);
  1203.             printf("\n");
  1204.             puts("|___________________|___________________|__________________|___________________|___________________|");
  1205.         }
  1206.     }
  1207.     return;
  1208. }
  1209.  
  1210. void menuvivod(void)
  1211. {
  1212.     while (1) {
  1213.         printf("1)Вывести продукцию\n2)Вывести заказы\n0)Выйти\n");
  1214.         scanf(" %c", &block);
  1215.         switch (block)
  1216.         {
  1217.         case '1':
  1218.             SC
  1219.                 vivodProd();
  1220.             SP
  1221.                 system("cls");
  1222.             break;
  1223.         case '2':
  1224.             SC
  1225.                 vivodZakaz();
  1226.             SP
  1227.                 system("cls");
  1228.             break;
  1229.         case '0':
  1230.             return;
  1231.         default:
  1232.             system("cls");
  1233.             break;
  1234.         }
  1235.     }
  1236.     system("cls");
  1237. }
  1238.  
  1239. void menuPol(void)
  1240. {
  1241.     while (1) {
  1242.         printf("МЕНЮ ПОЛЬЗОВАТЕЛЯ\n1)Просмотреть продукцию\n2)Просмотреть заказы\n3)Просметреть топ продукции\n4)просмотреть топ заказов\n5)Отсортировать продукцию\n6)Найти\n7)Отсортировать заказы\n0)Выйти\n");
  1243.         scanf(" %c", &choice);
  1244.         switch (choice)
  1245.         {
  1246.         case '1':
  1247.             if (structsize < 1) {
  1248.                 SC
  1249.                     printf("Администратор не в нёс данные либо список пуст\n");
  1250.                 SP
  1251.                     SC
  1252.                     break;
  1253.             }
  1254.             SC
  1255.                 vivodProd();
  1256.  
  1257.             SP
  1258.                 SC
  1259.                 break;
  1260.         case '2':
  1261.             if (structsize1 < 1) {
  1262.                 SC
  1263.                     printf("Администратор не в нёс данные либо список пуст\n");
  1264.                 SP
  1265.                     SC
  1266.                     break;
  1267.             }
  1268.             SC
  1269.                 vivodZakaz();
  1270.  
  1271.             SP
  1272.                 SC
  1273.                 break;
  1274.         case '3':
  1275.             if (structsize < 1) {
  1276.                 SC
  1277.                     printf("Администратор не в нёс данные либо список пуст\n");
  1278.                 SP
  1279.                     SC
  1280.                     break;
  1281.             }
  1282.             SC
  1283.                 vivodtopProd();
  1284.  
  1285.             SP
  1286.                 SC
  1287.                 break;
  1288.         case '4':
  1289.             if (structsize1 < 1) {
  1290.                 SC
  1291.                     printf("Администратор не в нёс данные либо список пуст\n");
  1292.                 SP
  1293.                     SC
  1294.                     break;
  1295.             }
  1296.             SC
  1297.                 vivodtopZakaz();
  1298.  
  1299.             SP
  1300.                 SC
  1301.                 break;
  1302.         case '5':
  1303.             if (structsize < 1) {
  1304.                 SC
  1305.                     printf("Администратор не в нёс данные либо список пуст\n");
  1306.                 SP
  1307.                     SC
  1308.                     break;
  1309.             }
  1310.             SC
  1311.                 sort();
  1312.             break;
  1313.         case '6':
  1314.             if (structsize < 1) {
  1315.                 SC
  1316.                     printf("Администратор не в нёс данные либо список пуст\n");
  1317.                 SP
  1318.                     SC
  1319.                     break;
  1320.             }
  1321.             SC
  1322.                 search();
  1323.             SP
  1324.                 SC
  1325.                 break;
  1326.         case '7':
  1327.             if (structsize1 < 1) {
  1328.                 SC
  1329.                     printf("Администратор не в нёс данные либо список пуст\n");
  1330.                 SP
  1331.                     SC
  1332.                     break;
  1333.             }
  1334.             SC
  1335.                 sortZak();
  1336.             SP
  1337.                 SC
  1338.                 break;
  1339.         case '0':
  1340.             zapis();
  1341.             zapisatPIP();
  1342.             zapisZak();
  1343.             SC
  1344.                 menuexit();
  1345.             system("cls");
  1346.             break;
  1347.         default:
  1348.             system("cls");
  1349.             break;
  1350.         }
  1351.     }
  1352.     return;
  1353. }
  1354.  
  1355. void menuexit(void)
  1356. {
  1357.     while (1) {
  1358.         printf("Выйти в меню пользователей?\n1)Да\n2)Нет\n");
  1359.         scanf(" %c", &block);
  1360.         switch (block)
  1361.         {
  1362.         case '1':
  1363.             SC
  1364.                 menu();
  1365.             system("cls");
  1366.             break;
  1367.         case '2':
  1368.             return;
  1369.             break;
  1370.         default:
  1371.             system("cls");
  1372.             break;
  1373.         }
  1374.     }
  1375.     system("cls");
  1376. }
  1377.  
  1378. void exitProg(void)
  1379. {
  1380.     while (1) {
  1381.         printf("Выйти из программы?\n1)Да\n2)Нет\n");
  1382.         scanf(" %c", &block);
  1383.         switch (block)
  1384.         {
  1385.         case '1':
  1386.             exit(0);
  1387.             SC
  1388.         case '2':
  1389.             SC
  1390.                 menu();
  1391.             SC
  1392.                 break;
  1393.         default:
  1394.             system("cls");
  1395.             break;
  1396.         }
  1397.     }
  1398.     system("cls");
  1399. }
  1400.  
  1401. int main(void) {
  1402.     SetConsoleCP(1251);
  1403.     SetConsoleOutputCP(1251);
  1404.     /*pipsize = 2;
  1405.     strcpy(pip[0].login, "sask");
  1406.     strcpy(pip[0].parol, "228");
  1407.     strcpy(pip[0].role, "admin");
  1408.     strcpy(pip[1].login, "asd");
  1409.     strcpy(pip[1].parol, "asd");
  1410.     strcpy(pip[1].role, "user");
  1411.     zapisatPIP();
  1412.     printf("Выход из программы\n");
  1413.     Sleep(1000);
  1414.     return 0;*/
  1415.     menu();
  1416. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement