daily pastebin goal
42%
SHARE
TWEET

Untitled

a guest Jan 21st, 2019 57 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <time.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>//Для exit
  4. #include <stdbool.h>
  5. #include <string.h>
  6. #include<locale.h>
  7.  
  8.  
  9. int xsize = 100;//Размер склада                     //Для изменения размера парковки, его нужно поменять в этой строке
  10. int freespace = 100;//Свободные места                     //И в этой
  11. int price;//Цена за хранение посылки на складе
  12. int polki = 10;
  13. int polet = 45;
  14. int stelash = 30;
  15. int postsize;
  16. //
  17. struct Post                                 //
  18. {                                       //
  19.     char id[7];//Номер посылки                          //
  20.     bool busy;//Свободно или занято                        //
  21.     char surname[11];//Марка авто      фамилия получетеля                 //
  22.     char postname[10];//Цвет авто       название посылки                 //
  23.     int time;//Время  
  24.     char position[10]; //расположение посылки
  25.     char postsize1[10];
  26. } space[100];                                   //И в этой строке тоже 
  27. void New();
  28. void Out();
  29. int Search();
  30. void Get();
  31. void Fileout();
  32. void Filein();
  33. int main()
  34. {
  35.     setlocale(LC_ALL, "Russian");
  36.     short int mode;
  37.     while (1)
  38.     {
  39.         system("clear");
  40.         printf("================================================================");
  41.         printf("\nНа складе %i свободных мест из %i.\n\n", freespace, xsize);
  42.         printf("Выберите действие и введите соответствующую команду.\n1 - Ввести данные новой посылки.\n2 - Стереть данные посылки\n");
  43.         printf("3 - Открыть данные о занятых местах на складе.\n4 - Загрузить данные о местах с компьютера.\n");
  44.         printf("0 - Чтобы закрыть программу.\n\nДействие:\t");
  45.         scanf("%hd", &mode);
  46.         getchar();
  47.         switch (mode)
  48.         {
  49.         case 1:
  50.             New();
  51.             break;
  52.         case 2:
  53.             Out();
  54.             break;
  55.         case 3:
  56.             Get();
  57.             break;
  58.         case 4:
  59.             Filein();
  60.             break;
  61.         default:
  62.             printf("\nХотите сохранить данные в файл перед выходом? (Введите: 1 - Да, 0 - Нет)\nДействие:\t");
  63.             scanf("%hd", &mode);
  64.  
  65.             if (mode == 1) {
  66.                 if (freespace == xsize) printf("\n Данные отсутствуют.\n");
  67.                 else Fileout();
  68.             }
  69.             printf("\nДо встречи!\n\n");
  70.             exit(0);
  71.         }
  72.     }
  73.     return 0;
  74. }
  75. void Out()
  76. {
  77.     if (freespace < xsize)
  78.     {
  79.         int i;
  80.         printf("Введите номер освобожденного места на складе: ");
  81.         scanf("%i", &i);
  82.         i--;
  83.         space[i].busy = 0;
  84.         freespace++;
  85.         postsize == (int) space[i].postsize1;
  86.         if (postsize <= polki) {
  87.             price = (((time(NULL) - space[i].time) / 60 + 1) / 60 + 1) * polki;
  88.             printf("Посылка была расположена на полках: ");
  89.         }
  90.         if (postsize > polki && postsize <= stelash) {
  91.             price = (((time(NULL) - space[i].time) / 60 + 1) / 60 + 1) * stelash;
  92.             printf("Посылка была расположена на стелажах: ");
  93.         }
  94.         if (postsize > stelash && postsize <= polet) {
  95.             price = (((time(NULL) - space[i].time) / 60 + 1) / 60 + 1) * polet;
  96.             printf("Посылка была расположена на полетах: ");
  97.         }
  98.         //price = (((time(NULL) - space[i].time) / 60 + 1) / 60 + 1) * polet;
  99.         printf("\nК оплате: %i руб.\n", price);
  100.         printf("\n(По завершении оплаты нажмите на Enter)");
  101.         getchar();
  102.         getchar();
  103.     }
  104.     else
  105.     {
  106.         printf("\nОтсутствует на складе\n\n(Нажмите Enter)");
  107.         getchar();
  108.         getchar();
  109.     }
  110. }
  111. void New()
  112. {
  113.     if (freespace > 0)
  114.     {
  115.         int i = Search();
  116.         space[i].time = time(NULL);
  117.         printf("\nВведите данные посылки.\n\tНомер:\t");
  118.         scanf("%s", space[i].id);
  119.         printf("\tФамилию получателя:\t");
  120.         scanf("%s", space[i].surname);
  121.         printf("\tНазвание посылки:\t");
  122.         scanf("%s", space[i].postname);
  123.         printf("\tРазмер посылки:\t");
  124.         scanf("%d", space[i].postsize1);
  125.         space[i].busy = 1;
  126.         freespace--;
  127.         printf("Складеное место номер: %i\n", i + 1);
  128.         printf("\n(Нажмите на Enter)");
  129.         getchar();
  130.         getchar();
  131.     }
  132.     else
  133.     {
  134.         printf("\nСвободных мест нет!\n\n(Нажмите на Enter)");
  135.         getchar();
  136.         getchar();
  137.     }
  138. }
  139. int Search()
  140. {
  141.     int i;
  142.     for (i = 0; i < xsize; i++)
  143.     {
  144.         if (space[i].busy == 0)
  145.             break;
  146.     }
  147.     return i;
  148. }
  149. void Get()
  150. {
  151.     int md;//Режим
  152.     printf("\nИнформация о посылках на складе:\n");
  153.     if (freespace < xsize)
  154.     {
  155.         printf("\n%s%s%s%-15s%s\n", "№ места ", "Фамилия\t    ", "Название посылки      ", "№ посылки  ", "Время(мин.)", "Размер посылки");
  156.         for (int i = 0; i < xsize; i++)
  157.         {
  158.             if (space[i].busy == 1)
  159.                 printf("%-8i%-12s%-10s%-14s%ld\n", i + 1, space[i].surname, space[i].postname, space[i].id, (time(NULL) - space[i].time) / 60 + 1, space[i].postsize1);
  160.         }
  161.         printf("\nВведите 1, если хотите сохранить информацию о посетителях в файл.\n");
  162.         printf("\nДействие:\t");
  163.         scanf("%i", &md);
  164.         if (md == 1) Fileout();
  165.     }
  166.     else
  167.     {
  168.         printf("\nНет посылок.\n");
  169.     }
  170.     printf("\n\n(Нажмите Enter)");
  171.     getchar();
  172.     getchar();
  173. }
  174. void Fileout()
  175. {
  176.     FILE *Pd = fopen("PostData.txt", "w");
  177.     fprintf(Pd, "Информация о посылках на скаде:\n\n");
  178.     fprintf(Pd, "№ места Фамилия\t    Название посылки      № посылки  Время(мин.)  Размер посылки *data\n");
  179.     for (int i = 0; i < xsize; i++)
  180.     {
  181.         if (space[i].busy == 1)
  182.             fprintf(Pd, "%-8i%-12s%-10s%-14s%ld\n", i + 1, space[i].surname, space[i].postname, space[i].id, (time(NULL) - space[i].time) / 60 + 1, space[i].postsize1);
  183.     }
  184.  
  185.  
  186.     fclose(Pd);
  187.     printf("Данные сохранены в файле PostData.txt в папке с программой.\n");
  188. }
  189. void Filein()
  190. {
  191.     int md;
  192.     printf("\n================================================================");
  193.     printf("\nВнимание!\nФайлы, вводимые с компьютера и содержащие данные, должны быть должным образом отформатированы!\n");
  194.     printf("================================================================");
  195.  
  196.     printf("\n\nЧтобы посмотреть указания к форматированию, введите 1. Иначе введите что-то другое.\n\nДействие:\t");
  197.     scanf("%i", &md);
  198.     if (md == 1)
  199.     {
  200.         system("clear");
  201.         printf("================================================================");
  202.         printf("\n  Указания к форматированию загружаемого файла:\n\n\t1/ Файл для загрузки должен быть сохранен с расширением (.txt) в той же папке, что и программа.");
  203.         printf("\n\n\t2/ Начало списка данных в файле должно быть обозначено специальным маркером (*data), после которого непосредственно начинается список данных.");
  204.         printf("\n\n\t3/ Каждая строка соответствует набору данных одного места на складе. Данные должны заполняться в определенном порядке и разделяться одним или несколькими пробелами.");
  205.         printf("\n\t Порядок заполнения данных: № места Фамилия    Название посылки      № посылки  Время(мин.)  Размер посылки");
  206.         printf("\n\t Параметр \"Время\" должен быть выражен натуральным числом (минут).");
  207.         printf("\n\n\t5/ После списка данных в файле не долно быть записано ничего.");
  208.         printf("\n\n  Пример содержания файла с данными:\n\n");
  209.         printf("\n\nВы действительно хотите загрузить файл с данными с компьютера? Введите 1, если да, иначе введите что-то другое.\n\nДействие\t");
  210.         scanf("%i", &md);
  211.         if (md == 1)
  212.         {
  213.             system("clear");
  214.             printf("================================================================\n");
  215.             char name[20];
  216.             printf("Ведите имя файла с расширением (он должен располагаться в папке с программой).\n\nИмя файла:\t");
  217.             scanf("%s", name);
  218.             FILE *Pd = fopen(name, "r");
  219.             char s[20];
  220.             fscanf(Pd, "%s", s);
  221.             for (; strcmp(s, "*data");) {
  222.                 fscanf(Pd, "%s ", s);
  223.             }
  224.             for (int i = 0; i < xsize; i++)
  225.             {
  226.                 if (space[i].busy == 0)
  227.                 {
  228.                     space[i].busy = 1;
  229.                     freespace--;
  230.                     fscanf(Pd, "%s", s);
  231.                     if (feof(Pd)) {
  232.                         space[i].busy = 0;
  233.                         freespace++;
  234.                         break;
  235.                     }
  236.                     fscanf(Pd, "%s", space[i].surname);
  237.                     fscanf(Pd, "%s", space[i].postname);
  238.                     fscanf(Pd, "%s", space[i].id);
  239.                     fscanf(Pd, "%i", &space[i].time);
  240.                     //fscanf("%s", space[i].postsize1);
  241.                     space[i].time = time(NULL) - space[i].time * 60;
  242.                 }
  243.             }
  244.             fclose(Pd);
  245.             printf("\nГотово!\a\n");
  246.             printf("\n(Нажмите Enter)");
  247.             getchar();
  248.             getchar();
  249.         }
  250.     }
  251. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top