online: 7; azi: 1191; total: 53197 Manual clasa a x a - Implementarea structurilor de date - Inregistrarea

Manual clasa a X a

Implementarea structurilor de date

Inregistrarea

Într-o fabrică sunt n secţii , iar în fiecare secţie lucrează m muncitori. Atributele fiecărui muncitor sunt: numele, prenumele, salariul orar, timpul lucrat (exprimat în ore) şi salariul. Datele se citesc dintr-un fişier text, în care, pe prima linie sunt scrise valorile pentru n şi m, iar apoi, pe câte o linie, sunt înregistrate atributele pentru fiecare muncitor: numele, prenumele, salariul orar şi timpul lucrat. Pentru fiecare muncitor se va calcula salariul (care este egal cu produsul dintre salariul orar şi timpul lucrat). Să se afişeze totalul salariului pe fiecare secție şi pe întreaga fabrică.
# include < iostream >
# include < fstream >
# include < string >
struct Muncitor {
std :: string nume;
std :: string prenume;
double salariu_orar ;
double timp_lucrat ;
double salariu;
};
int main () {
std :: ifstream fisier ( "date.txt" ) ;
int n, m;
if (! fisier. is_open ()) {
std :: cout << "Eroare la deschiderea fisierului .\n" ;
return 1 ;
}
fisier >> n >> m;
Muncitor fabrica[ 100 ][ 100 ]; // Matrice suficient de mare pentru a stoca muncitorii
double total_salariu_fabrica = 0 ;
for ( int i = 0 ; i < n; i++) {
double total_salariu_sectie = 0 ;
for ( int j = 0 ; j < m; j++) {
fisier >> fabrica[i][j].nume >> fabrica[i][j].prenume >> fabrica[i][j]. salariu_orar >> fabrica[i][j]. timp_lucrat ;
fabrica[i][j].salariu = fabrica[i][j]. salariu_orar * fabrica[i][j]. timp_lucrat ;
total_salariu_sectie += fabrica[i][j].salariu;
}
std :: cout << "Total salariu sectie " << i + 1 << ": " << total_salariu_sectie << "\n" ;
total_salariu_fabrica += total_salariu_sectie ;
}
std :: cout << "Total salariu fabrica: " << total_salariu_fabrica << "\n" ;
fisier. close ();
return 0 ;
}

Acest program citește datele despre muncitori dintr-un fișier text și stochează informațiile într-o matrice de structuri de tip Muncitor. Apoi, pentru fiecare muncitor, calculează salariul și adaugă acesta la totalul salariului pe secție. După ce toți muncitorii dintr-o secție au fost procesați, se afișează totalul salariului pe secție și se adaugă acesta la totalul salariului pe fabrică. La final, se afișează totalul salariului pe fabrică.