Advertisement
Guest User

Untitled

a guest
Jan 21st, 2019
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.52 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement