Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/06/2009, 17:16
jospercin
 
Fecha de Ingreso: junio-2008
Ubicación: Guatemla
Mensajes: 31
Antigüedad: 16 años, 6 meses
Puntos: 0
Ayuda con Cajero automatico en c++

Hola ando haciendo un programa que simule hacer las funciones de un cajero automatico que permita el manejo de clientes con sus respectivos pin y que almacene sus saldos..
pero me he estancado tengo un archivo txt, en donde ya esta el pin de los usuarios, nombre y su saldo inicial, adjunto el enlace para descargar el archivo txt creado para que puedan observarlo de una mejor manera, y ahi veran que la tercera columna muestan los datos del saldo inicial, pero elproblema es el siguiente

Los depositos y retiros tienen que hacer una suma y resta respectivamente en la columna tres y que el nuevo resultado se sobre escriba en dicha columna asi que si el saldo inicial es 3000 y se hace un deposito de 2000 el saldo en una proxima secion iniciaria en 500 etc.
bueno sin mas rodeos paso a mostrarles el codio
Código:
#include <iostream.h>;
#include <conio.h>;
#include <fstream.h>;
#include <stdlib.h>;
#include <stdio.h>;


int Ver(int Cliente, int Lugar);
int Cursor(int Cliente,int Lugar);
int PinAInteger(int Cliente);
int deposito;
int Retiro;

fstream leerArchivo;
bool Validado=false;

int main () {
 	leerArchivo.open("Archivo.txt", ios::in | ios::out | ios::binary);
   if(!leerArchivo) {
   	cout<<"No se puede crear el documento.  Presione una tecla para regresar al menu";
      getch();
      return 0;
	}
   int Op,NumUsuario;
   PinAInteger(0);
   do {
   	clrscr();
      cout<<"\n 	\t bienbenidos al banco\n\n";
      cout<<"\n1. Ingrear Pin";
      cout<<"\n2.	Consultar Saldo";
      cout<<"\n3.	datos personales";
      cout<<"\n4. Retiros";
      cout<<"\n5. depositos";
      cout<<"\n6.	Salir \b\n";
      cin>>Op;

      if (Op==1) {

         int PinxUsuario;
         cout<<"\nPor favor ingrese su PIN\n";
         cin>>PinxUsuario;



         int Pin;
      	for (int i=0; i<100; i++) {
            Pin=PinAInteger(i);
         	if (PinxUsuario==Pin){
            	cout<<"Gracias por su preferencia, su pin a sido Validado \n precione una tecla y ahora puede escojer alguna de las otras opciones";
               getch();
               NumUsuario=i;
               i=100;
               Validado=true;
            }
            cout<<PinAInteger;

      }



		}
      if (Op==2) {
      	if (Validado==false) {
         	cout<<"Para consultar su saldo debe primero ingresar el Pin en la opción 1 del menu";
            getch();
         } else {
         	cout<<"Su cuenta actualmente tiene la cantidad de Q";
         	Ver(NumUsuario,3);
            getch();
         }

      }
      if (Op==3) {
      	if (Validado==false) {
         	cout<<"Para ver sus datos personales debe primero ingresar el Pin en la opción 1 del menu";
            getch();
         } else {
         	cout<<"El nombre con el cual tiene registra una cuenta en nuestro banco es: ";
         	Ver(NumUsuario,2);
            getch();
         }
      }

    //aka es donde no se como hacer para que si hago un retiro reste a la linea 3 que es el dato inicial del clientey que lo guarde
    //seria deposito + NumUsuario,3) y que quede quede guardado en el archivo de texto
     if (Op==4) {
      	if (Validado==false) {
         	cout<<"Para Realizar retiros debe primero ingresar el Pin en la opción 1 del menu";
            getch();
         } else {
         	cout<<"cuanto desea retirar \n";
            cin>>Retiro;
            cout<<"Transacion exitosa Su nuevo saldo es Q.";
            Ver(NumUsuario,3);
            getch();
         }

      }
   
    //aka es donde no se como hacer para que si hago un deposito sume a la linea 3 que es el dato inicial del clientey que lo guarde
    //seria deposito + NumUsuario,3) y que quede quede guardado en el archivo de texto
     if (Op==5) {
      	if (Validado==false) {
         	cout<<"Para Realizar depositos debe primero ingresar el Pin en la opción 1 del menu";
            getch();
         } else {
         	cout<<"cuanto desea depositar \n";
            cin>>deposito;
            cout<<"Transacion exitosa Su nuevo saldo es Q.";
            Ver(NumUsuario,3);
            getch();
         }

      }
   } while (Op!=6);

}



int PinAInteger(int Cliente) {
	int Temporal;
	char PinStr[7];
   int Pin;

	Temporal=Cursor(Cliente,1);
   leerArchivo.seekg(Temporal, ios::beg);
   leerArchivo.read(PinStr,5);
   Pin=atoi(PinStr);
   return Pin;
}






int Cursor(int Cliente,int Lugar) {
	int Pos;
	if (Cliente==0) {
   	Pos=0;
   } else {
   	Pos=58*Cliente;
   }
   if (Lugar==2)
   	Pos=Pos+14;
   if (Lugar==3)
   	Pos=Pos+49;

//   cout<<Pos;
   return Pos;
}


int Ver(int Cliente, int Lugar) {
	int Temporal,Cant;
   char chrVariable[1];
   Temporal=Cursor(Cliente,Lugar);

   if (Lugar==1) Cant=4;
   if (Lugar==2) Cant=25;
   if (Lugar==3) Cant=7;
  

   for (int i=0;i<Cant;i++) {
			leerArchivo.seekg(Temporal+i,ios::beg);

      	leerArchivo.read(chrVariable,1);
      	cout<<chrVariable[0];

      }
   return 0;
}
el enlace del archivo es el siguiente rapidshare.com/files/243894939/Archivo.txt.html (tube que enviar el enlace de esta forma porque dice que como soy nuevo no tengo los privilegios de los antiguos "descriminacion"

espero con ansias su ayuda solo me quena horas para terminarlo jejej eso me pasa por dejarlo a ultima hora

posdata: como soy nuevo aca no se cuantos temas puede tener uno habierto, ya que yo tengo ya uno pero es de diferente tema casi, y no vi donde podia ponerlo como tema cerrado asi que no quiero molestar a nadie