Crear un estado de cuenta o resultados bancarios.
Publicado por jair (1 intervención) el 02/12/2022 06:04:44
Ya tengo mi programa casi acabado, solo me falta agregar los estados de cuentas o resultados de todos mis movimientos realizados, lo cual no se como resolverlo
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <cstdlib>
#include <stdio.h>
#include <string.h>
#include <conio.h>
using namespace std;
struct registro{int id;
char nombre[20];
char pat[20];
char mat[20];
int sexo; //1 mas, 2 fem
int edad;
char telefono[11];
char ciudad[20];
int valido;};
struct cliente{int dim;
int n_cuenta;
float saldo;
int valido;
int estadoCuenta[50];
int cliente;
int retirosn;
int estado;};
int menu(void);
int validarNumero(char numero[]);
void capturar(registro &re,cliente &cl,int &id);
int obtenerId(void);
void grabarId(int id);
void alta(registro &re);
void alta2(cliente &cl);
void imprimirRegistro(registro &re,cliente &cl);
void consultaTodos(registro &re,cliente &cl);
void depositos(cliente &cl,registro &re);
void retiro(cliente &cl,registro &re);
void imprimirsaldo(cliente &cl, registro &re);
void imprimirRegistro2(cliente &cl);
void cambiosdeposito(cliente &cl);
void cambiosretiros(cliente &cl);
void imprimirsaldo1(cliente &cl, registro &re);
void bajas(registro &re, cliente &cl);
void valido(registro &re, cliente &cl);
void novalido(registro &re, cliente &cl);
void buscar(registro &re, cliente &cl);
void menuCambios(registro &re, cliente &cl);
void cambios(registro &re, cliente &cl);
void login();
int main(){
int op;
int id;
registro re;
cliente cl;//Llamo al vector
string otro;
login();
id=obtenerId();//Obtengo el id en el que me quede
do{
op=menu();
switch(op){
case 1:
capturar(re,cl,id);
alta(re);
alta2(cl);
grabarId(id);
cout<<"\n\t\t";
system("pause");
break;
case 2: consultaTodos(re,cl);
break;
case 3: depositos(cl,re);
break;
case 4: retiro(cl,re);
break;
case 5: bajas(re,cl);
break;
case 6:imprimirsaldo(cl,re);
break;
case 7:valido(re,cl);
break;
case 8: novalido(re,cl);
break;
case 9:buscar(re,cl);
break;
case 10:cambios(re,cl);
break;
case 11:login();
break;
case 12:
break;
default:cout<<"Opcion incorrecta"<<endl;
}//fin de switch
system("pause");
}while(op!=12);
}//Fin del main
void cambios(registro &re, cliente &cl){
int id;
string enter;
string str;
string res;
char numero[5];
int N;
fstream auxn1;
fstream auxn2;//hago lectura y escritura
auxn1.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
auxn2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn1,auxn2){
system("cls");
do{
cout << "Ingrese el cambio a realizar: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
auxn1.seekg(0,ios::beg);//Me posiciono al inicio
auxn2.seekg(0,ios::beg);//Me posiciono al inicio
auxn1.seekg((id)*sizeof(re),ios::beg);
auxn2.seekg((id)*sizeof(cl),ios::beg);
auxn1.read((char *)&re, sizeof(re));
auxn2.read((char *)&cl, sizeof(cl));
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
system("pause");
menuCambios(re,cl);
auxn1.seekg((id)*sizeof(re),ios::beg);
auxn2.seekg((id)*sizeof(cl),ios::beg);
auxn1.write((char *)&re,sizeof(re));
auxn2.write((char *)&cl,sizeof(cl));
cout << "Cambios realizados con exito "<< endl;
}//Fin del if
else
cout<<"El id no existe o el socios esta dado de baja"<<endl;
auxn1.close();
auxn2.close();
}//Fin de cambios
void menuCambios(registro &re, cliente &cl){
string res;
string enter;
string str;
char numero[11];
int N;
int op;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"MENU DE CAMBIOS\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"ID DEL SOCIO "<<re.id<<endl;
cout<<"Sexo.............................1"<<endl;
cout<<"Edad.............................2"<<endl;
cout<<"Telefono.........................3"<<endl;
cout<<"Ciudad...........................4"<<endl;
cout<<"Dame la opcion";
cin>>op;
do{
switch(op){
case 1:
system("cls");
cout<<"Sexo 1-Masculino, 2-Femenino "<<endl;
do{
cout << "Ingrese el cambio a realizar: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
re.sexo=atoi(numero);
break;
case 2:
system("cls");
cout<<"Ingrese la edad a cambiar: "<<endl;
do{
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
re.edad=atoi(numero);
break;
case 3:
system("cls");
cout<<"Telefono: "<<endl;
cin>>re.telefono;
break;
case 4:
system("cls");
cout<<"Ciudad: "<<endl;
cin>>re.ciudad;
break;
}//Fin de switch
cout<<"Otro cambio s/n";
cin>>res;
}while(res !="n");
}//Fin de menu
void buscar(registro &re, cliente &cl){
int id;
string enter;
string str;
string res;
fstream auxn1;
fstream auxn2;//hago lectura y escritura
auxn1.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
auxn2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn1,auxn2){
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"BUSQUEDA DE SOCIOS\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"Ingrese su id: ";
while( getline( cin, str ) ) {
const char *idx = str.c_str( );
while( *idx && *idx >= '0' && *idx <= '9' )
++idx;
if( !( *idx ) )
break;
cout << "Entrada inválida.\n";
}//Fin del while
id= atoi( str.c_str( ) );
cout << "El dato es: " << id<< endl;
auxn1.seekg(0,ios::beg);//Me posiciono al inicio
auxn2.seekg(0,ios::beg);//Me posiciono al inicio
auxn1.seekg((id)*sizeof(re),ios::beg);
auxn2.seekg((id)*sizeof(cl),ios::beg);
auxn1.read((char *)&re, sizeof(re));
auxn2.read((char *)&cl, sizeof(cl));
if((id==re.id)&&(id==cl.n_cuenta)){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
system("pause");
}//Fin del if 2
}//Fin del if
else
cout<<"El id no existe o el socios esta dado de baja"<<endl;
auxn1.close();
auxn2.close();
}//Fin de buscar
void novalido(registro &re, cliente &cl){
int id;
string enter;
string res;
fstream auxn1;
fstream auxn2;//hago lectura y escritura
auxn1.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
auxn2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn1,auxn2){
auxn1.seekg(0,ios::beg);//Se podiciona al inicio del archivo
auxn2.seekg(0,ios::beg);//Se podiciona al inicio del archivo
auxn1.read((char *)&re, sizeof(re));
auxn2.read((char *)&cl, sizeof(cl));
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"BUSQUEDA NO VALIDOS\n"<<endl;
cout<<"-----------------\n\n"<<endl;
while((!auxn1.eof())&&(!auxn2.eof())){
if((re.valido==0)&&(cl.estado ==0)){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
}
auxn1.read((char *)&re,sizeof(re));
auxn2.read((char *)&cl,sizeof(cl));
system("pause");
}//Fin del while
}//Fin del if 2
else
cout<<"El archivo no se pudo abrir \n";
auxn1.close();
auxn2.close();
}//Fin de valido
void valido(registro &re, cliente &cl){
int id;
string enter;
string res;
fstream auxn1;
fstream auxn2;//hago lectura y escritura
auxn1.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
auxn2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn1,auxn2){
auxn1.seekg(0,ios::beg);//Se podiciona al inicio del archivo
auxn2.seekg(0,ios::beg);//Se podiciona al inicio del archivo
auxn1.read((char *)&re, sizeof(re));
auxn2.read((char *)&cl, sizeof(cl));
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"BUSQUEDA VALIDOS\n"<<endl;
cout<<"-----------------\n\n"<<endl;
while((!auxn1.eof())&&(!auxn2.eof())){
if((re.valido==1)&&(cl.estado ==1)){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
}
auxn1.read((char *)&re,sizeof(re));
auxn2.read((char *)&cl,sizeof(cl));
system("pause");
}//Fin del while
}//Fin del if 2
else
cout<<"El archivo no se pudo abrir \n";
auxn1.close();
auxn2.close();
}//Fin de valido
void bajas(registro &re, cliente &cl){
int id;
string enter;
string res;
char numero[5];
int N;
fstream aux7;
fstream aux8;//hago lectura y escritura
aux7.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
aux8.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(aux7,aux8){
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"DAR DE BAJA A SOCIO\n"<<endl;
cout<<"-----------------\n\n"<<endl;
do{
cout << "Ingrese el numero de cuenta: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
aux7.seekg(0,ios::beg);//Me posiciono al inicio
aux8.seekg(0,ios::beg);//Me posiciono al inicio
aux7.seekg((id)*sizeof(re),ios::beg);
aux8.seekg((id)*sizeof(cl),ios::beg);
aux7.read((char *)&re, sizeof(re));
aux8.read((char *)&cl, sizeof(cl));
if((re.valido==1)&&(cl.estado==1)){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
cout<<"Seguro que quiere darse de baja s/n";
cin>>res;
if(res=="s"){
aux7.seekg((id)*sizeof(re),ios::beg);
aux8.seekg((id)*sizeof(cl),ios::beg);
re.valido=0;
cl.estado=0;
aux7.write((char *)&re,sizeof(re));
aux8.write((char *)&cl,sizeof(cl));
cout<<"El socio ya se dio de baja "<<endl;
}//Fin si
else
cout<<"Dijo que siempre no "<<endl;
}//Fin de if
else
cout<<"El id no existe o el socio esta dado de baja"<<endl;
}//Fin if
else
cout<<"Error en el archivo de socio "<<endl;
aux7.close();
aux8.close();
}//Fin bajas
void imprimirsaldo1(cliente &cl, registro &re){
int i, n_cuenta, aux = 0;
char numero[5];
int N;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"VER SALDO ACTUAL\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"Ingrese Numero de Cuenta: "<<endl;
do{
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
n_cuenta=atoi(numero);
system("pause");
if((n_cuenta == cl.n_cuenta)&&(n_cuenta==re.id)){
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"VER SALDO ACTUAL\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"Numero de Cuenta:" <<cl.n_cuenta<<endl ;
cout<<"Nombre del Socio:"<<re.nombre<<endl;
cout<<"Saldo Actual: "<<cl.saldo<<endl;
for(int i=0; i<cl.dim; i++){
cout << cl.estadoCuenta[i] << endl;
}//fin for
aux = 1;
}
if(aux == 0){
cout<<"\nNumero de Cuenta no existe.\n"<<endl;
}
system("pause");
}//Fin de imprimir
void imprimirsaldo(cliente &cl, registro &re){
int id;
string enter;
string res;
char numero[5];
int N;
fstream aux3;
fstream aux4;//hago lectura y escritura
aux3.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
aux4.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(aux3,aux4){
system("cls");
do{
cout << "Ingrese el numero de cuenta: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
aux3.seekg(0,ios::beg);//Me posiciono al inicio
aux4.seekg(0,ios::beg);//Me posiciono al inicio
aux3.seekg((id)*sizeof(re),ios::beg);
aux4.seekg((id)*sizeof(cl),ios::beg);
aux3.read((char *)&re, sizeof(re));
aux4.read((char *)&cl, sizeof(cl));
imprimirsaldo1(cl,re);
aux3.seekg((id)*sizeof(re), ios::beg);
aux4.seekg((id)*sizeof(cl), ios::beg);
aux3.write((char *)&re,sizeof(re));
aux4.write((char *)&cl,sizeof(cl));
cout<<"El registro se grabo con exito "<<endl;
}//Fin if
else
cout<<"Error en el archivo de alumno "<<endl;
aux3.close();
aux4.close();
}//Imprimir saldo
void cambiosdeposito(cliente &cl){
int i,n_cuenta, aux = 0;
float deposito;
float saldo;
char numero[11];
int N;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"REALIZAR DEPOSITO\n"<<endl;
cout<<"---------------\n\n"<<endl;
cout<<"Ingrese Numero de Cuenta: "<<endl;
do{
scanf("%s",numero);
N=validarNumero(numero);
}while(N==0);
n_cuenta=atoi(numero);
if(n_cuenta == cl.n_cuenta){
aux = 1;
cout<<"Ingrese valor a depositar: $"<<endl;
do{
scanf("%s",numero);
N=validarNumero(numero);
}while(N==0);
deposito=atoi(numero);
saldo=cl.saldo+deposito;
cl.saldo=saldo;
cout<<"\nEl deposito se realizo correctamente.\n"<<endl;
}
if(aux == 0){
cout<<"\nNumero de Cuenta no existe.\n"<<endl;
}
}//Fin de cambios
void cambiosretiros(cliente &cl){
int i,n_cuenta, aux = 0;
int retiro;
float saldo;
char numero[11];
int N;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"REALIZAR RETIRO\n"<<endl;
cout<<"---------------\n\n"<<endl;
do{
cout<<"Ingrese Numero de Cuenta: "<<endl;
scanf("%s",numero);
N=validarNumero(numero);
}while(N==0);
n_cuenta=atoi(numero);
if(n_cuenta == cl.n_cuenta){
cl.estado = 1;
do{
cout<<"Ingrese valor a retirar: $"<<endl;
do{
scanf("%s",numero);
N=validarNumero(numero);
}while(N==0);
retiro=atoi(numero);
cl.estadoCuenta[cl.dim]=retiro;
cl.dim++;
if(retiro > cl.saldo){
cout<<"No tiene fondos suficientes "<<endl;
}//fin if
}while(retiro > cl.saldo);
saldo=cl.saldo-retiro;
cl.saldo=saldo;
}
cout<<"\nEl retiro se realizo correctamente.\n"<<endl;
if(cl.estado == 0){
cout<<"\nNumero de Cuenta no existe.\n"<<endl;
}
system("pause");
}//Fin de retiro
void retiro(cliente &cl,registro &re){
int id;
string enter;
string res;
char numero[5];
int N;
fstream auxn;//hago lectura y escritura
fstream aux2;//hago lectura y escritura
auxn.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
aux2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn,aux2){
do{
cout << "Ingrese el numero de cuenta: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
auxn.seekg(0,ios::beg);//Me posiciono al inicio
aux2.seekg(0,ios::beg);//Me posiciono al inicio
auxn.seekg((id)*sizeof(re),ios::beg);
aux2.seekg((id)*sizeof(cl),ios::beg);
auxn.read((char *)&re, sizeof(re));
aux2.read((char *)&cl, sizeof(cl));
cambiosretiros(cl);
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
auxn.seekg((id)*sizeof(re), ios::beg);
aux2.seekg((id)*sizeof(cl), ios::beg);
auxn.write((char *)&re,sizeof(re));
aux2.write((char *)&cl,sizeof(cl));
cout<<"El registro se grabo con exito "<<endl;
}//Fin if
else
cout<<"Error en el archivo de alumno "<<endl;
auxn.close();
aux2.close();
}//Fin de retiro
void depositos(cliente &cl,registro &re){
int id;
string enter;
string res;
char numero[5];
int N;
fstream aux0;//hago lectura y escritura
fstream aux1;//hago lectura y escritura
aux0.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
aux1.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(aux0,aux1){
system("cls");
cout<<"Ingrese Numero de Cuenta: "<<endl;
do{
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
aux0.seekg(0,ios::beg);//Me posiciono al inicio
aux1.seekg(0,ios::beg);//Me posiciono al inicio
aux0.seekg((id)*sizeof(re),ios::beg);
aux1.seekg((id)*sizeof(cl),ios::beg);
aux0.read((char *)&re, sizeof(re));
aux1.read((char *)&cl, sizeof(cl));
cambiosdeposito(cl);
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
aux0.seekg((id)*sizeof(re), ios::beg);
aux1.seekg((id)*sizeof(cl), ios::beg);
aux0.write((char *)&re,sizeof(re));
aux1.write((char *)&cl,sizeof(cl));
}//Fin if
else
cout<<"Error en el archivo de alumno "<<endl;
aux0.close();
aux1.close();
}//Fin de deposito
void consultaTodos(registro &re,cliente &cl){
system("cls");
ifstream lectura;
ifstream lectura2;
lectura.open("D://Programacion2/clientes.dat", ios::in|ios::binary);
lectura2.open("D://Programacion2/Estados.dat", ios::in|ios::binary);
if(lectura,lectura2){
lectura.seekg(0,ios::beg);//Se podiciona al inicio del archivo
lectura2.seekg(0,ios::beg);//Se podiciona al inicio del archivo
lectura.read((char *)&re, sizeof(re));
lectura2.read((char *)&cl, sizeof(cl));
while((!lectura.eof())&&(!lectura2.eof())){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
lectura.read((char *)&re,sizeof(re));
lectura2.read((char *)&cl,sizeof(cl));
system("pause");
cout<<"----------------------"<<endl;
cout<<"Fin de lectura del archivo"<<endl;
}//Fin while
}//Fin del if
else
cout<<"El archivo no se pudo abrir \n";
lectura.close();
lectura2.close();
}//Fin consulta
void imprimirRegistro2(cliente &cl){
cout<<"Numero de cuenta: "<<cl.n_cuenta<<endl;
cout<<"Saldo: "<<cl.saldo<<endl;
if(cl.estado==1){
cout<<"Valido: Registro activo "<<endl;
}//Fin del if
else{
cout<<"Valido: No activo "<<endl;
}//Fin else
cout<<"\t________________________________\n";
cout<<"---------------------------------------\n\n"<<endl;
}//fin imprimir 2
void imprimirRegistro(registro &re,cliente &cl){
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"SOCIOS REGISTRADOS\n"<<endl;
cout<<"---------------\n\n"<<endl;
cout<<"Id: "<<re.id<<endl;
cout<<"Nombre: "<<re.nombre<<endl;
cout<<"Apellido Paterno: "<<re.pat<<endl;
cout<<"Apellido Materno: "<<re.mat<<endl;
if(re.sexo==2){
cout<<"Sexo:Mujer "<<endl;
}//Fin del if
else{
cout<<"Sexo: Hombre"<<endl;
}//Fin del if
cout<<"Edad: "<<re.edad<<endl;
cout<<"Telefono: "<<re.telefono<<endl;
cout<<"Ciudad: "<<re.ciudad<<endl;
if(re.valido==1){
cout<<"Valido: Registro activo "<<endl;
}//Fin del if
else{
cout<<"Valido: No activo "<<endl;
}//Fin else
cout<<"\t________________________________\n";
}//Fin de registro
void alta2(cliente &cl){
ofstream escritura2;
escritura2.open("D://Programacion2/Estados.dat",ios::out|ios::app|ios::binary);
if (escritura2){
escritura2.write((char *)&cl, sizeof(cl));
cout<<"El registro se grabo con exito "<<endl;
}//Fin if
else
cout<<"Error en el archivo Estados.dat"<<endl;
escritura2.close();
}//Fin de alta2
void alta(registro &re){
ofstream escritura;
escritura.open("D://Programacion2/clientes.dat",ios::out|ios::app|ios::binary);
if(escritura){
escritura.write((char *)&re, sizeof(re));
cout<<"El registro se grabo con exito "<<endl;
}//Fin del if
else
cout<<"Error en el archivo contratados.dat"<<endl;
escritura.close();
}//Fin alta
void login(){
char usuario[30] = "UAA";
char contra[30] = "12345";
char usu[30], con[30];
int intentos = 0, i;
char caracter;
fflush(stdin);
do{
intentos++;
i = 0;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"INICIO DE SESION\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"Usuario: "<<endl;
gets(usu);
printf("Contrasena: ");
while(caracter = getch()){
if(caracter == 13){
con[i] = '\0';
break;
}
else if(caracter == 8){
if(i > 0){
i--;
cout<<"\b \b"<<endl;
}
}
else{
cout<<"*";
con[i] = caracter;
i++;
}
}
if(strcmp(usuario,usu) == 0 && strcmp(contra,con) == 0){
cout<<"\n\nLos datos ingresados son correctos!\n"<<endl;
system("pause");
menu();
}
else if(intentos == 3){
cout<<"\n\nDatos incorrectos! Ha excedido el numero de intentos!\n"<<endl;
system("pause");
exit(0);
}
else{
cout<<"\n\nDatos incorrectos! Intetelo de nuevo.\n"<<endl;
system("pause");
}
}while(intentos != 1);
}//Fin login
void capturar(registro &re, cliente &cl,int &id){
string enter;
string str;
char numero[11];
int N;
getline(cin,enter);
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"REGISTRAR SOCIO\n"<<endl;
cout<<"---------------\n\n"<<endl;
cout << "ID: "<< id << endl;
re.id=id;
cl.cliente=re.id;
cl.n_cuenta=re.id;
cl.saldo = 0;
cout<<"ID cuenta: "<<cl.n_cuenta<<endl;
cout<<"Nombre: ";
cin.getline(re.nombre,20);//getline es para char
cout<<"Apellido Paterno: ";
cin.getline(re.pat,20);
cout<<"Apellido Materno: ";
cin.getline(re.mat,20);
//Capturo las marcas
cout<<"Sexo 1-Masculino, 2-Femenino "<<endl;
while( getline( cin, str ) ) {
const char *idx = str.c_str( );
while( *idx && *idx > '0' && *idx <= '2' )
++idx;
if( !( *idx ) )
break;
cout << "Entrada inválida.\n";
}//Fin del while
re.sexo = atoi( str.c_str( ) );
cout << "El dato es: " << re.sexo<< endl;
cout<<"Edad: "<<endl;
while( getline( cin, str ) ) {
const char *idx = str.c_str( );
while( *idx && *idx >= '0' && *idx <= '9' )
++idx;
if( !( *idx ) )
break;
cout << "Entrada inválida.\n";
}//Fin del while
re.edad = atoi( str.c_str( ) );
cout << "El dato es: " << re.edad<< endl;
cout<<"Telefono: "<<endl;
gets(re.telefono);
cout << "Ciudad: ";
cin.getline(re.ciudad,20);
cl.estado=1;
re.valido=1;
id ++;
}//Fin del registro
int menu(void){
int op;
string str; // Cadena leída
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"MENU PRINCIPAL\n"<<endl;
cout<<"--------------\n\n"<<endl;
cout<<"1. Registrar Socio\n"<<endl;
cout<<"2. Ver Socio Registrados\n"<<endl;
cout<<"3. Realizar Deposito\n"<<endl;
cout<<"4. Realizar Retiro\n"<<endl;
cout<<"5. Dar de baja a socio\n"<<endl;
cout<<"6. Ver Saldo Actual\n"<<endl;
cout<<"7. Socio Valido\n"<<endl;
cout<<"8. Socio No Validos\n"<<endl;
cout<<"9.Buscar socio \n"<<endl;
cout<<"10. Cambios en el registro del socio\n"<<endl;
cout<<"11. Cerrar Sesion\n"<<endl;
cout<<"12. Salir del Programa\n\n"<<endl;
cout<<"Ingrese una opcion: "<<endl;
while( getline( cin, str ) ) {
const char *idx = str.c_str( );
// Mientras que no lleguemos al final de la cadena,
// y el caracter sea un dígito.
while( *idx && *idx >= '0' && *idx <= '9' )
++idx;
// Si llegamos al final de la cadena, la validación es correcta.
if( !( *idx ) )
break;
cout << "Entrada inválida.\n";
}//Fin del while
// Convertimos la cadena en entero.
op = atoi( str.c_str( ) );
// Y lo mostramos.
cout << "El dato es: " << op << endl;
cout<<"Bienvenido"<<endl;
cout<<"Presiona enter"<<endl;
return op;
}//Fin del menu
int obtenerId(void){
ifstream consulta;
int id;
consulta.open("D://Programacion2/clientes.txt",ios::in);
if(consulta)
consulta>>id;
else
cout<<"No pude abrir el archivo de clientes"<<endl;
consulta.close();
return id;
}//Fin de obtener id
void grabarId(int id){
ofstream escritura;
escritura.open("D://Programacion2/clientes.txt",ios::out);
if(escritura){
escritura<<id;
}//Fin del if
else
cout<<"Error en el archivo de Clientes "<<endl;
escritura.close();
}//Fin de grabar
int validarNumero(char numero[]){
for(int i=0; i<strlen(numero); i++){
if(!(isdigit(numero[i]))){
cout << "Ingresa solo numeros "<< endl;
return 0;
}
}
return 1;
}//Fin de validar
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <cstdlib>
#include <stdio.h>
#include <string.h>
#include <conio.h>
using namespace std;
struct registro{int id;
char nombre[20];
char pat[20];
char mat[20];
int sexo; //1 mas, 2 fem
int edad;
char telefono[11];
char ciudad[20];
int valido;};
struct cliente{int dim;
int n_cuenta;
float saldo;
int valido;
int estadoCuenta[50];
int cliente;
int retirosn;
int estado;};
int menu(void);
int validarNumero(char numero[]);
void capturar(registro &re,cliente &cl,int &id);
int obtenerId(void);
void grabarId(int id);
void alta(registro &re);
void alta2(cliente &cl);
void imprimirRegistro(registro &re,cliente &cl);
void consultaTodos(registro &re,cliente &cl);
void depositos(cliente &cl,registro &re);
void retiro(cliente &cl,registro &re);
void imprimirsaldo(cliente &cl, registro &re);
void imprimirRegistro2(cliente &cl);
void cambiosdeposito(cliente &cl);
void cambiosretiros(cliente &cl);
void imprimirsaldo1(cliente &cl, registro &re);
void bajas(registro &re, cliente &cl);
void valido(registro &re, cliente &cl);
void novalido(registro &re, cliente &cl);
void buscar(registro &re, cliente &cl);
void menuCambios(registro &re, cliente &cl);
void cambios(registro &re, cliente &cl);
void login();
int main(){
int op;
int id;
registro re;
cliente cl;//Llamo al vector
string otro;
login();
id=obtenerId();//Obtengo el id en el que me quede
do{
op=menu();
switch(op){
case 1:
capturar(re,cl,id);
alta(re);
alta2(cl);
grabarId(id);
cout<<"\n\t\t";
system("pause");
break;
case 2: consultaTodos(re,cl);
break;
case 3: depositos(cl,re);
break;
case 4: retiro(cl,re);
break;
case 5: bajas(re,cl);
break;
case 6:imprimirsaldo(cl,re);
break;
case 7:valido(re,cl);
break;
case 8: novalido(re,cl);
break;
case 9:buscar(re,cl);
break;
case 10:cambios(re,cl);
break;
case 11:login();
break;
case 12:
break;
default:cout<<"Opcion incorrecta"<<endl;
}//fin de switch
system("pause");
}while(op!=12);
}//Fin del main
void cambios(registro &re, cliente &cl){
int id;
string enter;
string str;
string res;
char numero[5];
int N;
fstream auxn1;
fstream auxn2;//hago lectura y escritura
auxn1.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
auxn2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn1,auxn2){
system("cls");
do{
cout << "Ingrese el cambio a realizar: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
auxn1.seekg(0,ios::beg);//Me posiciono al inicio
auxn2.seekg(0,ios::beg);//Me posiciono al inicio
auxn1.seekg((id)*sizeof(re),ios::beg);
auxn2.seekg((id)*sizeof(cl),ios::beg);
auxn1.read((char *)&re, sizeof(re));
auxn2.read((char *)&cl, sizeof(cl));
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
system("pause");
menuCambios(re,cl);
auxn1.seekg((id)*sizeof(re),ios::beg);
auxn2.seekg((id)*sizeof(cl),ios::beg);
auxn1.write((char *)&re,sizeof(re));
auxn2.write((char *)&cl,sizeof(cl));
cout << "Cambios realizados con exito "<< endl;
}//Fin del if
else
cout<<"El id no existe o el socios esta dado de baja"<<endl;
auxn1.close();
auxn2.close();
}//Fin de cambios
void menuCambios(registro &re, cliente &cl){
string res;
string enter;
string str;
char numero[11];
int N;
int op;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"MENU DE CAMBIOS\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"ID DEL SOCIO "<<re.id<<endl;
cout<<"Sexo.............................1"<<endl;
cout<<"Edad.............................2"<<endl;
cout<<"Telefono.........................3"<<endl;
cout<<"Ciudad...........................4"<<endl;
cout<<"Dame la opcion";
cin>>op;
do{
switch(op){
case 1:
system("cls");
cout<<"Sexo 1-Masculino, 2-Femenino "<<endl;
do{
cout << "Ingrese el cambio a realizar: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
re.sexo=atoi(numero);
break;
case 2:
system("cls");
cout<<"Ingrese la edad a cambiar: "<<endl;
do{
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
re.edad=atoi(numero);
break;
case 3:
system("cls");
cout<<"Telefono: "<<endl;
cin>>re.telefono;
break;
case 4:
system("cls");
cout<<"Ciudad: "<<endl;
cin>>re.ciudad;
break;
}//Fin de switch
cout<<"Otro cambio s/n";
cin>>res;
}while(res !="n");
}//Fin de menu
void buscar(registro &re, cliente &cl){
int id;
string enter;
string str;
string res;
fstream auxn1;
fstream auxn2;//hago lectura y escritura
auxn1.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
auxn2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn1,auxn2){
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"BUSQUEDA DE SOCIOS\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"Ingrese su id: ";
while( getline( cin, str ) ) {
const char *idx = str.c_str( );
while( *idx && *idx >= '0' && *idx <= '9' )
++idx;
if( !( *idx ) )
break;
cout << "Entrada inválida.\n";
}//Fin del while
id= atoi( str.c_str( ) );
cout << "El dato es: " << id<< endl;
auxn1.seekg(0,ios::beg);//Me posiciono al inicio
auxn2.seekg(0,ios::beg);//Me posiciono al inicio
auxn1.seekg((id)*sizeof(re),ios::beg);
auxn2.seekg((id)*sizeof(cl),ios::beg);
auxn1.read((char *)&re, sizeof(re));
auxn2.read((char *)&cl, sizeof(cl));
if((id==re.id)&&(id==cl.n_cuenta)){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
system("pause");
}//Fin del if 2
}//Fin del if
else
cout<<"El id no existe o el socios esta dado de baja"<<endl;
auxn1.close();
auxn2.close();
}//Fin de buscar
void novalido(registro &re, cliente &cl){
int id;
string enter;
string res;
fstream auxn1;
fstream auxn2;//hago lectura y escritura
auxn1.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
auxn2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn1,auxn2){
auxn1.seekg(0,ios::beg);//Se podiciona al inicio del archivo
auxn2.seekg(0,ios::beg);//Se podiciona al inicio del archivo
auxn1.read((char *)&re, sizeof(re));
auxn2.read((char *)&cl, sizeof(cl));
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"BUSQUEDA NO VALIDOS\n"<<endl;
cout<<"-----------------\n\n"<<endl;
while((!auxn1.eof())&&(!auxn2.eof())){
if((re.valido==0)&&(cl.estado ==0)){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
}
auxn1.read((char *)&re,sizeof(re));
auxn2.read((char *)&cl,sizeof(cl));
system("pause");
}//Fin del while
}//Fin del if 2
else
cout<<"El archivo no se pudo abrir \n";
auxn1.close();
auxn2.close();
}//Fin de valido
void valido(registro &re, cliente &cl){
int id;
string enter;
string res;
fstream auxn1;
fstream auxn2;//hago lectura y escritura
auxn1.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
auxn2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn1,auxn2){
auxn1.seekg(0,ios::beg);//Se podiciona al inicio del archivo
auxn2.seekg(0,ios::beg);//Se podiciona al inicio del archivo
auxn1.read((char *)&re, sizeof(re));
auxn2.read((char *)&cl, sizeof(cl));
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"BUSQUEDA VALIDOS\n"<<endl;
cout<<"-----------------\n\n"<<endl;
while((!auxn1.eof())&&(!auxn2.eof())){
if((re.valido==1)&&(cl.estado ==1)){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
}
auxn1.read((char *)&re,sizeof(re));
auxn2.read((char *)&cl,sizeof(cl));
system("pause");
}//Fin del while
}//Fin del if 2
else
cout<<"El archivo no se pudo abrir \n";
auxn1.close();
auxn2.close();
}//Fin de valido
void bajas(registro &re, cliente &cl){
int id;
string enter;
string res;
char numero[5];
int N;
fstream aux7;
fstream aux8;//hago lectura y escritura
aux7.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
aux8.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(aux7,aux8){
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"DAR DE BAJA A SOCIO\n"<<endl;
cout<<"-----------------\n\n"<<endl;
do{
cout << "Ingrese el numero de cuenta: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
aux7.seekg(0,ios::beg);//Me posiciono al inicio
aux8.seekg(0,ios::beg);//Me posiciono al inicio
aux7.seekg((id)*sizeof(re),ios::beg);
aux8.seekg((id)*sizeof(cl),ios::beg);
aux7.read((char *)&re, sizeof(re));
aux8.read((char *)&cl, sizeof(cl));
if((re.valido==1)&&(cl.estado==1)){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
cout<<"Seguro que quiere darse de baja s/n";
cin>>res;
if(res=="s"){
aux7.seekg((id)*sizeof(re),ios::beg);
aux8.seekg((id)*sizeof(cl),ios::beg);
re.valido=0;
cl.estado=0;
aux7.write((char *)&re,sizeof(re));
aux8.write((char *)&cl,sizeof(cl));
cout<<"El socio ya se dio de baja "<<endl;
}//Fin si
else
cout<<"Dijo que siempre no "<<endl;
}//Fin de if
else
cout<<"El id no existe o el socio esta dado de baja"<<endl;
}//Fin if
else
cout<<"Error en el archivo de socio "<<endl;
aux7.close();
aux8.close();
}//Fin bajas
void imprimirsaldo1(cliente &cl, registro &re){
int i, n_cuenta, aux = 0;
char numero[5];
int N;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"VER SALDO ACTUAL\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"Ingrese Numero de Cuenta: "<<endl;
do{
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
n_cuenta=atoi(numero);
system("pause");
if((n_cuenta == cl.n_cuenta)&&(n_cuenta==re.id)){
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"VER SALDO ACTUAL\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"Numero de Cuenta:" <<cl.n_cuenta<<endl ;
cout<<"Nombre del Socio:"<<re.nombre<<endl;
cout<<"Saldo Actual: "<<cl.saldo<<endl;
for(int i=0; i<cl.dim; i++){
cout << cl.estadoCuenta[i] << endl;
}//fin for
aux = 1;
}
if(aux == 0){
cout<<"\nNumero de Cuenta no existe.\n"<<endl;
}
system("pause");
}//Fin de imprimir
void imprimirsaldo(cliente &cl, registro &re){
int id;
string enter;
string res;
char numero[5];
int N;
fstream aux3;
fstream aux4;//hago lectura y escritura
aux3.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
aux4.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(aux3,aux4){
system("cls");
do{
cout << "Ingrese el numero de cuenta: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
aux3.seekg(0,ios::beg);//Me posiciono al inicio
aux4.seekg(0,ios::beg);//Me posiciono al inicio
aux3.seekg((id)*sizeof(re),ios::beg);
aux4.seekg((id)*sizeof(cl),ios::beg);
aux3.read((char *)&re, sizeof(re));
aux4.read((char *)&cl, sizeof(cl));
imprimirsaldo1(cl,re);
aux3.seekg((id)*sizeof(re), ios::beg);
aux4.seekg((id)*sizeof(cl), ios::beg);
aux3.write((char *)&re,sizeof(re));
aux4.write((char *)&cl,sizeof(cl));
cout<<"El registro se grabo con exito "<<endl;
}//Fin if
else
cout<<"Error en el archivo de alumno "<<endl;
aux3.close();
aux4.close();
}//Imprimir saldo
void cambiosdeposito(cliente &cl){
int i,n_cuenta, aux = 0;
float deposito;
float saldo;
char numero[11];
int N;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"REALIZAR DEPOSITO\n"<<endl;
cout<<"---------------\n\n"<<endl;
cout<<"Ingrese Numero de Cuenta: "<<endl;
do{
scanf("%s",numero);
N=validarNumero(numero);
}while(N==0);
n_cuenta=atoi(numero);
if(n_cuenta == cl.n_cuenta){
aux = 1;
cout<<"Ingrese valor a depositar: $"<<endl;
do{
scanf("%s",numero);
N=validarNumero(numero);
}while(N==0);
deposito=atoi(numero);
saldo=cl.saldo+deposito;
cl.saldo=saldo;
cout<<"\nEl deposito se realizo correctamente.\n"<<endl;
}
if(aux == 0){
cout<<"\nNumero de Cuenta no existe.\n"<<endl;
}
}//Fin de cambios
void cambiosretiros(cliente &cl){
int i,n_cuenta, aux = 0;
int retiro;
float saldo;
char numero[11];
int N;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"REALIZAR RETIRO\n"<<endl;
cout<<"---------------\n\n"<<endl;
do{
cout<<"Ingrese Numero de Cuenta: "<<endl;
scanf("%s",numero);
N=validarNumero(numero);
}while(N==0);
n_cuenta=atoi(numero);
if(n_cuenta == cl.n_cuenta){
cl.estado = 1;
do{
cout<<"Ingrese valor a retirar: $"<<endl;
do{
scanf("%s",numero);
N=validarNumero(numero);
}while(N==0);
retiro=atoi(numero);
cl.estadoCuenta[cl.dim]=retiro;
cl.dim++;
if(retiro > cl.saldo){
cout<<"No tiene fondos suficientes "<<endl;
}//fin if
}while(retiro > cl.saldo);
saldo=cl.saldo-retiro;
cl.saldo=saldo;
}
cout<<"\nEl retiro se realizo correctamente.\n"<<endl;
if(cl.estado == 0){
cout<<"\nNumero de Cuenta no existe.\n"<<endl;
}
system("pause");
}//Fin de retiro
void retiro(cliente &cl,registro &re){
int id;
string enter;
string res;
char numero[5];
int N;
fstream auxn;//hago lectura y escritura
fstream aux2;//hago lectura y escritura
auxn.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
aux2.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(auxn,aux2){
do{
cout << "Ingrese el numero de cuenta: ";
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
auxn.seekg(0,ios::beg);//Me posiciono al inicio
aux2.seekg(0,ios::beg);//Me posiciono al inicio
auxn.seekg((id)*sizeof(re),ios::beg);
aux2.seekg((id)*sizeof(cl),ios::beg);
auxn.read((char *)&re, sizeof(re));
aux2.read((char *)&cl, sizeof(cl));
cambiosretiros(cl);
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
auxn.seekg((id)*sizeof(re), ios::beg);
aux2.seekg((id)*sizeof(cl), ios::beg);
auxn.write((char *)&re,sizeof(re));
aux2.write((char *)&cl,sizeof(cl));
cout<<"El registro se grabo con exito "<<endl;
}//Fin if
else
cout<<"Error en el archivo de alumno "<<endl;
auxn.close();
aux2.close();
}//Fin de retiro
void depositos(cliente &cl,registro &re){
int id;
string enter;
string res;
char numero[5];
int N;
fstream aux0;//hago lectura y escritura
fstream aux1;//hago lectura y escritura
aux0.open("D://Programacion2/clientes.dat",ios::out|ios::in|ios::binary);
aux1.open("D://Programacion2/Estados.dat",ios::out|ios::in|ios::binary);
if(aux0,aux1){
system("cls");
cout<<"Ingrese Numero de Cuenta: "<<endl;
do{
scanf("%s", numero);
N=validarNumero(numero);
}while(N==0);
id=atoi(numero);
aux0.seekg(0,ios::beg);//Me posiciono al inicio
aux1.seekg(0,ios::beg);//Me posiciono al inicio
aux0.seekg((id)*sizeof(re),ios::beg);
aux1.seekg((id)*sizeof(cl),ios::beg);
aux0.read((char *)&re, sizeof(re));
aux1.read((char *)&cl, sizeof(cl));
cambiosdeposito(cl);
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
aux0.seekg((id)*sizeof(re), ios::beg);
aux1.seekg((id)*sizeof(cl), ios::beg);
aux0.write((char *)&re,sizeof(re));
aux1.write((char *)&cl,sizeof(cl));
}//Fin if
else
cout<<"Error en el archivo de alumno "<<endl;
aux0.close();
aux1.close();
}//Fin de deposito
void consultaTodos(registro &re,cliente &cl){
system("cls");
ifstream lectura;
ifstream lectura2;
lectura.open("D://Programacion2/clientes.dat", ios::in|ios::binary);
lectura2.open("D://Programacion2/Estados.dat", ios::in|ios::binary);
if(lectura,lectura2){
lectura.seekg(0,ios::beg);//Se podiciona al inicio del archivo
lectura2.seekg(0,ios::beg);//Se podiciona al inicio del archivo
lectura.read((char *)&re, sizeof(re));
lectura2.read((char *)&cl, sizeof(cl));
while((!lectura.eof())&&(!lectura2.eof())){
imprimirRegistro(re,cl);
imprimirRegistro2(cl);
lectura.read((char *)&re,sizeof(re));
lectura2.read((char *)&cl,sizeof(cl));
system("pause");
cout<<"----------------------"<<endl;
cout<<"Fin de lectura del archivo"<<endl;
}//Fin while
}//Fin del if
else
cout<<"El archivo no se pudo abrir \n";
lectura.close();
lectura2.close();
}//Fin consulta
void imprimirRegistro2(cliente &cl){
cout<<"Numero de cuenta: "<<cl.n_cuenta<<endl;
cout<<"Saldo: "<<cl.saldo<<endl;
if(cl.estado==1){
cout<<"Valido: Registro activo "<<endl;
}//Fin del if
else{
cout<<"Valido: No activo "<<endl;
}//Fin else
cout<<"\t________________________________\n";
cout<<"---------------------------------------\n\n"<<endl;
}//fin imprimir 2
void imprimirRegistro(registro &re,cliente &cl){
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"SOCIOS REGISTRADOS\n"<<endl;
cout<<"---------------\n\n"<<endl;
cout<<"Id: "<<re.id<<endl;
cout<<"Nombre: "<<re.nombre<<endl;
cout<<"Apellido Paterno: "<<re.pat<<endl;
cout<<"Apellido Materno: "<<re.mat<<endl;
if(re.sexo==2){
cout<<"Sexo:Mujer "<<endl;
}//Fin del if
else{
cout<<"Sexo: Hombre"<<endl;
}//Fin del if
cout<<"Edad: "<<re.edad<<endl;
cout<<"Telefono: "<<re.telefono<<endl;
cout<<"Ciudad: "<<re.ciudad<<endl;
if(re.valido==1){
cout<<"Valido: Registro activo "<<endl;
}//Fin del if
else{
cout<<"Valido: No activo "<<endl;
}//Fin else
cout<<"\t________________________________\n";
}//Fin de registro
void alta2(cliente &cl){
ofstream escritura2;
escritura2.open("D://Programacion2/Estados.dat",ios::out|ios::app|ios::binary);
if (escritura2){
escritura2.write((char *)&cl, sizeof(cl));
cout<<"El registro se grabo con exito "<<endl;
}//Fin if
else
cout<<"Error en el archivo Estados.dat"<<endl;
escritura2.close();
}//Fin de alta2
void alta(registro &re){
ofstream escritura;
escritura.open("D://Programacion2/clientes.dat",ios::out|ios::app|ios::binary);
if(escritura){
escritura.write((char *)&re, sizeof(re));
cout<<"El registro se grabo con exito "<<endl;
}//Fin del if
else
cout<<"Error en el archivo contratados.dat"<<endl;
escritura.close();
}//Fin alta
void login(){
char usuario[30] = "UAA";
char contra[30] = "12345";
char usu[30], con[30];
int intentos = 0, i;
char caracter;
fflush(stdin);
do{
intentos++;
i = 0;
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"INICIO DE SESION\n"<<endl;
cout<<"-----------------\n\n"<<endl;
cout<<"Usuario: "<<endl;
gets(usu);
printf("Contrasena: ");
while(caracter = getch()){
if(caracter == 13){
con[i] = '\0';
break;
}
else if(caracter == 8){
if(i > 0){
i--;
cout<<"\b \b"<<endl;
}
}
else{
cout<<"*";
con[i] = caracter;
i++;
}
}
if(strcmp(usuario,usu) == 0 && strcmp(contra,con) == 0){
cout<<"\n\nLos datos ingresados son correctos!\n"<<endl;
system("pause");
menu();
}
else if(intentos == 3){
cout<<"\n\nDatos incorrectos! Ha excedido el numero de intentos!\n"<<endl;
system("pause");
exit(0);
}
else{
cout<<"\n\nDatos incorrectos! Intetelo de nuevo.\n"<<endl;
system("pause");
}
}while(intentos != 1);
}//Fin login
void capturar(registro &re, cliente &cl,int &id){
string enter;
string str;
char numero[11];
int N;
getline(cin,enter);
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"REGISTRAR SOCIO\n"<<endl;
cout<<"---------------\n\n"<<endl;
cout << "ID: "<< id << endl;
re.id=id;
cl.cliente=re.id;
cl.n_cuenta=re.id;
cl.saldo = 0;
cout<<"ID cuenta: "<<cl.n_cuenta<<endl;
cout<<"Nombre: ";
cin.getline(re.nombre,20);//getline es para char
cout<<"Apellido Paterno: ";
cin.getline(re.pat,20);
cout<<"Apellido Materno: ";
cin.getline(re.mat,20);
//Capturo las marcas
cout<<"Sexo 1-Masculino, 2-Femenino "<<endl;
while( getline( cin, str ) ) {
const char *idx = str.c_str( );
while( *idx && *idx > '0' && *idx <= '2' )
++idx;
if( !( *idx ) )
break;
cout << "Entrada inválida.\n";
}//Fin del while
re.sexo = atoi( str.c_str( ) );
cout << "El dato es: " << re.sexo<< endl;
cout<<"Edad: "<<endl;
while( getline( cin, str ) ) {
const char *idx = str.c_str( );
while( *idx && *idx >= '0' && *idx <= '9' )
++idx;
if( !( *idx ) )
break;
cout << "Entrada inválida.\n";
}//Fin del while
re.edad = atoi( str.c_str( ) );
cout << "El dato es: " << re.edad<< endl;
cout<<"Telefono: "<<endl;
gets(re.telefono);
cout << "Ciudad: ";
cin.getline(re.ciudad,20);
cl.estado=1;
re.valido=1;
id ++;
}//Fin del registro
int menu(void){
int op;
string str; // Cadena leída
system("cls");
cout<<"\t\t\t\t\t ===========================\n"<<endl;
cout<<"\t\t\t\t\t SISTEMA BANCARIO \n"<<endl;
cout<<"\t\t\t\t\t ===========================\n\n\n"<<endl;
cout<<"MENU PRINCIPAL\n"<<endl;
cout<<"--------------\n\n"<<endl;
cout<<"1. Registrar Socio\n"<<endl;
cout<<"2. Ver Socio Registrados\n"<<endl;
cout<<"3. Realizar Deposito\n"<<endl;
cout<<"4. Realizar Retiro\n"<<endl;
cout<<"5. Dar de baja a socio\n"<<endl;
cout<<"6. Ver Saldo Actual\n"<<endl;
cout<<"7. Socio Valido\n"<<endl;
cout<<"8. Socio No Validos\n"<<endl;
cout<<"9.Buscar socio \n"<<endl;
cout<<"10. Cambios en el registro del socio\n"<<endl;
cout<<"11. Cerrar Sesion\n"<<endl;
cout<<"12. Salir del Programa\n\n"<<endl;
cout<<"Ingrese una opcion: "<<endl;
while( getline( cin, str ) ) {
const char *idx = str.c_str( );
// Mientras que no lleguemos al final de la cadena,
// y el caracter sea un dígito.
while( *idx && *idx >= '0' && *idx <= '9' )
++idx;
// Si llegamos al final de la cadena, la validación es correcta.
if( !( *idx ) )
break;
cout << "Entrada inválida.\n";
}//Fin del while
// Convertimos la cadena en entero.
op = atoi( str.c_str( ) );
// Y lo mostramos.
cout << "El dato es: " << op << endl;
cout<<"Bienvenido"<<endl;
cout<<"Presiona enter"<<endl;
return op;
}//Fin del menu
int obtenerId(void){
ifstream consulta;
int id;
consulta.open("D://Programacion2/clientes.txt",ios::in);
if(consulta)
consulta>>id;
else
cout<<"No pude abrir el archivo de clientes"<<endl;
consulta.close();
return id;
}//Fin de obtener id
void grabarId(int id){
ofstream escritura;
escritura.open("D://Programacion2/clientes.txt",ios::out);
if(escritura){
escritura<<id;
}//Fin del if
else
cout<<"Error en el archivo de Clientes "<<endl;
escritura.close();
}//Fin de grabar
int validarNumero(char numero[]){
for(int i=0; i<strlen(numero); i++){
if(!(isdigit(numero[i]))){
cout << "Ingresa solo numeros "<< endl;
return 0;
}
}
return 1;
}//Fin de validar
Valora esta pregunta
0