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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
#1

Разработать структуру с именем TRAIN - C++

11.09.2011, 15:58. Просмотров 1897. Ответов 8
Метки нет (Все метки)

Разработать класс для описанных ниже объектов. Включить в класс методы set (…), get(…), print (…). Определить свои методы для класса. Инициализацию производить в конструкторах и списках инициализации.

1. Train (поезд): Пункт назначения, Номер поезда, Время отправления, Число общих мест, Купейных, Плацкартных.
Создать массив объектов. Вывести:
a) список поездов, следующих до заданного пункта назначения;
b) список поездов, следующих до заданного пункта назначения и отправляющихся после заданного часа;
c) список поездов, отправляющихся до заданного пункта назначения и имеющих общие места.


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

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
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
 
 
class Train //1 поезд
{
    char punkt [20]; //пункт назначения
    int num_train; //номер поезда
    double time; //время отправления
    char seats[10]; //тип места
public:
    
    void setPunkt ( char *_punkt)
    {
        strcpy(punkt, _punkt);
    }
    void setTime (double  _time)
    {
        if(time<24)
        time = _time;
        else
            cout<<"Время введено не правильно!"<<endl;
 
    }
    void setNum_train (int _num_train)
    {
        num_train = _num_train;
    }
    void setSeats ( char *_seats)
    {
        strcpy(seats, _seats);
    }
    void printInfo ()
    {
        cout<<"Пункт назначения: "<<punkt<<endl<<
            "№ поезда: "<<num_train<<endl<<
            "Время отправки: "<<time<<endl<<
            "Тип места: "<<seats<<endl;
    }
};
 
class Arr
{
    Train train[5]; //массив поездов
public:
    Arr ( Train *_train, int _size)
    {
        for (int i=0; i<_size; i++)
        {
            addTrain(_train[i]);
        }
    }
 
    void addTrain(Train _train)
    {
        int size=0;
        if( size<5)
        {
            train[size]= _train;
            size++;
        }
        else
            cout<<"Error Array of trains is full!"<<endl;
    }
 
    void printInfo()
    {
        for(int i=0; i<5; i++)
        {
            cout<<i+1<<". ";
            train[i].printInfo();
            
        }
    }
};
 
void main()
{
    SetConsoleOutputCP(1251);
 
    Train train;
    train.setPunkt('kiev');
 
    train.setNum_train(3);
    train.printInfo();
 
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2011, 15:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разработать структуру с именем TRAIN (C++):

Разработать структуру с именем TRAIN - C++
Здравствуйте, помогите решить задачу по С++: Разработать структуру с именем TRAIN, содержащую поля: *Название пункта назначения; ...

Разработать структуру с именем TRAIN - C++
Разработать структуру с именем TRAIN, содержащую поля: • Название пункта назначения; • Номер поезда; • Время отправления...

Описать структуру с именем TRAIN - C++
1. Определить класс с именем TRAIN, содержащий следующие поля: О название пункта назначения; О номер поезда; О время отправления. ...

Описать структуру с именем TRAIN - C++
Описать структуру с именем TRAIN, содержащую поля: название пункта назначения; номер поезда; ...

Описать структуру с именем TRAIN - C++
Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения, номер поезда, время отправления. Написать...

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

8
.::.DIMA.::.
143 / 143 / 4
Регистрация: 26.10.2008
Сообщений: 782
11.09.2011, 22:06 #2
1) Время лучше хранить в long или в специальной структуре.
2) В классе Arr использовать не статический массив, а коллекцию из STL, или динамический массив (если STL не узучали).
(и дать классу нормальное название, депо, например)
3) Создать класс, который будет создавать поезда (например, из заранее подготовленного списка случайным образом выбирать маршрут).

Добавлено через 1 минуту
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
void setPunkt ( char *_punkt)
{
strcpy(punkt, _punkt);
}
И посмотрите, что будет, если передать строку длиннее, чем 20 символов.

