Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<cstring>
- #include <iostream>
- using namespace std;
- class organization//абстрактный класс организации
- {
- public:
- organization()//конструктор
- {
- add(this);
- }
- static organization* begin;//статичные переменные
- organization* next;
- virtual void print() = 0;//виртуальные методы
- virtual void setparametrs() = 0;
- static void add(organization* object) {//статический метод, добавляет объекты в список
- object->next = begin;
- begin = object;
- }
- static void show()//статический метод,пока создаются объекты,они добавляются в список
- {
- organization* ptr = begin;
- while (ptr != 0)
- {
- ptr->print();
- ptr = ptr->next;
- }
- }
- protected:
- string name;
- int year;
- };
- organization* organization::begin = 0; //инициализация статической переменной
- class factory :public organization//класс завод
- {
- public:
- factory(string name, string surname, int year)//конструктор
- {
- this->name = name;
- this->surname = surname;
- this->year = year;
- }
- //конструктор по умолчанию
- factory() : factory("Кооператив Озеро", "Ротенберг", 1991) {}
- //переопределение виртуальных функций
- void print()
- {
- cout << endl << "Информация о организации:" << endl;
- cout << "Название организации: " << name << endl;
- cout << "Фамилия основателя: " << surname << endl;
- cout << "Год основания: " << year << endl;
- }
- void setparametrs()//функция вывода некой величины на экран
- {
- float kolvo;
- float colvo;
- cout << "Введите количество производимого товара за год: ";
- cin >> kolvo;
- colvo = kolvo * 150;
- cout << "Прибыль завода за год: " << colvo << " рублей" << endl;
- }
- protected:
- string surname;
- };
- class insurance :public organization//класс страховой компании
- {
- public:
- //конструктор с параметрами
- insurance(string name, string surname, int year)
- {
- this->name = name;
- this->surname = surname;
- this->year = year;
- }
- //конструктор по умолчанию
- insurance() : insurance("РосГосСтрах", "Бондарчук", 2003) {}
- //переопределение виртуальных функций
- void print()
- {
- cout << endl << "Информация об страховой компании: " << endl;
- cout << "Название компании: " << name << endl;
- cout << "Фамилия основателя: " << surname << endl;
- cout << "Год основания: " << year << endl;
- }
- void setparametrs()//функция вывода некой величины на экран
- {
- float kolvo;
- float colvo;
- cout << "Введите количество оформленных страховок за год: ";
- cin >> kolvo;
- colvo = kolvo * 5555;
- cout << "Прибыль компании за год " << colvo << " рублей" << endl;
- }
- protected:
- string surname;
- };
- class shipbuilding : public insurance//класс судостроительной компании
- {
- public:
- //конструктор с параметрами
- shipbuilding(string name, string surname, int year, string who)
- {
- this->name = name;
- this->surname = surname;
- this->year = year;
- this->who = who;
- }
- //конструктор по умолчанию
- shipbuilding() : shipbuilding("РосСуд", "Титаников", 1917, "Аврора") {}
- //переопределение виртуальных функций
- void print()
- {
- cout << endl << "Информация о судостроительной компании:" << endl;
- cout << "Название компании: " << name << endl;
- cout << "Фамилия основателя: " << surname << endl;
- cout << "Год основания: " << year << endl;
- cout << "Самое известное судно: " << who << endl;
- }
- void setparametrs()//функция вывода некой величины на экран
- {
- float sum;
- float percent;
- cout << "Введите процент сотрудников, трудящихся над судном: ";
- cin >> sum;
- percent = sum * 0, 75;
- cout << "Итоговый шанс получить судно без дефектов: " << percent << " % " << endl;
- }
- protected:
- string who;
- };
- int main()
- {
- setlocale(0, "");
- factory B("Кооператив Озеро", "Ротенберг", 1991);//ввод данных для второго класса
- insurance D("РосГосСтрах", "Бондарчук", 2003);//ввод данных для третьего класса
- shipbuilding S("РосСуд", "Титаников", 1917, "Аврора");//ввод данных для четвертого класса
- organization::show();//виртуальный метод
- return 0;
- }
Add Comment
Please, Sign In to add comment