Advertisement
Guest User

Untitled

a guest
Mar 22nd, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.25 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include <windows.h>
  5. #include <string.h>
  6.  
  7. void menu(void);
  8. void vvod(void);
  9. void sort(void);
  10. void search(void);
  11. void change(void);
  12. void deletee(void);
  13. void vivod(void);
  14.  
  15. int structsize=0,i,j,k,kol,q,intbuf;
  16. char choice,buffer[30],check;
  17. FILE *out;
  18.  
  19. /*
  20. регистрационный номер автомобиля
  21. марка
  22. пробег
  23. мастер выполнивший ремонт
  24. сумма ремонта.
  25. */
  26.  
  27. struct struct1{
  28.     char marka[30],master[30],nomer[30];
  29.     int probeg,sum;
  30. };
  31.  
  32. struct struct1 avtoservis[50];
  33. struct struct1 tmp;
  34.  
  35. void fileop(void){
  36.     if (!(out=fopen("file", "w+"))){    
  37.         printf("Невозможно создать/открыть файл\n"); return;
  38.     }
  39.     for (i=0;i<structsize;i++){
  40.         fprintf(out ,"%s\n%s\n%d км\n%s\n%d руб.\n\n", avtoservis[i].nomer, avtoservis[i].marka, avtoservis[i].probeg, avtoservis[i].master, avtoservis[i].sum);
  41.     }
  42.     fclose(out);
  43.     return;
  44. }
  45.  
  46. int main(void){
  47.     SetConsoleCP (1251);
  48.     SetConsoleOutputCP (1251);
  49.     menu();
  50.     return 0;
  51. }
  52.  
  53. void menu(void){
  54.     while (1){
  55.         printf("1)Ввод\n2)Сортировка по сумме\n3)Поиск\n4)Изменение\n5)Удаление\n6)Распечатать содержимое файла\n7)Выход\n");
  56.         scanf(" %c", &choice);
  57.         switch (choice)
  58.         {
  59.             case '1':
  60.                 vvod();
  61.                 fileop();
  62.                 break;
  63.             case '2':
  64.                 if (structsize<1){
  65.                     printf("создайте массив!\n");
  66.                     break;
  67.                 }
  68.                 sort();
  69.                 fileop();
  70.                 break;
  71.             case '3':
  72.                 if (structsize<1){
  73.                     printf("создайте массив!\n");
  74.                     break;
  75.                 }
  76.                 search();
  77.                 fileop();
  78.                 break;
  79.             case '4':
  80.                 if (structsize<1){
  81.                     printf("создайте массив!\n");
  82.                     break;
  83.                 }
  84.                 change();
  85.                 fileop();
  86.                 break;
  87.             case '5':
  88.                 if (structsize<1){
  89.                     printf("создайте массив!\n");
  90.                     break;
  91.                 }
  92.                 deletee();
  93.                 fileop();
  94.                 break;
  95.             case '6':
  96.                 if (structsize<1){
  97.                     printf("создайте массив!\n");
  98.                     break;
  99.                 }
  100.                 vivod();
  101.                 fileop();
  102.                 break;
  103.             case '7':
  104.                 return;
  105.             default:
  106.                 printf("ошибка\n");
  107.                 break;
  108.         }  
  109.     }
  110.     return;
  111. }
  112.  
  113. void vvod(void){
  114.         while (1){
  115.             printf("#%d\n", structsize+1);
  116.             printf("Введите номер: ");
  117.             scanf("%s", &avtoservis[structsize].nomer);
  118.             printf("Введите марку: ");
  119.             scanf("%s", &avtoservis[structsize].marka);
  120.             printf("Введите пробег: ");
  121.             scanf("%d", &avtoservis[structsize].probeg);
  122.             printf("Введите имя мастера: ");
  123.             scanf("%s", &avtoservis[structsize].master);
  124.             printf("Введите сумму ремонта: ");
  125.             scanf("%d", &avtoservis[i].sum);
  126.             structsize++;
  127.             printf("\n1)Добавить еще структуру\n2)Прекратить ввод\n");
  128.             scanf(" %c", &choice);
  129.             switch (choice){
  130.             case '1':
  131.                 printf("#%d\n", structsize+1);
  132.                 printf("Введите номер: ");
  133.                 scanf("%s", &avtoservis[structsize].nomer);
  134.                 printf("Введите марку: ");
  135.                 scanf("%s", &avtoservis[structsize].marka);
  136.                 printf("Введите пробег: ");
  137.                 scanf("%d", &avtoservis[structsize].probeg);
  138.                 printf("Введите имя мастера: ");
  139.                 scanf("%s", &avtoservis[structsize].master);
  140.                 printf("Введите сумму ремонта: ");
  141.                 scanf("%d", &avtoservis[i].sum);
  142.                 structsize++;
  143.                 break;
  144.             case '2':
  145.                 return;
  146.             default:
  147.                 printf("Неверное значение\n");
  148.                 break;
  149.             }
  150.         }
  151.     return;
  152. }
  153.  
  154. void sort(void){
  155.     for (i=0;i<structsize;i++){
  156.         for (j=0;j<structsize;j++){
  157.                 if (avtoservis[i].sum>avtoservis[j].sum){
  158.                     tmp=avtoservis[j];
  159.                     avtoservis[j]=avtoservis[i];
  160.                     avtoservis[i]=tmp;
  161.                 }
  162.             }  
  163.         }
  164.     return;
  165. }
  166.  
  167. void search(void){
  168.     printf("Искать по\n1)Марке\n2)Мастеру\n3)Номеру\n4)Сумме ремонта\n5)Пробегу\n");
  169.     scanf(" %c", &choice);
  170.     char searchvar[30];
  171.     int flag=0,searchint;
  172.     switch (choice)
  173.     {
  174.         case '1':
  175.             kol=0;
  176.             printf("Какому?\n");
  177.             scanf("%s", &searchvar);
  178.             puts("");
  179.             for (i=0;i<structsize;i++){
  180.                 if (strcmp(searchvar, avtoservis[i].marka)==0){
  181.                     kol++;
  182.                     printf("%s\n%s\n%d км\n%s\n%d руб.\n\n", avtoservis[i].nomer, avtoservis[i].marka, avtoservis[i].probeg, avtoservis[i].master, avtoservis[i].sum);
  183.                 }
  184.             }
  185.             break;
  186.         case '2':
  187.             kol=0;
  188.             printf("Какому?\n");
  189.             scanf("%s", &searchvar);
  190.             puts("");
  191.             for (i=0;i<structsize;i++){
  192.                 if (strcmp(searchvar, avtoservis[i].master)==0){
  193.                     kol++;
  194.                     printf("%s\n%s\n%d км\n%s\n%d руб.\n\n", avtoservis[i].nomer, avtoservis[i].marka, avtoservis[i].probeg, avtoservis[i].master, avtoservis[i].sum);
  195.                 }
  196.             }
  197.             break;
  198.         case '3':
  199.             kol=0;
  200.             printf("Какому?\n");
  201.             scanf("%s", &searchvar);
  202.             puts("");
  203.             for (i=0;i<structsize;i++){
  204.                 if (strcmp(searchvar, avtoservis[i].nomer)==0){
  205.                     kol++;
  206.                     printf("%s\n%s\n%d км\n%s\n%d руб.\n\n", avtoservis[i].nomer, avtoservis[i].marka, avtoservis[i].probeg, avtoservis[i].master, avtoservis[i].sum);
  207.                 }
  208.             }
  209.             break;
  210.         case '4':
  211.             kol=0;
  212.             printf("Какой?\n");
  213.             scanf("%d", &searchint);
  214.             puts("");
  215.             for (i=0;i<structsize;i++){
  216.                 if (avtoservis[i].sum==searchint){
  217.                     kol++;
  218.                     printf("%s\n%s\n%d км\n%s\n%d руб.\n\n", avtoservis[i].nomer, avtoservis[i].marka, avtoservis[i].probeg, avtoservis[i].master, avtoservis[i].sum);
  219.                 }
  220.             }
  221.             break;
  222.         case '5':
  223.             kol=0;
  224.             printf("Какому?\n");
  225.             scanf("%d", &searchint);
  226.             puts("");
  227.             for (i=0;i<structsize;i++){
  228.                 if (avtoservis[i].probeg==searchint){
  229.                     kol++;
  230.                     printf("%s\n%s\n%d км\n%s\n%d руб.\n\n", avtoservis[i].nomer, avtoservis[i].marka, avtoservis[i].probeg, avtoservis[i].master, avtoservis[i].sum);
  231.                 }
  232.             }
  233.             break;
  234.     }
  235.     return;
  236. }
  237.  
  238. void change(void){
  239.     printf("\nИзменить структуру #");
  240.     scanf("%d", &i);
  241.     if (i<1 || i>structsize){
  242.         printf("Такой структуры не существует\n");
  243.         return;
  244.     }
  245.     printf("1)Фамилию\n2)Имя\n3)Отчество\n4)Домашний адрес\n5)Группу\n6)Рейтинг\n");
  246.     scanf(" %c", &choice);
  247.     switch (choice)
  248.     {
  249.         case '1':
  250.             printf("Введите марку: ");
  251.             scanf("%s", &avtoservis[i-1].marka);
  252.             break;
  253.         case '2':
  254.             printf("Введите имя мастера: ");
  255.             scanf("%s", &avtoservis[i-1].master);
  256.             break;
  257.         case '3':
  258.             printf("Введите номер: ");
  259.             scanf("%s", &avtoservis[i-1].nomer);
  260.             break;
  261.         case '4':
  262.             printf("Введите сумму ремонта: ");
  263.             scanf("%d", &avtoservis[i-1].sum);
  264.             break;
  265.         case '5':
  266.             printf("Введите пробег: ");
  267.             scanf("%d", &avtoservis[i-1].probeg);
  268.             break;
  269.         default:
  270.             printf("ошибка\n");
  271.             break;
  272.     }
  273.     return;
  274. }
  275.  
  276. void deletee(void){
  277.     printf("Удалить структуру #");
  278.     scanf("%d", &j);
  279.     if (j<1 || j>structsize){
  280.         printf("Такой структуры не существует\n");
  281.         return;
  282.     }
  283.     structsize--;
  284.     if (structsize==0){
  285.         printf("Массив удален\n");
  286.     }
  287.     for (i=j-1;i<structsize;i++){
  288.         avtoservis[i]=avtoservis[i+1];
  289.     }
  290.     return;
  291. }
  292.  
  293. void vivod(void){
  294.     for (i=0;i<structsize;i++){
  295.         printf("%s\n%s\n%d км\n%s\n%d руб.\n\n", avtoservis[i].nomer, avtoservis[i].marka, avtoservis[i].probeg, avtoservis[i].master, avtoservis[i].sum);
  296.     }
  297.     return;
  298. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement