Ho creato questo programma banale che salva i movimenti su un file e ne calcola il saldo, per esercitarmi. Tuttavia non riesco a risolvere un problema, ovvero che ogni volta che lancio il programma, il file in cui salvavo i movimenti viene sovrascritto da uno nuovo.
Non ho molta esperienza (sono alle prime armi) quindi se avete delle illuminazioni su come migliorare il codice sono ben accette.
codice:
#include <iostream>
#include <fstream>
using namespace std;
/* Dichiarazione Funzioni */
void fileCreator();
void titol();
void menu();
void insertChar();
double saldo();
/* Dichiarazione Variabili Globali */
double tot = 0;
int main()
{
fileCreator();
titol();
menu();
return 0;
}
/* Apertura e Creazione File */
void fileCreator()
{
fstream file;
file.open("testo.txt", ios::out);
file << "CONTABILITA'"
<< endl
<< endl
<< "DATA" << "\t\t" << "MOVIMENTO" << "\t\t" << "CAUSALE" << "\t\t\t\t" << "SALDO";
file.close();
}
/* Titolo */
void titol()
{
cout << endl
<< "**GESTIONE CONTABILITA'**"
<< endl;
}
codice:
/* Menu Principale */
void menu()
{
int status;
cout << endl
<< "1. Inserire un nuovo movimento.\n"
<< "2. Visualizza il Saldo.\n"
<< "0. Esci\n"
<< endl
<< "Inserisci la tua scelta: ";
cin >> status;
cout << endl;
switch(status)
{
case 1:
insertChar();
menu();
break;
case 2:
cout << "Saldo corrente: " << saldo() << " Euro." << endl;
menu();
case 0:
break;
default:
cout << endl
<< "ERRORE: Inserisci un valore compreso tra 0 ed 1!"
<< endl;
menu();
break;
}
}
void insertChar()
{
int giorno, mese, anno;
double mov = 0;
fstream file;
cout << "Inserisci la data del movimento(giorno/mese/anno)"
<< endl;
cin >> giorno >> mese >> anno;
cout << "Inserisci il movimento: ";
cin >> mov;
tot = tot + mov;
file.open("testo.txt", ios::out | ios::app);
file << endl
<< giorno << "/" << mese << "/" << anno
<< "\t"
<< mov
<< "\t\t"
<< "Funzione non disponibile"
<< "\t\t"
<< tot;
file.close();
}
double saldo()
{
return tot;
}