Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

Создать абстрактный класс Vehicle - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Описать класс для работы с одномерным массивом строк фиксированной длины. Обеспечить следующие возможности: http://www.cyberforum.ru/cpp-beginners/thread832108.html
Описать класс для работы с одномерным массивом строк фиксированной длины. Обеспечить следующие возможности: • задание произвольных целых границ индексов при создании объекта; • обращение к...
C++ Стеки (функция, которая удаляет из стека первый отрицательный элемент, если такой есть) Здравствуйте! Помогите пожалуйста разработать функцию, которая удаляет из стека первый отрицательный элемент, если такой есть. Если не сложно, то ещё учитывая что: "Для организации стека нужно... http://www.cyberforum.ru/cpp-beginners/thread832104.html
Массив целых чисел (Удалить все двузначные элементы,являющиеся простыми числами) C++
Удалить из массива целых чисел все двузначные элементы,являющиеся простыми числами .Найти среднее арифметическое элементов массива до и после удаления.Проверить,изменился ли максимальный элемент...
Не запускает задачу C++
В VS создал пустой проект win32, написал код #include <iostream> #include <vector> using namespace std; template <class T> void prepare_vector (vector <T>*v) { for (usingned i=o;...
C++ Определить функцию, находящую сумму элементов массива http://www.cyberforum.ru/cpp-beginners/thread832056.html
10. Определить функцию, находящую сумму элементов массива. Выполнить перегрузку функции для следующих типов параметров: 10.1. Одномерный массив типа int размерностью N. 10.2. Одномерный массив типа...
C++ Найти ошибку в части кода Доброго времени суток. В этой части кода не распознает If и then, выдает : If: идентификатор не найден; then: необъявленный идентификатор. Как задавать? void change(int a, int n, int m) { int... подробнее

Показать сообщение отдельно
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
09.04.2013, 01:32
Если что-то не понятно, то спрашивай. Остальные классы самостоятельно (по аналогии класса Plane). Компилятор MinGW.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#include <iostream>
#include <string>
#include <iomanip>
 
using namespace std;
 
unsigned table(23);
 
enum Colors {red = 0, black, blue, green, yellow, white, unknown};
 
class Color
{
public:
    Color(Colors _col): col(_col) {}
    string to_string()
    {
        string arr[] = {"red", "black", "blue", "green", "yellow", "white", "unknown"};
        return arr[col];
    }
private:
    Colors col;
};
 
class Vehicle
{
public:
    Vehicle():
        model(), enginePower(0), seats(0), maxSpeed(0), color(unknown),
        weight(0), releaseYear(0), price(0) {}
 
    Vehicle(const string&, float, unsigned, float, Color, float, unsigned, float);
 
    void setModel(const string &str) {  model = str;    };
    void setColor(Color col) {  color = col;    };
    void setPrice(float val) {  price = val;    };
    float getWeight() const {   return weight;  };
 
protected:
    string model;
    float enginePower;
    unsigned seats;
    float maxSpeed;
    Color color;
    float weight;
    unsigned releaseYear;
    float price;
 
    void print();
};
 
class Plane: public Vehicle
{
public:
    Plane(): Vehicle(), height(0), crewCount(0) {}
 
    Plane(float, unsigned, const string&, float, unsigned, float, Color, float, unsigned, float);
 
    void print();
    void setHeight(float val) { height = val;   };
    float getHeight() const {   return height;  };
 
private:
    float height;
    unsigned crewCount;
};
 
Vehicle::Vehicle(const string &_model, float _enPwr, unsigned _seats,
                 float _maxSpd, Color _col, float _weight, unsigned _relYear, float _price):
    model(_model), enginePower(_enPwr), seats(_seats), maxSpeed(_maxSpd), color(_col),
    weight(_weight), releaseYear(_relYear), price(_price) {}
 
Plane::Plane(float _height, unsigned _crews, const string &_model, float _enPwr, unsigned _seats,
            float _maxSpd, Color _col, float _weight, unsigned _relYear, float _price):
    Vehicle(_model, _enPwr, _seats, _maxSpd, _col, _weight, _relYear, _price),
    height(_height), crewCount(_crews) {}
 
void Vehicle::print()
{
    cout<<fixed<<setprecision(1);
    cout<<setw(table)<<left;
    cout<<setw(table)<<left<<"Модель: "<<model<<endl
        <<setw(table)<<left<<"Мощность двигателя: "<<enginePower<<endl
        <<setw(table)<<left<<"Мест: "<<seats<<endl
        <<setw(table)<<left<<"Максимальная скорость: "<<maxSpeed<<endl
        <<setw(table)<<left<<"Цвет: "<<color.to_string()<<endl
        <<setw(table)<<left<<"Вес: "<<weight<<endl
        <<setw(table)<<left<<"Год выпуска: "<<releaseYear<<endl
        <<setw(table)<<left<<"Цена: "<<price<<endl;
}
 
void Plane::print()
{
    Vehicle::print();
    cout<<setw(table)<<left<<"Высота: "<<height<<endl
        <<setw(table)<<left<<"Экипаж: "<<crewCount<<endl;
}
int main()
{
    setlocale(LC_CTYPE, "");
 
    Plane pl(50, 4, "Боинг 776", 10, 88, 800, white, 30, 1998, 3000000);
    pl.print();
    cout<<endl;
    pl.setColor(black);
    pl.setHeight(120);
    pl.print();
 
    cout<<endl<<pl.getWeight();
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru