online: 5; azi: 976; total: 51431 Manual clasa a ix a - Implementarea structurilor de date - Fisiere

Manual clasa a IX a

Implementarea structurilor de date

Fisiere

Fişierele text alfa.txt şi beta.txt conțin numele unor persoane , câte o linie pentru fiecare persoană . Ştiind că în fiecare fişier numele sunt memorate în ordine alfabetică , scrieți un program care să construiască fişierul gama.txt care să conțină toate numele din cele două fişiere date, în ordinea alfabetică .
# include < iostream >
# include < fstream >
# include < string >
using namespace std ;
int main () {
// deschidem fisierele alfa.txt si beta.txt
ifstream alfa ( "alfa.txt" ) ;
ifstream beta ( "beta.txt" ) ;
// deschidem fisierul gama.txt pentru scriere
ofstream gama ( "gama.txt" ) ;
string nume_alfa , nume_beta ;
// citim primul nume din ambele fisiere
getline (alfa, nume_alfa );
getline (beta, nume_beta );
// cat timp putem citi din ambele fisiere
while (! alfa. eof () && ! beta. eof ()) {
// comparam numele din cele doua fisiere
if ( nume_alfa < nume_beta ) {
// scriem numele din alfa.txt in fisierul gama.txt
gama << nume_alfa << endl ;
// citim urmatorul nume din alfa.txt
getline (alfa, nume_alfa );
} else {
// scriem numele din beta.txt in fisierul gama.txt
gama << nume_beta << endl ;
// citim urmatorul nume din beta.txt
getline (beta, nume_beta );
}
}
// cat timp mai putem citi din fisierul alfa.txt
while (! alfa. eof ()) {
// scriem numele din alfa.txt in fisierul gama.txt
gama << nume_alfa << endl ;
// citim urmatorul nume din alfa.txt
getline (alfa, nume_alfa );
}
// cat timp mai putem citi din fisierul beta.txt
while (! beta. eof ()) {
// scriem numele din beta.txt in fisierul gama.txt
gama << nume_beta << endl ;
// citim urmatorul nume din beta.txt
getline (beta, nume_beta );
}
// inchidem toate fisierele
alfa. close ();
beta. close ();
gama. close ();
cout << "S-a generat fisierul gama.txt." << endl ;
return 0 ;
}

Programul deschide cele două fișiere de intrare și unul de ieșire și citește primul nume din fiecare fișier. Apoi, compară cele două nume și scrie numele mai mic în fișierul de ieșire. Acest proces se repetă până când ambele fișiere de intrare sunt epuizate.
În cazul în care unul dintre fișiere a fost epuizat, programul scrie restul numelor din celălalt fișier în fișierul de ieșire.
În final, toate cele trei fișiere sunt închise, iar programul afișează un mesaj de confirmare.
Un exemplu de fișier alfa.txt ar putea fi:
Ana
Bogdan
Cristina
Elena
Un exemplu de fișier beta.txt ar putea fi:
Alex
Diana
Gabriel
Ionut
Notă: Am ales nume aleatorii doar pentru exemplificare.