Добавлено через 1 минуту
Цитата Сообщение от Marshal_Женя Посмотреть сообщение
char seats[10]; //тип места
для этих челей есть enum.
0
Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
11.09.2011, 22:35  [ТС] #3
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
#include <iostream>
#include <Windows.h>
 
using namespace std;
 
class Train
{
    char punkt[20];// пункт назначения
    int num;//номер поезда
    double time;//время отправки
    int kupe; //купе
    int plac; //плацкарт
public:
    Train (char *_punkt = "Unknown", int _num=0, double _time =00.00, int _kupe=0, int _plac=0)
    {
        setPunkt( _punkt);
        setNum( _num);
        setTime ( _time);
        setKupe ( _kupe);
        setPlac ( _plac);
    }
    void setPunkt(char *_punkt)
    {
        strcpy(punkt, _punkt);
    }
    void setNum(int _num)
    {
        num=_num;
    }
    void setTime (double _time)
    {
        time=_time;
    }
    void setKupe (int _kupe)
    {
        kupe=_kupe;
    }
    void setPlac (int _plac)
 
    {
        plac=_plac;
    }
    void printInfo()
    {
        cout<<
            "Пункт назачения: "<<punkt<<endl<<
            "№ поезда: "<<num<<endl<<
            "Время отправки: "<<time<<endl<<
            "Общее число мест купэ: "<<kupe<<endl<<
            "Общее число мест плацкарт: "<<plac<<endl;
 
    }
};
 
class mas
{
    Train train [5]; //массив поездов
    int size; // кол-во поездов
public:
    
    void addTrain (Train _train)
    {
        if(size<5)
        {
            train[size]=_train;
            size++;
        }
        else
            cout<<"Error, array is full"<<endl;
    }
    void printInfo()
    {
        for(int i=0; i<size; i++)
        {
            cout<<i+1<<". ";
            train[i].printInfo();
        }
    }
};
 
void main()
{
    SetConsoleOutputCP(1251);
 
    const int len=5;
    Train train[len]={
        Train("Kiev", 4, 22.44, 54, 23),
        Train("Zaporizhia", 7, 11.01, 40, 50),
        Train("Moskva", 16, 00.37, 70, 94),
        Train("St-Peterburg", 3, 07.56, 57, 49),
        Train("Doneck", 41, 14.08, 34, 28)
    };
 
    mas mas;
    mas.printInfo();
}
0
sandye51
программист С++
685 / 587 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
11.09.2011, 22:48 #4
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <iostream>
#include <clocale>
#include <cstring>
#include <conio.h>
 
using namespace std;
 
class Train
{
    char punkt[20];// пункт назначения
    int num;//номер поезда
    double time;//время отправки
    int kupe; //купе
    int plac; //плацкарт
public:
    explicit Train (const char *_punkt = "Unknown", int _num = 0, double _time = 0.0, int _kupe = 0, int _plac = 0)
    {
        setPunkt(_punkt);
        setNum(_num);
        setTime(_time);
        setKupe(_kupe);
        setPlac(_plac);
    }
    void setPunkt(const char *_punkt)
    {
        strcpy(punkt, _punkt);
    }
    void setNum(int _num)
    {
        num=_num;
    }
    void setTime (double _time)
    {
        time=_time;
    }
    void setKupe (int _kupe)
    {
        kupe=_kupe;
    }
    void setPlac (int _plac)
    {
        plac=_plac;
    }
    void printInfo()
    {
        cout << "Пункт назачения: " << punkt << endl
            << "№ поезда: " << num << endl
            << "Время отправки: " << time << endl
            << "Общее число мест купэ: " << kupe << endl
            << "Общее число мест плацкарт: " <<plac << endl;
    }
};
 
class mas
{
    Train train[5]; //массив поездов
    int size; // кол-во поездов
public:
    mas() :
        size()
    {
    }
 
