Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
10 / 1 / 1
Регистрация: 07.05.2013
Сообщений: 67

Описать структуру с именем TRAIN

18.02.2014, 17:03. Показов 2942. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
1. Определить класс с именем TRAIN, содержащий следующие поля:
О название пункта назначения;
О номер поезда;
О время отправления.
Определить методы доступа к этим полям и перегруженные операции извлечения
и вставки для объектов типа TRAIN.
2. Написать программу, выполняющую следующие действия:
О ввод с клавиатуры данных в массив, состоящий из шести объектов типа
TRAIN; записи должны быть упорядочены по времени отправления
поезда;
О вывод на экран информации о поездах, направляющихся в пункт, название
которого введено с клавиатуры;
О если таких поездов нет, выдать на дисплей соответствующее сообщение.


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
# include <iostream>
# include <stdlib.h>
# include <string.h>
# include <time.h>
#include<windows.h>
 
using namespace std;
 
struct TRAIN
{
    char item[15];
    int number;
    char time[6];
};
 
void zap(TRAIN *tr,int count)
{
    
    
    cout<<"------ Информация для "<<count++<<" поезда ----------------------"<<endl;
    cout<<"Введите пункт назначения : ";
    cin>>tr->item;
    //cin.getline(tr->item,15);  Почему так не получается прочитать информацию??
    cout<<"Введите номер поезда : ";
        cin>>tr->number;
    cout<<"Введите время прибытия  ( ЧЧ : ММ )  : ";
        cin>>tr->time;
    cout<<"----------------------------"<<endl;
    
}
 
void sort(TRAIN *tr, int &n)
           {
 TRAIN p;
 
  cout<<"Сортирока по номерам поездов произведена"<<endl;  
  
 //for(int i=0; i<n; i++)
  for(int j=0; j<(n-1); j++)
   {
       if (tr[j].number>tr[j+1].number) 
    {
           p=*(tr+j);
           *(tr+j)=*(tr+j+1);
           *(tr+j+1)=p;
    }
 
   }
}
 
 
void main()
{
    TRAIN inf[2];
    int count;
    int n=2;
    int i;
    int nom;
    bool flag=false;
    char otv[3] ;
    char otv1[3];
    char zn[3]="да";
 
    setlocale(LC_ALL,"rus");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    count=0;
 
    while(count<n)
        zap(&inf[count++],count);
 
    cout<<"Введите номер поезда для которого вы хотите получить информацию : ";
        cin>>nom;
for (i=0;i<2;i++)
 
        if (inf[i].number==nom)
        {
            flag=true;
            cout<<"----------------------------"<<endl;
            cout<<"Пункт назнаения : "<<inf[i].item<<endl;
            cout<<"Номер поезда : "<<inf[i].number<<endl;
            cout<<"Время прибытия : "<<inf[i].time<<endl;
            cout<<"----------------------------"<<endl;
        }
        if (flag==false)
        cout<<"Информации по вашему запросу не найдено!"<<endl;
cout<<"Хотите ли произвести сортировку базы по номеру поезда\nда/нет"<<endl;
cin>>otv;
if (*otv==*zn)
{
    sort(inf,n);
    for (i=0;i<2;i++)
     {
        cout<<"----------------------------"<<endl;
        cout<<"Пункт назнаения : "<<inf[i].item<<endl;
        cout<<"Номер поезда : "<<inf[i].number<<endl;
        cout<<"Время прибытия : "<<inf[i].time<<endl;
        cout<<"----------------------------"<<endl;
    }
}
else 
cout<<"Вывести на информацию о поездах?"<<endl;
cin>>otv1;
 
 
if (*otv1==*zn)
    for (i=0;i<2;i++)
     {
        cout<<"----------------------------"<<endl;
        cout<<"Пункт назнаения : "<<inf[i].item<<endl;
        cout<<"Номер поезда : "<<inf[i].number<<endl;
        cout<<"Время прибытия : "<<inf[i].time<<endl;
        cout<<"----------------------------"<<endl;
    }
 
}
не отображает русский язык почему то при запуске. Запускал в MS Visual C++ 2010 Express Edition. Подскажите, что нужно сделать чтобы русский отображался?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.02.2014, 17:03
Ответы с готовыми решениями:

