Vous êtes sur la page 1sur 5

/* En un hotel de nuestra ciudad se tienen 3 tipos de habitaciones (1. Matrimonial, 2. Dobles y 3.

Triple), las cuales tienen un valor por da de: 130, 150 y 180, respectivamente. Por cada Cliente que se hospeda se conoce, tipo de habitacin y cantidad de das que dur. Se requiere la siguiente informacin: por cada Cliente: i) cdula, ii) tipo de habitacin que alquil, iii) cantidad de das que dur y iv) monto a cancelar; y por el Hotel monto total recaudado. */ #include <iostream> #include "Controlador.h" using namespace std; int main() { Controlador control; control.ProcesarHotel(); system("PAUSE"); return EXIT_SUCCESS; } #ifndef MHOTEL_H #define MHOTEL_H class MHotel { private: float acum_mont; public: MHotel (); void ProcesarClientes(MCliente c); float GetAcumMont(); }; #include "MHotel.cpp" #endif MHotel :: MHotel () { acum_mont = 0; } void MHotel::ProcesarClientes(MCliente c) { acum_mont += c.MontoPagar(); } float MHotel:: GetAcumMont() { return acum_mont; } #ifndef MCLIENTE_H #define MCLIENTE_H class MCliente { private: long cedula; int tipo_hab; int cant_dias; public:

MCliente (); void SetCedula(long); void SetTipoHab(int); void SetCantDias(int); long GetCedula(); int GetTipoHab(); int GetCantDias(); float MontoPagar(); }; #include "MCliente.cpp" #endif MCliente:: MCliente () {} void MCliente::SetCedula(long ce) { cedula = ce; } void MCliente::SetTipoHab(int th) { tipo_hab = th; } void MCliente::SetCantDias(int cd) { cant_dias = cd; } long MCliente::GetCedula() { return cedula; } int MCliente::GetTipoHab () { return tipo_hab; } int MCliente::GetCantDias () { return cant_dias; } //mtodo que calcula el monto a pagar float MCliente :: MontoPagar() { if (tipo_hab == 1) return cant_dias * 130; else if (tipo_hab == 2) return cant_dias * 150; else return cant_dias * 180; } #ifndef VHOTEL_H #define VHOTEL_H #include <iostream> #include <iomanip> using namespace std; class VHotel { public: VHotel (); void ImprimirHotel (float monto); };

#include "VHotel.cpp" #endif VHotel:: VHotel (){} void VHotel::ImprimirHotel(float monto) { system("cls"); cout << "INFORMACION DEL HOTEL" << endl; cout << "========================" << endl; cout << "Monto Total Recaudado : " << setiosflags(ios::fixed) << setprecision(2) << monto << endl; system("pause"); } #ifndef VCLIENTE_H #define VCLIENTE_H #include <iostream> #include <iomanip> using namespace std; class VCliente { public: VCliente (); long LeerCedula(); int LeerTipoHab(); int LeerCantDias(); void ImprimirCliente (long ce, int tipo_hab, int cant_dias, float monto); }; #include "VCliente.cpp" #endif VCliente:: VCliente (){} long VCliente::LeerCedula() { long ce; cout << "Cedula: "; cin >> ce; return ce; } int VCliente::LeerTipoHab() { int th; cout << "Tipo de Habitacin (1.Matrimonial, 2.Doble, 3.Triple): "; cin >> th; return th; } int VCliente::LeerCantDias() { int cd; cout << "Cantidad de Dias de Hospedaje: "; cin >> cd; return cd; } void VCliente::ImprimirCliente (long ce, int tipo_hab, int cant_dias, float mont o) { system("cls"); cout << "INFORMACION DEL CLIENTE" << endl; cout << "========================" << endl; cout << "Cedula: " << ce << endl;

cout << "Tipo de Habitacin: " << tipo_hab << endl; cout << "Dias de Hospedaje : " << cant_dias << endl; cout << "Monto a Cancelar : " << setiosflags(ios::fixed) << setprecision(2) << monto << endl; system("pause"); } #ifndef CONTROLADOR_H #define CONTROLADOR_H #include "MCliente.h" #include "VCliente.h" #include "MHotel.h" #include "VHotel.h" class Controlador { private: MCliente mclient; VCliente vclient; MHotel mhotel; VHotel vhotel; public: Controlador(); void ProcesarHotel(); }; #include "Controlador.cpp" #endif Controlador::Controlador(){} void Controlador::ProcesarHotel() { long ced; int tipo, dias, resp; float monto; do // ciclo repetitivo para procesar varios clientes { system("cls"); cout << "DATOS DEL CLIENTE" << endl; cout << "==================" << endl; /* Se solicita al objeto de la clase VCliente: cdula, tipo_hab, cant_das */ ced = vclient.LeerCedula(); tipo = vclient.LeerTipoHab(); dias = vclient.LeerCantDias(); // Se le da estado al objeto de la clase VCliente. mclient.SetCedula(ced); mclient.SetTipoHab(tipo); mclient.SetCantDias(dias); // Se solicita al objeto de la clase MCliente, el clculo monto a pagar monto = mclient.MontoPagar(); /* Se pasa la informacin del cliente que se le pide a la clase MCliente, al mtodo del objeto de la clase VCliente para que la imprima*/ vclient.ImprimirCliente(mclient.GetCedula(),mclient.GetTipoHab(), mclient.GetCantDias(), monto); /* Adems, se pasa esta informacin al mtodo del objeto de la clase MHotel para ir procesando cliente por cliente */ mhotel.ProcesarClientes(mclient); cout << "Desea procesar otro Cliente (1) Si - (2) No? " ;

cin >> resp; } while (resp == 1); /* Se pasa la informacin del Hotel que se le pide a la clase MHotel, al mtodo del objeto de la clase VHotel para que la imprima */ vhotel.ImprimirHotel(mhotel.GetAcumMont()); }

Vous aimerez peut-être aussi