Está en la página 1de 6

#include<conio.

h>
#include<iostream.h>
#include<string.h>
//------------------------------ COLA
struct Fecha
{
int dia, mes, anio;
};
struct t_dato
{
Fecha elab;
int n_cuenta;
char operacion[20];
float monto;
};
typedef t_dato DATO;
struct NODO
{
DATO Info;
NODO *Sig;
};
typedef NODO* ptNODO;
// ------------------------------ FUNCIONES
void MENU()
{
clrscr();
cout<<"1) Agregar \n2) Mostrar Operaciones";
cout<<"\n3) Calcular depositos por fecha \n";
cout<<"4) Calcular el saldo de una cuenta\n";
cout<<"5) Salir \n";
}
void AGREGAR(ptNODO &Cola, DATO Elem)
{
ptNODO A=Cola, N;
N=new(NODO);
N->Info=Elem;
N->Sig=NULL;
if(Cola==NULL) Cola=N;
else
{
while(A->Sig!=NULL) A=A->Sig;
A->Sig=N;
}
}
int SACAR(ptNODO &Cola, DATO &Elem)
{
ptNODO A=Cola;
if(A!=NULL)
{
Cola=Cola->Sig;
Elem=A->Info;
delete(A);
return 1;
}
else return 0;
}

int FRENTE(ptNODO Cola, DATO &Elem)


{
if(Cola!=NULL)
{
Elem=Cola->Info;
return 1;
}
else return 0;
}
void MOVERCOLA(ptNODO &Cola1, ptNODO &Cola2)
{
DATO Aux;
while (Cola1!=NULL)
{
SACAR(Cola1, Aux);
AGREGAR(Cola2, Aux);
}
}
void AGREGAR_FECHA(ptNODO &Cola, DATO Elem)
{
ptNODO ColaAux=NULL;
DATO Aux;
if(Cola!=NULL)
{
FRENTE(Cola, Aux);
while(Cola!=NULL && Elem.elab.anio>Aux.elab.anio)
{
SACAR(Cola, Aux);
AGREGAR(ColaAux, Aux);
FRENTE(Cola, Aux);
}
if (Elem.elab.anio == Aux.elab.anio)
{
while(Cola!=NULL && Elem.elab.mes>Aux.elab.mes && Elem.e
lab.anio == Aux.elab.anio)
{
SACAR(Cola, Aux);
AGREGAR(ColaAux, Aux);
FRENTE(Cola, Aux);
}
if (Elem.elab.mes == Aux.elab.mes)
{
while(Cola!=NULL && Elem.elab.dia>Aux.elab.dia &
& Elem.elab.mes == Aux.elab.mes)
{
SACAR(Cola, Aux);
AGREGAR(ColaAux, Aux);
FRENTE(Cola, Aux);
}
}
}
}
AGREGAR (ColaAux, Elem);
MOVERCOLA(Cola, ColaAux);
MOVERCOLA(ColaAux, Cola);
}

void MOSTRAR(ptNODO Cola)


{
if(Cola!=NULL)
{
cout<<"DD/MM/AAAA \t Numero de cuenta \t Monto \t Operacion \n\
n";
while(Cola!=NULL)
{
cout<<Cola->Info.elab.dia<<"/"<<Cola->Info.elab.mes<<"/"
;
cout<<Cola->Info.elab.anio<<"\t";
cout<<Cola->Info.n_cuenta<<"\t"<<Cola->Info.monto<<"\t\t
";
cout<<Cola->Info.operacion<<"\n";
Cola=Cola->Sig;
}
}
else cout<<" Cola VACIA \n";
}
int FECHACOMP(Fecha F1, Fecha F2)
{
if(F1.anio>F2.anio)
return 1;
else if(F1.anio<F2.anio)
return (-1);
else
{
if(F1.mes>F2.mes)
return 1;
else if(F1.mes<F2.mes)
return (-1);
else
{
if(F1.dia>F2.dia)
return 1;
else if(F1.dia<F2.dia)
return (-1);
else
return 0;
}
}
}

int CANT_DEPOSITOS(ptNODO Cola, Fecha F1, Fecha F2)


