#include "Cumpleanos.h" #include Cumpleanos::Cumpleanos() : Evento(1) , payaso(false) { } Cumpleanos::~Cumpleanos() { } void Cumpleanos::imprimirOpcionesDeLectura() const { Evento::imprimirOpcionesDeLectura(); std::cout << " payaso"; } std::istream& Cumpleanos::leer(std::istream& in) { return Evento::leer(in) >> payaso; } std::ostream& Cumpleanos::imprimir(std::ostream& out) const { return Evento::imprimir(out) << payaso << std::endl; } double Cumpleanos::calcularCosto() const { double costo = 7000 * participantes; if ( payaso ) costo += 25000 * duracion; return std::max(costo, costoMinimo); } // ESTADISTICAS unsigned Cumpleanos::totalCumpleanos = 0; unsigned Cumpleanos::totalParticipantesCumpleanos = 0; double Cumpleanos::totalDuracionCumpleanos = 0; double Cumpleanos::totalCostoCumpleanos = 0; unsigned Cumpleanos::totalPayasos = 0; void Cumpleanos::reiniciarEstadisticas() { totalCumpleanos = 0; totalParticipantesCumpleanos = 0; totalDuracionCumpleanos = 0; totalCostoCumpleanos = 0; totalPayasos = 0; } void Cumpleanos::actualizarEstadisticas() const { Evento::actualizarEstadisticas(); ++totalCumpleanos; totalParticipantesCumpleanos += participantes; totalDuracionCumpleanos += duracion; totalCostoCumpleanos += calcularCosto(); if (payaso) ++totalPayasos; } void Cumpleanos::imprimirEstadisticas() { std::cout << "\nCUMPLEAÑOS:\n" << totalCumpleanos << " cumpeaños en total\n"; if ( totalCumpleanos > 0 ) std::cout << std::fixed << std::setprecision(2) << totalDuracionCumpleanos / totalCumpleanos<< " horas promedio por cumpleaños\n" << totalParticipantesCumpleanos / totalCumpleanos << " participantes promedio por cumpleaños\n" << std::setprecision(0) << totalCostoCumpleanos / totalCumpleanos << " colones costo promedio por cumpleaños\n" << totalCostoCumpleanos << " colones costo total de todos los cumpleaños\n" << std::setprecision(2) << totalPayasos << " cumpleaños contratados con payaso\n" << totalPayasos * 100.0 / totalCumpleanos << "% de cumpleaños con payaso\n"; }