JJOO MenuCrearJJOO() { int anio; Lista<Atleta> atletas = Lista<Atleta>(); Lista< Lista<Competencia> > cronograma = Lista< Lista<Competencia> >(); cout << "Ingrese el año del Juego olimpico: " << endl; cin >> anio; bool otraFecha; string eleccion; cout << "¿Desea ingresar una fecha al JJOO? [s/n] "; cin >> eleccion; otraFecha = eleccion == "s"; while(otraFecha) { cout << endl; cout<< "Ingresando nueva Fecha" << endl; Lista<Competencia> nuevaLista = Lista<Competencia>(); bool otraCompetencia; cout << "Desea ingresar una competencia? [s/n] "; cin >> eleccion; otraCompetencia = eleccion == "s"; while(otraCompetencia) { nuevaLista.agregarAtras(MenuCrearCompetencia()); cout << "Desea ingresar otra competencia? [s/n] "; cin >> eleccion; cout << endl; otraCompetencia = eleccion == "s"; } cronograma.agregarAtras(nuevaLista); cout << "¿Desea ingresar otra fecha al JJOO? [s/n] "; cin >> eleccion; otraFecha = eleccion == "s"; } cout << "¿Desea ingresar todos los participantes de las competencias ingresadas? :" << endl; cin >> eleccion; if (eleccion == "s") { for (int i = 0; i < cronograma.longitud(); i++) { for (int j = 0; j < cronograma.iesimo(i).longitud(); j++) { for(int k = 0; k < cronograma.iesimo(i).iesimo(j).participantes().longitud(); k++) { if (!atletas.pertenece(cronograma.iesimo(i).iesimo(j).participantes().iesimo(k))) { atletas.agregarAtras(cronograma.iesimo(i).iesimo(j).participantes().iesimo(k)); } } } } } bool otroAtleta; cout << "Desea ingresar otro atleta? [s/n] " << endl; cin >> eleccion; otroAtleta = eleccion == "s"; while(otroAtleta) { atletas.agregarAtras(MenuCrearAtleta()); cout << "Desea ingresar otro atleta? [s/n] "; cin >> eleccion; cout << endl; otroAtleta = eleccion == "s"; } return JJOO(anio, atletas, cronograma); }
void MenuCompetencia() { int maximaOpcion = 2; cout << "Creando competencia" << endl << "0. Volver al Menu Principal" << endl << "1. Crear competencia" << endl << "2. Cargar competencia" << endl; if (competenciaCreada) { maximaOpcion = 15; cout << "3. Finalizar competencia" << endl << "4. LinfordChristie" << endl << "5. ¿Ganan los mas capaces?" << endl << "6. Sancionar Tramposos" << endl << "7. ¿Le Dio positivo?" << endl << "8. Ranking" << endl << "9. Atletas que les toco control" << endl << "10. ¿Finalizada?" << endl << "11. Guardar" << endl << "12. Mostrar" << endl << "13. Participantes" << endl << "14. Categoria" << endl << "15. Clasifico tarde" << endl; } int opt = LeerOpcion(maximaOpcion); LimpiarPantalla(); switch(opt) { case 0: { LimpiarPantalla(); break; } case 1: { LimpiarPantalla(); competencia = MenuCrearCompetencia(); competenciaCreada = true; LimpiarPantalla(); MenuCompetencia(); break; } case 2: { LimpiarPantalla(); ifstream archivoEntrada; AbrirArchivoParaLeer(archivoEntrada); competencia.cargar(archivoEntrada); archivoEntrada.close(); competenciaCreada = true; LimpiarPantalla(); MenuCompetencia(); break; } case 3: { int id; string doping; Lista<int> posiciones = Lista<int>(); Lista< pair<int, bool> > resultados = Lista< pair<int, bool> >(); MostrarAtletas(competencia.participantes(), "Lista de participantes :"); cout << competencia.participantes() << endl; cout << "Ingrese la lista de atletas segun id de la lista, seguido del resultado de doping del mismo."<< endl; for (int i = 0; i < competencia.participantes().longitud(); i++) { cout << "Puesto numero " << i+1 << " : "; cin >> id; cin >> doping; posiciones.agregarAtras(competencia.participantes().iesimo(id).ciaNumber()); resultados.agregar(pair<int, bool>(competencia.participantes().iesimo(id).ciaNumber(), doping == "s")); } competencia.finalizar(posiciones, resultados); LimpiarPantalla(); MenuCompetencia(); break; } case 4: { int id; string nombre; LimpiarPantalla(); MostrarAtletas(competencia.participantes(), "Lista de participantes :"); cout << "Indique que atleta desea descalificar : " << endl; cin >> id; nombre = competencia.participantes().iesimo(id).nombre(); competencia.linfordChristie(competencia.participantes().iesimo(id).ciaNumber()); cout << "El atleta " << nombre <<" fue descalificado"; Pausar(); LimpiarPantalla(); MenuCompetencia(); break; } case 5: { LimpiarPantalla(); cout << "¿Ganan los más capaces? " << competencia.gananLosMasCapaces() << endl; Pausar(); LimpiarPantalla(); break; } case 6: { cout << "Sancionando tramposos" << endl; competencia.sancionarTramposos(); cout << "Tramposos sancionados" << endl; Pausar(); LimpiarPantalla(); break; } case 7: { int id; MostrarAtletas(competencia.participantes(), "Lista de participantes :"); cout << "Indique el id de atleta del que desea saber su resultado de doping :"; cin >> id; cout << "Su resultado fue: " << competencia.leDioPositivo(competencia.participantes().iesimo(id)) << endl; Pausar(); LimpiarPantalla(); break; } case 8: { MostrarAtletas(competencia.ranking(), "Ranking de la competencia :"); Pausar(); LimpiarPantalla(); break; } case 9: { MostrarAtletas(competencia.lesTocoControlAntidoping(), "Atletas a los que le toco control antidoping :"); Pausar(); LimpiarPantalla(); break; } case 10: { cout << "¿Está finalizada la competencia? " << competencia.finalizada() << endl; Pausar(); LimpiarPantalla(); break; } case 11: { LimpiarPantalla(); ofstream archivoSalida; AbrirArchivoParaEscribir(archivoSalida); competencia.guardar(archivoSalida); archivoSalida.close(); LimpiarPantalla(); MenuCompetencia(); break; } case 12: { LimpiarPantalla(); competencia.mostrar(cout); Pausar(); LimpiarPantalla(); MenuCompetencia(); break; } case 13: { MostrarAtletas(competencia.participantes(), "Participantes de la competencia: "); Pausar(); LimpiarPantalla(); MenuCompetencia(); break; } case 14: { cout << "Categoria: " << "[ Deporte: " << competencia.categoria().first << "| Sexo: " << competencia.categoria().second << "]" << endl; Pausar(); LimpiarPantalla(); MenuCompetencia(); break; } case 15: { cout << "Ingresando nuevo participante" << endl; Atleta nuevoAtleta = MenuCrearAtleta(); competencia.clasificoTarde(nuevoAtleta); LimpiarPantalla(); MenuCompetencia(); break; } } }