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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
felicita_091
8 / 8 / 1
Регистрация: 24.10.2012
Сообщений: 428
#1

Множественное наследование (Разработайте базовый класс CLIENT) - C++

11.03.2013, 14:37. Просмотров 595. Ответов 7
Метки нет (Все метки)

Задание: Множественное наследование.
Разработайте базовый класс CLIENT.
Элемент класса:

ФИО;

количество поездок.

Методы:

метод, осуществляющий ввод значений полей класса с клавиатуры;

метод, осуществляющий вывод значений полей класса на экран.

Разработайте класс SKIDKA – производный от класса REIS и CLIENT. В этот класс добавьте ме-тод, в котором проверяется количество поездок. Если количество > 10, то выводится на экран со-общение «Скидка 5%» и цена билета с учетом скидки, в противном случае – 100% стоимость.

Как сделать это??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 14:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Множественное наследование (Разработайте базовый класс CLIENT) (C++):

Абстрактный базовый класс и множественное наследование - C++
Общая постановка. Создать программу с абстрактным базовым классом и множественным наследованием. Помогите разобраться почему не работает,...

Абстрактный базовый класс и множественное наследование (либо иерархия классов) - C++
Помогите пожалуйста с задачей. Кое-что написал но еще далеко не все. Все ли пока правильно? Мобильные телефоны (наименование,...

Наследование: базовый класс Квадрат, производный класс Пирамида - C++
Помогите, пожалуйста!:cry: Добавлено через 6 минут Создать класс КВАДРАТ, член класса- длинна стороны. Предусмотреть в классе методы...

Абстрактный класс, одиночное наследование, далее множественное - C++
Добрый вечер! никак не могу найти информацию о том, как правильно реализуется следующее действие: есть абстрактный класс А, от него...

Виртуальное наследование (указатель на базовый класс) - C++
У меня ромбическая иерархия классов, при попытке вызвать метод производного класса ошибка, что я не так делаю? Вот исходный код ...

Наследование: базовый класс - массив, наследник - матрица - C++
Помогите пожалуйста с наследованием. базовый класс - массив, наследник - матрица. Использовать именно наследование.

7
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.03.2013, 16:28 #2
REIS - опишите этот класс, есть догадки, конечно, но хотелось бы больше конкретики
0
felicita_091
8 / 8 / 1
Регистрация: 24.10.2012
Сообщений: 428
11.03.2013, 16:33  [ТС] #3
xtorne21st, Reis класс еще не создавала, не знаю как это делать
0
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.03.2013, 17:53 #4
Цитата Сообщение от felicita_091 Посмотреть сообщение
Разработайте класс SKIDKA – производный от класса REIS и CLIENT. В этот класс добавьте ме-тод, в котором проверяется количество поездок. Если количество > 10, то выводится на экран со-общение «Скидка 5%» и цена билета с учетом скидки, в противном случае – 100% стоимость.
Я так понимаю RIES нужен для того, чтобы подсчитывать количество рейсов для SKIDKA, если количество одно и того же рейса равно 10 тогда активируется 10% скидка, я правильно понял? Просто желательно сразу всё уточнять, чтобы попросту не тратить время на выяснение деталей
0
felicita_091
8 / 8 / 1
Регистрация: 24.10.2012
Сообщений: 428
11.03.2013, 18:03  [ТС] #5
xtorne21st, Да)))
0
lemegeton
2925 / 1354 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
11.03.2013, 19:00 #6
Задание настолько чудовищно некорректно, что слов нет.

Чтобы появилось наследование, наследуемый класс должен являться, а лучше вести себя как базовый класс. Только в этом случае имеет смысл наследование.

В данном случае наследование смысла не имеет. Скидка не рейс и не клиент. Как её можно наследовать от рейса или от клиента?! Это лишено смысла.

