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