PP | Zadanie 2.P2 | iter nie omija osob bez ocen, komentarze, wyliczanie sredniej prostsze

This commit is contained in:
alatar 2024-06-20 01:12:15 +02:00
parent ffa452c438
commit 92323008ee

View File

@ -253,7 +253,7 @@ void lista_usun(ListaStudentowT *lista, int idx){ //usuwa element z listy
}
// zwraca nastepny element listy spelniajacy warunki
ListaStudentowT *lista_iter(ListaStudentowT *lista,int &idx,const char *filtr="", double filtr2=-1) {
ListaStudentowT *lista_iter(ListaStudentowT *lista,int &idx,const char *filtr="", double filtr2=-2) {
while ( lista->nastepny != nullptr ) {
lista = lista->nastepny;
@ -268,7 +268,8 @@ ListaStudentowT *lista_iter(ListaStudentowT *lista,int &idx,const char *filtr=""
return nullptr;
}
int lista_wyswietl(ListaStudentowT *lista,const char *filtr="", double filtr2=-1) {
// wyswietla liste studentow uzywajac filtrow
int lista_wyswietl(ListaStudentowT *lista,const char *filtr="", double filtr2=-2) {
int n=0,idx=0;
student_wyswietl2(nullptr,0);
@ -279,11 +280,9 @@ int lista_wyswietl(ListaStudentowT *lista,const char *filtr="", double filtr2=-1
return n;
}
// zwraca ilosc wszystkich studentow na liscie
int lista_iloscstudentow(ListaStudentowT *lista,const char *filtr="", double filtr2=-1) {
ListaStudentowT *cur = lista;
// zwraca ilosc studentow na liscie
int lista_iloscstudentow(ListaStudentowT *lista,const char *filtr="", double filtr2=-2) {
int n=0,idx=0;
while((lista = lista_iter(lista,idx,filtr,filtr2)) != nullptr) {
n++;
}
@ -292,13 +291,11 @@ int lista_iloscstudentow(ListaStudentowT *lista,const char *filtr="", double fil
// wylicza srednia dla wszystkich uczniów
double lista_srednia(ListaStudentowT *lista){
ListaStudentowT *cur = lista;
double suma;
int n=0;
while ( cur->nastepny != nullptr ) {
cur = cur->nastepny;
if(cur->student->Srednia>-1) {
suma+=cur->student->Srednia;
while ((lista = lista->nastepny) != nullptr) {
if(lista->student->Srednia>-1) {
suma+=lista->student->Srednia;
n++;
}
}
@ -306,7 +303,7 @@ double lista_srednia(ListaStudentowT *lista){
}
// zapisuje wszystkich studentow do pliku
int plik_zapisz(ListaStudentowT *lista,const char *nazwap="dane.csv",const char *filtr="", double filtr2=-1) {
int plik_zapisz(ListaStudentowT *lista,const char *nazwap="dane.csv",const char *filtr="", double filtr2=-2) {
ListaStudentowT *cur = lista;
int n=0,idx=0;
ofstream of;
@ -400,7 +397,7 @@ ListaStudentowT* plik_wczytaj() {
student_przelicz(nowy);
lista_dodaj(lista,nowy);
iif.getline(buf,6,'\n');
iif.peek();
iif.peek(); // wymusza eof
}
}
iif.close();