Описать структуру с именем TRAIN
Доброе время суток, помогите решить примерчик пож..... (Условие в вложении) #include &quot;stdafx.h&quot; #include...

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

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

13
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
18.02.2014, 17:23
Вы меняли шрифт в настройках консоли на Lucida Console?
0
10 / 1 / 1
Регистрация: 07.05.2013
Сообщений: 67
18.02.2014, 17:24  [ТС]
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
Вы меняли шрифт в настройках консоли на Lucida Console?
нет, ничего не менял..
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
18.02.2014, 17:29
Лучший ответ Сообщение было отмечено Ev[G]eN как решение

Решение

alucard115, ПКМ на шапку консольного окна -> Свойства -> Шрифт. и ставите Lucida Console
1
10 / 1 / 1
Регистрация: 07.05.2013
Сообщений: 67
18.02.2014, 17:33  [ТС]
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
alucard115, ПКМ на шапку консольного окна -> Свойства -> Шрифт. и ставите Lucida Console
спасибо большое! теперь все правильно отображает)

А как сделать, чтобы вариантов поезда было не 2, а 6?
0
Mobile Software Engineer
Эксперт С++
 Аватар для Ev[G]eN
5381 / 1585 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
18.02.2014, 17:39
Цитата Сообщение от alucard115 Посмотреть сообщение
TRAIN inf[2];
Цитата Сообщение от alucard115 Посмотреть сообщение
for (i=0;i<2;i++)
и в остальных цикла меняйте 2 на 6..
лучше это сделать через константу, что бы в будущем просто поменять её значение, а не перелопатить всю программу
1
10 / 1 / 1
Регистрация: 07.05.2013
Сообщений: 67
18.02.2014, 17:45  [ТС]
Цитата Сообщение от Ev[G]eN Посмотреть сообщение
и в остальных цикла меняйте 2 на 6..
лучше это сделать через константу, что бы в будущем просто поменять её значение, а не перелопатить всю программу
спасибо) все работает. только в конце почему то ошибку выдает, не могу понять почему (
"Run-Time Check Failure #2 - Stack around the variable 'otv' was corrupted."
что это означает?
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
18.02.2014, 17:56
Цитата Сообщение от alucard115 Посмотреть сообщение
"Run-Time Check Failure #2 - Stack around the variable 'otv' was corrupted."
что это означает?
Слово "нет" введенное с консоли не лезет в это:
C++
1
2
char otv[3] ;
char otv1[3];
Не хватает места под завершающий ноль. Формально исправить можно так:
C++
1
2
char otv[4] ;
char otv1[4];
К сожалению это все равно не защитит от ошибок при вводе более длинных слов. Но для лабы сойдет, наверное.
1
10 / 1 / 1
Регистрация: 07.05.2013
Сообщений: 67
18.02.2014, 18:00  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Слово "нет" введенное с консоли не лезет в это:
C++
1
2
char otv[3] ;
char otv1[3];
Не хватает места под завершающий ноль. Формально исправить можно так:
C++
1
2
char otv[4] ;
char otv1[4];
К сожалению это все равно не защитит от ошибок при вводе более длинных слов. Но для лабы сойдет, наверное.
не помогло( но все равно спасибо, главное программа работает)
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
18.02.2014, 18:32
Цитата Сообщение от alucard115 Посмотреть сообщение
не помогло(
Тогда получившийся результат в студию
0
10 / 1 / 1
Регистрация: 07.05.2013
Сообщений: 67
19.02.2014, 16:40  [ТС]
Цитата Сообщение от DrOffset Посмотреть сообщение
Тогда получившийся результат в студию
тоже самое выдает)
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
19.02.2014, 16:42
Цитата Сообщение от alucard115 Посмотреть сообщение
тоже самое выдает)
А? Я говорю код окончательного варианта в студию. А уж что он выдает мы и сами посмотрим
0
10 / 1 / 1
Регистрация: 07.05.2013
Сообщений: 67
19.02.2014, 17:04  [ТС]
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
# include <iostream>
# include <stdlib.h>
# include <string.h>
# include <time.h>
#include<windows.h>
 
