void Competencia::guardar(std::ostream& os) const{ os << (char) ENCABEZADO_ARCHIVO << " (|" << categoria().first << "|, |" << ((categoria().second == Masculino)? "Masculino" : "Femenino") << "|) |" << ( finalizada()? "True" : "False") << "| "; os << "[" ; int i; if( participantes().longitud() != 0 ){ i=0; while(i<participantes().longitud()){ os << "("; participantes().iesimo(i).guardar(os); i++; if(i == participantes().longitud()){ os << ")] "; }else{ os << "), "; } } }else{ os << "]"; } if( finalizada() ){ os << "[" ; i=0; while( i< _ranking.longitud()){ os << _ranking.iesimo(i); i++; if(i != _ranking.longitud()){ os << ", "; } } os << "] "; os << "[" ; i=0; while( i<_controlAntidoping.longitud()){ os << "(" << _controlAntidoping.iesimo(i).first << ", " << ((_controlAntidoping.iesimo(i).second )? "|True|" : "|False|") << ")"; i++; if(i != _controlAntidoping.longitud()){ os << ", "; } } os << "] "; }else { os << "[] []"; } }
bool Competencia::operator==(const Competencia& c) const{ bool result = mismasAtletas(c.participantes() , participantes()) && c.categoria() == categoria() && c.finalizada() == finalizada(); if(result && finalizada()){ result = c.ranking() == ranking() && mismasAtletas(c.lesTocoControlAntidoping(),lesTocoControlAntidoping()); if(result){ int i = 0; while( i < c.lesTocoControlAntidoping().longitud() && result){ result = result && c.leDioPositivo(c.lesTocoControlAntidoping().iesimo(i)) == leDioPositivo(c.lesTocoControlAntidoping().iesimo(i)); i++; } } } return result; }
Competencia JJOO::finalizarCompetencia(const Competencia& competencia) const { // Creo una copia de la competencia. Competencia finalizada(competencia.categoria().first, competencia.categoria().second, competencia.participantes()); // Finalizo la competencia generando un ranking y un control antidoping. finalizada.finalizar(generarRanking(competencia), generarAntidoping(competencia)); return finalizada; }
void Competencia::mostrar(std::ostream& os) const{ if(finalizada()){ os << endl << "Categoria: (" << categoria().first << " , " << (categoria().second == Masculino? "Masculino":"Femenino" ) << " )" << endl << "Finalizada: True" << endl << "Participantes: " << participantes() << endl <<"Ranking: " << _ranking << " Control Antidoping: "; printControl(os); } else { os << endl << "Categoria: (" << categoria().first << " , " << (categoria().second == Masculino? "Masculino":"Femenino") << " )" << endl << "Finalizada: False" << endl << "Participantes: " << participantes(); } }