{
ptNODO ColaAux=NULL;
int cont=0;
char c[10]={"deposito"};
DATO Aux;
if(Cola!=NULL)
{
FRENTE(Cola, Aux);
while(Cola!=NULL)
{
if((FECHACOMP(Aux.elab,F2)<0) && (FECHACOMP(Aux.elab,F1)

>0) && strcmpi(Aux.operacion,c)==0) cont=cont+1;


SACAR(Cola,Aux);
AGREGAR(ColaAux,Aux);
FRENTE(Cola, Aux);
}
}
return cont;
}
float TOTALDEPOSITO(ptNODO Cola, int cta)
{
float td=0;
char c[9]={"deposito"};
if(Cola!=NULL)
{
while(Cola!=NULL)
{
if((cta==Cola->Info.n_cuenta) && (strcmpi(Cola->Info.ope
racion,c)==0))
{
td=td+Cola->Info.monto;
}
Cola=Cola->Sig;
}
}
return td;
}
float TOTALRETIRO(ptNODO Cola, int cta)
{
float tr=0;
char c[7]={"retiro"};
if(Cola!=NULL)
{
while(Cola!=NULL)
{
if((cta==Cola->Info.n_cuenta) && (strcmpi(Cola->Info.ope
racion,c)==0))
{
tr=tr+Cola->Info.monto;
}
Cola=Cola->Sig;
}
}
return tr;
}
//--------------------------------------------- PROGRAMA PRINCIPAL
void main()
{
ptNODO Cola=NULL;
DATO Elem;
int opc=1, cta;
char resp, buscado[15];
float saldo=0;

Fecha F1, F2;


while(opc>=1 && opc<5)
{
MENU();
cin>>opc;
switch(opc)
{
case 1:
do{
clrscr();
cout<<"Ingreso de datos\n";
cout<<"Ingrese dia de operacion\t";
cin>>Elem.elab.dia; cout<<"\n";
cout<<"Ingrese mes de operacion\t";
cin>>Elem.elab.mes; cout<<"\n";
cout<<"Ingrese anio de operacion\t";
cin>>Elem.elab.anio; cout<<"\n";
cout<<"Ingrese numero de cuenta\t";
cin>>Elem.n_cuenta; cout<<"\n";
cout<<"Ingrese tipo de operacion\t";
cin>>Elem.operacion; cout<<"\n";
cout<<"Ingrese monto de operacion\t";
cin>>Elem.monto; cout<<"\n";
AGREGAR_FECHA(Cola,Elem);
cout<<"desea ingresar otra operacion? s/
n \t";
cin>>resp;
}while(resp=='s' || resp=='S');
break;
case 2:
clrscr();
MOSTRAR(Cola);
getch();
break;
case 3:
clrscr();
cout<<"Ingrese dia de inicio\t";
cin>>F1.dia; cout<<"\n";
cout<<"Ingrese mes de inicio\t";
cin>>F1.mes; cout<<"\n";
cout<<"Ingrese anio de inicio\t";
cin>>F1.anio; cout<<"\n";
cout<<"Ingrese dia final\t";
cin>>F2.dia; cout<<"\n";
cout<<"Ingrese mes final\t";
cin>>F2.mes; cout<<"\n";
cout<<"Ingrese anio final\t";
cin>>F2.anio; cout<<"\n";
cout<<"En este rango hay: "<<CANT_DEPOSITOS(Cola
,F1,F2);
if (CANT_DEPOSITOS(Cola,F1,F2)==1) cout<<" opera
cion";
else cout<<" operaciones";
getch();
break;
case 4:
clrscr();
cout<<"ingrese numero de cuenta\t";
cin>>cta;

cout<<"El total depositado de la cuenta es: "<<T


OTALDEPOSITO(Cola,cta)<<"\n";
cout<<"El total de retiros de la cuenta es: "<<T
OTALRETIRO(Cola,cta)<<"\n";
saldo=TOTALDEPOSITO(Cola,cta)-TOTALRETIRO(Cola,c
ta);
cout<<"El saldo de la cuenta es: "<<saldo;
getch();
break;
case 5:
cout<<"fin del programa";
break;
}
}
getch();
}

También podría gustarte