/*Escribir un programa en C que a partir de un fichero dado con el formato adecuado: a) Cuente el nº de clientes de un banco con al menos 40 años y saldo en cuenta inferior a 1.200 euros; b ) Imprima el saldo menor y el saldo mayor de los clientes mayores de 30 años; c) Imprima la edad media de todos los clientes; d) Imprima el número de clientes que se llaman igual y viven en la misma ciudad;*/ #include <stdio.h> #include <stdlib.h> #include <conio.h> struct banco { int Ncliente; char Nombre[15]; char Ap[20]; int Edad; int Saldo; char Ciudad[20]; }; struct banco Banco[10]; /* max 10 clientes */ /* variable global para guardar los datos de los clientes */ void InsertarCliente(); /* Añade un nuevo cliente al final del fichero */ void ConsultarCliente(); /* Consulta los datos personales de un cliente a traves de la clave del fichero */ void ConsultarEstadisticas(); /* Consulta las estadisticas de los clientes introducidos */ void InsertarCliente() /* Anade un nuevo cliente al final del fichero */ {FILE *fp; int Edad, NCliente, Saldo; char Nombre[20], Ap[20], Ciudad[20]; printf("Cuales son los datos del cliente a insertar?\n"); printf("NCliente:"); scanf("%d", &NCliente); fflush(stdin); printf("Nombre:"); gets(Nombre); fflush(stdin); printf("Apellido:"); gets(Ap); printf("Edad:"); scanf("%d", &Edad); fflush(stdin); printf("Saldo:"); scanf("%d",&Saldo); fflush(stdin); printf("Ciudad:"); gets(Ciudad); if ((fp=fopen("banco.txt", "a"))==NULL) /* detecta error */ {printf("Error al abrir el fichero"); } fprintf(fp, "%d %s %s %d %d %s\n", NCliente, Nombre, Ap, Edad, Saldo, Ciudad); /* escribimos el registro al final del fichero */ if (fclose(fp)==0) {printf("\nFichero cerrado correctamente"); } else {printf("Error al cerrar fichero"); } } void ConsultarCliente() /* Consulta los datos personales de un cliente a traves del campo clave NCliente */ {FILE *fp; int i=0, salir=0, Mat; printf("Cual es el numero de matricula del cliente a consultar? "); scanf("%d", &Mat); if ((fp=fopen("banco.txt", "r"))==NULL) /* detecta error */ {printf("Error al abrir el fichero"); } do {/* de paso guardamos los datos en estructuras adecuadas */ fscanf(fp, "%d %s %s %d %d %s\n", &(Banco.Ncliente), Banco.Nombre, Banco.Ap, &(Banco.Edad), &(Banco.Saldo), Banco.Ciudad); if (Mat==Banco.Ncliente) {printf("%d %s %s %d %d %s\n", Banco.Ncliente, Banco.Nombre, Banco.Ap, Banco.Edad, Banco.Saldo, Banco.Ciudad); salir=1; } else {i++; } } while (salir!=1 && !feof(fp)); if (fclose(fp)==0) {printf("\nFichero cerrado correctamente"); } else {printf("Error al cerrar fichero"); } getch(); } void ConsultarEstadisticas() /* Consulta las estadisticas de los clientes introducidos */ { //AQUÍ SUPONGO QUE IRÍAN LAS OPERACIONES main () {FILE * fp, *fp2; char c; int x, resp; char titulo[15][30]; char director[15][20]; int cinta[15]; for (; {do {//clrscr(); printf("\nMENU PROGRAMA\n"); printf("----------------\n"); printf("1. Insertar nuevo cliente\n"); printf("2. Consultar cliente\n"); printf("3. Terminar\n"); scanf("%d", &resp); } while (resp!=1 && resp!=2 && resp!=3 && resp!=4); /* solo aceptamos respuestas validas */ switch (resp) {case 1: InsertarCliente(); break; case 2: ConsultarCliente(); break; case 3: ConsultarEstadisticas(); break; default: printf("\nFin de programa\a"); exit(0); break; } } }