Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include "iostream"
- #include "iomanip"
- #include <string>
- using namespace std;
- //Товар
- class Tovar {
- protected:
- string Name;
- int OrderPrice;
- int BasicPrice;
- int Area;
- public:
- Tovar(string name = "Строй-товар", int area = 12);
- virtual void vvod() = 0;
- virtual void vivod() = 0;
- virtual void zakaz() = 0;
- };
- Tovar::Tovar(string name, int basicprice) {
- Name = name;
- BasicPrice = basicprice;
- }
- class Oboi : public Tovar {
- private:
- int Oclass;
- public:
- Oboi(string name = "Обои", int basicprice = 20, int oclass = 1);
- void vvod() override;
- void vivod() override;
- void zakaz() override;
- };
- Oboi::Oboi(string name, int basicprice, int oclass) : Tovar(name, basicprice) {
- Oclass = oclass;
- }
- void Oboi::vvod() {
- cout << "Введите класс обоев\n";
- cin >> Oclass;
- cout << "Введите цену за 1м кв\n";
- cin >> BasicPrice;
- cout << endl;
- }
- void Oboi::vivod() {
- cout << Name << " класса " << Oclass << ":" << endl;
- cout << "Цена за 1м кв: " << BasicPrice << endl;
- }
- void Oboi::zakaz() {
- cout << "Введите площадь стены\n";
- cin >> Area;
- vivod();
- OrderPrice = Oclass * BasicPrice * Area;
- cout << "Заказ на : " << Area << " метров квадратных" << endl;
- cout << "Цена заказа : " << OrderPrice << " рублей" << endl;
- cout << endl;
- }
- class Laminat : public Tovar {
- private:
- string Type;
- int Width;
- public:
- Laminat(string name = "Ламинат", int basicprice = 20, string type = "Ekonom", int width = 1);
- void vvod() override;
- void vivod() override;
- void zakaz() override;
- };
- Laminat::Laminat(string name, int basicprice, string type, int width) : Tovar(name, basicprice) {
- Type = type;
- Width = width;
- }
- void Laminat::vvod() {
- cout << "Введите категорию ламината [Ekonom/Premium]\n";
- cin >> Type;
- cout << "Введите цену за 1м кв пола\n";
- cin >> BasicPrice;
- cout << "Введите ширину доски ламината\n";
- cin >> Width;
- cout << endl;
- }
- void Laminat::vivod() {
- cout << Name << " категории " << Type << endl;
- cout << "Базовая цена: " << BasicPrice << endl;
- cout << "Ширина ламинатной доски: " << Width << endl;
- }
- void Laminat::zakaz() {
- cout << "Введите площадь пола\n";
- cin >> Area;
- vivod();
- if (Type == "Ekonom")
- OrderPrice = 1 * BasicPrice * Area * Width;
- else if (Type == "Premium")
- OrderPrice = 3 * BasicPrice * Area * Width;
- else
- OrderPrice = 0 * BasicPrice * Area * Width;
- cout << "Заказ на : " << Area << " метров квадратных" << endl;
- cout << "Цена заказа: " << OrderPrice << " рублей" << endl;
- }
- class Plitka : public Tovar {
- private:
- string Type;
- int Size;
- public:
- Plitka(string name = "Плитка", int basicprice = 30, string type = "Эконом", int size = 10);
- void vvod() override;
- void vivod() override;
- void zakaz() override;
- };
- Plitka::Plitka(string name, int basicprice, string type, int size) : Tovar(name, basicprice) {
- Type = type;
- Size = size;
- }
- void Plitka::vvod() {
- cout << "Введите категорию плитки [Ekonom/Premium]\n";
- cin >> Type;
- cout << "Введите базовую цену за 1м кв\n";
- cin >> BasicPrice;
- cout << "Введите размер плитки\n";
- cin >> Size;
- cout << endl;
- }
- void Plitka::vivod() {
- cout << Name << " категории " << Type << endl;
- cout << "Базовая цена: " << BasicPrice << endl;
- cout << "Размер плитки: " << Size << endl;
- }
- void Plitka::zakaz() {
- cout << "Введите площадь пола\n";
- cin >> Area;
- vivod();
- if (Type == "Ekonom")
- OrderPrice = 1 * BasicPrice * Area * Size;
- else if (Type == "Premium")
- OrderPrice = 3 * BasicPrice * Area * Size;
- else
- OrderPrice = 0 * BasicPrice * Area * Size;
- cout << "Заказ на: " << Area << " метров квадратных" << endl;
- cout << "Цена заказа: " << OrderPrice << " рублей" << endl;
- }
- class Kraska : public Tovar {
- private:
- string Color;
- public:
- Kraska(string name = "Краска", int Price = 200, string color = "red");
- void vvod() override;
- void vivod() override;
- void zakaz() override;
- };
- Kraska::Kraska(string name, int price, string color) : Tovar(name, price) {
- Color = color;
- }
- void Kraska::vvod() {
- cout << "Введите цвет краски (red / green / blue / etc)" << endl;
- cin >> Color;
- cout << "Введите цену за 1м кв покрытия" << endl;
- cin >> BasicPrice;
- cout << endl;
- }
- void Kraska::vivod() {
- cout << Color << " " << Name << ":" << endl;
- cout << "Цена: " << BasicPrice << endl;
- }
- void Kraska::zakaz() {
- cout << "Введите площадь закрашиваемой поверхности" << endl;
- cin >> Area;
- vivod();
- if (Color == "red")
- OrderPrice = 1 * BasicPrice * Area;
- else if (Color == "green")
- OrderPrice = 1 * BasicPrice * Area;
- else if (Color == "blue")
- OrderPrice = 1 * BasicPrice * Area;
- else
- OrderPrice = 2 * BasicPrice * Area;
- cout << "Заказ на: " << Area << " метров квадратных" << endl;
- cout << "Цена заказа: " << OrderPrice << " рублей" << endl;
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- Tovar *tovar = nullptr;
- int option = 1;
- do {
- cout << "Введите тип товара:";
- cout << endl;
- cout << "1 - Обои " << endl;
- cout << "2 - Плитка" << endl;
- cout << "3 - Ламинат" << endl;
- cout << "4 - Краска" << endl;
- cout << "0 - выход" << endl << endl;
- cin >> option;
- switch (option)
- {
- case 1:
- tovar = new Oboi();
- break;
- case 2:
- tovar = new Plitka();
- break;
- case 3:
- tovar = new Laminat();
- break;
- case 4:
- tovar = new Kraska();
- break;
- case 0:
- cout << "Завершение программы" << endl;
- break;
- default:
- option = -1;
- cout << "Ошибка" << endl;
- break;
- }
- if (option != -1 && option != 0) {
- system("cls");
- tovar->vvod();
- tovar->zakaz();
- }
- } while (option != 0);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement