// CliBanco.cpp 
// Cliente da classe cBanco
// 29 de Novembro de 2000


#include "cBanco.h"
#include <iostream.h>


#define TERMINAR 7


void ClearScreen()
{
	int i;
	for ( i=0; i<24; i++ ) cout << endl;
}


void main()
{
	
  cBanco Banco("Caixa Geral Depositos");
  

  int Opcao, NrConta, NrContaOrigem, NrContaDestino;
  int flagContaSeleccionada = 0;
  float Valor, Saldo;
  
  do 
  {
	ClearScreen();
	
	cout << Banco.Nome ;
	
	if ( flagContaSeleccionada )
		cout << "Nr Conta Seleccionada : " << NrConta;
	else
		cout << "Conta nao seleccionada";
	

	cout << endl << endl ;
	cout << "1. Abrir conta " << endl ;
	cout << "2. Seleccionar Conta " << endl ;
	cout << "3. Depositar " << endl;
	cout << "4. Levantar " << endl ;
	cout << "5. Consultar Saldo " << endl ;
	cout << "6. Transferir " << endl ;
	cout << "7. Terminar  " << endl;
	cout << endl << endl ;

	cout << "\tEscolha opcao : ";
	cin >> Opcao ;
	cout << endl << endl ;
	
	switch ( Opcao )
	{		
	 
	 case 1:
			if ( Banco.AbrirConta( NrConta ) )
			{
				cout << "Conta aberta com o nr " <<  NrConta << endl;
				flagContaSeleccionada = 1;
			}
			break;
	 case 2:
			cout << "Indique o numero da conta a seleccionar : ";
			cin >>  NrConta ;
			cout << "Conta nr " << NrConta << " seleccionada " << endl ;
			flagContaSeleccionada = 1;
			break;
	 case 3:
			cout << "Indique o valor do deposito : ";
			cin >> Valor ;
			if ( Banco.Depositar( NrConta, Valor ) )
				cout << "Depositado " << Valor << " na conta " << NrConta << endl;
			else
				cout << "Erro nao especificado na operacao de deposito ";
			break;
	 case 4:
			cout << "Indique o valor do levantamento : ";
			cin >> Valor ;
			if ( Banco.Levantar( NrConta, Valor ) )
				cout << " Levantada " << Valor << " na conta " << NrConta << endl;
			else
				cout << "Erro nao especificado na operacao de levantamento ";
				
			break;
	 case 5:
			if ( Banco.Saldo(NrConta, Saldo) )
				cout << "Saldo da conta " << NrConta << " = " << Saldo << endl;  
			else
				cout << "Erro nao especificado na operacao de consulta de saldo ";
				
			break;
	 case 6:
			cout << "Indique o numero da conta origem : ";
			cin >> NrContaOrigem ;
			cout << "Indique o numero da conta destino : ";
			cin >> NrContaDestino ;
			cout << "Indique o valor da transferencia : ";
			cin >> Valor;
			if (  Banco.Transferir( NrContaOrigem, NrContaDestino, Valor ) )
				cout << "Transferido " << Valor << " da conta " << NrContaOrigem << " para a conta " << NrContaDestino << endl ;
			else
				cout << "Erro nao especificado na operacao de transferencia ";
				
			break;						   				

	}
	
	cin.ignore();
	cin.get();

  } while ( Opcao != TERMINAR );


}