Притянуть за уши можно, конечно. Синтаксис позволит. Но смысла в этом будет не больше, чем в помеси кролика и пожарного гидранта, названного напильником.
0
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
11.03.2013, 20:23 #7
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
#include <iostream>
#include <string>
 
// Отчистка потока от "мусора".
#define CIN_FLUSH if (std::cin.peek()) std::cin.ignore()
 
class CLIENT
{
    public:
        void put_user()
        {
            std::cout << "FIO: ";
            std::getline(std::cin, fio);
            std::cout << "Count of travels: ";
            std::cin >> count_of_travels;
            CIN_FLUSH;
            std::cout << "Put number of reis you want: ";
            std::getline(std::cin, reis_want);
        }
        void show_user()
        {
            std::cout << "FIO is " << fio << '\n';
            std::cout << "Count of travels = " << count_of_travels << '\n';
            std::cout << "Reis: " <<  ret_reis_want() << '\n';
        }
 
    protected:
        int ret_trav()
        {
            return count_of_travels;
        }
 
        std::string ret_reis_want()
        {
            return reis_want;
        }
 
    private:
        std::string reis_want;
        std::string fio;
        int count_of_travels;
};
 
class REIS
{
    public:
        REIS() // констуктор. Название рейса.
        {
            std::cout << "Put number of current reis: ";
            std::getline(std::cin, reis);
        }
 
    protected:
        std::string ret_reis()
        {
            return reis;
        }
 
    private:
        std::string reis;
};
 
class SKIDKA : public REIS, public CLIENT
{
    public:
        void show_discount()
        {
            // Для наглядности количество рейсов и номер
            if (ret_reis() == ret_reis_want() && ret_trav() > 10)
                std::cout << "Discount is 5%\n";
            else
                std::cout << "Full costs.\n";
        }
};
 
int main()
{
    SKIDKA obj; 
    std::cout << '\n';
    obj.put_user();
    std::cout << '\n';
    obj.show_user();
    obj.show_discount();
 
    return 0;
}
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
ilyuha21st@coldshoot:~/Projects$ ./prog
Put number of current reis: Kiev-Moskva
 
FIO: Illia Danko
Count of travels: 11
Put number of reis you want: Kiev-Moskva
 
FIO is Illia Danko
Count of travels = 11
Reis: Kiev-Moskva
Discount is 5%
ilyuha21st@coldshoot:~/Projects$ ./prog
Put number of current reis: Kiev-Moskva
 
FIO: Illia Danko
Count of travels: 11
Put number of reis you want: Kiev-L'vov 
 
FIO is Illia Danko
Count of travels = 11
Reis: Kiev-L'vov
Full costs.
1
felicita_091
8 / 8 / 1
Регистрация: 24.10.2012
Сообщений: 428
11.03.2013, 21:33  [ТС] #8
xtorne21st, std::cout << "FIO: "; std::cout << "Count of travels: ";"Put number of reis you want: "; мне все эти надо на русском
0
11.03.2013, 21:33
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2013, 21:33
Привет! Вот еще темы с ответами:

Наследование классов С++ (не могу правильно унаследовать базовый класс) - C++
Здравствуйте, вот хочу разобраться как правильно унаследовать класс. Задача такова, унаследовать ранее написанный мною класс, добавив в...

Простое наследование в с++. Базовый класс (AEROFLOT) и дочерний (REIS) - C++
Есть два класса: базовый (AEROFLOT) и дочерний (REIS). При компиляции у меня конструктор по умолчанию базового класса вызывается два раза....

Создать иерархию классов, представляющих простое наследование. Базовый класс – строка символов (char *) - C++
. Создать иерархию классов представляющих простое наследование. Базовый класс – строка символов (char *). Производный класс – методы,...

Наследование классов. Используя базовый класс Point {x, y, цвет} разработать производные классы механизма двигателя. - C++
Движок (двигатель с кривошипно-шатунным механизмом) Ребята, кто может, помогите очень надо! получу автоматом или пойду на экзамен, вот...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru