Advertisement
Guest User

Untitled

a guest
Nov 27th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.10 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <conio.h>
  5. #include <string.h>
  6. #include <fstream>
  7. #include <string>
  8. #include <Windows.h>
  9.  
  10. using namespace std;
  11. const int L = 20;
  12.  
  13. struct age
  14. {
  15. int low = 0, high = 0;
  16. };
  17.  
  18. struct toy
  19. {
  20. string name;
  21. double cost = -1;
  22. age limit;
  23. };
  24. struct pertoy
  25. {
  26. string name;
  27. int nt;
  28. };
  29.  
  30.  
  31. void inputMasToyFileD(toy *&px, int &n) //ввод данных из файла
  32. {
  33. char file[L];
  34. ifstream fin;
  35. toy t;
  36. cout << "Имя входного файла: ";
  37. cin >> file;
  38. strcat_s(file, ".txt");
  39. fin.open(file);
  40. if (fin.fail())
  41. {
  42. cout << file << " не открылся\n";
  43. _getch();
  44. return;
  45. }
  46. n = 0;
  47. while (!fin.eof())
  48. {
  49. fin >> t.name >> t.cost >> t.limit.low >> t.limit.high;
  50. if (fin.fail()) break;
  51. n++;
  52. }
  53. fin.close();
  54. px = new toy[n];
  55. if (px == NULL)
  56. {
  57. cout << "Нет памяти\n";
  58. _getch();
  59. n = 0;
  60. return;
  61. }
  62. fin.open(file);
  63. if (fin.fail())
  64. {
  65. cout << "Файл не открылся\n";
  66. _getch();
  67. delete[] px;
  68. px = NULL;
  69. n = 0;
  70. return;
  71. }
  72. for (int j = 0; j < n; j++)
  73. fin >> px[j].name >> px[j].cost >> px[j].limit.low >> px[j].limit.high;
  74. fin.close();
  75. cout << "Файл считан\n";
  76. _getch();
  77. }
  78. void outputMasToy(toy px[], int n) //вывод данных на экран
  79. {
  80. int j;
  81. cout << "____________________________________________________________" << endl;
  82. cout << "| № | Название игрушки | Стоимость |Возрастное ограничение |" << endl;
  83. cout << "|___|__________________|___________|_______________________|" << endl;
  84. for (j = 0; j < n; j++)
  85. cout << "|" << setw(3) << j + 1 << "|" << setw(18) << px[j].name << "|" << setw(11) << px[j].cost << "| " << setw(17) << px[j].limit.low << " - " << setw(2) << px[j].limit.high << "|" << endl;
  86. cout << "|___|__________________|___________|_______________________|" << endl;
  87. }
  88. int main()
  89. {
  90. setlocale(LC_ALL, "Russian");
  91. SetConsoleCP(1251);
  92. SetConsoleOutputCP(1251);
  93. int n(0);
  94. int k(0);
  95. int a(0);
  96. toy *px(NULL);
  97. toy *py(NULL);
  98. pertoy *pz(NULL);
  99. while (1)
  100. {
  101. system("cls");
  102. cout << "Выберите действие:" << endl;
  103. cout << "1. Ввод данных из файла." << endl;
  104. cout << "2. Вывод данных на экран." << endl;
  105. cout << "3. Вывод данных на экран (выходной массив)." << endl;
  106. cout << "4. Отфильтровать массив игрушек по цене и возрасту (выходной массив)." << endl;
  107. cout << "5. Сортировать игрушки по названию в алфавитном порядке, а при совпадении по верхней возрастной границе(возр.) в исходном массиве." << endl;
  108. cout << "6. Сортировать игрушки по цене(убыв.) в выходном массиве." << endl;
  109. cout << "7. Сортировать игрушки по названию в алфавитном порядке в выходном массиве." << endl;
  110. cout << "8. Добавить игрушку в список." << endl;
  111. cout << "9. Убрать игрушку из списка." << endl;
  112. cout << "10. Создание перечня игрушек по названию." << endl;
  113. cout << "11. Вывод перечня на экран." << endl;
  114. cout << "12. Сортировка перечня по алфавиту." << endl;
  115. cout << "13. Сортировка перечня по количеству игрушек(убыв.)." << endl;
  116. cout << "14. Вывод в файл (исходный массив)." << endl;
  117. cout << "15. Вывод в файл (выходной массив)." << endl;
  118. cout << "16. Вывод в файл (перечень)." << endl;
  119. cout << "17. Выйти." << endl;
  120. cout << "Введите действие (1-17):" << endl;
  121. int t;
  122. cin >> t;
  123. switch (t)
  124. {
  125. case 1: inputMasToyFileD(px, n);
  126. break;
  127. case 2: outputMasToy(px, n);
  128. _getch();
  129. break;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement