C++ Nested Structure
Asa am cautat-o pe google, si nu am gasit nimic relevant. Ce aveam de facut e sa declarat o structura in interiorul altei structuri. Si de stocat date,de sortat alfabetic, si de dat afara in ordine. Programul mai jos.
#include <cstdlib>
#include <iostream>
#include <cstring>
using namespace std;
struct elevi{
char nume[100];
char prenume[100];
int varsta;
float media_mate;
float media_info;
float media_engleza;
float medie;
struct {
int zi,luna,an;
}data_nasterii;
};
int main(int argc, char *argv[])
{
int nr_elevi=0;
cout << “cati elevi?”;
cin >> nr_elevi;
elevi inr[nr_elevi];
for (int q=0;q<nr_elevi; q++){
cout << “Nume:”;
cin >> inr[q].nume;
cout << “Prenume:”;
cin >> inr[q].prenume;
cout << “Varsta:”;
cin >> inr[q].varsta;
cout << “Data nasterii: (ZZ MM AAAA)”;
cin>>inr[q].data_nasterii.zi;
cin>>inr[q].data_nasterii.luna;
cin>>inr[q].data_nasterii.an;
cout << “Media la mate:”;
cin >> inr[q].media_mate;
cout << “Media la info:”;
cin >> inr[q].media_info;
cout << “Media la engleza:”;
cin >> inr[q].media_engleza;
}
char temp[100];
int temp2=0;
for (int q=0;q<nr_elevi-1; q++){
if(strcmp(inr[q].nume,inr[q+1].nume)>=1){
swap(inr[q],inr[q+1]);
q=-1;
}}
for (int q=0;q<nr_elevi; q++){
cout << “Nume:”<<inr[q].nume <<”\t”;
}
cout << endl;
for (int q=0;q<nr_elevi; q++){
cout << “Prenume:”<<inr[q].prenume<<”\t”;
}
cout << endl;
for (int q=0;q<nr_elevi; q++){
cout << “Varsta:”<<inr[q].varsta<<”\t”;
}
cout << endl;
for (int q=0;q<nr_elevi; q++){
cout << “Data nasterii: (ZZ MM AAAA)”<<inr[q].data_nasterii.zi<<”-” <<inr[q].data_nasterii.luna<<”-”<<inr[q].data_nasterii.an<<”\t”;
}
cout << endl;
for (int q=0;q<nr_elevi; q++){
cout << “Media la mate:”<<inr[q].media_mate<<”\t”;
}
cout << endl;
for (int q=0;q<nr_elevi; q++){
cout << “Media la info:”<<inr[q].media_info<<”\t”;
}
cout << endl;
for (int q=0;q<nr_elevi; q++){
cout << “Media la engleza:”<<inr[q].media_engleza;
}
cout << endl;
for (int q=0;q<nr_elevi; q++){
inr[q].medie=(inr[q].media_engleza + inr[q].media_info + inr[q].media_mate )/3;
cout << “Media generala:”<<inr[q].medie;
}
system(”PAUSE”);
return EXIT_SUCCESS;
}

leave your comment