archivos y registros

Iniciado por kjg, 13 Diciembre 2016, 21:10 PM

0 Miembros y 1 Visitante están viendo este tema.

kjg

no se como terminar mi ejercicio(tengo que terminar uno ya hecho),hice el modulo para cargar datos, no estoy seguro de como hacer los demas, el ejercicio un archivo llamado "maratones.txt", por ejemplo un archivos de esta forma,
"pais años hora minuto"
pais años hora minuto
pais años hora minuto
pais años hora minuto
de una pais y el modulo me de los dato de ese pais (el año hora minuto"                                                       

#include <stdio.h>

#define FALSO 0
#define VERDADERO 1
#define NUM_MARCAS 20
#define SALIR 4

struct marca_s {
       char pais[50];
           int año;
               int horas;
               int minutos;
};


typedef struct marca_s marca_t;


void CargaDatos(marca_t tiempos[]);
int IndiceMejorTiempo(marca_t tiempos[], int año);
void TiempoPromedio(marca_t tiempos[], int año, int *horas, int *mins);
void EscribeEstadisticas(int año, int hprom, int mprom, int hmejor, int mmejor);
void DespliegaMenu();
int LeeOpcionValida(int min, int max);

marca_t tiempos[NUM_MARCAS];

void TiempoPromedio()
{
 int a;
 
 printf("dame el año que quieras conocer el promedio");
 scanf("%d",&a);
 printf("%d",tiempos.año
 
   
int main(void)
{ int opcion;
 
 CargaDatos(tiempos);
 
 do{
   //.....
   DespliegaMenu();
   opcion = LeeOpcionValida(1,4);
   printf("Operacion elegida: %d\n", opcion);
   }while (opcion != SALIR);
 //.....
 printf("Gracias por usar mi aplicación\n");
 return 0;

}


/* Función que carga los datos del archivo maratones.txt a la estructura de datos */
void CargaDatos(marca_t tiempos[])
{
 int i=0;
 FILE *ap1;
  ap1 = fopen("maratones.txt", "r");
  do{
      fscanf(ap1,"%s %d %d %d\n",tiempos[i].pais,&tiempos[i].año,&tiempos[i].horas, &tiempos[i].minutos);
      printf("Valores leidos: %s\t%d\t%d\t%d\n",tiempos[i].pais,tiempos[i].año,tiempos[i].horas,tiempos[i].minutos);
      i++;
  } while( !feof(ap1) );
   fclose(ap1);
}


/* Función que despliega el menu de la aplicación */
void DespliegaMenu()
{
 printf("************************************************\n");
 printf("Bienvenido. Elige tu operacion: \n");
 printf("[1]: Conocer tiempo promedio en un año \n");
 printf("[2]: Conocer mejor tiempo en un año (y lugar)\n");
 printf("[3]: Guardar estadisticas de un año\n");
 printf("[4]: Salir\n");
 printf("************************************************\n");
}



/* Función que lee y regresa una opción válida */
int LeeOpcionValida(int min, int max)
{ int op;
 
 do
 {
   printf("Opcion? [%d,%d]:",min,max);
   scanf("%d",&op);
 }while ((op > max) || (op < min));
 return op;
}


/* Función que escribe las estadisticas del deportista en el archivo estadisticas.txt */
void EscribeEstadisticas(int año, int hprom, int mprom, int hmejor, int mmejor)
{
 /*...*/
 fprintf(/*...*/,"%d %d:%d %d:%d\n",año, hprom, mprom, hmejor, mmejor);
 /*...*/
}

/*
*
* Completar el siguiente programa para que:
*
* a) Cargue los tiempos de un maratonista que están registrados en el archivo "maratones.txt"
*    En cada renglón de este archivo se tienen los siguientes campos separados por un espacio: país, año, horas y minutos. Donde país es sólo una palabra.
* b) Obtenga el número de marca en la que el maratonista hizo el mejor tiempo en un año dado. Si el año no existe, regresa -1.
* c) Obtenga el tiempo promedio en un año dado.
* d) Para un año dado, agregue en el archivo estadisticas.txt un renglón con los datos: año horasprom:minutosprom horasmejor:minutosmejor
*    Donde horasprom y minutosprom  corresponden a las horas y minutos del tiempo promedio
*    horasmejor y minutosmejor corresponden a las horas y minutos del mejor tiempo en ese año.
*

*
*/

engel lex

los temas de C van en C, no en dudas generales... movido

no se entregan codigos listos, se resuelven dudas... explica en que está tu duda y que no sabes hacer...
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.