Logo Studenta

Ejercicio 5

¡Este material tiene más páginas!

Vista previa del material en texto

5
Ejercicio 5
Candia Arias Jessica
Sanchez Silva Isaac
Sección 003
Periodo Otoño 2020
Programación Avanzada
Índice
1. Objetivos 
2. Marco teórico 
3. Algoritmo
4. Código
5. Evidencias de funcionamiento
6. Resultados y conclusiones
7. Bibliografía 
1. Objetivos
Crear un programa final integrador con base en un problema, utilizando todos los recursos básicos que hemos aprendido durante la clase 
2. Marco teórico 
Para llevar acabo el ejercicio es necesario tener en cuenta que se incluirán atributos privados los cuales solo son accesibles desde la clase que los define y atributos públicos los cuales podemos acceder a las propiedades y métodos desde cualquier lugar, desde la clase actual, clases que heredan de la clase actual y desde otras clases
También usaremos #include <string> que es un archivo de la biblioteca estándar que contiene la definición de macros, constantes, funciones, tipos y algunas operaciones de manipulación de memoria.
3. Algoritmo
Considere la siguiente jerarquía de herencias: 
Definir las clases. Decidir qué atributos y métodos incluir en cada clase de tal manera que su programa pueda a través de un menú realizar las siguientes acciones:
a) Crear objetos de cualquier tipo, solicitando los datos al usuario. 
b) Solicitar un paquete en un crucero a algún destino.
 c) Verificar que opciones de transporte terrestre se tienen para la realización de un viaje de fin de semana.
 d) Reservar un paquete que incluya boleto aéreo a cualquier destino. 
