/*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 num_clientes();
/* 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[i].Ncliente), Banco[i].Nombre, Banco[i].Ap, &(Banco[i].Edad), &(Banco[i].Saldo), Banco[i].Ciudad);
if (Mat==Banco[i].Ncliente)
{printf("%d %s %s %d %d %s\n", Banco[i].Ncliente, Banco[i].Nombre, Banco[i].Ap, Banco[i].Edad, Banco[i].Saldo, Banco[i].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 num_clientes()
/* Consulta las estadisticas de los clientes introducidos */
{int i, cuenta_clientes = 0, menor = Banco[0].Saldo, mayor = Banco[0].Saldo, media, iguales = 0, total = 0, j;
for (i = 0; i < num_clientes; i++) {
// para los clientes con mas de 40 años y mas de 1.200 euros de saldo
if ((Banco[i].Edad > 40) && (Banco[i].Saldo > 1200)) {
cuenta_clientes++;
}
// Calculo del mayor de los saldos
if (Banco[i].Saldo > mayor) {
mayor = Saldo[i].Saldo;
}
// Calculo del menor de los saldos
if (Banco[i].Saldo < menor) {
menor = Banco[i].Saldo;
}
// Calculo de la edad media de los clientes
total = total + Banco[i].Edad;
// Calculo de los nombres y las ciudades iguales
for (j = i + 1; j < num_clientes; j++) {
if ((strcmp(Banco[i].Nombre,Banco[j].Nombre) == 0) && (strcmp(Banco[i].Ciudad,Banco[j].Ciudad) == 0)) {
iguales++;
}
}
}
media = total / num_clientes;
//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. Numero de 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: num_clientes();
break;
default: printf("\nFin de programa\a");
exit(0);
break;
}
}
}