Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Лаба 8(1) Семестр 3.cpp : Этот файл содержит функцию "main". Здесь начинается и заканчивается выполнение программы.
- //
- #include <iostream>
- using namespace std;
- class Engine
- {
- public:
- Engine(const char* engine_name, const char* pow)
- {
- name = engine_name;
- power = pow;
- next = 0;
- add_to_list();
- }
- const char* get_name() { return name; }
- const char* pow_name() { return power; }
- virtual~Engine() {}
- virtual void show(int pos) = 0;
- static void print_list()
- {
- Engine* now = list_begin;
- int pos = 0;
- while (now != 0)
- {
- pos++;
- now->show(pos);
- now = now->next;
- }
- }
- static void cleanup_list()
- {
- Engine* now = list_begin;
- while (now != 0)
- {
- Engine* x = now;
- now = now->next;
- delete x;
- }
- list_begin = 0;
- }
- static Engine* list_begin;
- private:
- void add_to_list()
- {
- if (list_begin == 0)
- {
- list_begin = this;
- }
- else
- {
- Engine* last = list_begin;
- while (last->next != 0)
- last = last->next;
- last->next = this;
- }
- }
- const char* name;
- const char* power;
- Engine* next;
- Engine& operator=(const Engine&);
- };
- class JetEngine : public Engine
- {
- public:
- JetEngine(const char* name, const char* pow) :Engine(name, pow) {}
- virtual void show(int pos)
- {
- cout << pos << ":that JetEngine\t" << get_name() << "\nМощность:\t\t=" << pow_name() << endl;
- cout << "Реактивные двигатели начали использовать с 1930 года" << endl;
- }
- };
- class DieselEngine :public Engine
- {
- public:
- DieselEngine(const char* name, const char* pow) :Engine(name, pow) {}
- virtual void show(int pos)
- {
- cout << pos << ":that DieselEngine\t" << get_name() << "\nМощность:\t\t=" << pow_name() << endl;
- }
- };
- class EngineIC : public DieselEngine
- {
- public:
- EngineIC(const char* name, const char* pow) : DieselEngine(name, pow) {}
- virtual void show(int pos)
- {
- cout << pos << ":that EngineIC\t\t" << get_name() << "\nМощность:\t\t=" << pow_name() << endl;
- cout << "Используемое топливо: бензин, дизель" << endl;
- // cout << "" << endl; тут можно что-нибудь дописать про то что двигатель не обяз. ДВС и т д
- }
- };
- Engine* Engine::list_begin = 0;
- int main()
- {
- setlocale(LC_CTYPE, "Russian");
- new JetEngine("AL-31F", "9800w");
- new DieselEngine("M51", "2000w");
- new DieselEngine("M57", "2200w");
- new JetEngine("TF-39", "7700w");
- new EngineIC("Mazda Skyactiv 2.0", "4000w");
- new EngineIC("WV Polo 1,6", "4400w");
- Engine::print_list();
- cout << "Очистка списка" << endl;
- cout << endl;
- Engine::cleanup_list();
- new JetEngine("F-107", "10400w");
- new DieselEngine("N47/M47", "3200w");
- new DieselEngine("M20", "3600w");
- new JetEngine("F-107(2)", "17550w");
- new DieselEngine("Phantom", "3900w");
- new DieselEngine("N57", "4000w");
- new EngineIC("Magnum 318", "6200w");
- new EngineIC("A8 W12", "7400w");
- Engine::print_list();
- cout << "Очистка списка" << endl;
- Engine::cleanup_list();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement