Скачиваний:
59
Добавлен:
15.06.2014
Размер:
32.77 Кб
Скачать

Белорусский государственный университет информатики и радиоэлектроники

Кафедра вычислительных методов и программирования

Лабораторная работа № 7

Тема: «Программирование с использованием структур»

Вариант 4

Выполнил студент группы № 922403

Олешкевич Андрей Сергеевич

Приняла: Коренская И.H

Минск 2009

Задание: в справочной автовокзала храниться расписание движения автобусов. Для каждого рейса указаны его номер, тип автобуса, пункт назначения, время отправления и прибытия. Вывести информацию о рейсах, которыми можно воспользоваться для прибытия в пункт назначения раньше заданного времени.

Листинг программы:

#include <iostream>

#include <string.h>

#include <iomanip>

using std::cout;

using std::endl;

using std::cin;

using std::setw;

using std::fixed;

using std::setprecision;

const int MAX_TRIPS = 5;

struct Trip

{

public:

Trip(long int number, char *type,

char *point, double otT, double prT);

long int tripNumber;

char *tripType;

char *destractionPoint;

double otprTime;

double pribTime;

};

Trip::Trip(long int number, char *type,

char *point, double otT, double prT)

{

tripNumber = number;

tripType = type;

destractionPoint = point;

otprTime = otT;

pribTime = prT;

}

int main()

{

char dPoint[20];

double time = 0.0;

int indexes[MAX_TRIPS], p;

Trip *trips[MAX_TRIPS];

trips[0] = new Trip(12345, "Bus", "Metro station", 15.00, 16.00);

trips[1] = new Trip(12344, "Bus", "Independence Square", 15.20, 15.40);

trips[2] = new Trip(12343, "Streetcar", "Independence Square", 15.15, 15.30);

trips[3] = new Trip(12342, "Streetcar", "Metro station", 15.00, 15.30);

trips[4] = new Trip(12341, "Bus", "Independence Square", 15.10, 15.25);

cout <<"Enter a distraction point: ";

cin.getline(dPoint, 20, '\n');

cout <<"Enter a arrive time: ";

cin >> time;

cout <<endl <<"------------- Data of trips -------------------------" << endl;

for(int i = p = 0; i < MAX_TRIPS; i++)

{

char *str = trips[i]->destractionPoint;

if(strcmp(dPoint, str) == 0)

{

indexes[p] = i;

p++;

}

}

for(int j = 0; j < p; j++)

{

if(trips[indexes[j]]->pribTime < time)

{

cout <<setw(19)<<"Trip number: "<<trips[indexes[j]]->tripNumber<<endl

<<setw(19)<<"Trip type: "<<trips[indexes[j]]->tripType<< endl

<<setw(19)<<"Destraction point: "<<trips[indexes[j]]->destractionPoint

<<endl <<setw(19) <<"Time of dispatch: "<<fixed<<setprecision(2)

<<trips[indexes[j]]->otprTime<<endl<<setw(19)<<"Time of arrived: "

<< fixed<<setprecision(2)<< trips[indexes[j]]->pribTime << endl;

cout <<"-----------------------------------------------" << endl;

}

}

for(int k = 0; k < MAX_TRIPS; k++)

delete trips[k];

return 0;

}

Выводы: Проведя данную лабораторную работу, я научился использовать структуры при написании своих программ. Также научился использовать манипуляторы потоков fixed, setw, setprecision которые позволяют управлять форматным выводом данных.