e) Salir de la aplicación. 
El menú deberá estar siempre activo, en la misma posición en pantalla, hasta que el usuario seleccione la opción salir. El programa debe estar debidamente comentado.
4. Código 
Agencia.h: 
#include <iostream>
#include <cstdlib>
#include <string>
using namespace std;
class people {
protected:
 string name, lastname;
 int age;
 int N;
public:
 people();
 void leer_persona();
 void imprimir_persona();
};
people::people()
{
 name = "";
 lastname = "";
 age = 0;
}
void people::leer_persona()
{
 cout << "\n\tIntroduce nombre: ";
 cin >> name;
 cout << "\n\tIntroduce apellido: ";
 cin >> lastname;
 cout << "\n\tIntroduce edad : ";
 cin >> age;
}
void people::imprimir_persona()
{
 cout << "Nombre: " << name << endl;
 cout << "Apellido: " << lastname << endl;
 cout << "Edad: " << age << endl;
}
class terrestre :public people
{
protected:
 string dest;
 int trans, agen;
public:
 terrestre();
 void leer_terrestre();
 void imprimir_terrestre();
};
terrestre::terrestre()
{
 dest = "";
 trans = 0;
}
void terrestre::leer_terrestre()
{
 cout << "\n\tIntroduce nombre : ";
 cin >> name;
 cout << "\n\tIntroduce apellido : ";
 cin >> lastname;
 cout << "\n\tIntroduce edad : ";
 cin >> age;
 cout << "\nUsted viaja a : ";
 cin >> dest;
 cout << "\n\t1.Autobus economico";
 cout << "\n\t2.Autobus de lujo";
 cout << "\n\t3.Particular";
 cout << "\n\t4.Caravana";
 cout << "\nUsted desea viajar por : ";
 cin >> trans;
 cout << "\nEl precio del boleto es : ";
 cin >> agen;
 system("cls");
}
void terrestre::imprimir_terrestre()
{
 imprimir_terrestre();
 cout << "Usted viaja a: " << dest << endl;
 cout << "Su transporte es: ";
 if (trans == 1)
 cout << "Autobus economico";
 if (trans == 2)
 cout << "Autobus de lujo";
 if (trans == 3)
 cout << "Particular";
 if (trans == 4)
 cout << "Caravana";
}
class maritimo :public people
{
protected:
 string destino;
 int transporte, edad;
public:
 maritimo();
 void leer_maritimo();
 void imprimir_maritimo();
};
maritimo::maritimo()
{
 destino = "";
 transporte = 0;
}
void maritimo::leer_maritimo()
{
 cout << "\n\tIntroduce nombre : ";
 cin >> name;
 cout << "\n\tIntroduce apellido : ";
 cin >> lastname;
 cout << "\n\tIntroduce edad : ";
 cin >> age;
 cout << "\nUsted viaja a : ";
 cin >> destino;
 cout << "\n\t1.Crucero economino";
 cout << "\n\t2.Crucero de lujo";
 cout << "\n\t3.Yate";
 cout << "\nUsted desea viajar por : ";
 cin >> transporte;
 cout << "\nEl precio del boleto es : ";
 cin >> edad;
 system("cls");
}
void maritimo::imprimir_maritimo()
{
 imprimir_maritimo();
 cout << "Usted viaja a: " << destino << endl;
 cout << "Su transporte es: ";
 if (transporte == 1)
 cout << "Crucero economico";
 if (transporte == 2)
 cout << "Crucero de lujo";
 if (transporte == 3)
 cout << "Yate";
}
class aereo :public people
{
protected:
 string destino;
 int transporte, agenc;
public:
 aereo();
 void leer_aereo();
 void imprimir_aereo();
};
aereo::aereo()
{
 destino = "";
 transporte = 0;
}
void aereo::leer_aereo()
{
 cout << "\n\tIntroduce nombre : ";
 cin >> name;
 cout << "\n\tIntroduce apellido : ";
 cin >> lastname;
 cout << "\n\tIntroduce edad : ";
 cin >> age;
 cout << "\nUsted viaja a : ";
 cin >> destino;
 cout << "\n\t1.Vuelo economico";
 cout << "\n\t2.Primera clase";
 cout << "\n\t3.Jet";
 cout << "\n\t4.Helicoptero";
 cout << "\nUsted desea viajar por : ";
 cin >> transporte;
 cout << "\nEl precio del boleto es : ";
 cin >> agenc;
 system("cls");
}
void aereo::imprimir_aereo()
{
 imprimir_aereo();
 cout << "Usted viaja a: " << destino << endl;
 cout << "Su transporte es: ";
 if (transporte == 1)
 cout << "Vuelo economico";
 if (transporte == 2)
 cout << "Primera clase";
 if (transporte == 3)
 cout << "Jet";
 if (transporte == 4)
 cout << "Helicoptero";
}
class agencia :public terrestre, public maritimo, public aereo
{
private:
 int precio;
public:
 agencia();
 void leer_agencia();
 void imprimir();
};
agencia::agencia()
{
 precio = 0;
}
void agencia::leer_agencia()
{
 if (agen == 1)
 {
 cout << "\n\n\tEl precio del viaje es: ";
 cin >> precio;
 system("cls");
 }
 if (edad == 1)
 {
 cout << "\n\nEl precio del viaje es: ";
 cin >> precio;
 system("cls");
 }
 if (agenc == 1)
 {
 cout << "\n\nEl precio del viaje es: ";
 cin >> precio;
 system("cls");
 }
}
void agencia::imprimir()
{
 if (agen == 1)
 {
 cout << "\n\nEl precio es: " << precio;
 }
 if (edad == 1)
 {
 cout << "\n\nEl precio es: " << precio;
 }
 if (agenc == 1)
 {
 cout << "\n\nEl precio es: " << precio;
 }
}
Código principal:
#include <iostream>
#include "agencia.h"
int main()
{
 int esemp;
 agencia persona1;
 do
 {
 cout << "Por que medio desea viajar : ";
 cout << "\n\t1.Terrestre";
 cout << "\n\t2.Maritimo";
 cout << "\n\t3.Areo";
 cout << "\nSi desea salir oprima 0 : ";
 cin >> esemp;
 if (esemp == 1)
 {
 persona1.leer_terrestre();
 persona1.agencia::leer_agencia();
 system("cls");
 persona1.terrestre::imprimir_terrestre();
 persona1.agencia::imprimir();
 }
 if (esemp == 2) {
 persona1.leer_maritimo();
 persona1.agencia::leer_agencia();
 system("cls");
 persona1.maritimo::imprimir_maritimo();
 persona1.agencia::imprimir();
 }
 if (esemp == 3) {
 persona1.leer_aereo();
 persona1.agencia::leer_agencia();
 system("cls");
 persona1.aereo::imprimir_aereo();
 persona1.agencia::imprimir();
 }
 } while ((esemp !=0));
 system("Pause");
};
5. Evidencias 
6. Resultados y/o conclusiones 
Como resultado obtuvimos un programa que en primer lugar no tuvo problemas de compilación y, por último, realizaba correctamente las operaciones que tenemos como objetivo, por lo cual, se cumplió.
7. Bibliografía
[1] Jorge Cervantes Ojeda, María del Carmen Gómez Fuentes, Pedro Pablo González Pérez y Abel García Nájera,introducción a la programación orientada a objetos, primera edición, universidad autónoma metropolitana.
[2] Vicente Benjumea y Manuel Roldan, fundamentos de programación con el lenguaje de programación C++, primera edición, universidad de Málaga Dpto. lenguaje y CC. Computación E.T.S.I. Informática.
Benemérita Universidad Autónoma de Puebla

Continuar navegando