[ Foro de C++ ]

Depurar una lista de jugadores

06-Nov-2015 00:50
Invitado (Adrian)
1 Respuestas

 


/*  LISTAS MULTIPLES     GUIRNALDA  */

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <stdlib.h>

using namespace std;

class JUGADOR {
	private :
		static int X ;		/* Predefinido a inicializar */
		int ORDEN ;			/* Predefinido */
		int inicializar (  );
	public :
		char NOM[20] ;		/* Predefinido */
		JUGADOR * SIG ;		/* Predefinido */
		JUGADOR (char *);	/*  */
		~JUGADOR();			/* Predefinido */
		int VERORDEN() ;
};

JUGADOR::JUGADOR ( char * N )		/* Anda */
{
	SIG = NULL;
	strcpy ( NOM, N );
	ORDEN = inicializar (  );
}

JUGADOR::~JUGADOR ( )
{
	cout << "\n   LIBERANDO A ... " << ORDEN << "   " << NOM ;
	system ("pause");
}

int JUGADOR::VERORDEN (  )		/* Anda */
{
	return ORDEN;
}

int JUGADOR::inicializar (  )		/* Anda */
{
	static int I = 0;
	I++;
	return I;
}

class EQUIPO {
	public :
		char NOM[20] ;					/* Predefinido */
		JUGADOR * INIJUG ;				/* Predefinido */
		EQUIPO * SIG ;					/* Predefinido */
		EQUIPO (char *, JUGADOR *);
		~EQUIPO();
		void poner ( JUGADOR * );
};

EQUIPO::EQUIPO ( char * N, JUGADOR * X )		/* Anda */
{
	SIG = NULL;
	strcpy ( NOM, N );
	INIJUG = NULL;
	poner ( X );
}

void EQUIPO::poner ( JUGADOR * X )				/* Anda */
{
	JUGADOR * A;
	if ( !INIJUG )
	{
		INIJUG = X;
		return;
	}
	A = INIJUG;
	while ( A->SIG )
	{
		A = A->SIG;
	}
	A->SIG = X;
}

/* Prototipo */
char * GENERAEQUIPO (  );

class CAMPEONATO {
	private :
		EQUIPO * INICIO ;					/* Predefinido */
		EQUIPO * BUSCAR ( char * );
		void poner ( EQUIPO * );
	public :
		CAMPEONATO() ;						/* Predefinido */
		~CAMPEONATO() ;						/* Predefinido */
		void INSCRIPCION ( char * );
		void MIRAR (  );
		void PENALIZACION (  );
};

CAMPEONATO::CAMPEONATO()
{
	INICIO = NULL ;
}

CAMPEONATO::~CAMPEONATO()
{
	cout << "\n   DEBE DESTRUIR A TODOS LOS EQUIPOS" ;
	cout << "\n   Y LO TIENEN QUE HACER USTEDES ...  JE JE " ;
	system ("pause");
}

EQUIPO * CAMPEONATO::BUSCAR ( char * N )				/* Anda */
{
	EQUIPO * A;
	A = INICIO;
	while ( A )
	{
		if ( !strcmpi ( A->NOM, N ) )
			return A;
		A = A->SIG;
	}
	return NULL;
}

void CAMPEONATO::INSCRIPCION ( char * N )
{
	JUGADOR * X;
	char * NOMBRE;
	EQUIPO * A, * ENCONTRADO;
	NOMBRE = GENERAEQUIPO (  );
	ENCONTRADO = BUSCAR ( NOMBRE );
	X = new JUGADOR ( N );
	if ( !ENCONTRADO )
	{
		A = new EQUIPO ( NOMBRE, X );
		poner ( A );
		return;
	}
	ENCONTRADO->poner ( X );
}

void CAMPEONATO::poner ( EQUIPO * N )
{
	EQUIPO * A;
	if ( !INICIO )
	{
		INICIO = N;
		return;
	}
	A = INICIO;
	while ( A->SIG )
	{
		A = A->SIG;
	}
	A->SIG = N;
}

void CAMPEONATO::MIRAR (  )
{
	EQUIPO * A;
	JUGADOR * X;
	A = INICIO;
	while ( A )
	{
		cout << "\n\n\t\t" << A->NOM << "\n";
		X = A->INIJUG;
		while ( X )
		{
			cout << "\n" << X->NOM << " con orden: " << X->VERORDEN (  );
			X = X->SIG;
		}
		A = A->SIG;
	}
}

/*  PROTOTIPO  */
char * GENERANOM() ;						/* Predefinido */

int main()									/* Predefinido */
{

	CAMPEONATO C ;
	char BUF[20] ;

	strcpy ( BUF , GENERANOM() ) ;
	while ( strcmp ( BUF , "FIN" ) ) {

		C.INSCRIPCION(BUF) ;

		strcpy ( BUF , GENERANOM() ) ;
	}

	C.MIRAR();

//	C.PENALIZACION() ;

//	C.MIRAR() ;

	printf ( "\n\n\n  FIN DEL PROGRAMA" );
	system ("pause");
}

char * GENERANOM()												/* Predefinido */
{
	static int I = 0 ;
	static char NOM[][20] = {"CARLOS","PEPE","MESSI","LUIS",
			  "BETO","ENZO","ANA","TREZEGUET",
			  "CARONE","RONALDO","FELIPE","JUAN",
			  "ANIBAL","ETELVINA","FILOMENA","NOELIA",
			  "CARRIZO","HERMINDO","PANCRACIO","NURIA",
			  "RAUL","EDUARDO","ROBERTO","MESSI",
			  "CATALINA","MESSI","CACHO","HUGO",
			  "SANDRA","LUISA","CARINA","FORTUNATO",
			  "MESSI","RONALDO","MARADONA","THIAGO",
			  "TREZEGUET","RIQUELME","ZAPATA","BORGUI",
			  "ONEGA","PELE","MASTRANGELO","CARONE",
			  "LAMELA","RATTIN","SIMEONE","ARTIME",
			  "BOCHINI","ALONSO","BERNAO","CUBILLA",
			  "CARDOZO","PEDRONI","BOYERO","DELORTE",
			  "LATORRE","CARRIZO","CAP","PERNIA",
			  "ORTEGA","MAS","LOTORTO","FIN"};
	return NOM[I++];
}

char * GENERAEQUIPO()														/* Predefinido */
{
	static char NOM[][20] = {"BARCELONA","INTER","FLAMENGO","SPARTAK",
				 "REAL MADRID","MANCHESTER","COLO COLO"};
	return NOM[rand (  ) %7];
}


/* Tengo hecho ese codigo pero cuando hago la funcion penalizacion me salta error en tiempo de ejecucion (se me cuelga) */


13-Nov-2015 20:34
Nacho Cabanes (+84)

Pero no has incluido el código de esa función. Así no será posible ayudarte.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)