Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - martinianot

#1
Programación C/C++ / Ayuda programa en C
10 Julio 2011, 23:28 PM
Hola amigos,

Necesito realizar el siguiente programa en C:


Torneo de Fútbol:
Se posee en disco el archivo "Part96.dat" que contiene 15 registros con la siguiente estructura:
   20 chars       con el nombre del equipo.
   14 unsigned short int con los goles a favor de cada uno de los 14 partidos
   14 unsigned short int con los goles en contra de cada uno de los 14 partidos

Se debe hacer la lista del torneo, mostrando por pantalla en forma de tabla:
   Nombre del equipo
   Puntos (cada partido ganado son 3 puntos, cada empatado 1 punto)
   Total de Goles a favor y en contra
   Cantidad de partidos ganados, empatados y perdidos.

Al final indicar quién fue el ganador del torneo, considerando que a igualdad de puntos, el ganador se obtiene por diferencia de goles a favor.
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
El codigo que genera el archivo part96.dat es el siguiente:

#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "conio.h"

struct EQUIPO {
   char n[20];    //nombre
   char gf[14], gc[14]; //goles a favor,contra
} equipo;

void muestraMatriz(char equipos[15][20], char goles[15][15]){
   int i, j;


   printf("    Equipos      :  ");
   for( i=0; i<15; i++){
      printf("%c%c%c ", equipos
  • , equipos[1], equipos[2]);
       }

       for( i=0; i<15; i++){
          printf("\n%18s ", &equipos
    • );
            for( j=0; j<15; j++){
               if(i==j)
                  printf( " ---");
               else
                  printf( " %3hi",  goles[j]);
            }
         }
      }

      void main(void)
      {
         int i, j;
         char equipos[15][20]= { "Brisas", "Sacachispas", "Quemu Quemu", "Gral. Paz", "Don Orione",
                           "Bernal", "San Ignacio", "Juan XXIII", "Manto Negro", "Curuzu Cuatia",
                           "Monte Chingolo 'R'", "Pasco", "Carasucias", "Villa Urquiza", "Wilcoop" };
         char goles[15][15]={0};
         FILE *DAT, *TXT;

         if( (DAT=fopen("part96.dat", "wb"))== NULL)
         {
            printf("Error al tratar de generar equipos.dat\n");
            return;
         }
         if( (TXT=fopen("part96.txt", "w"))== NULL)
         {
            printf("Error al tratar de generar equipos.txt\n");
            return;
         }

         for( i=0; i<14; i++)
         {
            int j=0;
            for( j=i+1; j<15;j++)
            {
               goles[j]=rand()% 11;
               goles[j]=rand()% 11;
            }
         }
         muestraMatriz(equipos, goles);
         getch();

         for( i=0; i<15; i++)
         {
            char j=0;
            strcpy(equipo.n, equipos);
            fprintf(TXT, "\n%18s:\n", equipo.n);
            printf("\n%18s:\n", equipo.n);
            for( j=0; j<15; j++)
            {
               if(i!=j)
               {
                  equipo.gf[j]= goles[j];
                  equipo.gc[j]= goles[j];
                  fprintf(TXT, "\t%hi a %hi, ", equipo.gf[j], equipo.gc[j]);
                  printf("\t%hi a %hi, ", equipo.gf[j], equipo.gc[j]);
               }
            }
            fwrite(&equipo, sizeof(equipo), 1, DAT);
         }
         fclose(DAT);
         fclose(TXT);
         printf("\nProceso Terminado\n");
         
      }

      ------------------------------------------------------------------------------------------------------------------------------------------

      Ahora estoy haciendo el programa para levantar los datos de ese archivo, pero estoy muy trabado.

      Lo que tengo hasta ahora es esto:

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

      struct EQUIPO {
         char n[20];             //nombre equipo
         char gf[14], gc[14];    //goles a favor,contra
      } equipo;

      struct TABLA{
         char n[20];
         char gfa[14],gco[14];
         
      }pos;

      void main (void)
      {
         FILE *result;
         
         int puntos,pgan,pper,pemp;
         pemp=0;
         pgan=0;
         pper=0;
         puntos=0;
         int cont=0;
         int i;
         result=fopen("part96.dat","rb");
         if(result==NULL)
         {

            printf("Error abrir archivo");
            return;
         }
         
         fread(&equipo,sizeof(equipo),1,result);
         
         while(!feof(part96))
         {
            strcpy(pos.n,equipo.n);
            printf("%s",pos.n);

            fread(&equipo,sizeof(equipo),1,part96);
         }

         fclose(result);   
      }

      ----------------------------------------------------------------------------------------------------------------------------------------------------

      Cualquier ayuda sera bienvenida :) !

      Gracias! Saludos!