Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 18
1

Создание динамического массива объектов «Поезд» и работа с ним

26.11.2018, 13:43. Просмотров 1203. Ответов 2
Метки нет (Все метки)

Класс, содержащий следующие свойства:
 название пункта назначения;
 номер поезда
 количество мест;
 количество пассажиров, желающих ехать
функция, которая возвращает количество свободных мест
функция, которая возвращает количество недовольных пассажиров (не хватило места)

Дополнительный поезд формируется, если количество недовольных пассажиров превышает 60% от количества мест влечения.
*Создание динамического массива объектов «поезд», размерность которого равна количеству строк в файле;
чтение из файла in.txt данных в массив объектов «поезд»;
вывод на дисплей и в файл пункты назначения, куда надо подать дополнительные поезда. Записи должны быть упорядочены по алфавиту.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.11.2018, 13:43
Ответы с готовыми решениями:

Передача динамического массива строк в функцию и работа с ним
Доброго времени суток. Помогите, пожалуйста. Мне нужно в программе объявить динамический массив...

Создание динамического массива объектов
Выполняю лабораторную работу в Visual Studio 2012. Вероятно, учебник, как и лабы, устарел. Идёт...

Создание двумерного массива и работа с ним
создать двумерный массив размерностью (n,n),отсортировать таким образом,что бы поменялись элементы...

Создание объектов класса и обращение к ним
Можете , пожалуйста , помочь разобраться с след. записью ? MyClass* ob = new MyClass();...

2
1460 / 926 / 807
Регистрация: 30.04.2016
Сообщений: 3,197
26.11.2018, 23:26 2
shevchenkodim, здравствуйте! Вот:

Пример входных данных:

C++
1
2
3
4
5
6
7
8
9
10
Moscow A1 100 160 
Saint-Petersburg A2 60 20
Tver A3 100 150
Arkhangelsk A4 50 200
Saratov A5 30 100
Volgograd A6 150 20
Sevastopol A7 500 150
Irkutsk A8 10 50
Vladimir A9 30 130
Vladivostok A10 5 150
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
115
116
117
118
119
120
121
122
123
#include <iostream> 
#include <string>
#include <vector> 
#include <algorithm>  
#include <fstream>
 
    using namespace std;
 
class Train {
 
    private:
 
        string destName;
        string trNumber;
        int seatAmount;
        int passAmount;
 
    public:
 
    //Сеттеры
 
    void setDestName(string const &dest) {
        destName = dest;
    }
 
    void setTrainNumber(string const &tr) {
        trNumber = tr;
    }
 
    void setSeatAmount(int seat) {
        seatAmount = seat;
    }
 
    void setPassAmount(int pass) {
        passAmount = pass;
    }
 
    //Геттеры
 
    string getDestName() {
        return destName;
    }
 
    string getTrainNumber() {
        return trNumber;
    }
 
    int getSeatAmount() {
        return seatAmount;
    }
 
    int getPassAmount() {
        return passAmount;
    }
 
    Train() { //Конструктор по умолчанию
        destName = "Moscow";
        trNumber = "A67";
        seatAmount = 120;
        passAmount = 120;
    }
 
    Train(string const &dest, string const &tr, int seat, int pass) { //Конструктор c параметром
        setDestName(dest);
        setTrainNumber(tr);
        setSeatAmount(seat);
        setPassAmount(pass);
    }
 
    int getFreeSeatsAmount() { //Функция расчета количества свободных мест
        if (seatAmount > passAmount) {
            return seatAmount - passAmount;
        } else {
            return 0;
        }
    }
 
    int getPassOverflowAmount() { //Функция расчета количества недовольных пассажиров (не хватило места)
        if (passAmount > seatAmount) {
            return passAmount - seatAmount;
        } else {
            return 0;
        }
    }
 
    bool isNewTrainNeeded() { //Функция проверки нужен ли дополнительный поезд
        if (getPassOverflowAmount() > getSeatAmount() * 60 / 100) {
            return true;
        }
        return false;
    }
 
    void readFromFile(Train* obj, int n) { //Функция вывода нужных пунктов назначения в консоль и текстовый файл
        ifstream fin("in.txt");
        ofstream fout("out.txt");
        vector<string> v;
        for (int i = 0; i < n; i++) {
            fin >> obj->destName >> obj->trNumber >> obj->seatAmount >> obj->passAmount;
            if (isNewTrainNeeded()) {
                v.push_back(obj->destName);
            }
        }
        sort(v.begin(), v.end());
        for (int i = 0; i < v.size(); i++) {
            cout << v[i] << "\n";
            fout << v[i] << "\n";
        }
        fin.close();
        fout.close();
    }
};
 
int main() {
    int n;
    cout << "Enter an array size:\n";
    cout << "n = ";
    cin >> n;
    Train* obj = new Train[n];
    cout << "\nOutput of the program:\n\n";
    obj->readFromFile(obj, n);
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 06.11.2016
Сообщений: 18
28.11.2018, 12:16  [ТС] 3
Спасибо большое!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.11.2018, 12:16

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

Расширение динамического массива объектов
Здравствуйте, форумчане. Моя задача написать функцию,которая добавляет новый объект в динамический...

Добавления и удаление объектов из динамического массива
Есть динамический массив объектов класса. Как реализовать возможность добавления или удаления...

Каков максимальный размер динамического массива объектов?
подскажите пожалуйста, какое максимальное к-во объектов класса можно создать при таком описании...

Изменение размера динамического массива объектов класса
Всех приветствую! Нужно изменить размер динамического массива, в котором я храню созданные объекты....


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

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

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