Задача на структуру TRAIN, упорядоченные по времени и выводом по пункту назначения (реализовать через файлы)

О задаче:
[свернуть]

По книге:C/C++ Программирование на языке высокого уровня: Учебник для вузов 
Автор книги: Павловская Татьяна Александровна
Задача на тему: Структуры
Цель задачи дополнена: заполнить структуры из файла и реализовать вывод результатов в файл
Вариант задачи: 8 — (на странице 147)’ style=’default’ collapse_link=’true’]

Условия задачи:
[свернуть]

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

  • NAZN — название пункта назначения;
  • NUMR — номер поезда;
  • TIME — время отправления.

‘ style=’default’ collapse_link=’true’]

2. Написать программу, выполняющую следующие действия:
[свернуть]

  • ввод с клавиатуры данных в массив, состоящий из шести элементов типа TRAIN; записи должны быть упорядочены по времени отправления поезда;
  • вывод на экран информации о поездах, направляющихся в пункт, название которого введено с клавиатуры; 
  • если таких поездов нет, выдать на дисплей соответствующее сообщение.

‘ style=’default’ collapse_link=’true’]

Листинг(исходник) программы:
[свернуть]

Struct.cpp
[свернуть]


#define Num 6
struct TRAIN	{
char NAZN[20];
int NUMR;
float TIME;
};

‘ style=’default’ collapse_link=’true’]

main.cpp
[свернуть]


#include <iostream>
#include <fstream>
#include <locale>
#include <string>
#include "Struct.cpp"
using namespace std;
TRAIN RASP[Num];
void main(){
setlocale(LC_ALL,"Russian");

ifstream fin("FileIn.txt");
if(!fin)
{
cout<<"Файл для чтения не найден!\\n";
}
else 
{
for(int i=0; i<Num;i++)
{
fin >> RASP[i].NAZN >> RASP[i].NUMR >> RASP[i].TIME;
}

for (int i=0; i<Num; i++)
{
for(int j=0; j<Num; j++)
{
if(RASP[i].TIME < RASP[j].TIME)
{
swap(RASP[i],RASP[j]);
}
}
}

cout<<"Введите пункт назначения: ";
char UserIn_NAZN[20];
cin>>UserIn_NAZN;
cout<<endl;
bool flag1, flag2 = false;

ofstream fout("FileOut.txt");
for(int i=0; i<Num;i++)
{
if( strcmp(UserIn_NAZN,RASP[i].NAZN) == 0)
{
fout<<"Место назначения: "<<RASP[i].NAZN <<"\\t"<<"Номер поезда: "<<RASP[i].NUMR<<"\\t"<<"Время отправления: "<<RASP[i].TIME<<endl;
flag2 = true;
}
else
{
flag1 = false;
}
}
if ( flag1 == false && flag2 == false)
{
fout<<"\\t\\tНа данный маршрут поездов нет!"<<endl;
}
fout.close();
}
system("pause");
}

‘ style=’default’ collapse_link=’true’]

Содержание входного файла FileIn.txt
[свернуть]
Penza 1 18.54
Moscow 2 20.43
Volgograd 3 16.30
Samara 4 23.05
Saratov 5 16.15
Sochi 6 17.00′ style=’default’ collapse_link=’true’]

Автор: Павел Кадыров

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *