/*
Copyright (C) 2008 Alessandro Bugatti (alessandro.bugatti@istruzione.it)
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
/*! \file
* \brief Classe semplice per gestire un conto corrente
* con le operazioni di creazione, accredito, addebito e saldo
* \author Alessandro Bugatti
*
* \version 0.1
* \date Creazione 07/03/2009
* \date Ultima modifica 07/03/2009
*
*/
#ifndef CONTOCORRENTE_H
#define CONTOCORRENTE_H
#include <string>
using namespace std;
/*!
* \brief Classe semplice per gestire un conto corrente
* con le operazioni di creazione, accredito, addebito e saldo
* \author Alessandro Bugatti
*
* \version 0.1
* \date Creazione 07/03/2009
* \date Ultima modifica 07/03/2009
*
*/
class ContoCorrente
{
string Codice; ///<Identificativo unico del conto corrente
string Nome; ///<Nome del proprietario
string Cognome; ///<Cognome del proprietario
double capitale; ///<Soldi non conto corrente
/**
* \brief Metodo stub per simulare la generazione del codice
* \return Codice generato
*/
string generaCodice(){ return "000000";}
public:
/**
* \brief Costruttore della classe a cui vengono passati il
* nome e il cognome del proprietario del conto
* \param n Nome del proprietario
* \param c Cognome del proprietario
* \warning Il codice viene impostato in maniera fissa dal
* metodo generaCodice, se si volesse falro più realistico
* bisognerebbe modificare il metodo
*/
ContoCorrente(const string& n, const string& c);
/**
* \brief Deposita dei soldi
* \param d Quantità di soldi depositati
*/
void deposito(double d);
/**
* \brief Preleva dei soldi
* \param p Quantità di soldi prelevati
* \return Vero se il prelievo è possibile, falso altrimenti
* \warning Se la quantità di soldi da prelevare
* è superiore al capitale depositato non viene
* effettuato il prelievo
*/
bool prelievo(double p);
/**
* \brief Legge il saldo corrente
* \return Saldo corrente
*/
double saldo() const;
/**
* \brief Restituisce il nominativo del proprietario
* \return Stringa composta dal cognome e nome
*/
string getNominativo() const;
};
#endif // CONTOCORRENTE_H