Advertisement
Guest User

Untitled

a guest
May 20th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.64 KB | None | 0 0
  1. //#pragma once
  2.  
  3. struct magaz{
  4.     char adres[size];
  5.     int open[2];
  6.     int close[2];
  7.     int index_magazin;
  8. };
  9. struct magaz magazin[size];
  10. int magazinIDs=0,magazinSize=0;
  11.  
  12. void chitatMagazin(){
  13.     FILE *file;
  14.     file=fopen("magazin", "rb");
  15.     fread(&magazinSize,sizeof(magazinSize),1,file);
  16.     fread(&magazinIDs,sizeof(magazinIDs),1,file);
  17.     fread(magazin,sizeof(struct magaz),magazinSize,file);
  18.     fclose(file);
  19. }
  20. void pisatMagazin(){
  21.     FILE *file;
  22.     file=fopen("magazin", "w+b");
  23.     fwrite(&magazinSize,sizeof(magazinSize),1,file);
  24.     fwrite(&magazinIDs,sizeof(magazinIDs),1,file);
  25.     fwrite(magazin,sizeof(struct magaz),magazinSize,file);
  26.     fclose(file);
  27. }
  28.  
  29. void dobavitMagazin();
  30. void izmenitMagazin();
  31. void udalitMagazin();
  32. void vivestiMagazin();
  33. void sortirovatMagazini();
  34.  
  35. void menu_mag(){
  36.     while (1){
  37.         cls;
  38.         printf("1 - Добавить\n");
  39.         printf("2 - Изменить\n");
  40.         printf("3 - Удалить\n");
  41.         printf("4 - Вывести\n");
  42.         printf("5 - Отсортировать\n");
  43.         printf("6 - Выход\n");
  44.         switch (_getch()){
  45.             case '1':
  46.                 dobavitMagazin();
  47.                 break;
  48.             case '2':
  49.                 izmenitMagazin();
  50.                 break;
  51.             case '3':
  52.                 udalitMagazin();
  53.                 break;
  54.             case '4':
  55.                 vivestiMagazin();
  56.                 break;
  57.             case '5':
  58.                 sortirovatMagazini();
  59.                 break;
  60.             case '6':
  61.                 return;
  62.                 break;
  63.             default:
  64.                 break;
  65.         }
  66.     }
  67. }
  68.  
  69. void vivestiMagazin(){
  70.     cls;
  71.     printf("__________________________________________________\n");
  72.     printf("|#    |Адрес               |Открытие  |Закрытие  |\n");
  73.     printf("|_____|____________________|__________|__________|\n");
  74.     int i;
  75.     char str[size],str2[size];
  76.     for (i=0;i<magazinSize;i++){
  77.         sprintf(str,"%d", i+1);
  78.         printf("|%5s|", str);
  79.         printf("%20s|", magazin[i].adres);
  80.         sprintf(str,"%d", magazin[i].open[0]);
  81.         strcpy(str2,str);
  82.         sprintf(str,"%d", magazin[i].open[1]);
  83.         strcat(str2,":");
  84.         strcat(str2,str);
  85.         printf("%10s|", str2);
  86.         sprintf(str,"%d", magazin[i].close[0]);
  87.         strcpy(str2,str);
  88.         sprintf(str,"%d", magazin[i].close[1]);
  89.         strcat(str2,":");
  90.         strcat(str2,str);
  91.         printf("%10s|\n", str2);
  92.         printf("|_____|____________________|__________|__________|\n");
  93.     }
  94.     pause;
  95. }
  96.  
  97. void dobavitMagazin(){
  98.     printf("Адрес\n");
  99.     fflush(stdin);
  100.     gets(magazin[magazinSize].adres);
  101.     printf("Время открытия чч:мм\n");
  102.     fflush(stdin);
  103.     scanf("%d:%d", &magazin[magazinSize].open[0], &magazin[magazinSize].open[1]);
  104.     printf("Время закрытия чч:мм\n");
  105.     fflush(stdin);
  106.     scanf("%d:%d", &magazin[magazinSize].close[0], &magazin[magazinSize].close[1]);
  107.     magazin[magazinSize].index_magazin=magazinIDs;
  108.     magazinIDs++;
  109.     magazinSize++;
  110.     pisatMagazin();
  111. }
  112.  
  113. void izmenitMagazin(){
  114.     vivestiMagazin();
  115.     int nomer;
  116.     printf("Номер магазина\n");
  117.     scanf("%d", &nomer);
  118.     nomer--;
  119.     if (nomer>magazinSize || nomer<0){
  120.         printf("Ошибка\n");
  121.         pause;
  122.         return;
  123.     }
  124.     while (1){
  125.         cls;
  126.         printf("1 - Адрес\n");
  127.         printf("2 - Время открытия\n");
  128.         printf("3 - Время закрытия\n");
  129.         printf("4 - Выход\n");
  130.         switch (_getch()){
  131.             case '1':
  132.                 printf("Новый адрес\n");
  133.                 fflush(stdin);
  134.                 gets(magazin[nomer].adres);
  135.                 break;
  136.             case '2':
  137.                 printf("Новое время открытия чч:мм\n");
  138.                 fflush(stdin);
  139.                 scanf("%d:%d", &magazin[nomer].open[0], &magazin[nomer].open[1]);
  140.                 break;
  141.             case '3':
  142.                 printf("Новое время закрытия чч:мм\n");
  143.                 fflush(stdin);
  144.                 scanf("%d:%d", &magazin[nomer].close[0], &magazin[nomer].close[1]);
  145.                 break;
  146.             case '4':
  147.                 pisatMagazin();
  148.                 return;
  149.             default:
  150.                 break;
  151.         }
  152.     }
  153. }
  154.  
  155. void udalitMagazin(){
  156.     vivestiMagazin();
  157.     int nomer;
  158.     printf("Номер магазина\n");
  159.     scanf("%d", &nomer);
  160.     nomer--;
  161.     if (nomer>magazinSize || nomer<0){
  162.         printf("Ошибка\n");
  163.         pause;
  164.         return;
  165.     }
  166.     int i;
  167.     magazinSize--;
  168.     for (i=nomer;i<magazinSize;i++){
  169.         magazin[i]=magazin[i+1];
  170.     }
  171.     pisatMagazin();
  172. }
  173.  
  174. void sortirovatMagazini(){
  175.     cls;
  176.     printf("1 - По адресу\n");
  177.     printf("2 - По времени открытия\n");
  178.     printf("3 - По времени закрытия\n");
  179.     int i,j;
  180.     struct magaz tmp;
  181.     switch (_getch()){
  182.         case '1':
  183.             for (i=0;i<magazinSize;i++){
  184.                 for (j=0;j<magazinSize;j++){
  185.                     if (strcmp(magazin[i].adres,magazin[j].adres)<0){
  186.                         tmp=magazin[i];
  187.                         magazin[i]=magazin[j];
  188.                         magazin[j]=tmp;
  189.                     }
  190.                 }
  191.             }
  192.             break;
  193.         case '2':
  194.             for (i=0;i<magazinSize;i++){
  195.                 for (j=0;j<magazinSize;j++){
  196.                     if (magazin[i].open[0]>magazin[j].open[0]){
  197.                         tmp=magazin[i];
  198.                         magazin[i]=magazin[j];
  199.                         magazin[j]=tmp;
  200.                     }
  201.                     else if (magazin[i].open[0]==magazin[j].open[0] && magazin[i].open[1]>magazin[j].open[1]){
  202.                         tmp=magazin[i];
  203.                         magazin[i]=magazin[j];
  204.                         magazin[j]=tmp;
  205.                     }
  206.                 }
  207.             }
  208.             break;
  209.         case '3':
  210.             for (i=0;i<magazinSize;i++){
  211.                 for (j=0;j<magazinSize;j++){
  212.                     if (magazin[i].close[0]>magazin[j].close[0]){
  213.                         tmp=magazin[i];
  214.                         magazin[i]=magazin[j];
  215.                         magazin[j]=tmp;
  216.                     }
  217.                     else if (magazin[i].close[0]==magazin[j].close[0] && magazin[i].open[1]>magazin[j].open[1]){
  218.                         tmp=magazin[i];
  219.                         magazin[i]=magazin[j];
  220.                         magazin[j]=tmp;
  221.                     }
  222.                 }
  223.             }
  224.             break;
  225.         default:
  226.             printf("Ошибка\n");
  227.             pause;
  228.             break;
  229.     }
  230.     pisatMagazin();
  231.     vivestiMagazin();
  232. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement