Advertisement
Guest User

Untitled

a guest
Dec 15th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.67 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <vector>
  4. #include <windows.h>
  5. #include <typeinfo>
  6. #include <set>
  7. #include <iterator>
  8. #include <stdlib.h>
  9.  
  10. using namespace std;
  11.  
  12.  
  13. class Wear {
  14. public:
  15. string m_type;
  16. string m_wear;
  17. string m_pol;
  18. string m_size;
  19. int m_prize;
  20. virtual void Print() {
  21. };
  22.  
  23. };
  24.  
  25. class Head : public Wear {
  26. virtual void Print() {
  27. cout << "Вещь: " << m_wear << endl;
  28. cout << "Пол: " << m_pol << endl;
  29. cout << "Размер " << m_size << endl;
  30. cout << "Цена: " << m_prize << endl;
  31. }
  32. };
  33.  
  34. class Body : public Wear {
  35. virtual void Print() {
  36. cout << "Вещь: " << m_wear << endl;
  37. cout << "Пол: " << m_pol << endl;
  38. cout << "Размер " << m_size << endl;
  39. cout << "Цена: " << m_prize << endl;
  40. }
  41. };
  42.  
  43. class Legs : public Wear {
  44. public:
  45. virtual void Print() {
  46. cout << "Вещь: " << m_wear << endl;
  47. cout << "Пол: " << m_pol << endl;
  48. cout << "Размер " << m_size << endl;
  49. cout << "Цена: " << m_prize << endl;
  50. }
  51. };
  52.  
  53. class Foot : public Wear {
  54. public:
  55. string m_type_foot;
  56. virtual void Print() {
  57. cout << "Вещь: " << m_wear << endl;
  58. cout << "Пол: " << m_pol << endl;
  59. cout << "Размер обуви " << m_size;
  60. cout << "Цена: " << m_prize << endl;
  61. cout << "Тип обуви " << m_type_foot << endl;
  62. }
  63. };
  64.  
  65. vector <Wear*> Wears;
  66. vector <Wear*> Baskket;
  67. set <string> wear_types;
  68. set <string> wears;
  69. set <string> sizes;
  70. int n;
  71. void Astate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  72. string Astate1(int sx);
  73. void Bstate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  74. int Bstate1(int sx);
  75. void Bstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  76. void Bstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  77. string Bstate3_1(int wear_type);
  78. void Cstate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  79. int Cstate1(int sx, int wear_type);
  80. void Cstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  81. void Cstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  82. string Сstate3_1(int wear);
  83. void Dstate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  84. int Dstate1(int sx, int wear_type, int wear);
  85. void Dstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  86. void Dstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  87. string Dstate3_1(int size);
  88. void Estate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  89. int Estate1(int sx, int wear_type, int wear, int size);
  90. void Estate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  91. void Estate3(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  92. void Estate3_1(int cost1, int cost2);
  93. void Fstate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  94. int Fstate1(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  95. void Fstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  96. void Fstate2_1(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  97. void Basket(int sx, int wear_type, int wear, int size, int cost1, int cost2);
  98.  
  99. void Astate( int sx = 0, int wear_type = 0, int wear = 0, int size = 0, int cost1 = 0, int cost2 = 0) {
  100. sx = 0;
  101. cout << "Добро пожаловать! Данная программа поможет вам найти нужную вещь" << endl;
  102. cout << "Чтобы посмотреть корзину, нажмите 0"<<endl;
  103. cout << "Укажите пол: " << endl;
  104. cout << "1.Man" << endl << "2.Wooman "<<endl;
  105. cout << "3.Выход"<<endl;
  106. cin >> sx;
  107. system("cls");
  108. if (sx == 0)
  109. Basket(sx, wear_type, wear, size, cost1, cost2);
  110. else if (sx == 3) {}
  111. else
  112. Bstate(sx, wear_type, wear, size, cost1, cost2);
  113.  
  114. }
  115.  
  116. string Astate1(int sx) {
  117. switch (sx)
  118. {
  119. case 1:
  120. return "Man";
  121. break;
  122. case 2:
  123. return "Wooman";
  124. break;
  125. default:
  126. break;
  127. }
  128. }
  129.  
  130. void Bstate(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  131.  
  132. cout << "Ваш пол " << Astate1(sx) << endl;
  133. cout << "Количество найденных вещей по данному запросу " << Bstate1(sx) << endl;
  134. cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
  135. int change = 0;
  136. cin >> change;
  137. system("cls");
  138. if (change == 1) {
  139. Bstate2(sx, wear_type, wear, size, cost1, cost2);
  140. }
  141. else if (change == 2) {
  142. Bstate3(sx, wear_type, wear, size, cost1, cost2);
  143. }
  144. else
  145. Astate(sx, wear_type, wear, size, cost1, cost2);
  146. }
  147.  
  148. int Bstate1( int sx) {
  149. int kolvo = 0;
  150. for (int i = 0; i < Wears.size(); i++) {
  151. if (Wears[i]->m_pol == Astate1(sx))
  152. kolvo++;
  153. }
  154. return kolvo;
  155. }
  156.  
  157. void Bstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  158. for (int i = 0; i < Wears.size(); i++) {
  159. if (Wears[i]->m_pol == Astate1(sx)) {
  160. Wears[i]->Print();
  161. cout << endl;
  162. }
  163. }
  164. int back;
  165. cout << "1.Вернуться";
  166. cin >> back;
  167. if (back == 1)
  168. system("cls");
  169. Bstate(sx, wear_type, wear, size, cost1, cost2);
  170. }
  171.  
  172. void Bstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  173. cout << "Выберите вид одежды:" << endl;
  174. wear_types.clear();
  175. for (int i = 0; i < Wears.size(); i++) {
  176. if (Wears[i]->m_pol == Astate1(sx))
  177. wear_types.insert(Wears[i]->m_type);
  178. }
  179. set <string> ::iterator i;
  180. int j = 1;
  181. for (i = wear_types.begin(); i != wear_types.end(); i++, j++)
  182. cout << j << ". " << *i << endl;
  183. wear_type = 0;
  184. cin >> wear_type;
  185. system("cls");
  186. Cstate(sx, wear_type, wear, size, cost1, cost2);
  187. }
  188.  
  189. //void Bstate3(int sx) {
  190. // cout << "Выберите вид одежды:" << endl;
  191. // cout << "1.Головые уборы" << endl << "2.Одежда для тела" << endl << "3.Нижняя часть" << endl;
  192. // int wear = 0;
  193. // cin >> wear;
  194. // system("cls");
  195. // Cstate(Wears, sx, wear);
  196. //}
  197.  
  198. string Bstate3_1(int wear_type) {
  199. set <string> ::iterator i;
  200. int j = 1;
  201. for (i = wear_types.begin(); i != wear_types.end(); i++, j++) {
  202. if (j == wear_type) return *i;
  203. }
  204. }
  205.  
  206. void Cstate(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  207. cout << "Ваш пол " << Astate1(sx)<<endl;
  208. cout << "Тип одежды " << Bstate3_1(wear_type)<<endl;
  209. cout << "Количество найденных вещей по данному запросу " << Cstate1(sx, wear_type) << endl;
  210. cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
  211. int change1 = 0;
  212. cin >> change1;
  213. system("cls");
  214. if (change1 == 1) {
  215. Cstate2(sx, wear_type, wear, size, cost1, cost2);
  216. }
  217. else if (change1 == 2) {
  218. Cstate3(sx, wear_type, wear, size, cost1, cost2);
  219. }
  220. else
  221. Bstate(sx, wear_type, wear, size, cost1, cost2);
  222. }
  223.  
  224. int Cstate1(int sx, int wear_type) {
  225. int kolvo1 = 0;
  226. for (int i = 0; i < Wears.size(); i++) {
  227. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type))
  228. kolvo1++;
  229. }
  230. return kolvo1;
  231. }
  232.  
  233. void Cstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  234. for (int i = 0; i < Wears.size(); i++) {
  235. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)) {
  236. Wears[i]->Print(); cout << endl;
  237. }
  238. }
  239. int back;
  240. cout << "1.Вернуться";
  241. cin >> back;
  242. if (back == 1)
  243. system("cls");
  244. Cstate(sx, wear_type, wear, size, cost1, cost2);
  245. }
  246.  
  247. void Cstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  248. cout << "Выберите вещь:" << endl;
  249. wears.clear();
  250. for (int i = 0; i < Wears.size(); i++) {
  251. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type))
  252. wears.insert(Wears[i]->m_wear);
  253. }
  254. set <string> ::iterator i;
  255. int j = 1;
  256. for (i = wears.begin(); i != wears.end(); i++, j++)
  257. cout << j << ". " << *i << endl;
  258. wear = 0;
  259. cin >> wear;
  260. system("cls");
  261. Dstate(sx, wear_type, wear, size, cost1, cost2);
  262. //Dstate(Wears, sx, wear, size);
  263. }
  264. string Сstate3_1(int wear) {
  265. set <string> ::iterator i;
  266. int j = 1;
  267. for (i = wears.begin(); i != wears.end(); i++, j++) {
  268. if (j == wear) return *i;
  269. }
  270. }
  271. void Dstate(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  272. cout << "Ваш пол: " << Astate1(sx) << endl;
  273. cout << "Тип одежды: " << Bstate3_1(wear_type) << endl;
  274. cout << "Ваша вещь: " << Сstate3_1(wear) << endl;
  275. cout << "Количество найденных вещей по данному запросу: " << Dstate1( sx, wear_type, wear) << endl;
  276. cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
  277. int change1 = 0;
  278. cin >> change1;
  279. system("cls");
  280. if (change1 == 1) {
  281. Dstate2(sx, wear_type, wear, size, cost1, cost2);
  282. }
  283. else if (change1 == 2) {
  284. Dstate3(sx, wear_type, wear, size, cost1, cost2);
  285. }
  286. else
  287. Cstate(sx, wear_type, wear, size, cost1, cost2);
  288. }
  289.  
  290. int Dstate1( int sx, int wear_type, int wear) {
  291. int kolvo1 = 0;
  292. for (int i = 0; i < Wears.size(); i++) {
  293. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type) && Wears[i]->m_wear == Сstate3_1(wear))
  294. kolvo1++;
  295. }
  296. return kolvo1;
  297. }
  298.  
  299. void Dstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  300. for (int i = 0; i < Wears.size(); i++) {
  301. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type) && Wears[i]->m_wear == Сstate3_1(wear)) {
  302. Wears[i]->Print(); cout << endl;
  303. }
  304. }
  305. int back;
  306. cout << "1.Вернуться";
  307. cin >> back;
  308. if (back == 1)
  309. system("cls");
  310. Dstate(sx, wear_type, wear, size, cost1, cost2);
  311. }
  312. void Dstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  313. cout << "Выбери размер: " << endl;
  314. sizes.clear();
  315. for (int i = 0; i < Wears.size(); i++) {
  316. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type) && Wears[i]->m_wear == Сstate3_1(wear))
  317. sizes.insert(Wears[i]->m_size);
  318. }
  319. set <string> ::iterator i;
  320. int j = 1;
  321. for (i = sizes.begin(); i != sizes.end(); i++, j++)
  322. cout << j << ". " << *i << endl;
  323. size = 0;
  324. cin >> size;
  325. system("cls");
  326. Estate(sx, wear_type, wear, size, cost1, cost2);
  327. }
  328.  
  329. string Dstate3_1(int size) {
  330. set <string> ::iterator i;
  331. int j = 1;
  332. for (i = sizes.begin(); i != sizes.end(); i++, j++) {
  333. if (j == size) return *i;
  334. }
  335. }
  336.  
  337. void Estate(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  338. cout << "Ваш пол: " << Astate1(sx) << endl;
  339. cout << "Тип одежды: " << Bstate3_1(wear_type) << endl;
  340. cout << "Ваша вещь: " << Сstate3_1(wear) << endl;
  341. cout << "Ваш размер: " << Dstate3_1(size) << endl;
  342. cout << "Количество найденных вещей по данному запросу: " << Estate1(sx, wear_type, wear, size) << endl;
  343. cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
  344. int change = 0;
  345. cin >> change;
  346. system("cls");
  347. if (change == 1) {
  348. Estate2(sx, wear_type, wear, size, cost1, cost2);
  349. }
  350. else if (change == 2) {
  351. Estate3(sx, wear_type, wear, size, cost1, cost2);
  352. }
  353. else
  354. Dstate(sx, wear_type, wear, size, cost1, cost2);
  355. }
  356.  
  357. int Estate1( int sx, int wear_type, int wear, int size) {
  358. int kolvo1 = 0;
  359. for (int i = 0; i < Wears.size(); i++) {
  360. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
  361. && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size))
  362. kolvo1++;
  363. }
  364. return kolvo1;
  365. }
  366.  
  367. void Estate2(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  368. for (int i = 0; i < Wears.size(); i++) {
  369. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
  370. && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size)) {
  371. Wears[i]->Print(); cout << endl;
  372. }
  373. }
  374. int back;
  375. cout << "1.Вернуться";
  376. cin >> back;
  377. if (back == 1)
  378. system("cls");
  379. Estate(sx, wear_type, wear, size, cost1, cost2);
  380. }
  381.  
  382. void Estate3(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  383. cout << "Выберите цену: " << endl;
  384. cost1 = 0;
  385. cost2 = 0;
  386. cin >> cost1;
  387. cin >> cost2;
  388. system("cls");
  389. Fstate(sx, wear_type, wear, size, cost1, cost2);
  390. }
  391. void Estate3_1(int cost1, int cost2) {
  392. cout << cost1 << " - " << cost2 << endl;
  393. }
  394. void Fstate( int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  395. cout << "Ваш пол: " << Astate1(sx) << endl;
  396. cout << "Тип одежды: " << Bstate3_1(wear_type) << endl;
  397. cout << "Ваша вещь: " << Сstate3_1(wear) << endl;
  398. cout << "Ваш размер: " << Dstate3_1(size) << endl;
  399. cout << "Ваша цена: "; Estate3_1(cost1, cost2);
  400. cout << "Количество найденных вещей по данному запросу: " << Fstate1(sx, wear_type, wear, size, cost1, cost2) << endl;
  401. cout << "1. Заказать" << endl << "2. Назад" << endl;
  402. int change = 0;
  403. cin >> change;
  404. system("cls");
  405. if (change == 1) {
  406. Fstate2( sx, wear_type, wear, size, cost1, cost2);
  407. }
  408. else
  409. Estate(sx, wear_type, wear, size, cost1, cost2);
  410. }
  411. int Fstate1(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  412. int kolvo1 = 0;
  413. for (int i = 0; i < Wears.size(); i++) {
  414. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
  415. && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size)
  416. && Wears[i]->m_prize >= cost1 && Wears[i]->m_prize <= cost2)
  417. kolvo1++;
  418. }
  419. return kolvo1;
  420. }
  421. void Fstate2( int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  422. for (int i = 0; i < Wears.size(); i++) {
  423. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
  424. && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size)
  425. && Wears[i]->m_prize >= cost1 && Wears[i]->m_prize <= cost2) {
  426. Wears[i]->Print(); cout << endl;
  427. }
  428. }
  429. int back;
  430. cout << "Чтобы заказать вещь, нажмите 1"<<endl;
  431. cout << "Чтобы вернуться, нажмите 0"<<endl;
  432. cin >> back;
  433. system("cls");
  434. if (back == 0) {
  435. Fstate( sx, wear_type, wear, size, cost1, cost2);
  436. }
  437. else {
  438.  
  439. Fstate2_1(sx, wear_type, wear, size, cost1, cost2);
  440. }
  441. }
  442. void Fstate2_1( int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  443. for (int i = 0; i < Wears.size(); i++) {
  444. if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
  445. && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size)
  446. && Wears[i]->m_prize >= cost1 && Wears[i]->m_prize <= cost2) {
  447. Baskket.push_back(Wears[i]);
  448. Wears.erase(Wears.begin() + i);
  449. break;
  450. }
  451. }
  452. cout << "Товар в корзине" << endl;
  453. cout << "1.Проверить корзину" << endl;
  454. cout << "2.Назад";
  455. int change;
  456. cin >> change;
  457. system("cls");
  458. if (change == 1)
  459. Basket( sx, wear_type, wear, size, cost1, cost2);
  460. else
  461. Fstate2( sx, wear_type, wear, size, cost1, cost2);
  462. }
  463. void Basket(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
  464.  
  465. cout << "Товаты в корзине: "<<endl;
  466. for (int i = 0; i < Baskket.size(); i++) {
  467. Baskket[i]->Print();
  468. }
  469. cout << "1.Вернуться в главное меню"<<endl;
  470. int back;
  471. cin >> back;
  472. if (back == 1)
  473. system("cls");
  474. Astate( sx, wear_type, wear, size, cost1, cost2);
  475. }
  476.  
  477. int main() {
  478.  
  479. setlocale(LC_ALL, "ru");
  480. SetConsoleCP(1251);
  481. SetConsoleOutputCP(1251);
  482.  
  483. /*ofstream fout;
  484. fout.open("myFile.txt");
  485.  
  486. if (!fout.is_open()) {
  487. cout << "Ошибка открытия файла!";
  488. }
  489. else
  490. {
  491. fout << "Торс Шуба Wooman 42 15000" << endl;
  492. fout << "Торс Шуба Wooman 40 16000" << endl;
  493. fout << "Торс Шуба Wooman 38 17000" << endl;
  494. fout << "Торс Шуба Wooman 44 18000" << endl;
  495. fout << "Торс Шуба Wooman 44 18000" << endl;
  496. fout << "Торс Шуба Man 40 18000" << endl;
  497. fout << "Торс Шуба Wooman 42 18000" << endl;
  498. fout << "Торс Шуба Wooman 42 18000" << endl;
  499. fout << "Брюки Шорты Man 44 3500 " << endl;
  500. fout << "Брюки Шорты Man 40 3600 " << endl;
  501. fout << "Обувь Кроссовки Man 34 5600 sport" << endl;
  502. fout << "Обувь Туфли Man 40 5600 classic" << endl;
  503.  
  504. }
  505. fout.close();*/
  506. ifstream fin;
  507. string type;
  508. string wear;
  509. int prize;
  510. string pol;
  511. string color;
  512. string size;
  513. string type_foot;
  514. fin.open("myFile.txt");
  515. while (fin >> type) {
  516. fin >> wear;
  517. fin >> pol;
  518. fin >> size;
  519. fin >> prize;
  520. if (type == "Головные_уборы") {
  521. Head* head = new Head;
  522. head->m_type = type;
  523. head->m_wear = wear;
  524. head->m_pol = pol;
  525. head->m_size = size;
  526. head->m_prize = prize;
  527. Wears.push_back(head);
  528. }
  529. else if (type == "Торс") {
  530. Body* body = new Body;
  531. body->m_type = type;
  532. body->m_wear = wear;
  533. body->m_pol = pol;
  534. body->m_size = size;
  535. body->m_prize = prize;
  536. Wears.push_back(body);
  537. }
  538. else if (type == "Брюки") {
  539. Legs* legs = new Legs;
  540. legs->m_type = type;
  541. legs->m_wear = wear;
  542. legs->m_pol = pol;
  543. legs->m_size = size;
  544. legs->m_prize = prize;
  545. Wears.push_back(legs);
  546. }
  547. else if (type == "Обувь") {
  548. fin >> type_foot;
  549. Foot* foot = new Foot;
  550. foot->m_type = type;
  551. foot->m_wear = wear;
  552. foot->m_pol = pol;
  553. foot->m_size = size;
  554. foot->m_prize = prize;
  555. foot->m_type_foot = type_foot;
  556. Wears.push_back(foot);
  557. }
  558.  
  559. //Print1(Wears);
  560. //deleteCars(Cars);
  561.  
  562. }
  563. //Print1(Wears);
  564. Astate();
  565. for (int i = 0; i < Wears.size(); i++) {
  566. delete Wears[i];
  567. }
  568. for (int i = 0; i < Baskket.size(); i++) {
  569. delete Baskket[i];
  570. }
  571. Wears.clear();
  572. Baskket.clear();
  573. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement