С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/64: Рейтинг темы: голосов - 64, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
1

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

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

Author24 — интернет-сервис помощи студентам
Разработать класс для описанных ниже объектов. Включить в класс методы 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)
Programming
Эксперт
9485 / 562 / 19
Регистрация: 12.04.2006
Сообщений: 11,671
Блог
11.09.2011, 15:58
Ответы с готовыми решениями:

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

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

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

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

8
146 / 146 / 32
Регистрация: 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
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
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
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
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
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
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
12.09.2011, 01:04 6
нужен
1
ниначмуроФ
851 / 535 / 110
Регистрация: 12.10.2009
Сообщений: 1,913
12.09.2011, 07:00 7
знаю, что конструкторы, в которых все аргументы, кроме первого имеют значения по умолчанию нужно(желательно) объявлять с explicit, а вот с конструктором по умолчанию...
0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 14
12.09.2011, 12:59  [ТС] 8
мы этого еще не учили)
так что мне простят)
но все равно спасибо, буду знать!)
0
программист С++
860 / 600 / 147
Регистрация: 19.12.2010
Сообщений: 2,014
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
cpp_developer
Эксперт
20123 / 5690 / 417
Регистрация: 09.04.2010
Сообщений: 12,546
Блог
12.09.2011, 13:01
Помогаю со студенческими работами здесь

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

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

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

Описать структуру с именем TRAIN
Нужна срочная помощь в написании программы(( помогите пожалуйстаО_о 1. Описать структуру с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Блоги программистов
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­хронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru