Está en la página 1de 6

UIS * EISI Datos Anuales de una aerolínea

22948 Fundamentos de Programación – PD1


2142604 Jeisson Stewen Berdugo Cely Fecha: 18 Dic 2014

Problema a resolver
Una empresa de transporte aéreo tiene 25 aviones, identificados cada uno con un número del
1 al 25, y efectúa vuelos en 15 rutas, identificadas cada una con un número del 1 al 15. Se
tienen los siguientes registros recolectados durante un año: por cada vuelo realizado, se
grabó en un archivo de texto una línea con 4 datos (el número del avión, el número de la
ruta, el número del mes, de 1 al 12, y el número de pasajeros transportados en ese vuelo.
Al final del año tenemos todos los registros grabados, en cualquier orden, y no sabemos
cuántos vuelos hubo; hay un registro centinela cuyos datos son todos cero. Elabore un
programa que calcule e imprima los siguientes resultados:
a) Un listado del total de pasajeros transportados por cada avión;
b) Un listado del total de pasajeros transportados por cada avión en cada ruta;
c) Un listado del total de vuelos realizados por cada avión en cada mes
d) cuál fue el avión que más pasajeros transportó en el año
e) cuál fue la ruta en que este avión transportó más pasajeros durante el año, y
cuántos pasajeros transportó en esa ruta.
f) cuál fue el mes en el que, este avión, realizó mayor número de vuelos, y cuántos
fueron.

Programa

#include <iostream>
#include <iomanip>
using namespace std;
using namespace System;
#include <fstream>
#include <conio.h>

int main()
{
Console::BackgroundColor::set(ConsoleColor::White);
Console::Clear();
Console::Title::set("UIS * EISI * Programación Visual C++ * Programó Jeisson
Berdugo ");

const int A = 25, R = 15, M = 12;


long pasajcadavion[A + 1], pasajavionruta[A + 1][R + 1];
int VuelosMesXavion[A + 1][M + 1];
int i, j, k, avi, rut, mes, pasa, max, mejoravion;
int MejorRuta, maxPasaRut, maxVueAvi, MejorMes, MejorMes2;

// Inicialización de arreglos en cero


for (i = 0; i<A + 1; i++)
{
pasajcadavion[i] = 0;
for (j = 0; j<R + 1; j++)
{
pasajavionruta[i][j] = 0;
for (k = 1; k<M + 1; k++)
VuelosMesXavion[i][k] = 0;
}
}

Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << "\n\n\t\t\t Datos Anuales de una Aerolinea ";

// Apertura y Lectura del Archivo


ifstream entrada("I:\\datosAerolinea.txt");

entrada >> avi >> rut >> mes >> pasa;


// Cálculo total pasajeros por avión, ruta y mes
while (avi > 0)
{
pasajcadavion[avi] = pasajcadavion[avi] + pasa;
pasajavionruta[avi][rut] = pasajavionruta[avi][rut] + pasa;
VuelosMesXavion[avi][mes] = VuelosMesXavion[avi][mes] + 1;
entrada >> avi >> rut >> mes >> pasa;
}

// Calculo avión que transportó más pasajeros


max = 0;
for (i = 1; i<A + 1; i++)
{
if (max < pasajcadavion[i])
{
max = pasajcadavion[i];
mejoravion = i;
}
}

// Cálculo de la ruta y total de pasajeros del max avión


for (i = 1; i<mejoravion + 1; i++)
{
max = 0;
for (j = 1; j<R + 1; j++)
{
if (max < pasajavionruta[i][j])
{
max = pasajavionruta[i][j];
maxPasaRut = max;
MejorRuta = j;
}
}
}

// cálculo del mes y total de vuelos del max avión


for (i = 1; i<mejoravion + 1; i++)
{
max = 0;
for (j = 1; j<M + 1; j++)
{
if (max < VuelosMesXavion[i][j])
{
max = VuelosMesXavion[i][j];
maxVueAvi = max;
MejorMes = j;
}
if (max <= VuelosMesXavion[i][j])
MejorMes2 = j;
}
} getche();

// Impresión de Resultados
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << "\n\n Total anual de Pasajeros transportados por avion: " << "\n\n\t\t ";
Console::ForegroundColor::set(ConsoleColor::Black);

for (i = 1; i<A + 1; i++)


{
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
if (i<10) cout << setw(10) << "A" << i;
else cout << setw(9) << "A" << i;
Console::ForegroundColor::set(ConsoleColor::Black);
cout << setw(8) << pasajcadavion[i];
if (((i + 1) % 2) == 0) cout << "\n\t\t ";
} getche();
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << "\n\n Pasajeros transportados por avion en cada ruta: " << "\n\n\t "
<< "R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15";
cout << "\n";

Console::ForegroundColor::set(ConsoleColor::Black);
for (i = 1; i<A + 1; i++)
{
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << " A" << i;
Console::ForegroundColor::set(ConsoleColor::Black);
if (i<10) cout << " ";
else cout << " ";
for (j = 1; j<R + 1; j++)
cout << setw(4) << pasajavionruta[i][j];
cout << endl;
} getche();

Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << "\n\n Total de vuelos por mes: " << "\n\n\t\t "
<< "M1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 M12";
cout << "\n";

Console::ForegroundColor::set(ConsoleColor::Black);
for (i = 1; i<A + 1; i++)
{
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << "\t A" << i;
Console::ForegroundColor::set(ConsoleColor::Black);
if (i<10) cout << " ";
else cout << " ";
for (j = 1; j<M + 1; j++)
cout << setw(4) << VuelosMesXavion[i][j];
cout << endl;
} getche();

Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << "\n\n El Avion que mas pasajeros transporto en el agno fue: Avion ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << mejoravion;
getche();

Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << "\n La Ruta ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << MejorRuta;
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << " fue la ruta en la que el avion ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << mejoravion;
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << " transporto mas pasajeros: ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << maxPasaRut;
getche();

if ((MejorMes2 == 0) || (MejorMes2 == MejorMes))


{
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << "\n El Mes ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << MejorMes;
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << " fue el mes en el que el avion ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << mejoravion;
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << " realizo mas vuelos: ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << maxVueAvi;
}

else
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << "\n Los Meses ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << MejorMes;
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << " y ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << MejorMes2;
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << " fueron los meses en los que el avion ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << mejoravion;
Console::ForegroundColor::set(ConsoleColor::DarkBlue);
cout << " realizo mas vuelos: ";
Console::ForegroundColor::set(ConsoleColor::Black);
cout << maxVueAvi;

Console::ForegroundColor::set(ConsoleColor::DarkGray);
cout << "\n\n\t\t\t\t\t Pulse Enter para Terminar...";

// Cierre el archivo
entrada.close();

_flushall(); cin.get(); // fin del programa


}
Resultados

También podría gustarte