Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <windows.h>
- #include <typeinfo>
- #include <set>
- #include <iterator>
- #include <stdlib.h>
- using namespace std;
- class Wear {
- public:
- string m_type;
- string m_wear;
- string m_pol;
- string m_size;
- int m_prize;
- virtual void Print() {
- };
- };
- class Head : public Wear {
- virtual void Print() {
- cout << "Вещь: " << m_wear << endl;
- cout << "Пол: " << m_pol << endl;
- cout << "Размер " << m_size << endl;
- cout << "Цена: " << m_prize << endl;
- }
- };
- class Body : public Wear {
- virtual void Print() {
- cout << "Вещь: " << m_wear << endl;
- cout << "Пол: " << m_pol << endl;
- cout << "Размер " << m_size << endl;
- cout << "Цена: " << m_prize << endl;
- }
- };
- class Legs : public Wear {
- public:
- virtual void Print() {
- cout << "Вещь: " << m_wear << endl;
- cout << "Пол: " << m_pol << endl;
- cout << "Размер " << m_size << endl;
- cout << "Цена: " << m_prize << endl;
- }
- };
- class Foot : public Wear {
- public:
- string m_type_foot;
- virtual void Print() {
- cout << "Вещь: " << m_wear << endl;
- cout << "Пол: " << m_pol << endl;
- cout << "Размер обуви " << m_size;
- cout << "Цена: " << m_prize << endl;
- cout << "Тип обуви " << m_type_foot << endl;
- }
- };
- vector <Wear*> Wears;
- vector <Wear*> Baskket;
- set <string> wear_types;
- set <string> wears;
- set <string> sizes;
- int n;
- void Astate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- string Astate1(int sx);
- void Bstate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- int Bstate1(int sx);
- void Bstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- void Bstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- string Bstate3_1(int wear_type);
- void Cstate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- int Cstate1(int sx, int wear_type);
- void Cstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- void Cstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- string Сstate3_1(int wear);
- void Dstate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- int Dstate1(int sx, int wear_type, int wear);
- void Dstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- void Dstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- string Dstate3_1(int size);
- void Estate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- int Estate1(int sx, int wear_type, int wear, int size);
- void Estate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- void Estate3(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- void Estate3_1(int cost1, int cost2);
- void Fstate(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- int Fstate1(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- void Fstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- void Fstate2_1(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- void Basket(int sx, int wear_type, int wear, int size, int cost1, int cost2);
- void Astate( int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- int sx = 0;
- cout << "Добро пожаловать! Данная программа поможет вам найти нужную вещь" << endl;
- cout << "Укажите пол: " << endl;
- cout << "1.Man" << endl << "2.Wooman :";
- cout << "Чтобы посмотреть корзину, нажмите 0";
- cin >> sx;
- system("cls");
- if (sx == 0)
- Basket( sx, wear_type, wear, size, cost1, cost2);
- else
- Bstate(sx, wear_type, wear, size, cost1, cost2);
- }
- string Astate1(int sx) {
- switch (sx)
- {
- case 1:
- return "Man";
- break;
- case 2:
- return "Wooman";
- break;
- default:
- break;
- }
- }
- void Bstate(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Ваш пол " << Astate1(sx) << endl;
- cout << "Количество найденных вещей по данному запросу " << Bstate1(sx) << endl;
- cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
- int change = 0;
- cin >> change;
- system("cls");
- if (change == 1) {
- Bstate2(sx, wear_type, wear, size, cost1, cost2);
- }
- else if (change == 2) {
- Bstate3(sx, wear_type, wear, size, cost1, cost2);
- }
- else
- Astate(sx, wear_type, wear, size, cost1, cost2);
- }
- int Bstate1( int sx) {
- int kolvo = 0;
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx))
- kolvo++;
- }
- return kolvo;
- }
- void Bstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx)) {
- Wears[i]->Print();
- cout << endl;
- }
- }
- int back;
- cout << "1.Вернуться";
- cin >> back;
- if (back == 1)
- system("cls");
- Bstate(sx, wear_type, wear, size, cost1, cost2);
- }
- void Bstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Выберите вид одежды:" << endl;
- wear_types.clear();
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx))
- wear_types.insert(Wears[i]->m_type);
- }
- set <string> ::iterator i;
- int j = 1;
- for (i = wear_types.begin(); i != wear_types.end(); i++, j++)
- cout << j << ". " << *i << endl;
- int wear_type = 0;
- cin >> wear_type;
- system("cls");
- Cstate(sx, wear_type, wear, size, cost1, cost2);
- }
- //void Bstate3(int sx) {
- // cout << "Выберите вид одежды:" << endl;
- // cout << "1.Головые уборы" << endl << "2.Одежда для тела" << endl << "3.Нижняя часть" << endl;
- // int wear = 0;
- // cin >> wear;
- // system("cls");
- // Cstate(Wears, sx, wear);
- //}
- string Bstate3_1(int wear_type) {
- set <string> ::iterator i;
- int j = 1;
- for (i = wear_types.begin(); i != wear_types.end(); i++, j++) {
- if (j == wear_type) return *i;
- }
- }
- void Cstate(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Ваш пол " << Astate1(sx)<<endl;
- cout << "Тип одежды " << Bstate3_1(wear_type)<<endl;
- cout << "Количество найденных вещей по данному запросу " << Cstate1(sx, wear_type) << endl;
- cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
- int change1 = 0;
- cin >> change1;
- system("cls");
- if (change1 == 1) {
- Cstate2(sx, wear_type, wear, size, cost1, cost2);
- }
- else if (change1 == 2) {
- Cstate3(sx, wear_type, wear, size, cost1, cost2);
- }
- else
- Bstate(sx, wear_type, wear, size, cost1, cost2);
- }
- int Cstate1(int sx, int wear_type) {
- int kolvo1 = 0;
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type))
- kolvo1++;
- }
- return kolvo1;
- }
- void Cstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)) {
- Wears[i]->Print(); cout << endl;
- }
- }
- int back;
- cout << "1.Вернуться";
- cin >> back;
- if (back == 1)
- system("cls");
- Cstate(sx, wear_type, wear, size, cost1, cost2);
- }
- void Cstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Выберите вещь:" << endl;
- wears.clear();
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type))
- wears.insert(Wears[i]->m_wear);
- }
- set <string> ::iterator i;
- int j = 1;
- for (i = wears.begin(); i != wears.end(); i++, j++)
- cout << j << ". " << *i << endl;
- int wear = 0;
- cin >> wear;
- system("cls");
- Dstate(sx, wear_type, wear, size, cost1, cost2);
- //Dstate(Wears, sx, wear, size);
- }
- string Сstate3_1(int wear) {
- set <string> ::iterator i;
- int j = 1;
- for (i = wears.begin(); i != wears.end(); i++, j++) {
- if (j == wear) return *i;
- }
- }
- void Dstate(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Ваш пол: " << Astate1(sx) << endl;
- cout << "Тип одежды: " << Bstate3_1(wear_type) << endl;
- cout << "Ваша вещь: " << Сstate3_1(wear) << endl;
- cout << "Количество найденных вещей по данному запросу: " << Dstate1( sx, wear_type, wear) << endl;
- cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
- int change1 = 0;
- cin >> change1;
- system("cls");
- if (change1 == 1) {
- Dstate2(sx, wear_type, wear, size, cost1, cost2);
- }
- else if (change1 == 2) {
- Dstate3(sx, wear_type, wear, size, cost1, cost2);
- }
- else
- Cstate(sx, wear_type, wear, size, cost1, cost2);
- }
- int Dstate1( int sx, int wear_type, int wear) {
- int kolvo1 = 0;
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type) && Wears[i]->m_wear == Сstate3_1(wear))
- kolvo1++;
- }
- return kolvo1;
- }
- void Dstate2(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type) && Wears[i]->m_wear == Сstate3_1(wear)) {
- Wears[i]->Print(); cout << endl;
- }
- }
- int back;
- cout << "1.Вернуться";
- cin >> back;
- if (back == 1)
- system("cls");
- Dstate(sx, wear_type, wear, size, cost1, cost2);
- }
- void Dstate3(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Выбери размер: " << endl;
- sizes.clear();
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type) && Wears[i]->m_wear == Сstate3_1(wear))
- sizes.insert(Wears[i]->m_size);
- }
- set <string> ::iterator i;
- int j = 1;
- for (i = sizes.begin(); i != sizes.end(); i++, j++)
- cout << j << ". " << *i << endl;
- int size = 0;
- cin >> size;
- system("cls");
- Estate(sx, wear_type, wear, size, cost1, cost2);
- }
- string Dstate3_1(int size) {
- set <string> ::iterator i;
- int j = 1;
- for (i = sizes.begin(); i != sizes.end(); i++, j++) {
- if (j == size) return *i;
- }
- }
- void Estate(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Ваш пол: " << Astate1(sx) << endl;
- cout << "Тип одежды: " << Bstate3_1(wear_type) << endl;
- cout << "Ваша вещь: " << Сstate3_1(wear) << endl;
- cout << "Ваш размер: " << Dstate3_1(size) << endl;
- cout << "Количество найденных вещей по данному запросу: " << Estate1(sx, wear_type, wear, size) << endl;
- cout << "1. Показать" << endl << "2. далее" << endl << "3. Назад" << endl;
- int change = 0;
- cin >> change;
- system("cls");
- if (change == 1) {
- Estate2(sx, wear_type, wear, size, cost1, cost2);
- }
- else if (change == 2) {
- Estate3(sx, wear_type, wear, size, cost1, cost2);
- }
- else
- Dstate3(sx, wear_type, wear, size, cost1, cost2);
- }
- int Estate1( int sx, int wear_type, int wear, int size) {
- int kolvo1 = 0;
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
- && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size))
- kolvo1++;
- }
- return kolvo1;
- }
- void Estate2(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
- && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size)) {
- Wears[i]->Print(); cout << endl;
- }
- }
- int back;
- cout << "1.Вернуться";
- cin >> back;
- if (back == 1)
- system("cls");
- Estate(sx, wear_type, wear, size, cost1, cost2);
- }
- void Estate3(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Выберите цену: " << endl;
- int cost1 = 0;
- int cost2 = 0;
- cin >> cost1;
- cin >> cost2;
- system("cls");
- Fstate(sx, wear_type, wear, size, cost1, cost2);
- }
- void Estate3_1(int cost1, int cost2) {
- cout << cost1 << " - " << cost2 << endl;
- }
- void Fstate( int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Ваш пол: " << Astate1(sx) << endl;
- cout << "Тип одежды: " << Bstate3_1(wear_type) << endl;
- cout << "Ваша вещь: " << Сstate3_1(wear) << endl;
- cout << "Ваш размер: " << Dstate3_1(size) << endl;
- cout << "Ваша цена: "; Estate3_1(cost1, cost2);
- cout << "Количество найденных вещей по данному запросу: " << Fstate1(sx, wear_type, wear, size, cost1, cost2) << endl;
- cout << "1. Заказать" << endl << "2. Назад" << endl;
- int change = 0;
- cin >> change;
- system("cls");
- if (change == 1) {
- Fstate2( sx, wear_type, wear, size, cost1, cost2);
- }
- else
- Estate(sx, wear_type, wear, size, cost1, cost2);
- }
- int Fstate1(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- int kolvo1 = 0;
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
- && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size)
- && Wears[i]->m_prize >= cost1 && Wears[i]->m_prize <= cost2)
- kolvo1++;
- }
- return kolvo1;
- }
- void Fstate2( int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
- && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size)
- && Wears[i]->m_prize >= cost1 && Wears[i]->m_prize <= cost2) {
- Wears[i]->Print(); cout << endl;
- }
- }
- int back;
- cout << "Чтобы заказать вещь, нажмите 1/n";
- cout << "Чтобы вернуться, нажмите 0/n";
- cin >> back;
- if (back == 0) {
- system("cls");
- Fstate( sx, wear_type, wear, size, cost1, cost2);
- }
- else {
- Fstate2_1(sx, wear_type, wear, size, cost1, cost2);
- }
- }
- void Fstate2_1( int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- for (int i = 0; i < Wears.size(); i++) {
- if (Wears[i]->m_pol == Astate1(sx) && Wears[i]->m_type == Bstate3_1(wear_type)
- && Wears[i]->m_wear == Сstate3_1(wear) && Wears[i]->m_size == Dstate3_1(size)
- && Wears[i]->m_prize >= cost1 && Wears[i]->m_prize <= cost2) {
- Baskket.push_back(Wears[i]);
- Wears.erase(Wears.begin() + i);
- break;
- }
- }
- cout << "Товар в корзине" << endl;
- cout << "1.Проверить корзину" << endl;
- cout << "2.Назад";
- int change;
- cin >> change;
- if (change == 1)
- Basket( sx, wear_type, wear, size, cost1, cost2);
- else
- Fstate2( sx, wear_type, wear, size, cost1, cost2);
- }
- void Basket(int sx, int wear_type, int wear, int size, int cost1, int cost2) {
- cout << "Товаты в корзине: ";
- for (int i = 0; i < Baskket.size(); i++) {
- Baskket[i]->Print();
- }
- cout << "1.Вернуться в главное меню"<<endl;
- cout << "2.Назад" << endl;
- int back;
- cin >> back;
- if (back == 1)
- Astate( sx, wear_type, wear, size, cost1, cost2);
- else
- Fstate2_1( sx, wear_type, wear, size, cost1, cost2);
- }
- int main() {
- setlocale(LC_ALL, "ru");
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- ofstream fout;
- fout.open("myFile.txt");
- if (!fout.is_open()) {
- cout << "Ошибка открытия файла!";
- }
- else
- {
- fout << "Body Шуба Wooman 42 15000" << endl;
- fout << "Body Шуба Wooman 40 16000" << endl;
- fout << "Body Шуба Wooman 38 17000" << endl;
- fout << "Body Шуба Wooman 44 18000" << endl;
- fout << "Body Шуба Wooman 44 18000" << endl;
- fout << "Body Шуба Man 40 18000" << endl;
- fout << "Body Шуба Wooman 42 18000" << endl;
- fout << "Body Шуба Wooman 42 18000" << endl;
- fout << "Legs Шорты Man 44 3500 " << endl;
- fout << "Legs Шорты Man 40 3600 " << endl;
- fout << "Foot Кроссовки Man 34 5600 sport" << endl;
- fout << "Foot Туфли Man 40 5600 classic" << endl;
- }
- fout.close();
- ifstream fin;
- string type;
- string wear;
- int prize;
- string pol;
- string color;
- string size;
- string type_foot;
- fin.open("myFile.txt");
- while (fin >> type) {
- fin >> wear;
- fin >> pol;
- fin >> size;
- fin >> prize;
- if (type == "Head") {
- Head* head = new Head;
- head->m_type = type;
- head->m_wear = wear;
- head->m_pol = pol;
- head->m_size = size;
- head->m_prize = prize;
- Wears.push_back(head);
- }
- else if (type == "Body") {
- Body* body = new Body;
- body->m_type = type;
- body->m_wear = wear;
- body->m_pol = pol;
- body->m_size = size;
- body->m_prize = prize;
- Wears.push_back(body);
- }
- else if (type == "Legs") {
- Legs* legs = new Legs;
- legs->m_type = type;
- legs->m_wear = wear;
- legs->m_pol = pol;
- legs->m_size = size;
- legs->m_prize = prize;
- Wears.push_back(legs);
- }
- else if (type == "Foot") {
- fin >> type_foot;
- Foot* foot = new Foot;
- foot->m_type = type;
- foot->m_wear = wear;
- foot->m_pol = pol;
- foot->m_size = size;
- foot->m_prize = prize;
- foot->m_type_foot = type_foot;
- Wears.push_back(foot);
- }
- //Print1(Wears);
- //deleteCars(Cars);
- }
- //Print1(Wears);
- Astate();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement