

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Este documento contiene el código fuente de un programa en c que controla el pago de la mensualidad de los socios de un gimnasio. El programa lee un archivo de datos, calcula el total recaudado y guarda el total en el archivo, además de una lista de socios que no han pagado. El usuario debe introducir el nombre del archivo de datos a través del teclado.
Tipo: Ejercicios
1 / 2
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


/Programa que controla el pago de la mensualidad de los abonados de un gimnasio almacenando los valores pagados en un fichero que contiene en la primera columna el numero de socio y en la segunda el valor pagado. En la primera fila va un comentario. El programa lee este fichero, calcula el total recaudado, y guarda al final del mismo fichero, en la primera linea el total recaudado y a continuacion una lista con los numeros de socios que no han pagado (aquellos que tienen un valor=0 en el fichero de datos/
#include <stdio.h> #define maxele 30 #define n 256
/funcion principal/ int main() { FILE fichero; /declaracion del fichero/ char nombre_fichero[n], comentario[n],comentario1[n]; /cadena de caracteres para el nombre del fichero/ int total_num, socio[maxele], i, k, suma; /variables enteras/ int cuota[maxele]; /vector para almacenar los numeros del fichero*/
/lectura del nombre del fichero desde pantalla/ printf("Nombre del fichero(< %d caracteres):", n); scanf("%s", nombre_fichero); /*comando que abre el fichero en modo solamente lectura "r" */ fichero=fopen(nombre_fichero, "r");
/en caso de no encontrar el fichero, presenta un error en pantalla y para la ejecucion del programa/ if (fichero==NULL) { printf("Error abriendo %s\n", nombre_fichero); fflush(stdin); getchar(); exit(0); }
/bucle de lectura de los elemento del vector numero para un numero indeterminado de elementos (menor que maxele)/ fscanf(fichero, "%s%s", comentario,comentario1); i=0; while (!feof(fichero) && (i<maxele)) { k=fscanf(fichero, "%d%d", &socio[i], &cuota[i]);
/printf("%10d%10d", socio[i], cuota[i]);/ if (k>0) i=i+1; } total_num=i; /variable que almacena el total de numeros leidos/ /comando que cierra el fichero/ fclose(fichero);
suma=0; for(i=0;i<total_num;i++) { suma=suma + cuota[i]; }
/abre el fichero para adicionar el resultado al final/ fichero=fopen(nombre_fichero, "a");
/en caso de no encontrar el fichero, presenta un error en pantalla y para la ejecucion del programa/ if (fichero==NULL) { printf("Error abriendo %s\n", nombre_fichero); fflush(stdin); getchar(); exit(0); }
fprintf(fichero,"\n total recaudado: %d \n", suma); for(i=0;i<total_num;i++) { if (cuota[i]==0) fprintf(fichero,"socio = %d\n", socio[i]); }
/comando que cierra el fichero/ fclose(fichero);
fflush(stdin); getchar(); }