Работа Со Структурами , На С++

  • Автор темы slashkinks
  • Дата начала
S

slashkinks

#1
помогите пожалуйста дописать код на С++ (3,4,5 пункты)

1) Описать структуру с именем Train, содержащую следующие поля: dest – название пункта назначения, number – номер поезда, time – время отправления.
2) Написать программу, выполняющую ввод с клавиатуры данных в массив Rasp, состоящий из 6 элементов типа Train.
3) Записи должны быть упорядочены по времени отправления поезда.
4) Вывести на экран информацию о поездах, направляющихся в пункт, название которого введено с клавиатуры.
5) Если таких поездов нет, то вывести соответствующее сообщение.

C++:
#include <iostream>

using namespace std;

void main()
{
setlocale (LC_ALL,"Russian");

const int n = 6; 
struct Train
{
char dest[20];
int number;
float time;
};
Train Rasp[n];
for (int i = 0; i < n; i++)
{
cout << "\nВведите название пункта назначения: ";
cin >> Rasp[n].dest;
cout << "\nВведите номер поезда: ";
cin>>Rasp[n].number;
cout << "\nВведите время отправления: ";
cin>>Rasp[n].time;
}

}
 
R

rrrFer

#2
что конкретно не получается?
можно использовать стандартную функцию qsort, одним из параметров в нее передается указатель на функцию сравнения. Функция сравнения в вашем случае может выглядеть как-то так:
bool compare(const Train &a, const Train &:) const { return a.time < b.time; }
но лучше ИМХО помещать записи не в массив а в или std::set, например, при этом достаточно будет в конструктор set передать указатель на эту же функцию сравнения.

это 3 пункт.
4 пункт может выглядеть как-то так:
std::cin >> name;
bool fl = false;
for (i = 0; i < n; ++i)
if (strcmp(name, a.dest)) {
std::cout << a.number << a.name << a.time <<std::endl;
fl = true;
}
if (false == fl) std::cout << "no train"