using namespace std;
 
struct TRAIN
{
    char item[15];
    int number;
    char time[6];
};
 
void zap(TRAIN *tr,int count)
{
    
    
    cout<<"------ Информация для "<<count++<<" поезда ----------------------"<<endl;
    cout<<"Введите пункт назначения : ";
    cin>>tr->item;
    //cin.getline(tr->item,15);  Почему так не получается прочитать информацию??
    cout<<"Введите номер поезда : ";
        cin>>tr->number;
    cout<<"Введите время прибытия  ( ЧЧ : ММ )  : ";
        cin>>tr->time;
    cout<<"----------------------------"<<endl;
    
}
 
void sort(TRAIN *tr, int &n)
           {
 TRAIN p;
 
  cout<<"Сортирока по номерам поездов произведена"<<endl;  
  
 //for(int i=0; i<n; i++)
  for(int j=0; j<(n-1); j++)
   {
       if (tr[j].number>tr[j+1].number) 
    {
           p=*(tr+j);
           *(tr+j)=*(tr+j+1);
           *(tr+j+1)=p;
    }
 
   }
}
 
 
void main()
{
    TRAIN inf[6];
    int count;
    int n=6;
    int i;
    int nom;
    bool flag=false;
    char otv[4] ;
    char otv1[4];
    char zn[3]="да";
 
    setlocale(LC_ALL,"rus");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    count=0;
 
    while(count<n)
        zap(&inf[count++],count);
 
    cout<<"Введите номер поезда для которого вы хотите получить информацию : ";
        cin>>nom;
for (i=0;i<6;i++)
 
        if (inf[i].number==nom)
        {
            flag=true;
            cout<<"----------------------------"<<endl;
            cout<<"Пункт назнаения : "<<inf[i].item<<endl;
            cout<<"Номер поезда : "<<inf[i].number<<endl;
            cout<<"Время прибытия : "<<inf[i].time<<endl;
            cout<<"----------------------------"<<endl;
        }
        if (flag==false)
        cout<<"Информации по вашему запросу не найдено!"<<endl;
cout<<"Хотите ли произвести сортировку базы по номеру поезда\nда/нет"<<endl;
cin>>otv;
if (*otv==*zn)
{
    sort(inf,n);
    for (i=0;i<6;i++)
     {
        cout<<"----------------------------"<<endl;
        cout<<"Пункт назнаения : "<<inf[i].item<<endl;
        cout<<"Номер поезда : "<<inf[i].number<<endl;
        cout<<"Время прибытия : "<<inf[i].time<<endl;
        cout<<"----------------------------"<<endl;
    }
}
else 
cout<<"Вывести на информацию о поездах?"<<endl;
cin>>otv1;
 
 
if (*otv1==*zn)
    for (i=0;i<6;i++)
     {
        cout<<"----------------------------"<<endl;
        cout<<"Пункт назначения : "<<inf[i].item<<endl;
        cout<<"Номер поезда : "<<inf[i].number<<endl;
        cout<<"Время прибытия : "<<inf[i].time<<endl;
        cout<<"----------------------------"<<endl;
    }
 system("PAUSE");
}
0
19491 / 10097 / 2460
Регистрация: 30.01.2014
Сообщений: 17,805
19.02.2014, 17:28
В целом все у тебя нормально и падать в штатном режиме не должно. Единственное что, нужно контролировать ввод с консоли значений. Чтобы они были не больше отведенных под них массивов (с учетом завершающего нуля разумеется). Уж делать это программно или оставить так и просто не вводить длинных строк - решай сам.

В штатном режиме (если вводить короткие строки в пределах размерностей) у меня лично ни разу не крэшнулась.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2014, 17:28
Помогаю со студенческими работами здесь

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

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

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

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

Описать структуру с именем TRAIN
Пожалуйста помогите написать программу на языке &quot;СИ&quot; Описать структуру с именем TRAIN, содержащую следующие поля: - название пункта...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru