Advertisement
Guest User

Untitled

a guest
Mar 31st, 2020
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 22.05 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <windows.h>
  3. #include <stdlib.h>
  4. #include <conio.h>
  5. #include <string.h>
  6.  
  7.  
  8. int i, j, k;
  9. FILE* users_file, * listfile;
  10.  
  11. struct User {
  12.     char login[100];
  13.     char password[100];
  14.     int permission;
  15. };
  16. User users[100];
  17. int users_count = 0;
  18.  
  19. struct List {
  20.     char nomer[100];
  21.     char org[100];
  22.     char rabotnik[100];
  23.     char period1[100];
  24.     char period2[100];
  25.     char nazvanie[100];
  26.     char data_predyavleniya[100];
  27. };
  28. List list[100];
  29. int list_count = 0;
  30. int _index = 0;
  31.  
  32. int enter();
  33.  
  34. void menu_admin();
  35. void menu_user();
  36. void settings();
  37. void print_user();
  38. void print_list();
  39. void add_list();
  40. void add_users();
  41. void delete_list();
  42. void delete_users();
  43. void change_list();
  44. void search_list();
  45. void ind_zadanie();
  46. //
  47. void write_users() {
  48.     fopen_s(&users_file, "enter", "w+b");
  49.     if (users_file)
  50.     {
  51.         fwrite(&users_count, sizeof(int), 1, users_file);
  52.         for (i = 0; i < users_count; i++) {
  53.             fwrite(&users[i], sizeof(users), 1, users_file);
  54.         }
  55.         fclose(users_file);
  56.     }
  57. }
  58. void read_users() {
  59.     fopen_s(&users_file, "enter", "rb");
  60.     if (users_file)
  61.     {
  62.         fread(&users_count, sizeof(int), 1, users_file);
  63.         for (i = 0; i < users_count; i++) {
  64.             fread(&users[i], sizeof(users), 1, users_file);
  65.         }
  66.         fclose(users_file);
  67.     }
  68.     else
  69.     {
  70.         users_count = 2;
  71.         strcpy_s(users[0].login, 100, "admin");
  72.         strcpy_s(users[0].password, 100, "admin");
  73.         users[0].permission = 1;
  74.         strcpy_s(users[1].login, 100, "user");
  75.         strcpy_s(users[1].password, 100, "user");
  76.         users[1].permission = 0;
  77.         write_users();
  78.     }
  79.  
  80. }
  81. void write_list() {
  82.     fopen_s(&listfile, "list", "w+b");
  83.     if (listfile)
  84.     {
  85.         fwrite(&list_count, sizeof(int), 1, listfile);
  86.         for (i = 0; i < list_count; i++) {
  87.             fwrite(&list[i], sizeof(list), 1, listfile);
  88.         }
  89.         fclose(listfile);
  90.     }
  91. }
  92. void read_list() {
  93.     fopen_s(&listfile, "list", "rb");
  94.     if (listfile)
  95.     {
  96.         fread(&list_count, sizeof(int), 1, listfile);
  97.         for (i = 0; i < list_count; i++) {
  98.             fread(&list[i], sizeof(list), 1, listfile);
  99.         }
  100.         fclose(listfile);
  101.     }
  102.     else
  103.     {
  104.         write_list();
  105.     }
  106. }
  107.  
  108.  
  109.  
  110. int main(void) {
  111.     SetConsoleCP(1251);
  112.     SetConsoleOutputCP(1251);
  113.     int q = 1;
  114.     char swtch;
  115.     while (q) {
  116.         system("cls");
  117.         read_users();
  118.         read_list();
  119.         printf("Начальное меню\n");
  120.         printf("1)Войти\n2)Закрыть программу\n");
  121.         scanf_s(" %c", &swtch, 1);
  122.         switch (swtch) {
  123.         case '1':
  124.             if (enter()) {
  125.                 printf("Неверные данные\n");
  126.                 system("pause");
  127.             }
  128.             else {
  129.                 if (users[_index].permission == 1) {
  130.                     menu_admin();
  131.                 }
  132.                 else {
  133.                     menu_user();
  134.                 }
  135.             }
  136.             break;
  137.         case '2':
  138.             q = 0;
  139.             break;
  140.         default:
  141.             break;
  142.         }
  143.     }
  144.     return 0;
  145. }
  146.  
  147. int enter() {
  148.     char login[100], parol[100];
  149.     printf("Логин\n");
  150.     scanf_s("%s", &login, 100);
  151.     printf("Пароль\n");
  152.     scanf_s("%s", &parol, 100);
  153.     for (i = 0; i < users_count; i++) {
  154.         if (strcmp(users[i].login, login) == 0 && strcmp(users[i].password, parol) == 0) {
  155.             _index = i;
  156.             return 0;
  157.         }
  158.     }
  159.     return 1;
  160. }
  161. void menu_admin() {
  162.     int q = 1;
  163.     char swtch;
  164.     while (q) {
  165.         system("cls");
  166.         printf("Меню администратора\n");
  167.         printf("1)Добавить лист\n");
  168.         printf("2)Удалить лист\n");
  169.         printf("3)Изменить лист\n");
  170.         printf("4)Найти лист\n");
  171.         printf("5)Вывести листы\n");
  172.         printf("6)Вывести 3 самые популярные болезни\n");
  173.         printf("7)Настройки пользователей\n");
  174.         printf("8)Выход из меню\n");
  175.         scanf_s(" %c", &swtch, 1);
  176.         switch (swtch) {
  177.         case '1':
  178.             add_list();
  179.             break;
  180.         case '2':
  181.             delete_list();
  182.             break;
  183.         case '3':
  184.             change_list();
  185.             break;
  186.         case '4':
  187.             search_list();
  188.             break;
  189.         case '5':
  190.             print_list();
  191.             break;
  192.         case '6':
  193.             ind_zadanie();
  194.             break;
  195.         case '7':
  196.             settings();
  197.             break;
  198.         case '8':
  199.             q = 0;
  200.             break;
  201.         default:
  202.             break;
  203.         }
  204.     }
  205. }
  206. void menu_user() {
  207.     int q = 1;
  208.     char swtch;
  209.     while (q) {
  210.         system("cls");
  211.         printf("Меню пользователя\n");
  212.         printf("1)Найти лист\n");
  213.         printf("2)Вывести листы\n");
  214.         printf("3)Вывест 3 самые популярные болезни\n");
  215.         printf("4)Выход из меню\n");
  216.         scanf_s(" %c", &swtch, 1);
  217.         switch (swtch) {
  218.         case '1':
  219.             search_list();
  220.             break;
  221.         case '2':
  222.             print_list();
  223.             break;
  224.         case '3':
  225.             ind_zadanie();
  226.             break;
  227.         case '4':
  228.             q = 0;
  229.             break;
  230.         default:
  231.             break;
  232.         }
  233.     }
  234. }
  235. void settings() {
  236.     int q = 1;
  237.     char swtch;
  238.     while (q) {
  239.         system("cls");
  240.         printf("Настройки пользователей\n");
  241.         printf("1)Добавить пользователя\n");
  242.         printf("2)Удалить пользователя\n");
  243.         printf("3)Вывести пользователей\n");
  244.         printf("4)Выход из меню\n");
  245.         scanf_s(" %c", &swtch, 1);
  246.         switch (swtch) {
  247.         case '1':
  248.             add_users();
  249.             break;
  250.         case '2':
  251.             delete_users();
  252.             break;
  253.         case '3':
  254.             print_user();
  255.             break;
  256.         case '4':
  257.             q = 0;
  258.             break;
  259.         default:
  260.             break;
  261.         }
  262.     }
  263. }
  264. void add_list() {
  265.     int i;
  266.     char string[100];
  267.     printf("Номер\n");
  268.     scanf_s("%s", &list[list_count].nomer, 100);
  269.     printf("Организация\n");
  270.     scanf_s("%s", &list[list_count].org, 100);
  271.     printf("Работник\n");
  272.     scanf_s("%s", &list[list_count].rabotnik, 100);
  273.     printf("Начало случая\n");
  274.     scanf_s("%s", &list[list_count].period1, 100);
  275.     string[0] = ' ';
  276.     string[1] = ' ';
  277.     string[2] = ' ';
  278.     string[3] = ' ';
  279.     string[4] = ' ';
  280.     string[0] = list[list_count].period1[0];
  281.     string[1] = list[list_count].period1[1];
  282.     if (atoi(string) > 31) {
  283.         printf("День больше 31\n");
  284.         system("pause");
  285.         return;
  286.     }
  287.     string[0] = list[list_count].period1[3];
  288.     string[1] = list[list_count].period1[4];
  289.     if (atoi(string) > 12) {
  290.         printf("Месяц больше 12\n");
  291.         system("pause");
  292.         return;
  293.     }
  294.     string[0] = list[list_count].period1[6];
  295.     string[1] = list[list_count].period1[7];
  296.     string[2] = list[list_count].period1[8];
  297.     string[3] = list[list_count].period1[9];
  298.     if (atoi(string) > 2019) {
  299.         printf("Год больше 2019 %d\n", atoi(string));
  300.         system("pause");
  301.         return;
  302.     }
  303.     if (atoi(string) < 1000) {
  304.         printf("Год меньше 1000\n");
  305.         system("pause");
  306.         return;
  307.     }
  308.     printf("Конец случая\n");
  309.     scanf_s("%s", &list[list_count].period2, 100);
  310.     string[0] = ' ';
  311.     string[1] = ' ';
  312.     string[2] = ' ';
  313.     string[3] = ' ';
  314.     string[4] = ' ';
  315.     string[0] = list[list_count].period2[0];
  316.     string[1] = list[list_count].period2[1];
  317.     if (atoi(string) > 31) {
  318.         printf("День больше 31\n");
  319.         system("pause");
  320.         return;
  321.     }
  322.     string[0] = list[list_count].period2[3];
  323.     string[1] = list[list_count].period2[4];
  324.     if (atoi(string) > 12) {
  325.         printf("Месяц больше 12\n");
  326.         system("pause");
  327.         return;
  328.     }
  329.     string[0] = list[list_count].period2[6];
  330.     string[1] = list[list_count].period2[7];
  331.     string[2] = list[list_count].period2[8];
  332.     string[3] = list[list_count].period2[9];
  333.     if (atoi(string) > 2019) {
  334.         printf("Год больше 2019\n");
  335.         system("pause");
  336.         return;
  337.     }
  338.     if (atoi(string) < 1000) {
  339.         printf("Год меньше 1000\n");
  340.         system("pause");
  341.         return;
  342.     }
  343.     printf("Название болезни\n");
  344.     scanf_s("%s", &list[list_count].nazvanie, 100);
  345.     printf("Дата предъявления\n");
  346.     scanf_s("%s", &list[list_count].data_predyavleniya, 100);
  347.     string[0] = ' ';
  348.     string[1] = ' ';
  349.     string[2] = ' ';
  350.     string[3] = ' ';
  351.     string[4] = ' ';
  352.     string[0] = list[list_count].data_predyavleniya[0];
  353.     string[1] = list[list_count].data_predyavleniya[1];
  354.     if (atoi(string) > 31) {
  355.         printf("День больше 31\n");
  356.         system("pause");
  357.         return;
  358.     }
  359.     string[0] = list[list_count].data_predyavleniya[3];
  360.     string[1] = list[list_count].data_predyavleniya[4];
  361.     if (atoi(string) > 12) {
  362.         printf("Месяц больше 12\n");
  363.         system("pause");
  364.         return;
  365.     }
  366.     string[0] = list[list_count].data_predyavleniya[6];
  367.     string[1] = list[list_count].data_predyavleniya[7];
  368.     string[2] = list[list_count].data_predyavleniya[8];
  369.     string[3] = list[list_count].data_predyavleniya[9];
  370.     if (atoi(string) > 2019) {
  371.         printf("Год больше 2019\n");
  372.         system("pause");
  373.         return;
  374.     }
  375.     if (atoi(string) < 1000) {
  376.         printf("Год меньше 1000\n");
  377.         system("pause");
  378.         return;
  379.     }
  380.     if (list[list_count].data_predyavleniya[2] != '.') {
  381.         for (i = 8; i > 0; i--) {
  382.             list[list_count].data_predyavleniya[i] = list[list_count].data_predyavleniya[i - 1];
  383.         }
  384.         list[list_count].data_predyavleniya[2] = '.';
  385.         list[list_count].data_predyavleniya[0] = '0';
  386.     }
  387.     if (list[list_count].data_predyavleniya[5] != '.') {
  388.         for (i = 9; i > 3; i--) {
  389.             list[list_count].data_predyavleniya[i] = list[list_count].data_predyavleniya[i - 1];
  390.         }
  391.         list[list_count].data_predyavleniya[3] = '0';
  392.         list[list_count].data_predyavleniya[5] = '.';
  393.     }
  394.     list[list_count].data_predyavleniya[10] = '\0';
  395.     list_count++;
  396.     write_list();
  397. }
  398. void add_users() {
  399.     printf("Логин\n");
  400.     scanf_s("%s", &users[users_count].login, 100);
  401.     printf("Пароль\n");
  402.     scanf_s("%s", &users[users_count].password, 100);
  403.     users[users_count].permission = 0;
  404.     users_count++;
  405.     write_users();
  406. }
  407. void delete_list() {
  408.     char nomer[100];
  409.     print_list();
  410.     printf("Номер листа\n");
  411.     scanf_s("%s", &nomer, 100);
  412.     for (i = 0; i < list_count; i++) {
  413.         if (strcmp(nomer, list[i].nomer) == 0) {
  414.             list_count--;
  415.             for (j = i; j < list_count; j++) {
  416.                 list[j] = list[j + 1];
  417.             }
  418.             write_list();
  419.         }
  420.     }
  421. }
  422. void delete_users() {
  423.     print_user();
  424.     char login[100];
  425.     printf("Логин\n");
  426.     scanf_s("%s", &login, 100);
  427.     for (i = 0; i < users_count; i++) {
  428.         if (strcmp(login, users[i].login) == 0) {
  429.             users_count--;
  430.             for (j = i; j < users_count; j++) {
  431.                 users[j] = users[j + 1];
  432.             }
  433.             write_users();
  434.         }
  435.     }
  436. }
  437. void print_list() {
  438.     system("cls");
  439.     printf("----------------------------------------------------------------------------------------------------------------\n");
  440.     printf("|Номер          |Организация    |Работник       |Период нетрудоспособности|Название бол.  |Дата предъявления   |\n");
  441.     printf("----------------------------------------------------------------------------------------------------------------\n");
  442.     for (i = 0; i < list_count; i++) {
  443.         printf("|");
  444.         printf("%s", list[i].nomer);
  445.         for (j = 0; j < 15 - (int)strlen(list[i].nomer); j++) {
  446.             printf(" ");
  447.         }
  448.         printf("|");
  449.         printf("%s", list[i].org);
  450.         for (j = 0; j < 15 - (int)strlen(list[i].org); j++) {
  451.             printf(" ");
  452.         }
  453.         printf("|");
  454.         printf("%s", list[i].rabotnik);
  455.         for (j = 0; j < 15 - (int)strlen(list[i].rabotnik); j++) {
  456.             printf(" ");
  457.         }
  458.         printf("|");
  459.         printf("%s-%s", list[i].period1, list[i].period2);
  460.         for (j = 0; j < 24 - ((int)strlen(list[i].period1) + (int)strlen(list[i].period2)); j++) {
  461.             printf(" ");
  462.         }
  463.         printf("|");
  464.         printf("%s", list[i].nazvanie);
  465.         for (j = 0; j < 15 - (int)strlen(list[i].nazvanie); j++) {
  466.             printf(" ");
  467.         }
  468.         printf("|");
  469.         printf("%s", list[i].data_predyavleniya);
  470.         for (j = 0; j < 20 - (int)strlen(list[i].data_predyavleniya); j++) {
  471.             printf(" ");
  472.         }
  473.         printf("|\n");
  474.         printf("----------------------------------------------------------------------------------------------------------------\n");
  475.     }
  476.     system("pause");
  477. }
  478. void print_user() {
  479.     system("cls");
  480.     printf("---------------------------------\n");
  481.     printf("|Логин          |Пароль         |\n");
  482.     printf("|               |               |\n");
  483.     printf("---------------------------------\n");
  484.     for (i = 0; i < users_count; i++) {
  485.         printf("|%s", users[i].login);
  486.         for (j = 0; j < 15 - (int)strlen(users[i].login); j++) {
  487.             printf(" ");
  488.         }
  489.         printf("|");
  490.         printf("%s", users[i].password);
  491.         for (j = 0; j < 15 - (int)strlen(users[i].password); j++) {
  492.             printf(" ");
  493.         }
  494.         printf("|\n");
  495.         printf("---------------------------------\n");
  496.     }
  497.     system("pause");
  498. }
  499. void change_list() {
  500.     printf("Номер листа\n");
  501.     char nomer[100];
  502.     char string[100];
  503.     char swtch;
  504.     scanf_s("%s", &nomer, 100);
  505.     for (i = 0; i < list_count; i++) {
  506.         if (strcmp(nomer, list[i].nomer) == 0) {
  507.             printf("1)Номер\n");
  508.             printf("2)Организацию\n");
  509.             printf("3)Работника\n");
  510.             printf("4)Начало случая\n");
  511.             printf("5)Конец случая\n");
  512.             printf("6)Название болезни\n");
  513.             printf("7)Дату предъявления\n");
  514.             printf("8)Выход\n");
  515.             scanf_s(" %c", &swtch, 1);
  516.             switch (swtch) {
  517.             case '1':
  518.                 printf("Новый номер\n");
  519.                 scanf_s("%s", &list[i].nomer, 100);
  520.                 write_list();
  521.                 return;
  522.             case '2':
  523.                 printf("Новая организация\n");
  524.                 scanf_s("%s", &list[i].org, 100);
  525.                 write_list();
  526.                 return;
  527.             case '3':
  528.                 printf("Новый работник\n");
  529.                 scanf_s("%s", &list[i].rabotnik, 100);
  530.                 write_list();
  531.                 return;
  532.             case '4':
  533.                 printf("Новое начало случая\n");
  534.                 scanf_s("%s", &list[i].period1, 100);
  535.                 string[0] = ' ';
  536.                 string[1] = ' ';
  537.                 string[2] = ' ';
  538.                 string[3] = ' ';
  539.                 string[4] = ' ';
  540.                 string[0] = list[i].period1[0];
  541.                 string[1] = list[i].period1[1];
  542.                 if (atoi(string) > 31) {
  543.                     printf("День больше 31\n");
  544.                     system("pause");
  545.                     return;
  546.                 }
  547.                 string[0] = list[i].period1[3];
  548.                 string[1] = list[i].period1[4];
  549.                 if (atoi(string) > 12) {
  550.                     printf("Месяц больше 12\n");
  551.                     system("pause");
  552.                     return;
  553.                 }
  554.                 string[0] = list[i].period1[6];
  555.                 string[1] = list[i].period1[7];
  556.                 string[2] = list[i].period1[8];
  557.                 string[3] = list[i].period1[9];
  558.                 if (atoi(string) > 2019) {
  559.                     printf("Год больше 2019\n");
  560.                     system("pause");
  561.                     return;
  562.                 }
  563.                 if (atoi(string) < 1000) {
  564.                     printf("Год меньше 1000\n");
  565.                     system("pause");
  566.                     return;
  567.                 }
  568.                 write_list();
  569.                 return;
  570.             case '5':
  571.                 printf("Новый конец случая\n");
  572.                 scanf_s("%s", &list[i].period2, 100);
  573.                 string[0] = ' ';
  574.                 string[1] = ' ';
  575.                 string[2] = ' ';
  576.                 string[3] = ' ';
  577.                 string[4] = ' ';
  578.                 string[0] = list[i].period2[0];
  579.                 string[1] = list[i].period2[1];
  580.                 if (atoi(string) > 31) {
  581.                     printf("День больше 31\n");
  582.                     system("pause");
  583.                     return;
  584.                 }
  585.                 string[0] = list[i].period2[3];
  586.                 string[1] = list[i].period2[4];
  587.                 if (atoi(string) > 12) {
  588.                     printf("Месяц больше 12\n");
  589.                     system("pause");
  590.                     return;
  591.                 }
  592.                 string[0] = list[i].period2[6];
  593.                 string[1] = list[i].period2[7];
  594.                 string[2] = list[i].period2[8];
  595.                 string[3] = list[i].period2[9];
  596.                 if (atoi(string) > 2019) {
  597.                     printf("Год больше 2019\n");
  598.                     system("pause");
  599.                     return;
  600.                 }
  601.                 if (atoi(string) < 1000) {
  602.                     printf("Год меньше 1000\n");
  603.                     system("pause");
  604.                     return;
  605.                 }
  606.                 write_list();
  607.                 return;
  608.             case '6':
  609.                 printf("Новый название болезни\n");
  610.                 scanf_s("%s", &list[i].nazvanie, 100);
  611.                 write_list();
  612.                 return;
  613.             case '7':
  614.                 printf("Новая дата предъявления\n");
  615.                 scanf_s("%s", &list[i].data_predyavleniya, 100);
  616.                 string[0] = ' ';
  617.                 string[1] = ' ';
  618.                 string[2] = ' ';
  619.                 string[3] = ' ';
  620.                 string[4] = ' ';
  621.                 string[0] = list[list_count].data_predyavleniya[0];
  622.                 string[1] = list[list_count].data_predyavleniya[1];
  623.                 if (atoi(string) > 31) {
  624.                     printf("День больше 31\n");
  625.                     system("pause");
  626.                     return;
  627.                 }
  628.                 string[0] = list[list_count].data_predyavleniya[3];
  629.                 string[1] = list[list_count].data_predyavleniya[4];
  630.                 if (atoi(string) > 12) {
  631.                     printf("Месяц больше 12\n");
  632.                     system("pause");
  633.                     return;
  634.                 }
  635.                 string[0] = list[list_count].data_predyavleniya[6];
  636.                 string[1] = list[list_count].data_predyavleniya[7];
  637.                 string[2] = list[list_count].data_predyavleniya[8];
  638.                 string[3] = list[list_count].data_predyavleniya[9];
  639.                 if (atoi(string) > 2019) {
  640.                     printf("Год больше 2019\n");
  641.                     system("pause");
  642.                     return;
  643.                 }
  644.                 if (atoi(string) < 1000) {
  645.                     printf("Год меньше 1000\n");
  646.                     system("pause");
  647.                     return;
  648.                 }
  649.                 if (list[i].data_predyavleniya[2] != '.') {
  650.                     for (i = 8; i > 0; i--) {
  651.                         list[i].data_predyavleniya[i] = list[i].data_predyavleniya[i - 1];
  652.                     }
  653.                     list[i].data_predyavleniya[2] = '.';
  654.                     list[i].data_predyavleniya[0] = '0';
  655.                 }
  656.                 if (list[i].data_predyavleniya[5] != '.') {
  657.                     for (i = 9; i > 3; i--) {
  658.                         list[i].data_predyavleniya[i] = list[i].data_predyavleniya[i - 1];
  659.                     }
  660.                     list[i].data_predyavleniya[3] = '0';
  661.                     list[i].data_predyavleniya[5] = '.';
  662.                 }
  663.                 list[i].data_predyavleniya[10] = '\0';
  664.                 write_list();
  665.                 return;
  666.             case '8':
  667.                 return;
  668.             default:
  669.                 printf("Ошибка\n");
  670.                 system("pause");
  671.                 return;
  672.             }
  673.         }
  674.     }
  675. }
  676. void search_list() {
  677.     int q = 1;
  678.     char swtch;
  679.     char str[100];
  680.     while (q) {
  681.         system("cls");
  682.         printf("1)Номер\n");
  683.         printf("2)Организацию\n");
  684.         printf("3)Работника\n");
  685.         printf("4)Начало случая\n");
  686.         printf("5)Конец случая\n");
  687.         printf("6)Название болезни\n");
  688.         printf("7)Дату предъявления\n");
  689.         printf("8)Выход\n");
  690.         scanf_s(" %c", &swtch, 1);
  691.         switch (swtch) {
  692.         case '1':
  693.             printf("Введите номер\n");
  694.             scanf_s("%s", &str, 100);
  695.             for (i = 0; i < list_count; i++) {
  696.                 if (strcmp(str, list[i].nomer) == 0) {
  697.                     printf("----------------------------------\n");
  698.                     printf("Номер: %s\nОрганизация: %s\nРаботник: %s\nПериод нетрудоспособности: %s-%s\nНазвание болезни: %s\nДата предъявления: %s\n", list[i].nomer, list[i].org, list[i].rabotnik, list[i].period1, list[i].period2, list[i].nazvanie, list[i].data_predyavleniya);
  699.                 }
  700.             }
  701.             break;
  702.         case '2':
  703.             printf("Введите организацию\n");
  704.             scanf_s("%s", &str, 100);
  705.             for (i = 0; i < list_count; i++) {
  706.                 if (strcmp(str, list[i].org) == 0) {
  707.                     printf("----------------------------------\n");
  708.                     printf("Номер: %s\nОрганизация: %s\nРаботник: %s\nПериод нетрудоспособности: %s-%s\nНазвание болезни: %s\nДата предъявления: %s\n", list[i].nomer, list[i].org, list[i].rabotnik, list[i].period1, list[i].period2, list[i].nazvanie, list[i].data_predyavleniya);
  709.                 }
  710.             }
  711.             break;
  712.         case '3':
  713.             printf("Введите работника\n");
  714.             scanf_s("%s", &str, 100);
  715.             for (i = 0; i < list_count; i++) {
  716.                 if (strcmp(str, list[i].rabotnik) == 0) {
  717.                     printf("----------------------------------\n");
  718.                     printf("Номер: %s\nОрганизация: %s\nРаботник: %s\nПериод нетрудоспособности: %s-%s\nНазвание болезни: %s\nДата предъявления: %s\n", list[i].nomer, list[i].org, list[i].rabotnik, list[i].period1, list[i].period2, list[i].nazvanie, list[i].data_predyavleniya);
  719.                 }
  720.             }
  721.             break;
  722.         case '4':
  723.             printf("Введите начало случая\n");
  724.             scanf_s("%s", &str, 100);
  725.             for (i = 0; i < list_count; i++) {
  726.                 if (strcmp(str, list[i].period1) == 0) {
  727.                     printf("----------------------------------\n");
  728.                     printf("Номер: %s\nОрганизация: %s\nРаботник: %s\nПериод нетрудоспособности: %s-%s\nНазвание болезни: %s\nДата предъявления: %s\n", list[i].nomer, list[i].org, list[i].rabotnik, list[i].period1, list[i].period2, list[i].nazvanie, list[i].data_predyavleniya);
  729.                 }
  730.             }
  731.             break;
  732.         case '5':
  733.             printf("Введите конец случая\n");
  734.             scanf_s("%s", &str, 100);
  735.             for (i = 0; i < list_count; i++) {
  736.                 if (strcmp(str, list[i].period2) == 0) {
  737.                     printf("----------------------------------\n");
  738.                     printf("Номер: %s\nОрганизация: %s\nРаботник: %s\nПериод нетрудоспособности: %s-%s\nНазвание болезни: %s\nДата предъявления: %s\n", list[i].nomer, list[i].org, list[i].rabotnik, list[i].period1, list[i].period2, list[i].nazvanie, list[i].data_predyavleniya);
  739.                 }
  740.             }
  741.             break;
  742.         case '6':
  743.             printf("Введите название болезни\n");
  744.             scanf_s("%s", &str, 100);
  745.             for (i = 0; i < list_count; i++) {
  746.                 if (strcmp(str, list[i].nazvanie) == 0) {
  747.                     printf("----------------------------------\n");
  748.                     printf("Номер: %s\nОрганизация: %s\nРаботник: %s\nПериод нетрудоспособности: %s-%s\nНазвание болезни: %s\nДата предъявления: %s\n", list[i].nomer, list[i].org, list[i].rabotnik, list[i].period1, list[i].period2, list[i].nazvanie, list[i].data_predyavleniya);
  749.                 }
  750.             }
  751.             break;
  752.         case '7':
  753.             printf("Введите дату предъявления\n");
  754.             scanf_s("%s", &str, 100);
  755.             for (i = 0; i < list_count; i++) {
  756.                 if (strcmp(str, list[i].data_predyavleniya) == 0) {
  757.                     printf("----------------------------------\n");
  758.                     printf("Номер: %s\nОрганизация: %s\nРаботник: %s\nПериод нетрудоспособности: %s-%s\nНазвание болезни: %s\nДата предъявления: %s\n", list[i].nomer, list[i].org, list[i].rabotnik, list[i].period1, list[i].period2, list[i].nazvanie, list[i].data_predyavleniya);
  759.                 }
  760.             }
  761.             break;
  762.         case '8':
  763.             return;
  764.         default:
  765.             break;
  766.         }
  767.         system("pause");
  768.     }
  769. }
  770.  
  771. void ind_zadanie() {
  772.     int i, j;
  773.     int massiv[100];
  774.     for (i = 0; i < list_count; i++) {
  775.         massiv[i] = 0;
  776.     }
  777.     for (i = 0; i < list_count; i++) {
  778.         for (j = 0; j < list_count; j++) {
  779.             if (strcmp(list[i].nazvanie, list[j].nazvanie) == 0) {
  780.                 massiv[i]++;
  781.             }
  782.         }
  783.     }
  784.     int tmp;
  785.     List temp;
  786.     int index;
  787.     for (i = 0; i < list_count - 1; i++) {
  788.         index = i;
  789.         for (j = i + 1; j < list_count; j++) {
  790.             if (massiv[j] > massiv[index]) {
  791.                 index = j;
  792.             }
  793.         }
  794.         temp = list[index];
  795.         tmp = massiv[index];
  796.         list[index] = list[i];
  797.         massiv[index] = massiv[i];
  798.         list[i] = temp;
  799.         massiv[i] = tmp;
  800.     }
  801.     if (list_count < 1)
  802.     {
  803.         printf("Нет ни одного больничного\n");
  804.         system("pause");
  805.         return;
  806.     }
  807.     printf("1 - %s\n", list[0].nazvanie);
  808.     for (i = 1; i < list_count; i++) {
  809.         if (strcmp(list[i].nazvanie, list[0].nazvanie) != 0) {
  810.             printf("2 - %s\n", list[i].nazvanie);
  811.             break;
  812.         }
  813.     }
  814.     for (j = 1; j < list_count; j++) {
  815.         if (strcmp(list[j].nazvanie, list[0].nazvanie) != 0 && strcmp(list[j].nazvanie, list[i].nazvanie) != 0) {
  816.             printf("3 - %s\n", list[j].nazvanie);
  817.             break;
  818.         }
  819.     }
  820.     system("pause");
  821. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement