C/Visual C - Liga de futbol en C

 
Vista:

Liga de futbol en C

Publicado por Luis (2 intervenciones) el 04/07/2006 21:51:38
Se trata de hacer una liga de fútbol, hay n>=2 equipos inscritos, que disputan partidos entre ellos durante varias jornadas. El programa que se tiene que escribir procesará los datos de la liga según las siguientes explicaciones:

1. El main() esta formado tan solo por un menú con opciones múltiples, ejecutándolo cíclicamente.
Comienza su ejecución, pidiendo el nombre de los equipos (dados sin ningún orden).

Para gestionar posteriormente los equipos, los nombres de los cuales se guardan en un vector V_EQUIPOS, ordenados crecientemente alfanuméricamente.

Los resultados de los partidos disputados entre los equipos en las jornadas anteriores se guardaran dentro de una matriz de registros M_JORNADAS, las filas de la cual representan el índice de los equipos (según el vector V_EQUIPOS) jugando en casa, y las columnas el índice de los equipos (según el vector V_EQUIPOS) jugando fuera de casa.

Cada elemento de la matriz es un registro de tres campos, el primero de los cuales guarda el número de goles marcados por el equipo de casa, el segundo el campo guarda los goles del equipo visitante y el último campo guarda el número de la jornada.

Si un partido todavía no se ha disputado, los tres campos tienen el valor -1.

2. Las opciones del menú que se tiene que implementar, cada una en una función o en más, se detallan a continuación:

Opción 1: Entrar los resultados de la última jornada de la liga de fútbol. La operación consiste en añadir los resultados en la matriz M_JORNADAS.

Si dos equipos ya jugaron disputaron un partido entre ellos previamente (siendo los mismo de casa y visitante), en la casilla correspondiente de la matriz se sobrescribirá el marcador más reciente y se actualizará el número de la jornada (se considera que el partido se ha vuelto a disputar…).

Opción 2: Determinar la clasificación de los equipos después de las m primeras jornadas, donde m es entrado des de el teclado y no puede ser más grande que el número total de jornadas disputadas.

La clasificación consiste en ordenar los equipos inscritos en la liga de fútbol según los siguientes criterios:

a) Criterio principal: el número de puntos conseguidos. Se asume que una victoria vale 2 puntos, un empate vale un punto y una derrota vale 0 puntos.
b) Para equipos con el mismo número de puntos: se quiere la suma de los puntos de los equipos a los cuales se ha vencido por uno de los equipos empatados.
c) En el caso de igualdad: el “golaverage”(la diferencia entre el número de goles marcados y encajados).
d) Y si la igualdad se mantiene, se considera que aquellos equipos que estén empatados ocupan la misma posición y se ordenan alfanuméricamente.
La clasificación resultante (conteniendo: el número del equipo, el número de puntos, la suma del apartado b) y el “golaverage” [con el formato:Numero_goles_marcados – Numero_goles_encajados ] se imprimirá en pantalla.

Opción 3: Imprimir en pantalla el contenido del vector V_EQUIPOS.

Opción 4: Imprimir en pantalla el contenido de la matriz M_JORNADAS, reemplazando los índices con los nombres de los equipos y especificando en que jornada se ha disputado cada partido.

Opción 5: Salir de la aplicación.

El código que de momento he hecho es el siguiente:

#include<stdio.h>
#include<string.h>
#define DIM 6

struct MJORNADES
{
char golsequipcasa[DIM][DIM],golsequipvisitant[DIM][DIM],numjor[DIM][DIM];

}

struct V_EQUIPS
{
char costellada_nord,costellada_sud,costellada_est,costellada_oest,costellada_sudest,costellada_sudoest,costellada_nordest,costellada_nordoest;
MJORNADES resultat;
}

int main(void)
{
int i;
V_EQUIPS jor[DIM];
printf("\tEQUIPS\n");
int np[]; //num puntos de cada equipo
int spv[]; //puntuación suma equipos vencidos


char z;

int n=0;
printf("\tLLIGA LPC\n");
do
{
printf("\n\tElige una de estas opciones: opcion 1, opcion 2, opcion 3, opcion 4, opcion 5");
fflush(stdin);
scanf("%c",&z);
switch(z)
{

case 1:

printf("\tEntra los goles del equipo de casa: ");
fflush(stdin);

for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
if(scanf("%i",jor[i][j].resultat.golsequipcasa)!=-1)
{
golsequipcasa[i][j]=golsequipcasa[i][j]+scanf("%i",jor[i][j].resultat.golsequipcasa);
}

}
}

printf("\tEntra los goles del equip visitante: ");
fflush(stdin);
for(int i=0;i<DIM;i++)
{
for(int j=0;j<6;j++)
{
if(scanf("%i",jor[i][j].resultat.golsequipvisitant)!=-1)
{
golsequipvisitant[i][j]=golsequipvisitant[i][j]+scanf("%i",jor[i][j].resultat.golsequipvisitant);
}
}
}

printf("\tEntra el numero de la jornada: ");
fflush(stdin);
for(int i=0;i<DIM;i++)
{
for(int j=0;j<6;j++)
{
if(scanf("%i",jor[i][j].resultat.numjorn)!=-1)
{
numjorn[i][j]=numjorn[i][j]+1;
}
}
}

case 2:
int G[]={0,0,0,0,0,0};
int P[]={0,0,0,0,0,0};
int E[]={0,0,0,0,0,0};

for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
if(golsequipcasa[i][j]>golsequipcasa[j][i])
{
G[i]=G[i+1];
P[j]=P[j+1];
}
else
if(golsequipcasa[i][j]<golsequipcasa[j][i])
{
G[j]=G[j+1];
P[i]=P[i+1];
}
else
{
E[i]=E[i+1];
E[j]=E[j+1];
}
}
}

np[5]=0; //criterio principal
for(i=0;i<DIM;i++)
{
np[i]=2*G[i]+1*E[i];
}

//spv[5]=0; //criterio b) pienso que aqui se ha tiene que hacer una busqueda para encontrar los equipos a los cuales se les ha ganado pero no se como hacerlo
//for(i=0;i<DIM;i++)
//{
//for(j=0;j<6;j++)
//{
//if(np[i]==np[j])&&i!=j)

if(np[i]==np[j])&&i!=j)


case 3:
printf("el vector V_EQUIPS es: ");
for(i=0;i<6;i++)
{
printf("%0.2i",V_EQUIPS[i]);
}


case 4:
printf("la matriz M_JORNADES es la siguiente: ");
for(i=0;i<6;i++)
{
for(j=0;j<6;j++)
{
printf("%0.2i%i",M_JORNADES[i][j],jor[i][j].resultat.numjorn);
}
}
case 5:
break;

}
}
system("pause");
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Liga de futbol en C

Publicado por Nelek (816 intervenciones) el 05/07/2006 11:32:25
Ok,

has puesto el enunciado, has puesto tu codigo, pero... Cual es tu pregunta?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar