Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 8
1

Задача с виртуальными методами, совсем не понимаю что с ней делать :(

17.05.2018, 21:20. Показов 1358. Ответов 2
Метки нет (Все метки)

Доброго времени суток!

Не могу понять, как решать задачу. Вот собственно условие.

Создать иерархию классов «Вагоны пассажирского поезда» с разделением на купейные, плацкартные, СВ. Каждый класс вагона
должен содержать информацию о количестве мест разных типов (нижнее, верхнее, нижнее боковое, верхнее боковое), о наличии
дополнительных услуг и ценах на них. С помощью виртуальных функций получить полный доход от эксплуатации вагона. Создать
класс «Пассажирский поезд», который хранит список вагонов. Подсчитать доход от одного рейса поезда.

Не понимаю, как к ней вообще подступиться, уже второй день сижу Помогите пожалуйста
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.05.2018, 21:20
Ответы с готовыми решениями:

Совсем не понимаю как делать задание
Не понимаю ничего на столько, что даже интерфейс приложения не получается сделать(

Не совсем понимаю, что нужно объявлять в типах?
Там прописывается все действующие элементы интерфейса моего приложения так?

Не совсем понимаю, что нужно найти в задании.
Здравствуйте. Задание: Последовательность треугольных чисел строится по правилу: член...

Не понимаю, что делать с задачей
http://www.cybеrforum.ru/attachment.php?attachmentid=928021&stc=1&d=1523464065 как решать эту...

2
122 / 122 / 70
Регистрация: 15.11.2014
Сообщений: 544
17.05.2018, 22:15 2
Лучший ответ Сообщение было отмечено Алия99 как решение

Решение

Алия99, в моем представлении это как-то так
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
111
112
113
114
abstract class RailwayCarriage
    {
        // количество каждого вида мест
        protected int up;
        protected int upSide;
        protected int down;
        protected int downSide;
 
        abstract public int Option();// какая-то опция для каждого типа вагона, реализуется для каждого вагона по разному
    }
 
    class Coupe : RailwayCarriage
    {
        public Coupe(int up, int upSide, int down, int downSide)
        {
            this.up = up;
            this.upSide = upSide;
            this.down = down;
            this.downSide = downSide;
        }
 
        public void GetCount()
        {
            Console.WriteLine($"Купе вагон, Верхних - {up}, боковых верхних - {upSide}, нижних - {down}, боковых нижних - {downSide}");
        }
 
        public override int Option() // возвращаем цену опции
        {
            int someOption = 120;
            return someOption;
        }
    }
 
    class Plac : RailwayCarriage
    {
        public Plac(int up, int upSide, int down, int downSide)
        {
            this.up = up;
            this.upSide = upSide;
            this.down = down;
            this.downSide = downSide;
        }
 
        public void GetCount()
        {
            Console.WriteLine($"Плацкарт вагон, Верхних - {up}, боковых верхних - {upSide}, нижних - {down}, боковых нижних - {downSide}");
        }
 
        public override int Option()
        {
            int someOption = 50;
            return someOption;
        }
    }
 
    class SV : RailwayCarriage
    {
        public SV(int up, int upSide, int down, int downSide)
        {
            this.up = up;
            this.upSide = upSide;
            this.down = down;
            this.downSide = downSide;
        }
 
        public void GetCount()
        {
            Console.WriteLine($"СВ вагон, Верхних - {up}, боковых верхних - {upSide}, нижних - {down}, боковых нижних - {downSide}");
        }
 
        public override int Option()
        {
            int someOption = 10;
            return someOption;
        }
    }
 
    static class PassengerTrain
    {
        static List<RailwayCarriage> railwayCarriages = new List<RailwayCarriage>();
        public static void AddToList(RailwayCarriage carriage)
        {
            railwayCarriages.Add(carriage);
        }
 
        public static List<RailwayCarriage> GetList()
        {
            return railwayCarriages;
        }
    }
 
 
public static void Main(string[] args)
        {
            int fullSum = 0;
            // места для каждого типа вагонов
            Coupe coupe = new Coupe(10, 22, 13, 33);
            Plac plac = new Plac(15, 27, 23, 43);
            SV sv = new SV(30, 37, 33, 53);
 
            // заполняем список вагонами
            PassengerTrain.AddToList(coupe);
            PassengerTrain.AddToList(coupe);
 
 
             // посчитаем доход для всего поезда, для этого надо сложить все элементы списка (список хранит в себе типы вагонов)
            foreach (var item in PassengerTrain.GetList())
            {
                fullSum += item.Option();
            }
 
            // поскольку список заполнен двумя вагонами типа купе, мы получим общую стоимость 240, с каждого вагона по 120
            Console.WriteLine(fullSum);
        }
1
0 / 0 / 0
Регистрация: 07.01.2018
Сообщений: 8
18.05.2018, 13:34  [ТС] 3
Спасибо большое!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2018, 13:34

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Не понимаю, что делать дальше
не считает &quot;а&quot;, что дальше делать не знаю procedure TForm1.Button1Click(Sender TObjeck); VAR...

Отладка, что с ней делать
Всем доброго времени суток.... Столкнулся с такой проблемой: Был полностью работающий проект, без...

Создать абстрактный класс с виртуальными методами, а также с одним подклассом
Задание: Создать абстрактный класс Pair (пара значений) с виртуальными методами, реализующими...

Ошибка 800А0005, и что с ней делать
Помогите решить ;) ВЫКИДИВАЕТСЯ ОШИБКА С КОДОМ 800А00005. По аркументу right. НО ТОЛЬКО В ЧЕМ...


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

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

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