Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: martinianot en 10 Julio 2011, 23:28 PM

Título: Ayuda programa en C
Publicado por: martinianot en 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!
Título: Re: Ayuda programa en C
Publicado por: leogtz en 11 Julio 2011, 00:34 AM
Por favor primero coloca el código con su respectiva etiqueta, utiliza el GeSHi, para algo está.