예제 #1
0
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);
}
예제 #2
0
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;
		}
    }
}