Advertisement
Guest User

Untitled

a guest
May 26th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 32.80 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.     strcpy(proverka, "");
  364.     proverka[0] = client[structsize].data.dataa[3];
  365.     proverka[1] = client[structsize].data.dataa[4];
  366.     data[1] = atoi(proverka);
  367.     strcpy(proverka, "");
  368.     proverka[0] = client[structsize].data.dataa[6];
  369.     proverka[1] = client[structsize].data.dataa[7];
  370.     proverka[2] = client[structsize].data.dataa[8];
  371.     proverka[3] = client[structsize].data.dataa[9];
  372.     data[2] = atoi(proverka);
  373.     if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  374.         printf("Ошибка ввода\n");
  375.         system("pause");
  376.         return;
  377.     }
  378.     structsize++;
  379.     while (1) {
  380.         printf("\n1)продолжить ввод\n2)прекратить\n");
  381.         scanf(" %c", &choice);
  382.         switch (choice) {
  383.         case '1':
  384.  
  385.             printf("#%d\n", structsize + 1);
  386.             printf("Тип продукции\n");
  387.             fflush(stdin);
  388.             gets(client[structsize].prod);
  389.             gets(client[structsize].prod);
  390.             printf("Количество\n");
  391.             fflush(stdin);
  392.             gets(client[structsize].kolv);
  393.             printf("Цена за всю партию\n");
  394.             scanf("%d", &client[structsize].sum);
  395.             printf("Цена за десток\n");
  396.             scanf("%d", &client[structsize].sumZa);
  397.             printf("Дата последнего изменения\n");
  398.             fflush(stdin);
  399.             gets(client[structsize].data.dataa);
  400.             gets(client[structsize].data.dataa);
  401.             char proverka[30];
  402.             int data[3];
  403.             if (client[structsize].data.dataa[2] != '.' || client[structsize].data.dataa[5] != '.' || strlen(client[structsize].data.dataa) != 10) {
  404.                 printf("Ошибка ввода\n");
  405.                 system("pause");
  406.                 return;
  407.             }
  408.             proverka[0] = client[structsize].data.dataa[0];
  409.             proverka[1] = client[structsize].data.dataa[1];
  410.             data[0] = atoi(proverka);
  411.             strcpy(proverka, "");
  412.             proverka[0] = client[structsize].data.dataa[3];
  413.             proverka[1] = client[structsize].data.dataa[4];
  414.             data[1] = atoi(proverka);
  415.             strcpy(proverka, "");
  416.             proverka[0] = client[structsize].data.dataa[6];
  417.             proverka[1] = client[structsize].data.dataa[7];
  418.             proverka[2] = client[structsize].data.dataa[8];
  419.             proverka[3] = client[structsize].data.dataa[9];
  420.             data[2] = atoi(proverka);
  421.             if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  422.                 printf("Ошибка ввода\n");
  423.                 system("pause");
  424.                 return;
  425.             }
  426.             structsize++;
  427.             break;
  428.         case '2':
  429.             zapis();
  430.             return;
  431.         default:
  432.             system("cls");
  433.             break;
  434.         }
  435.     }
  436.     return;
  437. }
  438.  
  439. void loginPol(void) {
  440.     while (1) {
  441.         printf("1)Аккаунт существует\n");
  442.         printf("2)Создать новый аккаунт\n");
  443.         printf("0)Назад\n");
  444.         scanf("%c", &block);
  445.         switch (block)
  446.         {
  447.         case '1':
  448.             SC
  449.                 vhod();
  450.             system("cls");
  451.             break;
  452.         case '2':
  453.             SC
  454.                 dobavitPIP();
  455.             system("cls");
  456.             break;
  457.         case '0':
  458.             SC
  459.                 return;
  460.         default:
  461.             system("cls");
  462.             break;
  463.         }
  464.     }
  465. }
  466.  
  467. void vvodZak(void)
  468. {
  469.     printf("#%d\n", structsize1 + 1);
  470.     printf("Тип продукции\n");
  471.     fflush(stdin);
  472.     gets(clp[structsize1].prodz);
  473.     gets(clp[structsize1].prodz);
  474.     printf("Нужное количество(десятки)\n");
  475.     fflush(stdin);
  476.     gets(clp[structsize1].kolvz);
  477.     printf("Стоимость заказа\n");
  478.     scanf("%d", &clp[structsize1].stom);
  479.     printf("Дата добавления заказа:\n");
  480.     fflush(stdin);
  481.     gets(clp[structsize1].dataz.dataa);
  482.     gets(clp[structsize1].dataz.dataa);
  483.     char proverka[30];
  484.     int data[3];
  485.     if (clp[structsize1].dataz.dataa[2] != '.' || clp[structsize1].dataz.dataa[5] != '.' || strlen(clp[structsize1].dataz.dataa) != 10) {
  486.         printf("Ошибка ввода\n");
  487.         system("pause");
  488.         return;
  489.     }
  490.     proverka[0] = clp[structsize1].dataz.dataa[0];
  491.     proverka[1] = clp[structsize1].dataz.dataa[1];
  492.     data[0] = atoi(proverka);
  493.     strcpy(proverka, "");
  494.     proverka[0] = clp[structsize1].dataz.dataa[3];
  495.     proverka[1] = clp[structsize1].dataz.dataa[4];
  496.     data[1] = atoi(proverka);
  497.     strcpy(proverka, "");
  498.     proverka[0] = clp[structsize1].dataz.dataa[6];
  499.     proverka[1] = clp[structsize1].dataz.dataa[7];
  500.     proverka[2] = clp[structsize1].dataz.dataa[8];
  501.     proverka[3] = clp[structsize1].dataz.dataa[9];
  502.     data[2] = atoi(proverka);
  503.     if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  504.         printf("Ошибка ввода\n");
  505.         system("pause");
  506.         return;
  507.     }
  508.     printf("Адрес:\n ");
  509.     fflush(stdin);
  510.     gets(clp[structsize1].adres);
  511.     structsize1++;
  512.     while (1) {
  513.         printf("\n1)продолжить ввод\n2)прекратить\n");
  514.         scanf(" %c", &choice);
  515.         switch (choice) {
  516.         case '1':
  517.             printf("#%d\n", structsize1 + 1);
  518.             printf("Тип продукции:\n");
  519.             fflush(stdin);
  520.             gets(clp[structsize1].prodz);
  521.             gets(clp[structsize1].prodz);
  522.             printf("Нужное количество:\n");
  523.             fflush(stdin);
  524.             gets(clp[structsize1].kolvz);
  525.             printf("Стоимость заказа:\n");
  526.             scanf("%d", &clp[structsize1].stom);
  527.             printf("Дата добавления заказа:\n");
  528.             fflush(stdin);
  529.             gets(clp[structsize1].dataz.dataa);
  530.             gets(clp[structsize1].dataz.dataa);
  531.             if (clp[structsize1].dataz.dataa[2] != '.' || clp[structsize1].dataz.dataa[5] != '.' || strlen(clp[structsize1].dataz.dataa) != 10) {
  532.                 printf("Ошибка ввода\n");
  533.                 system("pause");
  534.                 return;
  535.             }
  536.             strcpy(proverka, "");
  537.             proverka[0] = clp[structsize1].dataz.dataa[0];
  538.             proverka[1] = clp[structsize1].dataz.dataa[1];
  539.             data[0] = atoi(proverka);
  540.             strcpy(proverka, "");
  541.             proverka[0] = clp[structsize1].dataz.dataa[3];
  542.             proverka[1] = clp[structsize1].dataz.dataa[4];
  543.             data[1] = atoi(proverka);
  544.             strcpy(proverka, "");
  545.             proverka[0] = clp[structsize1].dataz.dataa[6];
  546.             proverka[1] = clp[structsize1].dataz.dataa[7];
  547.             proverka[2] = clp[structsize1].dataz.dataa[8];
  548.             proverka[3] = clp[structsize1].dataz.dataa[9];
  549.             data[2] = atoi(proverka);
  550.             if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  551.                 printf("Ошибка ввода\n");
  552.                 system("pause");
  553.                 return;
  554.             }
  555.             printf("Адрес:\n ");
  556.             fflush(stdin);
  557.             gets(clp[structsize1].adres);
  558.             structsize1++;
  559.             break;
  560.         case '2':
  561.             zapisZak();
  562.             return;
  563.         default:
  564.             system("cls");
  565.             break;
  566.         }
  567.     }
  568.     return;
  569. }
  570.  
  571. void menusort(void)
  572. {
  573.     while (1) {
  574.         printf("1)Сортировать продукцию\n2)Сортировать заказы\n0)Выйти\n");
  575.         scanf(" %c", &block);
  576.         switch (block)
  577.         {
  578.         case '1':
  579.             SC
  580.                 sort();
  581.             system("cls");
  582.             break;
  583.         case '2':
  584.             SC
  585.                 sortZak();
  586.             system("cls");
  587.             break;
  588.         case '0':
  589.             return;
  590.         default:
  591.             system("cls");
  592.             break;
  593.         }
  594.     }
  595.     system("cls");
  596. }
  597.  
  598. void menusearch(void)
  599. {
  600.     while (1) {
  601.         printf("1)Поиск продукции\n2)Поиск заказов\n0)Выйти\n");
  602.         scanf(" %c", &block);
  603.         switch (block)
  604.         {
  605.         case '1':
  606.             SC
  607.                 search();
  608.             SP
  609.                 system("cls");
  610.             break;
  611.         case '2':
  612.             SC
  613.                 searchZak();
  614.             SP
  615.                 system("cls");
  616.             break;
  617.         case '0':
  618.             return;
  619.         default:
  620.             system("cls");
  621.             break;
  622.         }
  623.     }
  624.     system("cls");
  625. }
  626.  
  627. void menuSKR(void)
  628. {
  629.     while (1) {
  630.         printf("1)Ввести продукцию\n2)Ввести заказы\n0)Выйти\n");
  631.         scanf(" %c", &block);
  632.         switch (block)
  633.         {
  634.         case '1':
  635.             SC
  636.                 vvod();
  637.             system("cls");
  638.             break;
  639.         case '2':
  640.             SC
  641.                 vvodZak();
  642.             system("cls");
  643.             break;
  644.         case '0':
  645.             return;
  646.         default:
  647.             system("cls");
  648.             break;
  649.         }
  650.     }
  651.     system("cls");
  652. }
  653.  
  654. void sortZak(void)
  655. {
  656.     struct struct2 tmp;
  657.     int temp, i, j;
  658.     for (i = 0; i < structsize1 - 1; i++) {
  659.         temp = i;
  660.         for (j = i + 1; j < structsize1; j++) {
  661.             if (clp[j].stom > clp[temp].stom) {
  662.                 temp = j;
  663.             }
  664.         }
  665.         tmp = clp[temp];
  666.         clp[temp] = clp[i];
  667.         clp[i] = tmp;
  668.     }
  669.     return;
  670. }
  671.  
  672. void zapis(void)
  673. {
  674.     FILE *clients;
  675.     clients = fopen("clients", "w+b");
  676.     fwrite(&structsize1, sizeof(int), 1, clients);
  677.     for (int i = 0; i < structsize1; i++)
  678.         fwrite(&client[i], sizeof(struct struct1), 1, clients);
  679.     fclose(clients);
  680.     getchar();
  681. }
  682. void schitat(void)
  683. {
  684.     FILE *clients;
  685.     clients = fopen("clients", "rb");
  686.     fread(&structsize1, sizeof(int), 1, clients);
  687.     for (int i = 0; i < structsize1; i++)
  688.         fread(&client[i], sizeof(struct struct1), 1, clients);
  689.     fclose(clients);
  690.     getchar();
  691. }
  692.  
  693. void zapisZak(void) {
  694.     FILE *zaks;
  695.     zaks = fopen("zaks", "w+b");
  696.     fwrite(&structsize1, sizeof(int), 1, zaks);
  697.     for (int i = 0; i < structsize1; i++)
  698.         fwrite(&clp[i], sizeof(struct struct2), 1, zaks);
  699.     fclose(zaks);
  700.     getchar();
  701. }
  702. void schitatZak(void) {
  703.     FILE *zaks;
  704.     zaks = fopen("zaks", "r+b");
  705.     fread(&structsize1, sizeof(int), 1, zaks);
  706.     for (int i = 0; i < structsize1; i++)
  707.         fread(&clp[i], sizeof(struct struct2), 1, zaks);
  708.     fclose(zaks);
  709.     getchar();
  710. }
  711. void deleteePol(void)
  712. {
  713.     SC
  714.         while (1) {
  715.             printf("1)Создать нового пользователя\n");
  716.             printf("2)Удалить пользователя\n");
  717.             printf("3)Изменить пароль\n");
  718.             printf("0)Назад\n");
  719.             scanf(" %c", &block);
  720.             switch (block)
  721.             {
  722.             case '1':
  723.                 SC
  724.                    
  725.                     dobavitPIP();
  726.                 SP
  727.                     system("cls");
  728.                 break;
  729.             case '2':
  730.                 SC
  731.                     schitatPIP();
  732.                     udalitPIP();
  733.                 SP
  734.                     system("cls");
  735.                 break;
  736.             case '0':
  737.                 return;
  738.             default:
  739.                 system("cls");
  740.                 break;
  741.             }
  742.         }
  743.     system("cls");
  744.     SP
  745. }
  746.  
  747. void deleteemenu(void)
  748. {
  749.     while (1) {
  750.         printf("1)Удалить продукцию\n2)Удалить заказ\n0)Выйти\n");
  751.         scanf(" %c", &block);
  752.         switch (block)
  753.         {
  754.         case '1':
  755.             SC
  756.                 deletee();
  757.             SP
  758.                 system("cls");
  759.             break;
  760.         case '2':
  761.             SC
  762.                 deleteeZak();
  763.             SP
  764.                 system("cls");
  765.             break;
  766.         case '0':
  767.             return;
  768.         default:
  769.             system("cls");
  770.             break;
  771.         }
  772.     }
  773.     system("cls");
  774. }
  775.  
  776. void search(void) {
  777.     vivodProd();
  778.     printf("Искать\n1)Тип продукции\n2)Количество\n3)Цену\n4)Дату посл. изменения\n");
  779.     scanf(" %c", &choice);
  780.     char searchvar[30];
  781.     int flag = 0, searchint;
  782.     switch (choice)
  783.     {
  784.     case '1':
  785.         kol = 0;
  786.         printf("?-> ");
  787.         fflush(stdin);
  788.         gets(searchvar);
  789.         gets(searchvar);
  790.         puts("");
  791.         for (i = 0; i < structsize; i++) {
  792.             if (strcmp(searchvar, client[i].prod) == 0) {
  793.                 kol++;
  794.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\n\n", client[i].prod, client[i].kolv, client[i].sum, client[i].data.dataa);
  795.             }
  796.         }
  797.         break;
  798.     case '2':
  799.         kol = 0;
  800.         printf("?-> ");
  801.         fflush(stdin);
  802.         gets(searchvar);
  803.         gets(searchvar);
  804.         puts("");
  805.         for (i = 0; i < structsize; i++) {
  806.             if (strcmp(searchvar, client[i].kolv) == 0) {
  807.                 kol++;
  808.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\n\n", client[i].prod, client[i].kolv, client[i].sum, client[i].data.dataa);
  809.             }
  810.         }
  811.         break;
  812.     case '3':
  813.         kol = 0;
  814.         printf("?-> ");
  815.         scanf("%d", &searchint);
  816.         puts("");
  817.         for (i = 0; i < structsize; i++) {
  818.             if (searchint == client[i].sum) {
  819.                 kol++;
  820.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\n\n", client[i].prod, client[i].kolv, client[i].sum, client[i].data.dataa);
  821.             }
  822.         }
  823.         break;
  824.     case '4':
  825.         kol = 0;
  826.         printf("?-> ");
  827.         fflush(stdin);
  828.         gets(searchvar);
  829.         gets(searchvar);
  830.         puts("");
  831.         for (i = 0; i < structsize; i++) {
  832.             if (strcmp(searchvar, client[i].data.dataa) == 0) {
  833.                 kol++;
  834.                 printf("Продукция %s\nКоличество %s\nЦена %d\nДата посл. изменения %s\n\n", client[i].prod, client[i].kolv, client[i].sum, client[i].data.dataa);
  835.             }
  836.         }
  837.         break;
  838.     default:
  839.         system("cls");
  840.         break;
  841.     }
  842.     return;
  843. }
  844.  
  845. void searchZak(void) {
  846.     vivodZakaz();
  847.     printf("Искать\n1)Тип продукции\n2)Количество\n3)Цену\n4)Дату посл. изменения\n5)Адрес\n0)Выход\n");
  848.     scanf(" %c", &choice);
  849.     char searchvar2[30];
  850.     int flag2 = 0, searchint2;
  851.     switch (choice)
  852.     {
  853.     case '1':
  854.         kol = 0;
  855.         printf("?-> ");
  856.         fflush(stdin);
  857.         gets(searchvar2);
  858.         gets(searchvar2);
  859.         puts("");
  860.         for (i = 0; i < structsize1; i++) {
  861.             if (strcmp(searchvar2, clp[i].prodz) == 0) {
  862.                 kol++;
  863.                 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);
  864.             }
  865.         }
  866.         break;
  867.     case '2':
  868.         kol = 0;
  869.         printf("?-> ");
  870.         fflush(stdin);
  871.         gets(searchvar2);
  872.         gets(searchvar2);
  873.         puts("");
  874.         for (i = 0; i < structsize1; i++) {
  875.             if (strcmp(searchvar2, clp[i].kolvz) == 0) {
  876.                 kol++;
  877.                 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);
  878.             }
  879.         }
  880.         break;
  881.     case '3':
  882.         kol = 0;
  883.         printf("?-> ");
  884.         scanf("%d", &searchint2);
  885.         puts("");
  886.         for (i = 0; i < structsize1; i++) {
  887.             if (searchint2 == clp[i].stom) {
  888.                 kol++;
  889.                 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);
  890.             }
  891.         }
  892.         break;
  893.     case '4':
  894.         kol = 0;
  895.         printf("?-> ");
  896.         fflush(stdin);
  897.         gets(searchvar2);
  898.         gets(searchvar2);
  899.         puts("");
  900.         for (i = 0; i < structsize1; i++) {
  901.             if (strcmp(searchvar2, clp[i].dataz.dataa) == 0) {
  902.                 kol++;
  903.                 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);
  904.             }
  905.         }
  906.         break;
  907.     case '5':
  908.         kol = 0;
  909.         printf("?-> ");
  910.         fflush(stdin);
  911.         gets(searchvar2);
  912.         gets(searchvar2);
  913.         puts("");
  914.         for (i = 0; i < structsize1; i++) {
  915.             if (strcmp(searchvar2, clp[i].adres) == 0) {
  916.                 kol++;
  917.                 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);
  918.             }
  919.         }
  920.         break;
  921.     case '0':
  922.         return;
  923.     default:
  924.         system("cls");
  925.         break;
  926.     }
  927.     return;
  928. }
  929.  
  930. void change(void) {
  931.     vivodProd();
  932.     printf("\nИзменить\n");
  933.     scanf("%d", &i);
  934.     if (i<1 || i>structsize) {
  935.         printf("ошибка\n");
  936.         return;
  937.     }
  938.     printf("1)Продукция \n2)Количество\n3)Цена\n4)Дата\n");
  939.     scanf(" %c", &choice);
  940.     switch (choice)
  941.     {
  942.     case '1':
  943.         printf("Введите продукцию\n");
  944.         fflush(stdin);
  945.         gets(client[i - 1].prod);
  946.         gets(client[i - 1].prod);
  947.         break;
  948.     case '2':
  949.         printf("Введите количество\n ");
  950.         fflush(stdin);
  951.         gets(client[i - 1].kolv);
  952.         gets(client[i - 1].kolv);
  953.         break;
  954.     case '3':
  955.         printf("Введите цену\n ");
  956.         scanf("%d", &client[i - 1].sum);
  957.         break;
  958.     case '4':
  959.         printf("Введите дату\n");
  960.         fflush(stdin);
  961.         gets(client[i - 1].data.dataa);
  962.         gets(client[i - 1].data.dataa);
  963.         break;
  964.     default:
  965.         system("cls");
  966.         break;
  967.     }
  968.     return;
  969. }
  970.  
  971. void changemenu(void)
  972. {
  973.     while (1) {
  974.         printf("1)Изменить продукцию\n2)Изменить заказы\n0)Выйти\n");
  975.         scanf(" %c", &block);
  976.         switch (block)
  977.         {
  978.         case '1':
  979.             SC
  980.                 change();
  981.             system("cls");
  982.             break;
  983.         case '2':
  984.             SC
  985.                 changeZak();
  986.             system("cls");
  987.             break;
  988.         case '0':
  989.             return;
  990.         default:
  991.             system("cls");
  992.             break;
  993.         }
  994.     }
  995.     system("cls");
  996. }
  997.  
  998. void changeZak(void)
  999. {
  1000.     vivodZakaz();
  1001.     char proverka[30];
  1002.     int data[3];
  1003.     printf("\nИзменить\n");
  1004.     scanf("%d", &i);
  1005.     if (i<1 || i>structsize1) {
  1006.         printf("ошибка\n");
  1007.         return;
  1008.     }
  1009.     printf("1)Продукция \n2)Количество\n3)Цена\n4)Дата\n5)Адрес\n0)Выход");
  1010.     scanf(" %c", &choice);
  1011.     switch (choice)
  1012.     {
  1013.     case '1':
  1014.         printf("Введите продукцию\n");
  1015.         fflush(stdin);
  1016.         gets(clp[i - 1].prodz);
  1017.         gets(clp[i - 1].prodz);
  1018.         break;
  1019.     case '2':
  1020.         printf("Введите количество\n ");
  1021.         fflush(stdin);
  1022.         gets(clp[i - 1].kolvz);
  1023.         gets(clp[i - 1].kolvz);
  1024.         break;
  1025.     case '3':
  1026.         printf("Введите цену\n ");
  1027.         scanf("%d", &clp[i - 1].stom);
  1028.         break;
  1029.     case '4':
  1030.         printf("Введите дату\n");
  1031.         fflush(stdin);
  1032.         gets(clp[i - 1].dataz.dataa);
  1033.         gets(clp[i - 1].dataz.dataa);
  1034.         if (clp[i - 1].dataz.dataa[2] != '.' || clp[i - 1].dataz.dataa[5] != '.' || strlen(clp[i - 1].dataz.dataa) != 10) {
  1035.             printf("Ошибка ввода\n");
  1036.             system("pause");
  1037.             return;
  1038.         }
  1039.         proverka[0] = clp[i - 1].dataz.dataa[0];
  1040.         proverka[1] = clp[i - 1].dataz.dataa[1];
  1041.         data[0] = atoi(proverka);
  1042.         strcpy(proverka, "");
  1043.         proverka[0] = clp[i - 1].dataz.dataa[3];
  1044.         proverka[1] = clp[i - 1].dataz.dataa[4];
  1045.         data[1] = atoi(proverka);
  1046.         strcpy(proverka, "");
  1047.         proverka[0] = clp[i - 1].dataz.dataa[6];
  1048.         proverka[1] = clp[i - 1].dataz.dataa[7];
  1049.         proverka[2] = clp[i - 1].dataz.dataa[8];
  1050.         proverka[3] = clp[i - 1].dataz.dataa[9];
  1051.         data[2] = atoi(proverka);
  1052.         if (data[0] > 31 || data[0] < 0 || data[1]>12 || data[1] < 0 || data[2]>2020 || data[2] < 2019) {
  1053.             printf("Ошибка ввода\n");
  1054.             system("pause");
  1055.             return;
  1056.         }
  1057.         break;
  1058.     case '5':
  1059.         printf("Введите адрес\n");
  1060.         fflush(stdin);
  1061.         gets(clp[i - 1].adres);
  1062.         gets(clp[i - 1].adres);
  1063.         break;
  1064.     case '0':
  1065.         return;
  1066.     default:
  1067.         system("cls");
  1068.         break;
  1069.     }
  1070.     return;
  1071. }
  1072.  
  1073. void deletee(void) {
  1074.     vivodProd();
  1075.     printf("Доступно для удаления %d\nУдалить поле №\n", structsize);
  1076.     scanf("%d", &j);
  1077.     if (j<1 || j>structsize) {
  1078.         printf("Такой структуры не существует\n");
  1079.         return;
  1080.     }
  1081.     for (i = j - 1; i < structsize; i++) {
  1082.         client[i] = client[i + 1];
  1083.         structsize--;
  1084.     }
  1085.     return;
  1086. }
  1087.  
  1088. void deleteeZak(void)
  1089. {
  1090.     vivodZakaz();
  1091.     printf("Доступно для удаления %d\nУдалить поле №\n", structsize1);
  1092.     scanf("%d", &j);
  1093.     if (j<1 || j>structsize1) {
  1094.         printf("Такой структуры не существует\n");
  1095.         return;
  1096.     }
  1097.     for (i = j - 1; i < structsize1; i++) {
  1098.         clp[i] = clp[i + 1];
  1099.         structsize1--;
  1100.     }
  1101.     return;
  1102.  
  1103. }
  1104.  
  1105. void vivodProd(void) {
  1106.     if (structsize == 0)
  1107.     {
  1108.         printf("Введите что нить\n");
  1109.     }
  1110.     else {
  1111.  
  1112.         puts("|   Тип Продукции   |     Количество    | Цена всей партии |  Цена за десяток  |   Дата изменения  |");
  1113.         puts("|___________________|___________________|__________________|___________________|___________________|");
  1114.         for (i = 0; i < structsize; i++)
  1115.         {
  1116.  
  1117.             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);
  1118.             printf("\n");
  1119.             puts("|___________________|___________________|__________________|___________________|___________________|");
  1120.         }
  1121.     }
  1122.     return;
  1123. }
  1124. void vivodtopProd(void) {
  1125.     if (structsize == 0)
  1126.     {
  1127.         printf("Введите что нить\n");
  1128.     }
  1129.     else {
  1130.  
  1131.         puts("|   Тип Продукции   |     Количество    | Цена всей партии |  Цена за десяток  |   Дата изменения  |");
  1132.         puts("|___________________|___________________|__________________|___________________|___________________|");
  1133.         for (i = 0; i < 3; i++)
  1134.         {
  1135.  
  1136.             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);
  1137.             printf("\n");
  1138.             puts("|___________________|___________________|__________________|___________________|___________________|");
  1139.         }
  1140.     }
  1141.     return;
  1142. }
  1143.  
  1144. void vivodtopZakaz(void) {
  1145.     if (structsize1 == 0)
  1146.     {
  1147.         printf("Введите что нить\n");
  1148.     }
  1149.     else {
  1150.         puts("___________________________________________________________________________________________________");
  1151.         puts("|   Тип Продукции   |     Количество    |    Общая цена    |     Дата заказа   |   Адрес доставки  |");
  1152.         puts("|___________________|___________________|__________________|___________________|___________________|");
  1153.         for (i = 0; i < 3; i++)
  1154.         {
  1155.  
  1156.             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);
  1157.             printf("\n");
  1158.             puts("|___________________|___________________|__________________|___________________|___________________|");
  1159.         }
  1160.     }
  1161.     return;
  1162. }
  1163. void vivodZakaz(void)
  1164. {
  1165.     if (structsize1 == 0)
  1166.     {
  1167.         printf("Введите что нить\n");
  1168.     }
  1169.     else {
  1170.         puts("___________________________________________________________________________________________________");
  1171.         puts("|   Тип Продукции   |     Количество    |    Общая цена    |     Дата заказа   |   Адрес доставки  |");
  1172.         puts("|___________________|___________________|__________________|___________________|___________________|");
  1173.         for (i = 0; i < structsize1; i++)
  1174.         {
  1175.  
  1176.             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);
  1177.             printf("\n");
  1178.             puts("|___________________|___________________|__________________|___________________|___________________|");
  1179.         }
  1180.     }
  1181.     return;
  1182. }
  1183.  
  1184. void menuvivod(void)
  1185. {
  1186.     while (1) {
  1187.         printf("1)Вывести продукцию\n2)Вывести заказы\n0)Выйти\n");
  1188.         scanf(" %c", &block);
  1189.         switch (block)
  1190.         {
  1191.         case '1':
  1192.             SC
  1193.                 vivodProd();
  1194.             SP
  1195.                 system("cls");
  1196.             break;
  1197.         case '2':
  1198.             SC
  1199.                 vivodZakaz();
  1200.             SP
  1201.                 system("cls");
  1202.             break;
  1203.         case '0':
  1204.             return;
  1205.         default:
  1206.             system("cls");
  1207.             break;
  1208.         }
  1209.     }
  1210.     system("cls");
  1211. }
  1212.  
  1213. void menuPol(void)
  1214. {
  1215.     while (1) {
  1216.         printf("МЕНЮ ПОЛЬЗОВАТЕЛЯ\n1)Просмотреть продукцию\n2)Просмотреть заказы\n3)Просметреть топ продукции\n4)просмотреть топ заказов\n5)Отсортировать продукцию\n6)Найти\n7)Отсортировать заказы\n0)Выйти\n");
  1217.         scanf(" %c", &choice);
  1218.         switch (choice)
  1219.         {
  1220.         case '1':
  1221.             if (structsize < 1) {
  1222.                 SC
  1223.                     printf("Администратор не в нёс данные либо список пуст\n");
  1224.                 SP
  1225.                     SC
  1226.                     break;
  1227.             }
  1228.             SC
  1229.                 vivodProd();
  1230.  
  1231.             SP
  1232.                 SC
  1233.                 break;
  1234.         case '2':
  1235.             if (structsize1 < 1) {
  1236.                 SC
  1237.                     printf("Администратор не в нёс данные либо список пуст\n");
  1238.                 SP
  1239.                     SC
  1240.                     break;
  1241.             }
  1242.             SC
  1243.                 vivodZakaz();
  1244.  
  1245.             SP
  1246.                 SC
  1247.                 break;
  1248.         case '3':
  1249.             if (structsize < 1) {
  1250.                 SC
  1251.                     printf("Администратор не в нёс данные либо список пуст\n");
  1252.                 SP
  1253.                     SC
  1254.                     break;
  1255.             }
  1256.             SC
  1257.                 vivodtopProd();
  1258.  
  1259.             SP
  1260.                 SC
  1261.                 break;
  1262.         case '4':
  1263.             if (structsize1 < 1) {
  1264.                 SC
  1265.                     printf("Администратор не в нёс данные либо список пуст\n");
  1266.                 SP
  1267.                     SC
  1268.                     break;
  1269.             }
  1270.             SC
  1271.                 vivodtopZakaz();
  1272.  
  1273.             SP
  1274.                 SC
  1275.                 break;
  1276.         case '5':
  1277.             if (structsize < 1) {
  1278.                 SC
  1279.                     printf("Администратор не в нёс данные либо список пуст\n");
  1280.                 SP
  1281.                     SC
  1282.                     break;
  1283.             }
  1284.             SC
  1285.                 sort();
  1286.             break;
  1287.         case '6':
  1288.             if (structsize < 1) {
  1289.                 SC
  1290.                     printf("Администратор не в нёс данные либо список пуст\n");
  1291.                 SP
  1292.                     SC
  1293.                     break;
  1294.             }
  1295.             SC
  1296.                 search();
  1297.             SP
  1298.                 SC
  1299.                 break;
  1300.         case '7':
  1301.             if (structsize1 < 1) {
  1302.                 SC
  1303.                     printf("Администратор не в нёс данные либо список пуст\n");
  1304.                 SP
  1305.                     SC
  1306.                     break;
  1307.             }
  1308.             SC
  1309.                 sortZak();
  1310.             SP
  1311.                 SC
  1312.                 break;
  1313.         case '0':
  1314.             zapis();
  1315.             zapisatPIP();
  1316.             zapisZak();
  1317.             SC
  1318.                 menuexit();
  1319.             system("cls");
  1320.             break;
  1321.         default:
  1322.             system("cls");
  1323.             break;
  1324.         }
  1325.     }
  1326.     return;
  1327. }
  1328.  
  1329. void menuexit(void)
  1330. {
  1331.     while (1) {
  1332.         printf("Выйти в меню пользователей?\n1)Да\n2)Нет\n");
  1333.         scanf(" %c", &block);
  1334.         switch (block)
  1335.         {
  1336.         case '1':
  1337.             SC
  1338.                 menu();
  1339.             system("cls");
  1340.             break;
  1341.         case '2':
  1342.             return;
  1343.             break;
  1344.         default:
  1345.             system("cls");
  1346.             break;
  1347.         }
  1348.     }
  1349.     system("cls");
  1350. }
  1351.  
  1352. void exitProg(void)
  1353. {
  1354.     while (1) {
  1355.         printf("Выйти из программы?\n1)Да\n2)Нет\n");
  1356.         scanf(" %c", &block);
  1357.         switch (block)
  1358.         {
  1359.         case '1':
  1360.             exit(0);
  1361.             SC
  1362.         case '2':
  1363.             SC
  1364.                 menu();
  1365.             SC
  1366.                 break;
  1367.         default:
  1368.             system("cls");
  1369.             break;
  1370.         }
  1371.     }
  1372.     system("cls");
  1373. }
  1374.  
  1375. int main(void) {
  1376.     SetConsoleCP(1251);
  1377.     SetConsoleOutputCP(1251);
  1378.     /*pipsize = 2;
  1379.     strcpy(pip[0].login, "sask");
  1380.     strcpy(pip[0].parol, "228");
  1381.     strcpy(pip[0].role, "admin");
  1382.     strcpy(pip[1].login, "asd");
  1383.     strcpy(pip[1].parol, "asd");
  1384.     strcpy(pip[1].role, "user");
  1385.     zapisatPIP();
  1386.     printf("Выход из программы\n");
  1387.     Sleep(1000);
  1388.     return 0;*/
  1389.     menu();
  1390. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement