Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ООП_1.cpp : 9Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
- //
- #define _CRT_SECURE_NO_WARNINGS
- #include <iomanip>
- #include <iostream>
- #include <string.h>
- using namespace std;
- struct Data
- {
- char prodName[30];
- int inventN;
- };
- struct product
- {
- Data d;
- product* next;
- product* back;
- };
- class Products
- {
- private:
- product* head;
- public:
- Products()
- {
- head = 0;
- }
- Products(Data s)
- {
- head = new product;
- head->d = s;
- head->next = 0;
- head->back = 0;
- }
- void add(Data s)
- {
- if (!head)
- {
- head = new product;
- head->d = s;
- head->next = 0;
- head->back = 0;
- }
- else
- {
- product* temp = new product;
- temp->d = s;
- temp->next = head;
- temp->back = 0;
- head->back = temp;
- head = temp;
- }
- }
- void delete_head()
- {
- if (!head)
- {
- cout << "ПУСТО" << " \n";
- }
- else {
- product* temp = head;
- head = head->next;
- delete temp;
- }
- }
- float chek_inventN(int prodName)
- {int chek = 0;
- int int1;
- product* temp = head;
- while (temp)
- {
- if (prodName == temp->d.inventN) {
- cout << "Продукт на складе. '"<< "Имя продукта - '"<< temp->d.prodName << "' Номер продукта - '" << temp->d.inventN<< "'\n"; break;
- chek++;
- }
- temp = temp->next;
- }
- if (chek != 0) {
- cout << "Продукта нет на складе'" << "'\n";
- }
- if (!temp)
- {
- return 0;
- }
- }
- int print()
- {
- if (!head)
- {
- return 0;
- }
- product* temp = head;
- cout << "___Print___\n";
- while (temp)
- {
- cout << temp->d.prodName;
- cout << " " << temp->d.inventN;
- cout << endl;
- temp = temp->next;
- }
- cout << "/___Print___";
- return 1;
- }
- Products(const Products& object)
- {
- cout << "ЗАПУСК КОПИИ СПИСКА";
- if (!object.head)
- {
- head = new product;
- head = 0;
- return;
- }
- head = new product;
- strcpy(head->d.prodName, object.head->d.prodName);
- head->d.inventN = object.head->d.inventN;
- head->next = 0;
- product* temp = object.head->next;
- while (temp)
- {
- product* temp1 = new product;
- strcpy(temp1->d.prodName, temp->d.prodName);
- temp1->d.inventN = temp->d.inventN;
- temp1->next = head;
- head = temp1;
- temp = temp->next;
- }
- }
- ~Products()
- {
- product* temp;
- while (head)
- {
- temp = head;
- head = head->next;
- delete temp;
- }
- }
- };
- int main()
- {
- setlocale(LC_ALL, "Russian");
- Products class_product;
- int i;
- while (1)
- {
- cout << "\nВыберите операцию:" << endl;
- cout << "1 - Работа с копией" << endl;
- cout << "2 - Добавить элемент в список" << endl;
- cout << "3 - Вывести список" << endl;
- cout << "4 - Наличие на складе" << endl;
- cout << "5 - Удалить узел с головы списка" << endl;
- cout << "6 -Выход" << endl;
- cin >> i;
- switch (i)
- {
- case 1:
- {
- Products copy_product(class_product);
- int m;
- while (1)
- {
- cout << "\nВыберите операцию:" << endl;
- cout << "1 - Добавить элемент в список-копию" << endl;
- cout << "2 - Вывести список-копию" << endl;
- cout << "3 - Наличие на складе в списке-копии" << endl;
- cout << "4 - Удалить узел с головы списка-копии" << endl;
- cout << "5 -Выход" << endl;
- cin >> m;
- if (m == 5)
- {
- break;
- }
- switch (m)
- {
- case 1:
- {
- Data s;
- cout << "Введите Название продукта" << endl;
- cin >> s.prodName;
- cout << "Введите номер продукта" << endl;
- cin >> s.inventN;
- copy_product.add(s);
- break;
- }
- case 2:
- {
- if (!copy_product.print()) cout << "В списке нет ни одного товара-продукта!" << endl;
- break;
- }
- case 3:
- {
- int prodName;
- cout << "Введите номер продукта" << endl;
- cin >> prodName;
- if (!copy_product.chek_inventN(prodName))
- {
- cout << "Такого товара-продукта нет в списке!" << endl;
- }
- break;
- }
- case 4:
- {
- copy_product.delete_head();
- break;
- }
- }
- }
- break;
- }
- case 2:
- {
- Data s;
- cout << "Введите Название продукта" << endl;
- cin >> s.prodName;
- cout << "Введите номер продукта" << endl;
- cin >> s.inventN;
- class_product.add(s);
- break;
- }
- case 3:
- {
- if (!class_product.print()) cout << "В списке нет ни одного товара-продукта!" << endl;
- break;
- }
- case 4:
- {
- int prodName;
- cout << "Введите номер продукта" << endl;
- cin >> prodName;
- if (!class_product.chek_inventN(prodName))
- {
- cout << "Такого товара-продукта нет в списке!" << endl;
- }
- break;
- }
- case 5:
- {
- class_product.delete_head();
- break;
- }
- case 6: return 0;
- }
- }
- }
Add Comment
Please, Sign In to add comment