    void addTrain (Train _train)
    {
        if (size < 5)
            train[size++]=_train;
        else
            cout << "Error, array is full" << endl;
    }
    void printInfo()
    {
        for(int i = 0; i < size; i++)
        {
            cout<<i+1<<". ";
            train[i].printInfo();
        }
    }
};
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    const int len=5;
    Train train[len] = {
        Train("Kiev", 4, 22.44, 54, 23),
        Train("Zaporizhia", 7, 11.01, 40, 50),
        Train("Moskva", 16, 00.37, 70, 94),
        Train("St-Peterburg", 3, 07.56, 57, 49),
        Train("Doneck", 41, 14.08, 34, 28)
    };
 
    // создали просто пустой массив оболочку и все - он пустой;
    mas ms;
 
    // здесь надо было инициализировать массив-wrapper mas;
    for (int i = 0; i < len; ++i)
        ms.addTrain(train[i]);
 
    ms.printInfo();
 
    _getch();
    return 0;
}
1
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
12.09.2011, 00:16 #5
вопрос:

а нужен ли здесь explicit?
C++
1
 explicit Train (const char *_punkt = "Unknown", int _num = 0, double _time = 0.0, int _kupe = 0, int _plac = 0)
0
sandye51
программист С++
685 / 587 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
12.09.2011, 01:04 #6
нужен
1
PointsEqual
ниначмуроФ
836 / 520 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
12.09.2011, 07:00 #7
знаю, что конструкторы, в которых все аргументы, кроме первого имеют значения по умолчанию нужно(желательно) объявлять с explicit, а вот с конструктором по умолчанию...
0
Marshal_Женя
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
12.09.2011, 12:59  [ТС] #8
мы этого еще не учили)
так что мне простят)
но все равно спасибо, буду знать!)
0
sandye51
программист С++
685 / 587 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
12.09.2011, 13:01 #9
конструктор с аргументами по умолчанию это по сути множество конструкторов в одном, в том числе он содержит и конструктор с одним аргументом.
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
#include <iostream>
#include <cstdlib>
 
class test_class
{
public:
   explicit test_class(const char* = "undefined_name", int value = 5) :
      value(value)
   {
   }
   
   friend std::ostream& operator<< (std::ostream& stream, const test_class& instance)
   {
      return stream << instance.value;
   }
   
private:
   int value;
};
 
int main()
{
   test_class instance;
   std::cout << instance << std::endl;
   instance = "file_name"; 
   return EXIT_SUCCESS;
}
так не компилится
Код
source.cpp: In function 'int main()':
source.cpp:25:15: error: no match for 'operator=' in 'instance = "file_name"'
source.cpp:25:15: note: candidates are:
source.cpp:4:7: note: test_class& test_class::operator=(const test_class&)
source.cpp:4:7: note:   no known conversion for argument 1 from 'const char [10]' to 'const test_class&'
source.cpp:4:7: note: test_class& test_class::operator=(test_class&&)
source.cpp:4:7: note:   no known conversion for argument 1 from 'const char [10]' to 'test_class&&'
если убрать explicit, то все нормально.
0
12.09.2011, 13:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2011, 13:01
Привет! Вот еще темы с ответами:

Описать структуру с именем TRAIN - C++
Описать структуру с именем TRAIN, содержащую следующие поля: ■ название пункта назначения; ■ номер поезда; ■ время отправления. ...

Описать структуру с именем TRAIN - C++
Помогите написать листининг программы, со следующим заданием. Описать структуру с именем TRAIN содержащую след. поля: 1. название...

Описать структуру с именем TRAIN - C++
Описать структуру с именем TRAIN ,содержащую следующие поля: - название пункта назначения ; - номер поезда; - время отправления; ...

Описать структуру с именем Train - C++
Описать структуру с именем TRAIN, содержащую следующие поля: • название пункта назначения; • номер поезда; • время отправления. ...


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

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

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