online: 3; azi: 459; total: 52465 Manual clasa a x a - Implementarea structurilor de date - Inregistrarea

Manual clasa a X a

Implementarea structurilor de date

Inregistrarea

O persoană este caracterizată de următoarele atribute: sex, vârstă, înălțime greutate . Se analizează un grup de 100 de persoane. Datele se citesc dintr-un fişier text, în care, pe fiecare linie, sunt înregistrate atributele unei persoane. Să se afişeze :
a) procentul de femei şi procentul de bărbați;
b) vârsta medie a grupului şi vârsta medie a bărbaţilor ;
c) procentul de femei şi procentul de bărbaţi peste vârsta medie a grupului;
d) înălțimea medie a grupului şi înălțimea medie a femeilor;
e) procentul de femei şi procentul de bărbaţi peste înălțimea medie a grupului;
î) greutatea medie a grupului, greutatea medie a femeilor şi greutatea medie a bărbaților;
g) procentul de femei şi procentul de bărbaţi peste greutatea medie a grupului.
# include < iostream >
# include < fstream >
struct Persoana {
char sex;
int varsta ;
double inaltime ;
double greutate;
};
int main () {
std :: ifstream fisier ( "date.txt" ) ;
if (! fisier. is_open ()) {
std :: cout << "Eroare la deschiderea fisierului .\n" ;
return 1 ;
}
const int numar_persoane = 100 ;
Persoana persoane[ numar_persoane ];
int numar_femei = 0 ;
int numar_barbati = 0 ;
int varsta_totala = 0 ;
int varsta_totala_barbati = 0 ;
double inaltime_totala = 0 ;
double inaltime_totala_femei = 0 ;
double greutate_totala = 0 ;
double greutate_totala_femei = 0 ;
double greutate_totala_barbati = 0 ;
for ( int i = 0 ; i < numar_persoane ; i++) {
fisier >> persoane[i].sex >> persoane[i]. varsta >> persoane[i]. inaltime >> persoane[i].greutate;
if (persoane[i].sex == 'F' ) {
numar_femei ++;
inaltime_totala_femei += persoane[i]. inaltime ;
greutate_totala_femei += persoane[i].greutate;
} else {
numar_barbati ++;
varsta_totala_barbati += persoane[i]. varsta ;
greutate_totala_barbati += persoane[i].greutate;
}
varsta_totala += persoane[i]. varsta ;
inaltime_totala += persoane[i]. inaltime ;
greutate_totala += persoane[i].greutate;
}
double procent_femei = ( double ) numar_femei / numar_persoane * 100 ;
double procent_barbati = ( double ) numar_barbati / numar_persoane * 100 ;
double varsta_medie = ( double ) varsta_totala / numar_persoane ;
double varsta_medie_barbati = ( double ) varsta_totala_barbati / numar_barbati ;
double inaltime_medie = inaltime_totala / numar_persoane ;
double inaltime_medie_femei = inaltime_totala_femei / numar_femei ;
double greutate_medie = greutate_totala / numar_persoane ;
double greutate_medie_femei = greutate_totala_femei / numar_femei ;
double greutate_medie_barbati = greutate_totala_barbati / numar_barbati ;
int numar_femei_peste_varsta_medie = 0 ;
int numar_barbati_peste_varsta_medie = 0 ;
int numar_femei_peste_inaltime_medie = 0 ;
int numar_barbati_peste_inaltime_medie = 0 ;
int numar_femei_peste_greutate_medie = 0 ;
int numar_barbati_peste_greutate_medie = 0 ;
for ( int i = 0 ; i < numar_persoane ; i++) {
if (persoane[i]. varsta > varsta_medie ) {
if (persoane[i].sex == 'F' ) {
numar_femei_peste_varsta_medie ++;
} else {
numar_barbati_peste_varsta_medie ++;
}
}
if (persoane[i]. inaltime > inaltime_medie ) {
if (persoane[i].sex == 'F' ) {
numar_femei_peste_inaltime_medie ++;
} else {
numar_barbati_peste_inaltime_medie ++;
}
}
if (persoane[i].greutate > greutate_medie ) {
if (persoane[i].sex == 'F' ) {
numar_femei_peste_greutate_medie ++;
} else {
numar_barbati_peste_greutate_medie ++;
}
}
}
double procent_femei_peste_varsta_medie = ( double ) numar_femei_peste_varsta_medie / numar_femei * 100 ;
double procent_barbati_peste_varsta_medie = ( double ) numar_barbati_peste_varsta_medie / numar_barbati * 100 ;
double procent_femei_peste_inaltime_medie = ( double ) numar_femei_peste_inaltime_medie / numar_femei * 100 ;
double procent_barbati_peste_inaltime_medie = ( double ) numar_barbati_peste_inaltime_medie / numar_barbati * 100 ;
double procent_femei_peste_greutate_medie = ( double ) numar_femei_peste_greutate_medie / numar_femei * 100 ;
double procent_barbati_peste_greutate_medie = ( double ) numar_barbati_peste_greutate_medie / numar_barbati * 100 ;
std :: cout << "a) Procentul de femei: " << procent_femei << "%, Procentul de barbati : " << procent_barbati << "%\n" ;
std :: cout << "b) Varsta medie a grupului: " << varsta_medie << ", Varsta medie a barbatilor : " << varsta_medie_barbati << "\n" ;
std :: cout << "c) Procentul de femei peste varsta medie: " << procent_femei_peste_varsta_medie << "%, Procentul de barbati peste varsta medie: " << procent_barbati_peste_varsta_medie << "%\n" ;
std :: cout << "d) Inaltimea medie a grupului: " << inaltime_medie << ", Inaltimea medie a femeilor: " << inaltime_medie_femei << "\n" ;
std :: cout << "e) Procentul de femei peste inaltimea medie: " << procent_femei_peste_inaltime_medie << "%, Procentul de barbati peste inaltimea medie: " << procent_barbati_peste_inaltime_medie << "%\n" ;
std :: cout << "f) Greutatea medie a grupului: " << greutate_medie << ", Greutatea medie a femeilor: " << greutate_medie_femei << ", Greutatea medie a barbatilor : " << greutate_medie_barbati << "\n" ;
std :: cout << "g) Procentul de femei peste greutatea medie: " << procent_femei_peste_greutate_medie << "%, Procentul de barbati peste greutatea medie: " << procent_barbati_peste_greutate_medie << "%\n" ;
fisier. close ();
return 0 ;
}

Programul citește datele din fișier, calculează statisticile relevante și le afișează la consolă. Nu uitați să creați un fișier date.txt care conține datele de intrare pentru program, altfel programul nu va funcționa corect.