Advertisement
Guest User

Untitled

a guest
Dec 14th, 2019
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.42 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. int sx, int wear_type, int wear, int size, int cost1, int cost2;
  72. void Astate();
  73. string Astate1();
  74. void Bstate();
  75. int Bstate1();
  76. void Bstate2();
  77. void Bstate3();
  78. string Bstate3_1();
  79. void Cstate();
  80. int Cstate1();
  81. void Cstate2();
  82. void Cstate3();
  83. string Сstate3_1();
  84. void Dstate();
  85. int Dstate1();
  86. void Dstate2();
  87. void Dstate3();
  88. void Estate();
  89. int Estate1();
  90. void Estate2();
  91. void Estate3();
  92. void Fstate();
  93. int Fstate1();
  94. void Fstate2();
  95. void Fstate2();
  96. void Fstate2_1();
  97. void Basket();
  98.  
  99.  
  100. void Astate() {
  101. int sx = 0;
  102. cout << "Добро пожаловать! Данная программа поможет вам найти нужную вещь" << endl;
  103. cout << "Укажите пол: " << endl;
  104. cout << "1.Man" << endl << "2.Wooman :";
  105. cout << "Чтобы посмотреть корзину, нажмите 0";
  106. cin >> sx;
  107. system("cls");
  108. if (sx == 0)
  109. Basket();
  110. else
  111. Bstate();
  112.  
  113. }
  114.  
  115. string Astate1() {
  116. switch (sx)
  117. {
  118. case 1:
  119. return "Man";
  120. break;
  121. case 2:
  122. return "Wooman";
  123. break;
  124. default:
  125. break;
  126. }
  127. }
  128.  
  129. void Bstate() {
  130.  
  131. cout << "Ваш пол " << Astate1() << endl;
  132. cout << "Количество найденных вещей по данному запросу " << Bstate1() << endl;
  133. cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
  134. int change = 0;
  135. cin >> change;
  136. system("cls");
  137. if (change == 1) {
  138. Bstate2();
  139. }
  140. else if (change == 2) {
  141. Bstate3();
  142. }
  143. else
  144. Astate();
  145. }
  146.  
  147. int Bstate1() {
  148. int kolvo = 0;
  149. for (int i = 0; i < Wears.size(); i++) {
  150. if (Wears[i]->m_pol == Astate1())
  151. kolvo++;
  152. }
  153. return kolvo;
  154. }
  155.  
  156. void Bstate2() {
  157. for (int i = 0; i < Wears.size(); i++) {
  158. if (Wears[i]->m_pol == Astate1()) {
  159. Wears[i]->Print();
  160. cout << endl;
  161. }
  162. }
  163. int back;
  164. cout << "1.Вернуться";
  165. cin >> back;
  166. if (back == 1)
  167. system("cls");
  168. Bstate();
  169. }
  170.  
  171. void Bstate3() {
  172. cout << "Выберите вид одежды:" << endl;
  173. wear_types.clear();
  174. for (int i = 0; i < Wears.size(); i++) {
  175. if (Wears[i]->m_pol == Astate1())
  176. wear_types.insert(Wears[i]->m_type);
  177. }
  178. set <string> ::iterator i;
  179. int j = 1;
  180. for (i = wear_types.begin(); i != wear_types.end(); i++, j++)
  181. cout << j << ". " << *i << endl;
  182. int wear_type = 0;
  183. cin >> wear_type;
  184. system("cls");
  185. Cstate();
  186. }
  187.  
  188. //void Bstate3(int sx) {
  189. // cout << "Выберите вид одежды:" << endl;
  190. // cout << "1.Головые уборы" << endl << "2.Одежда для тела" << endl << "3.Нижняя часть" << endl;
  191. // int wear = 0;
  192. // cin >> wear;
  193. // system("cls");
  194. // Cstate(Wears, sx, wear);
  195. //}
  196.  
  197. string Bstate3_1() {
  198. set <string> ::iterator i;
  199. int j = 1;
  200. for (i = wear_types.begin(); i != wear_types.end(); i++, j++) {
  201. if (j == wear_type) return *i;
  202. }
  203. }
  204.  
  205. void Cstate() {
  206. cout << "Ваш пол " << Astate1()<<endl;
  207. cout << "Тип одежды " << Bstate3_1()<<endl;
  208. cout << "Количество найденных вещей по данному запросу " << Cstate1() << endl;
  209. cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
  210. int change1 = 0;
  211. cin >> change1;
  212. system("cls");
  213. if (change1 == 1) {
  214. Cstate2();
  215. }
  216. else if (change1 == 2) {
  217. Cstate3();
  218. }
  219. else
  220. Bstate();
  221. }
  222.  
  223. int Cstate1() {
  224. int kolvo1 = 0;
  225. for (int i = 0; i < Wears.size(); i++) {
  226. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1())
  227. kolvo1++;
  228. }
  229. return kolvo1;
  230. }
  231.  
  232. void Cstate2() {
  233. for (int i = 0; i < Wears.size(); i++) {
  234. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1()) {
  235. Wears[i]->Print(); cout << endl;
  236. }
  237. }
  238. int back;
  239. cout << "1.Вернуться";
  240. cin >> back;
  241. if (back == 1)
  242. system("cls");
  243. Cstate();
  244. }
  245.  
  246. void Cstate3() {
  247. cout << "Выберите вещь:" << endl;
  248. wears.clear();
  249. for (int i = 0; i < Wears.size(); i++) {
  250. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1())
  251. wears.insert(Wears[i]->m_wear);
  252. }
  253. set <string> ::iterator i;
  254. int j = 1;
  255. for (i = wears.begin(); i != wears.end(); i++, j++)
  256. cout << j << ". " << *i << endl;
  257. int wear = 0;
  258. cin >> wear;
  259. system("cls");
  260. Dstate();
  261. //Dstate(Wears, sx, wear, size);
  262. }
  263. string Сstate3_1() {
  264. set <string> ::iterator i;
  265. int j = 1;
  266. for (i = wears.begin(); i != wears.end(); i++, j++) {
  267. if (j == wear) return *i;
  268. }
  269. }
  270. void Dstate() {
  271. cout << "Ваш пол: " << Astate1() << endl;
  272. cout << "Тип одежды: " << Bstate3_1() << endl;
  273. cout << "Ваша вещь: " << Сstate3_1() << endl;
  274. cout << "Количество найденных вещей по данному запросу: " << Dstate1() << endl;
  275. cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
  276. int change1 = 0;
  277. cin >> change1;
  278. system("cls");
  279. if (change1 == 1) {
  280. Dstate2();
  281. }
  282. else if (change1 == 2) {
  283. Dstate3();
  284. }
  285. else
  286. Cstate();
  287. }
  288.  
  289. int Dstate1() {
  290. int kolvo1 = 0;
  291. for (int i = 0; i < Wears.size(); i++) {
  292. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1() && Wears[i]->m_wear == Сstate3_1())
  293. kolvo1++;
  294. }
  295. return kolvo1;
  296. }
  297.  
  298. void Dstate2() {
  299. for (int i = 0; i < Wears.size(); i++) {
  300. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1() && Wears[i]->m_wear == Сstate3_1()) {
  301. Wears[i]->Print(); cout << endl;
  302. }
  303. }
  304. int back;
  305. cout << "1.Вернуться";
  306. cin >> back;
  307. if (back == 1)
  308. system("cls");
  309. Dstate();
  310. }
  311. void Dstate3() {
  312. cout << "Выбери размер: " << endl;
  313. sizes.clear();
  314. for (int i = 0; i < Wears.size(); i++) {
  315. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1() && Wears[i]->m_wear == Сstate3_1())
  316. sizes.insert(Wears[i]->m_size);
  317. }
  318. set <string> ::iterator i;
  319. int j = 1;
  320. for (i = sizes.begin(); i != sizes.end(); i++, j++)
  321. cout << j << ". " << *i << endl;
  322. int size = 0;
  323. cin >> size;
  324. system("cls");
  325. Estate();
  326. }
  327.  
  328. string Dstate3_1() {
  329. set <string> ::iterator i;
  330. int j = 1;
  331. for (i = sizes.begin(); i != sizes.end(); i++, j++) {
  332. if (j == size) return *i;
  333. }
  334. }
  335.  
  336. void Estate() {
  337. cout << "Ваш пол: " << Astate1() << endl;
  338. cout << "Тип одежды: " << Bstate3_1() << endl;
  339. cout << "Ваша вещь: " << Сstate3_1() << endl;
  340. cout << "Ваш размер: " << Dstate3_1() << endl;
  341. cout << "Количество найденных вещей по данному запросу: " << Estate1() << endl;
  342. cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
  343. int change = 0;
  344. cin >> change;
  345. system("cls");
  346. if (change == 1) {
  347. Estate2();
  348. }
  349. else if (change == 2) {
  350. Estate3();
  351. }
  352. else
  353. Cstate();
  354. }
  355.  
  356. int Estate1() {
  357. int kolvo1 = 0;
  358. for (int i = 0; i < Wears.size(); i++) {
  359. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1()
  360. && Wears[i]->m_wear == Сstate3_1() && Wears[i]->m_size == Dstate3_1())
  361. kolvo1++;
  362. }
  363. return kolvo1;
  364. }
  365.  
  366. void Estate2() {
  367. for (int i = 0; i < Wears.size(); i++) {
  368. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1()
  369. && Wears[i]->m_wear == Сstate3_1() && Wears[i]->m_size == Dstate3_1()) {
  370. Wears[i]->Print(); cout << endl;
  371. }
  372. }
  373. int back;
  374. cout << "1.Вернуться";
  375. cin >> back;
  376. if (back == 1)
  377. system("cls");
  378. Estate();
  379. }
  380.  
  381. void Estate3() {
  382. cout << "Выберите цену: " << endl;
  383. int cost1 = 0;
  384. int cost2 = 0;
  385. cin >> cost1;
  386. cin >> cost2;
  387. system("cls");
  388. Fstate();
  389. }
  390. void Estate3_1() {
  391. cout << cost1 << " - " << cost2 << endl;
  392. }
  393. void Fstate() {
  394. cout << "Ваш пол: " << Astate1() << endl;
  395. cout << "Тип одежды: " << Bstate3_1() << endl;
  396. cout << "Ваша вещь: " << Сstate3_1() << endl;
  397. cout << "Ваш размер: " << Dstate3_1() << endl;
  398. cout << "Ваша цена: "; Estate3_1();
  399. cout << "Количество найденных вещей по данному запросу: " << Fstate1() << endl;
  400. cout << "1. Заказать" << endl << "2. Назад" << endl;
  401. int change = 0;
  402. cin >> change;
  403. system("cls");
  404. if (change == 1) {
  405. Fstate2();
  406. }
  407. else
  408. Estate();
  409. }
  410. int Fstate1() {
  411. int kolvo1 = 0;
  412. for (int i = 0; i < Wears.size(); i++) {
  413. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1()
  414. && Wears[i]->m_wear == Сstate3_1() && Wears[i]->m_size == Dstate3_1()
  415. && Wears[i]->m_prize >= cost1 && Wears[i]->m_prize <= cost2)
  416. kolvo1++;
  417. }
  418. return kolvo1;
  419. }
  420. void Fstate2() {
  421. for (int i = 0; i < Wears.size(); i++) {
  422. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1()
  423. && Wears[i]->m_wear == Сstate3_1() && Wears[i]->m_size == Dstate3_1()
  424. && Wears[i]->m_prize >= cost1 && Wears[i]->m_prize <= cost2) {
  425. Wears[i]->Print(); cout << endl;
  426. }
  427. }
  428. int back;
  429. cout << "Чтобы заказать вещь, нажмите 1/n";
  430. cout << "Чтобы вернуться, нажмите 0/n";
  431. cin >> back;
  432. if (back == 0) {
  433. system("cls");
  434. Fstate();
  435. }
  436. else {
  437.  
  438. Fstate2_1();
  439. }
  440. }
  441. void Fstate2_1() {
  442. for (int i = 0; i < Wears.size(); i++) {
  443. if (Wears[i]->m_pol == Astate1() && Wears[i]->m_type == Bstate3_1()
  444. && Wears[i]->m_wear == Сstate3_1() && Wears[i]->m_size == Dstate3_1()
  445. && Wears[i]->m_prize >= cost1 && Wears[i]->m_prize <= cost2) {
  446. Baskket.push_back(Wears[i]);
  447. Wears.erase(Wears.begin() + i);
  448. break;
  449. }
  450. }
  451. cout << "Товар в корзине" << endl;
  452. cout << "1.Проверить корзину" << endl;
  453. cout << "2.Назад";
  454. int change;
  455. cin >> change;
  456. if (change == 1)
  457. Basket();
  458. else
  459. Fstate2();
  460. }
  461. void Basket() {
  462.  
  463. cout << "Товаты в корзине: ";
  464. for (int i = 0; i < Baskket.size(); i++) {
  465. Baskket[i]->Print();
  466. }
  467. cout << "1.Вернуться в главное меню"<<endl;
  468. cout << "2.Назад" << endl;
  469. int back;
  470. cin >> back;
  471. if (back == 1)
  472. Astate();
  473. else
  474. Fstate2_1();
  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 << "Body Шуба Wooman 42 15000" << endl;
  492. fout << "Body Шуба Wooman 40 16000" << endl;
  493. fout << "Body Шуба Wooman 38 17000" << endl;
  494. fout << "Body Шуба Wooman 44 18000" << endl;
  495. fout << "Body Шуба Wooman 44 18000" << endl;
  496. fout << "Body Шуба Man 40 18000" << endl;
  497. fout << "Body Шуба Wooman 42 18000" << endl;
  498. fout << "Body Шуба Wooman 42 18000" << endl;
  499. fout << "Legs Шорты Man 44 3500 " << endl;
  500. fout << "Legs Шорты Man 40 3600 " << endl;
  501. fout << "Foot Кроссовки Man 34 5600 sport" << endl;
  502. fout << "Foot Туфли 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 == "Head") {
  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 == "Body") {
  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 == "Legs") {
  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 == "Foot") {
  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.  
  566. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement