Adsence

lunes, 6 de junio de 2011

Control-del-Mundial-de-Futbol-FIFA-con-struct

Leave a Comment


[caption id="attachment_1030" align="aligncenter" width="664"]Control del mundial de futbol FIFA con struct Control del mundial de futbol FIFA con struct[/caption]


Para llevar los datos sobre los equipos participantes en el mundial y sus jugadores se requiere elaborar un programa en C, con una estructura de datos que soporte la siguiente información por cada equipo:


  • Nombre del país participante.

  • Código FIFA, númerode mundiales en que ha participado.

  • Número de goles recibidos, nombre del director técnico.

  • Además por cada equipo se debe:

  • Registrar el nombre de sus 23 jugadores,

  • numero de pasaporte,

  • la fecha de nacimiento,

  • número de su camiseta,

  • el número de mundiales en que ha participado,

  • cantidad de goles anotados en este torneo.



La estructura donde irá almacenada la información es similar a la del siguiente diagrama:ç


Implementar las siguientes funciones.


  • Función llenado de la información

  • Función que retorne el código FIFA del país con mayor cantidad de goles anotados. (suponemos que no hay empates).

  • Función que retorne el código FIFA de la con la valla menos vencida del torneo (bajo el supuesto anterior).

  • Función que retorne el promedio de goles del torneo.

  • Función que retorne el pasaporte del goleador más joven del torneo (Esto es el jugador más joven que al menos ha metido un gol).

  • Función main.




[cpp]

/*
150-Para llevar los datos sobre los equipos participantes en el mundial y sus jugadores se requiere elaborar un programa en C, con
una estructura de datos que soporte la siguiente información por cada equipo: Nombre del país participante, código FIFA, número
de mundiales en que ha participado, número de goles recibidos, nombre del director técnico. Además por cada equipo se debe
registrar el nombre de sus 23 jugadores, numero de pasaporte, la fecha de nacimiento, número de su camiseta, el número de
mundiales en que ha participado, cantidad de goles anotados en este torneo. La estructura donde irá almacenada la información es
similar a la del siguiente diagrama:
Implementar las siguientes funciones.

Función llenado de la información

Función que retorne el código FIFA del país con mayor cantidad de goles anotados. (suponemos que no hay empates).

Función que retorne el código FIFA de la con la valla menos vencida del torneo (bajo el supuesto anterior).

Función que retorne el promedio de goles del torneo.

Función que retorne el pasaporte del goleador más joven del torneo (Esto es el jugador más joven que al menos ha metido un gol).

Función main.
*/

#include< stdio.h >
#include< conio.h >
struct Fecha
{
int dia,mes,ano;
};
struct Jugador
{
int pas,nuC,nuM,caG;
char nom[50];
struct Fecha nac;
};
struct Equipo
{
char noP[50],diT[50];
int coF,nuM,goC;
struct Jugador jug[2];
};
void portada(){
printf("...............................................................................\a\n");
printf("................******.*****.** **.*****.****.*****.*****..**................\a\n");
printf("................ ** .** **.*** ***.** **.** .** **.**.**.***................\a\n");
printf("................ ** .*****.*******.*****.****.*****.*****..**................\a\n");
printf("................ ** .** **.** * **.** .** .*** ....**..**................\a\n");
printf("................**** .** **.** **.** .****.** **....**.****...............\a\n");
printf("...............................jamper91.hostei.com.............................\a\n");
printf("\n");
};
void final(){
printf("-------------------------------------------------------------------------------\a\n");
printf ("******************************************************************************\a\n");
printf (" Creado por jamper91@hotmail.com\n");
printf (" Cucuta Campeon\n");
printf ("******************************************************************************\a\n");
printf("-------------------------------------------------------------------------------\a\n");
};
/*
* Función llenado de la información
*/
void llenar(struct Equipo e[],int t)
{

for(int i=0;i< t;i++)
{
printf("\n\tDigite Pais %d:",i+1);
scanf("%s",&e[i].noP);

printf("\tDigite codigo FIFA %d:",i+1);
scanf("%d",&e[i].coF);

printf("\tDigite numero Mundiales %d:",i+1);
scanf("%d",&e[i].nuM);

printf("\tDigite Director Tecnico %d:",i+1);
scanf("%s",&e[i].diT);

printf("\tDigite Goles en Contra %d:",i+1);
scanf("%d",&e[i].goC);

//Llenar la informaicon de cada jugador
for(int j=0;j< 2;j++)
{
printf("\t\tDigite noombre del Jugador %d:",j+1);
scanf("%s",&e[i].jug[j].nom);

printf("\t\tDigite Pasaporte del Jugador %d:",j+1);
scanf("%d",&e[i].jug[j].pas);

printf("\t\tDigite Camiseta del Jugador %d:",j+1);
scanf("%d",&e[i].jug[j].nuC);

printf("\t\tDigite Numero Mundiales del Jugador %d:",j+1);
scanf("%d",&e[i].jug[j].nuM);

printf("\t\tDigite Cantidad de Goles del Jugador %d:",j+1);
scanf("%d",&e[i].jug[j].caG);

printf("\t\tDigite Dia Nacimiento del Jugador %d:",j+1);
scanf("%d",&e[i].jug[j].nac.dia);

printf("\t\tDigite Mes Nacimiento del Jugador %d:",j+1);
scanf("%d",&e[i].jug[j].nac.mes);

printf("\t\tDigite Anio Nacimiento del Jugador %d:",j+1);
scanf("%d",&e[i].jug[j].nac.ano);

}

}

}
/*
* Función que retorne el código FIFA del país con mayor cantidad de goles anotados. (suponemos que no hay empates).
*/
int EquipomasGoleador(struct Equipo e[],int t)
{
//Variable que me guardar la cantidad de goles a comparar, partiremos desde 0
int may=0;
//Variable que guarda la posicion del equipo que mas goles anoto, suponemos por el momento que es el 0
int pos=0;
for(int i=0;i< t;i++)
{
//Variable que me sumara los goles de todos los jugadores de ese equipo
int cantG=0;
//Ahora recorrere los jgadores de ese equipo
for(int j=0;j< 2;j++)
{
cantG=cantG+e[i].jug[j].caG;
}
if(cantG >may)
{
may=cantG;
pos=i;
}

}
printf("El equipo con mas goles es %s, con cod %d\n",e[pos].noP,e[pos].coF);
return e[pos].coF;

}
/*
* Función que retorne el código FIFA de la con la valla menos vencida del torneo (bajo el supuesto anterior).
*/
int vallaMenosVencida(struct Equipo e[],int t)
{
//Variable que me guardar la cantidad de goles a comparar, partiremos con los goles en cotra del primer equipo
int men=e[0].goC;
//Variable que guarda la posicion del equipo que mas goles anoto, suponemos por el momento que es el 0
int pos=0;
for(int i=0;i< t;i++)
{

if(e[0].goC< men)
{
men=e[0].goC;
pos=i;
}

}
printf("El equipo con valla menos vencida es %s, con cod %d\n",e[pos].noP,e[pos].coF);
return e[pos].coF;

}
/*
* Función que retorne el promedio de goles del torneo.
*/
float promedioGoles(struct Equipo e[],int t)
{
//Variable que tendfra el promedio
float prom=0;
for(int i=0;i< t;i++)
{
//Variable que me sumara los goles de todos los jugadores de ese equipo
int cantG=0;
//Ahora recorrere los jgadores de ese equipo
for(int j=0;j< 2;j++)
{
cantG=cantG+e[i].jug[j].caG;
}
prom=prom+cantG;

}
printf("Promedio de Goles fue: %.2f\n",(prom/t));
return prom;

}
/*
* Función que retorne el pasaporte del goleador más joven del torneo (Esto es el jugador más joven que al menos ha metido un gol).
Para esto, no calculare la edad, solamente me basare en que la persona mas joven, es aquella cuyo ano de nacimiento sea el mayor, y en caso de empate, verifico con los meses
*/
int masJoven(struct Equipo e[],int t)
{
int anioM=0,mesM=0;
int posE,posJ;
for(int i=0;i< t;i++)
{
for(int j=0;j< 2;j++)
{
//Persona mas Joven por anos
if(e[i].jug[j].nac.ano >anioM && e[i].jug[j].nac.mes >mesM)
{
//Reviso que haya anotado al menos 1 gol
if(e[i].jug[j].caG >0)
{
anioM=e[i].jug[j].nac.ano;
mesM=e[i].jug[j].nac.mes;
posE=i;
posJ=j;

}

}
}

}
printf("Jugador mas Joven en anotar un Gol fue: %s, con pasaporte:%d\n",e[posE].jug[posJ].nom,e[posE].jug[posJ].pas);
return e[posE].jug[posJ].pas;

}
main()
{
int t=2;
portada();
struct Equipo e[t];
llenar(e,t);
EquipomasGoleador(e,t);
vallaMenosVencida(e,t);
promedioGoles(e,t);
masJoven(e,t);
final();
getch();
return 0;

}

[/cpp]

0 comentarios :