```cpp=
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
typedef struct Client {
char nume[50];
char iban[50];
double sold;
char moneda[3];
} Client;
int main() {
char* nume_fisier = "clienti.txt";
ifstream fin(nume_fisier);
int numar_clienti;
Client lista_clienti[10];
fin >> numar_clienti;
for (int i = 0; i < numar_clienti; i++) {
fin >> lista_clienti[i].nume;
fin >> lista_clienti[i].iban;
fin >> lista_clienti[i].sold;
fin >> lista_clienti[i].moneda;
}
// Ex 1 - Sa se afiseze soldul clientului cu numele Andreea
cout << "----------------- 1 -----------------\n";
bool gasitAndreea = false;
for (int i = 0; i < numar_clienti; i++) {
if (!strcmp(lista_clienti[i].nume, "Andreea")) {
gasitAndreea = true;
cout << "Clientul cu numele Andreea are soldul: " << lista_clienti[i].sold << " " << lista_clienti[i].moneda <<"\n";
break;
}
}
if (!gasitAndreea) {
cout << "Nu exista un client cu numele Andreea.\n";
}
cout << endl;
// Ex 2 - Sa se adauge in ficare cont o dobanda dupa cum urmeaza
// Conturile de RON: 2%
// Conturile de EUR: 1%
// Conturile de USD: 5%
cout << "----------------- 2 -----------------\n";
for (int i = 0; i < numar_clienti; i++) {
if (!strcmp(lista_clienti[i].moneda, "RON")) {
lista_clienti[i].sold = (lista_clienti[i].sold * 1.02f);
}
else if (!strcmp(lista_clienti[i].moneda, "EUR")) {
lista_clienti[i].sold = (lista_clienti[i].sold * 1.01f);
}
else if (!strcmp(lista_clienti[i].moneda, "USD")) {
lista_clienti[i].sold = (lista_clienti[i].sold * 1.05f);
}
}
for (int i = 0; i < numar_clienti; i++) {
cout << lista_clienti[i].nume << "\t\t" << lista_clienti[i].sold << "\t" << lista_clienti[i].moneda << endl;
}
cout << endl;
// 3. Sa se afiseze clientii ordonati alfabetic
cout << "----------------- 3 -----------------\n";
for (int i = 0; i < numar_clienti; i++ ) {
for (int j = 0; j < numar_clienti; j++) {
if (strcmp(lista_clienti[i].nume, lista_clienti[j].nume) < 0) {
Client aux;
aux = lista_clienti[i];
lista_clienti[i] = lista_clienti[j];
lista_clienti[j] = aux;
}
}
}
for (int i = 0; i < numar_clienti; i++) {
cout << lista_clienti[i].nume << "\t\t" << lista_clienti[i].sold << "\t" << lista_clienti[i].moneda << endl;
}
cout << endl;
// 4. Sa se afiseze top 3 clienti cu cei mai multi RON
cout << "----------------- 4 -----------------\n";
Client clienti_cu_RON[10];
int numar_clienti_cu_ron = 0;
// Filtram clientii cu RON
for (int i = 0; i < numar_clienti; i++) {
if (!strcmp(lista_clienti[i].moneda, "RON")) {
clienti_cu_RON[numar_clienti_cu_ron] = lista_clienti[i];
numar_clienti_cu_ron++;
}
}
// Sortam clientii cu RON
for (int i = 0; i < numar_clienti_cu_ron; i++ ) {
for (int j = 0; j < numar_clienti_cu_ron; j++) {
if (clienti_cu_RON[i].sold > clienti_cu_RON[j].sold) {
Client aux;
aux = clienti_cu_RON[i];
clienti_cu_RON[i] = clienti_cu_RON[j];
clienti_cu_RON[j] = aux;
}
}
}
for (int i = 0; i < min(numar_clienti_cu_ron, 3); i++) {
cout << clienti_cu_RON[i].nume << "\t\t" << clienti_cu_RON[i].sold << "\t" << clienti_cu_RON[i].moneda << endl;
}
cout << endl;
// 5. Stiind ca 1 EUR = 4.93 RON si 1 USD = 4.06 RON
// sa se transforme toate soldurile in RON si
// sa se afise top 5 clienti cu cele mai mici solduri
cout << "----------------- 4 -----------------\n";
// Transformam toate soldurile in RON
for (int i = 0; i < numar_clienti; i++) {
if (!strcmp(lista_clienti[i].moneda, "EUR")) {
lista_clienti[i].sold = (lista_clienti[i].sold * 4.93f);
strcpy(lista_clienti[i].moneda, "RON");
}
else if (!strcmp(lista_clienti[i].moneda, "USD")) {
lista_clienti[i].sold = (lista_clienti[i].sold * 4.06f);
strcpy(lista_clienti[i].moneda, "RON");
}
}
for (int i = 0; i < numar_clienti; i++ ) {
for (int j = 0; j < numar_clienti; j++) {
if (lista_clienti[i].sold < lista_clienti[j].sold) {
Client aux;
aux = lista_clienti[i];
lista_clienti[i] = lista_clienti[j];
lista_clienti[j] = aux;
}
}
}
for (int i = 0; i < min(numar_clienti, 5); i++) {
cout << lista_clienti[i].nume << "\t\t" << lista_clienti[i].sold << "\t" << lista_clienti[i].moneda << endl;
}
cout << endl;
return 0;
}
```