Siemka, chciałem potwierdzić czy zadanie zgadza się z treścią polecenia i zapytać o jedną rzecz.
Treść zadania:
W programie zdefiniuj strukturę TStudent o polach: nazwisko, imię, srednia. Napisz funkcje wczytujące z klawiatury i wypisujące na ekran dane studenta. Parametrem powyższych funkcji ma być struktura przekazana przez wskaźnik. Rozbuduj program tak, aby tworzył bazę studentów. Wczytaj liczbę studentów, przydziel pamięć i wczytaj dane. Napisz funkcję obliczającą i zwracającą średnią wszystkich studentów.
Nie jestem pewien czy spełniam w 100% polecenie i myślałem jeszcze o tym jak wyświetlić na ekranie dane wybranego przez siebie studenta, //wyswietl(wektor_stud[0]);
takie coś jest błędne bo funkcja wyświetl
nie przyjmuje wektora tylko zmienną typu Tstudent, czy w takim razie musiałbym zmienić argument w funkcji wyświetl
i jest to jedyny sposób?
#include <iostream>
#include <vector>
using namespace std;
struct Tstudent
{
string imie;
string nazwisko;
double srednia;
};
Tstudent wczytaj(Tstudent *student)
{
cout<<"Imie"<<endl;
cin>>student->imie;
cout<<"Nazwisko"<<endl;
cin>>student->nazwisko;
cout<<"Srednia"<<endl;
cin>>student->srednia;
return *student;
}
void wyswietl(Tstudent *student)
{
cout<<student->imie<<endl;
cout<<student->nazwisko<<endl;
cout<<student->srednia<<endl;
}
double f_srednia(vector<Tstudent> wektor){
double srednia;
for(int i=0; i<wektor.size(); i++){
srednia = srednia + wektor.at(i).srednia;
}
return srednia/wektor.size();
}
int main()
{
int liczba_studentow;
cout<<"Podaj liczbe studentow "<<endl;
cin>>liczba_studentow;
vector<Tstudent> wektor_stud;
Tstudent *stud = new Tstudent;
for(int i=0; i<liczba_studentow; i++)
{
cout<<"Dane "<<i+1<<" studenta. "<<endl;
wektor_stud.push_back(wczytaj(stud));
}
cout<<"Srednia "<<wektor_stud.size()<<" studentow = "<<f_srednia(wektor_stud);
//wyswietl(wektor_stud[0]);
return 0;
}