Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Progettare e implementare in C++ una classe che rappresenta un conto corrente bancario:
- - la creazione di un conto corrente potrà avvenire solo specificando
- almeno il saldo iniziale e il correntista (un codice di conto potra' essere specificato
- anche in un secondo momento)
- - in ogni momento dovrà essere possibile sapere il saldo del conto
- - gestire prelievi e versamenti; i prelievi possono mandare in rosso (negativo)
- il saldo del conto non oltre a una certa cifra/soglia;
- il valore della soglia viene letto da un file di testo che contiene anche
- il nome della Banca
- - (difficile) tenere traccia di tutti i movimenti storici; possibilità
- di stampare un estratto conto (data, tipo movimento, valore movimento)
- in ordine cronologico crescente o decrescente
- */
- #include <iostream>
- #include <fstream>
- using namespace std;
- class CC {
- public:
- CC(double _saldo, string _correntista, string _numero_conto="")
- {
- set_saldo(_saldo);
- correntista = _correntista;
- numero_conto = _numero_conto;
- }
- CC() {}
- //getters
- double get_saldo() {return saldo;}
- //setters
- void set_numero_conto(string numero) {numero_conto = numero;}
- void set_saldo(double _saldo)
- {
- if (_saldo<0) throw invalid_argument("Saldo negativo rifiutato");
- saldo = _saldo;
- }
- string get_nome_banca() { return nome_banca; }
- bool deposita(double cifra) {
- if (cifra>0)
- {
- saldo+=cifra;
- return true;
- }
- else return false;
- }
- bool preleva(double cifra) {
- if (cifra>0 && (saldo-cifra)>= -soglia_rosso)
- {
- saldo-=cifra;
- return true;
- }
- else return false;
- }
- private:
- string numero_conto="";
- double saldo = 0;
- string correntista = "";
- static string nome_banca;
- static double soglia_rosso;
- static bool lettura_servizio;
- static bool leggi_servizio() {
- ifstream leggi = ifstream("servizio.txt");
- getline(leggi, CC::nome_banca);
- string riga="";
- getline(leggi, riga);
- CC::soglia_rosso=abs(stoi(riga));
- leggi.close(); leggi.clear();
- cout << CC::nome_banca << " " << CC::soglia_rosso << endl;
- return true;
- }
- };
- string CC::nome_banca="";
- double CC::soglia_rosso=0;
- bool CC::lettura_servizio = CC::leggi_servizio();
- int main()
- {
- CC conto = CC();
- try {
- conto = CC(2000, "");
- }
- catch (invalid_argument e) {
- cout << e.what() << "Impossibile continuare ...\n";
- }
- cout << conto.get_saldo() << endl;
- conto.deposita(-500);
- cout << conto.get_saldo() << endl;
- conto.deposita(500);
- cout << conto.get_saldo() << endl;
- conto.preleva(3501);
- cout << conto.get_saldo() << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement