// cliConta.cpp
//				Cliente das classes ContaOrdem e ContaOrdenado
// 10 de Janeiro de 2001 ( Um Cliente mais elaborado )
   

 


#include "cConta.h"
#include <iostream.h>


#define TERMINAR 5


void ClearScreen()
{
	int i;
	for ( i=0; i<24; i++ ) cout << endl;
}


void main()
{
	
  cContaOrdem ctOrdem(1);
  cContaOrdenado ctOrdenado(2);
  
  cContaOrdem *apContas[2] = { &ctOrdem, &ctOrdenado };
  
  cContaOrdem *pCt;		// ponteiro para a conta seleccionada  	

  int Opcao, IdxCt;		// índice da conta seleccionada
  
  float Valor;
  
  pCt = &ctOrdem;
  IdxCt = 0;
  
  do 
  {
	ClearScreen();
	
	
	cout << "Conta Seleccionada : " << pCt->GetDescricao() ;
	
	cout << endl << endl ;
	cout << "1. Seleccionar Outra Conta " << endl ;
	cout << "2. Depositar " << endl;
	cout << "3. Levantar " << endl ;
	cout << "4. Consultar Saldo " << endl ;
	cout << "5. Terminar  " << endl;
	cout << endl << endl ;

	cout << "\tEscolha opcao : ";
	cin >> Opcao ;
	cout << endl << endl ;
	
	switch ( Opcao )
	{		
	 
	 
	 case 1:
			
			IdxCt = 1 - IdxCt;
			pCt = apContas[ IdxCt ];

			cout << "Conta nr " << pCt->GetNrConta() << " seleccionada " << endl ;
		
			break;
	 case 2:
			cout << "Indique o valor do deposito : ";
			cin >> Valor ;
			if ( pCt->Depositar( Valor ) )
				cout << "Depositado " << Valor << " na conta " << pCt->GetNrConta() << endl;
			else
				cout << "Erro nao especificado na operacao de deposito ";
			break;
	 case 3:
			cout << "Indique o valor do levantamento : ";
			cin >> Valor ;
			if ( pCt->Levantar( Valor ) )
				cout << " Levantado  " << Valor << " da conta " << pCt->GetNrConta() << endl;
			else
				cout << "Erro nao especificado na operacao de levantamento ";
				
			break;
	 case 4:
			
			cout << "Saldo da conta " << pCt->GetNrConta() << " = " << pCt->GetSaldo() << endl;  
					
			break;
	 
	}
	
	cin.ignore();
	cin.get();

  } while ( Opcao != TERMINAR );


}
