Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Programa para controlar el pago de la mensualidad de un gimnasio, Ejercicios de Informática

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

2015/2016

Subido el 03/04/2016

oscuende
oscuende 🇪🇸

5 documentos

1 / 2

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
/*Programa que controla el pago de la mensualidad de los abonados
de un gimnasio almacenando los valores
pagados en un chero que contiene en la primera columna el numero
de socio y en la segunda el valor pagado.
En la primera la va un comentario.
El programa lee este chero, calcula el total recaudado, y guarda al
nal del mismo chero, 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 chero de datos*/
#include <stdio.h>
#dene maxele 30
#dene n 256
/*funcion principal*/
int main()
{
FILE *chero; /*declaracion del chero*/
char nombre_chero[n], comentario[n],comentario1[n]; /*cadena
de caracteres para el nombre del chero*/
int total_num, socio[maxele], i, k, suma; /*variables
enteras*/
int cuota[maxele]; /*vector para almacenar los
numeros del chero*/
/*lectura del nombre del chero desde pantalla*/
printf("Nombre del chero(< %d caracteres):", n);
scanf("%s", nombre_chero);
/*comando que abre el chero en modo solamente lectura "r" */
chero=fopen(nombre_chero, "r");
/*en caso de no encontrar el chero, presenta un error en pantalla
y para la ejecucion del programa*/
if (chero==NULL)
{
printf("Error abriendo %s\n", nombre_chero);
ush(stdin);
getchar();
exit(0);
}
/*bucle de lectura de los elemento del vector numero
para un numero indeterminado de elementos (menor que
maxele)*/
fscanf(chero, "%s%s", comentario,comentario1);
i=0;
while (!feof(chero) && (i<maxele))
{
k=fscanf(chero, "%d%d", &socio[i], &cuota[i]);
pf2

Vista previa parcial del texto

¡Descarga Programa para controlar el pago de la mensualidad de un gimnasio y más Ejercicios en PDF de Informática solo en Docsity!

/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(); }