Advertisement
Underhing

ЯВУ.ЛАБ.12

May 26th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.00 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define M 7
  6. #define N 33
  7.  
  8. struct magazin {
  9.  
  10. char name[N];
  11. char shop[N];
  12. unsigned int price;
  13. };
  14. typedef struct magazin magazin;
  15.  
  16. int main() {
  17. magazin * x, b;
  18. FILE * file;
  19. FILE * fp;
  20.  
  21. int p, t, whattodo;
  22. int m = 7;
  23. int i = 0, f = 0;
  24. char limit[N];
  25.  
  26. x = (magazin * ) malloc(M * sizeof(magazin));
  27.  
  28. printf("\033[1;33mПРОГРАММА ДЛЯ ПОИСКА ТОВАРА В МАГАЗИНАХ\033[0m\n");
  29. printf("Выберите режим работы:\n1) Выводить информацию по столбцам 2) Выводить информацию по номеру\n");
  30. printf("Введите номер: ");
  31. scanf("%d", & whattodo);
  32.  
  33. //////////////////Часть для поиска номеров поезда//////////////////////
  34. printf("----{Поиск данных из структуры}----- \n(1) - Товар, (2) - Магазин, (3) - Цена\nВыберите номер: ");
  35. scanf("%d", & t);
  36.  
  37. file = fopen("magazin.txt", "r");
  38.  
  39. printf("---{СТРУКТУРА}---\n");
  40.  
  41. while ((fscanf(file, "%s%s%d", x[i].name, x[i].shop, & x[i].price)) != EOF) {
  42. if (whattodo == 2) {
  43. switch (t) {
  44. case 1:
  45. printf("{%d} %s\t\n", i + 1, x[i].name);
  46. break;
  47. case 2:
  48. printf("{%d} %s\t\n", i + 1, x[i].shop);
  49. break;
  50. case 3:
  51. printf("{%d} %d\t\n", i + 1, x[i].price);
  52. break;
  53.  
  54. }
  55. } else {
  56. printf("{%d} %s\t%s\t%d\n", i + 1, x[i].name, x[i].shop, x[i].price);
  57. }
  58.  
  59. i++;
  60. }
  61.  
  62. fclose(file);
  63. fp = fopen("magazin.dat", "wb");
  64. fwrite( & m, sizeof(int), 1, fp);
  65.  
  66. for (i = 0; i < M; i++) {
  67. fwrite( & x[i], sizeof(magazin), 1, fp);
  68. }
  69.  
  70. fclose(fp);
  71.  
  72. fp = fopen("magazin.dat", "rb");
  73. fread( & m, sizeof(int), 1, fp);
  74.  
  75. if (whattodo == 2) {
  76. printf("Введите номер строчки для просмотра информации: ");
  77. scanf("%d", & p);
  78. }
  79. fseek(fp, (p - 1) * sizeof(magazin), SEEK_CUR);
  80. fread( & b, sizeof(magazin), 1, fp);
  81.  
  82. if (whattodo == 1) {
  83. if (t == 1) {
  84. for (i = 0; i < M; i++) {
  85. printf("Товар: %s\n", x[i].name);
  86. }
  87. }
  88. if (t == 2) {
  89. for (i = 0; i < M; i++) {
  90. printf("Магазин: %s\n", x[i].shop);
  91. }
  92. }
  93. if (t == 3) {
  94. for (i = 0; i < M; i++) {
  95. printf("Цена товара: %u\n", x[i].price);
  96. }
  97. }
  98. }
  99.  
  100. if (whattodo == 2) {
  101. if (t == 1) {
  102.  
  103. printf("Товар: %s\n", b.name);
  104.  
  105. }
  106. if (t == 2) {
  107.  
  108. printf("Магазин: %s\n", b.shop);
  109. }
  110. if (t == 3) {
  111.  
  112. printf("Цена товара: %u\n", b.price);
  113. }
  114. }
  115. free(x);
  116. fclose(fp);
  117. return 0;
  118. }
  119.  
  120.  
  121. Наушники МВидео 575
  122. Ноутбук МВидео 36555
  123. Клавиатура DNS 899
  124. Клавиатура Эльдорадо 998
  125. Мышь Эльдорадо 585
  126. Телефон Эльдорадо 15999
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement