#include <stdio.h>
#include < conio.h >
#include < process.h >
#include < string.h >
#include < time.h >
#include < stdlib.h >
FILE *f,*g;
typedef struct{
char fecha[15];
char con[20];
float imp;
}movimiento;
typedef struct{
int num;
char tipo[20];
char nom[40];
float saldo;
int ob;
movimiento mv[50];
}cuenta;
void introducir_dc()
{
cuenta cu;
clrscr();
int tipoc,nc;
fseek( g, -1, SEEK_END );
fscanf(g,"%d",&nc);
cu.num=nc+1;
fprintf(g,"\n%d",cu.num);
do{
clrscr();
printf("Tipo de cuenta:");
printf("\n\t 1. Joven");
printf("\n\t 2. Oro");
printf("\n\t 3. Normal");
printf("\n\t\t OPCION: ");
scanf("%d",&tipoc);
switch (tipoc){
case 1:
strcpy(cu.tipo,"Joven");
break;
case 2:
strcpy(cu.tipo,"Oro");
break;
case 3:
strcpy(cu.tipo,"Normal");
break;
}
}while((tipoc!=1)&&(tipoc!=2)&&(tipoc!=3));
clrscr();
printf("\n Introduce el nombre del titular: ");
scanf("%s",&cu.nom);
clrscr();
cu.saldo=0;
printf("\n Cuenta numero %d creada con exito.",cu.num);
printf("\n\t Su saldo actual es: 0");
printf("\n\t\t\t\t Pulse una tecla para volver al menu.");
getche();
cu.ob=0;
fwrite(&cu,sizeof(cu),1,f);
}
void introducir_ob()
{
cuenta cu;
int nc,op;
int iguales=0;
rewind(f);
clrscr();
printf("\nIntroduce el numero de cuenta: ");
scanf("%d",&nc);
do{
fread(&cu,sizeof(cu),1,f);
if(cu.num==nc)
{
iguales=1;
break;
}
}while(!feof(f));
while (iguales!=1)
{
clrscr();
printf("\nNumero de cuenta inexistente !!\n");
printf("\nIntroduce el numero de cuenta: ");
scanf("%d",&nc);
do{
fread(&cu,sizeof(cu),1,f);
if(cu.num==nc)
{
iguales=1;
break;
}
else
{
iguales=0;
}
}while((!feof(f)));
if(!iguales) rewind(f);
}
clrscr();
printf("Introduce la fecha de la orden bancaria (dd-mm-aa): ");
scanf("%s",&cu.mv[cu.ob].fecha);
printf("\nIntroduce el concepto: ");
scanf("%s",&cu.mv[cu.ob].con);
cu.ob++;
clrscr();
printf("Pulse la opcion deseada:");
printf("\n1. Ingresar dinero");
printf("\n2. Sacar dinero");
printf("\n\n\t\tOPCION: ");
scanf("%d",&op);
switch (op)
{
case 1:
printf("\nIntroduce el importe: ");
scanf("%g",&cu.mv[cu.ob].imp);
cu.saldo+=cu.mv[cu.ob].imp;
fwrite(&cu,sizeof(cu),1,f);
break;
case 2:
printf("\nIntroduce el importe: ");
scanf("%g",&cu.mv[cu.ob].imp);
cu.saldo-=cu.mv[cu.ob].imp;
fwrite(&cu,sizeof(cu),1,f);
break;
}
}
void consultar_sc()
{
cuenta cu;
int nc,op,i;
int iguales=0;
rewind(f);
clrscr();
printf("\nIntroduce el numero de cuenta: ");
scanf("%d",&nc);
do{
fread(&cu,sizeof(cu),1,f);
if(cu.num==nc){
iguales=1;
break;
}
}while(!feof(f));
while (iguales!=1)
{
clrscr();
printf("\nNumero de cuenta inexistente !!\n");
printf("\nIntroduce el numero de cuenta: ");
scanf("%d",&nc);
do{
fread(&cu,sizeof(cu),1,f);
if(cu.num==nc)
{
iguales=1;
break;
}
else{ iguales=0;
}
}while((!feof(f)));
if(!iguales) rewind(f);
}
clrscr();
printf ("Cuenta: %d\n", cu.num);
printf ("Nombre: %s\n", cu.nom);
printf ("Tipo de cuenta: %s\n", cu.tipo);
printf("\t\tMovimientos:");
for(i=0;i<cu.ob;i++)
{
printf("\n\t\t\tFecha %s Concepto: %s Importe: %g", cu.mv[i].fecha,cu.mv[i].con,cu.mv[i+1].imp);
}
printf("\n\n\t SALDO: %g",cu.saldo);
printf("\n\n\n Pulse una tecla para volver al menu.");
getche();
}
void main()
{
int op;
char resp='s';
if(!(f=fopen("BD.dat","a+b"))){
perror("BD.dat");
exit(1);
}
if(!(g=fopen("ncuenta.dat","a+t"))){
perror("ncuenta.dat");
exit(1);
}
do{
clrscr();
printf("\t\t\t Banco Rupto");
printf("\n\t\t ------------------------------");
printf("\n\n\n\t 1. Introducir datos de cliente");
printf("\n\t 2. Introducir operacion bancaria");
printf("\n\t 3. Consulta de saldo de Cliente");
printf("\n\t 4. Salir");
printf("\n\t\t\t OPCION: ");
scanf("%d",&op);
switch (op)
{
case 1:
introducir_dc();
break;
case 2:
introducir_ob();
break;
case 3:
consultar_sc();
break;
case 4:
resp='n';
break;
}
}while (resp=='s');
fclose(f);
fclose(g);
}