Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstring>
- using namespace std;
- struct student
- {
- int bursa, grupa;
- double media;
- char cod[30],nume[30], prenume[30];
- }v[10009],bursieri[10009];
- int n, suma_burse,grupe[101],cerinta, gr_max,m;
- double media_maxima;
- void adauga_student()
- {
- student a;
- cout << "Numele studentului:\n";
- cin >> a.nume;
- cout << "Numele studentului: (scrieti cu cratima)\n";
- cin >> a.prenume;
- cout << "Grupa studentului:\n";
- cin >> a.grupa;
- cout << "Media elevului:\n";
- cin >> a.media;
- cout << "Codul elevului:\n";
- cin >> a.cod;
- if(a.media >= 9.00 && a.media <= 9.49)
- {
- m++;
- a.bursa = 300;
- bursieri[m] = a;
- }
- else if(a.media >= 9.50 )
- {
- m++;
- a.bursa = 500;
- bursieri[m] = a;
- }
- else a.bursa = 0;
- suma_burse += a.bursa;
- n++;
- grupe[a.grupa]++;
- v[n] = a;
- media_maxima = max(media_maxima, a.media);
- gr_max = max(gr_max, a.grupa);
- cout << '\n';
- }
- void afisare_student(student a)
- {
- cout << a.nume << ' ' << a.prenume << '\n';
- cout << "Cod: " << a.cod << '\n';
- cout << "Grupa: " << a.grupa << '\n';
- cout << "Media: " << a.media << '\n';
- cout << "Bursa: " << a.bursa << '\n';
- cout << '\n';
- }
- void studenti_grupe()
- {
- if(n == 0)
- {
- cout << "NU EXISTA STUDENTI INTRODUSI\n";
- return;
- }
- for(int i = 1; i <= gr_max; ++i)
- if(grupe[i] != 0)
- cout << "Grupa " << i << ": " << grupe[i] << " elevi\n";
- }
- void studenti_media_maxima()
- {
- if(n == 0)
- {
- cout << "NU EXISTA STUDENTI INTRODUSI\n";
- return;
- }
- cout << "Elevi cu media " << media_maxima << '\n';
- for(int i = 1; i <= n; ++i)
- if(v[i].media == media_maxima)
- afisare_student(v[i]);
- }
- void cautare_student()
- {
- char key[30];
- int gasit = 0;
- cout << "Introduceti codul stundentului: ";
- cin >> key;
- for(int i = 1; i <= n; ++i)
- if(strcmp(v[i].cod, key) == 0)
- {
- gasit = 1;
- afisare_student(v[i]);
- break;
- }
- if(!gasit)
- cout << "Student inexistent\n";
- }
- bool compara(student a, student b)
- {
- if(strcmp(a.nume, b.nume) == 0)
- {
- if(strcmp(a.prenume, b.prenume) == 0)
- {
- return strcmp(a.cod, b.cod) > 0;
- }
- else return strcmp(a.prenume, b.prenume) > 0;
- }
- else return strcmp(a.nume, b.nume) > 0;
- }
- void studenti_bursieri()
- {
- if(m == 0)
- cout << "Nu exista studenti bursieri\n";
- else
- {
- for(int i = 1; i <= m; ++i)
- for(int j = i + 1; j <= m; ++j)
- if(compara(bursieri[i], bursieri[j]))
- {
- student aux = bursieri[i];
- bursieri[i] = bursieri[j];
- bursieri[j] = aux;
- }
- cout << "Elevi bursieri:\n";
- for(int i = 1; i <= m; ++i)
- cout << bursieri[i].nume << ' ' << bursieri[i].prenume << '\n';
- cout << '\n';
- }
- }
- void valoare_burse()
- {
- cout << "Valoarea totala a burselor este de: " << suma_burse << '\n';
- }
- void lista_elevi()
- {
- if(n == 0)
- cout << "Nu exista studenti inscrisi\n";
- else
- {
- for(int i = 1; i <= n; ++i)
- for(int j = i + 1; j <= n; ++j)
- if(v[i].media < v[j].media || (v[i].media == v[j].media && compara(v[i], v[j]) ) )
- {
- student aux = v[i];
- v[i] = v[j];
- v[j] = aux;
- }
- cout << "Lista elevi:\n";
- for(int i = 1; i <= n; ++i)
- cout << v[i].nume << ' ' << v[i].prenume << '\n';
- cout << '\n';
- }
- }
- void elevi_din_grupa()
- {
- int gr;
- cout << "Introduceti grupa: ";
- cin >> gr;
- if(grupe[gr] == 0)
- cout << "Nu exista elevi in aceasta grupa\n";
- else
- {
- cout << "Elevi din grupa " << gr << ": \n";
- for(int i = 1; i <= n; ++i)
- if(v[i].grupa == gr)
- afisare_student(v[i]);
- }
- }
- void eliminare_student()
- {
- int poz = 0;
- char key[30];
- cout << "Introduceti codul elevului: ";
- cin >> key;
- for(int i = 1; i <= n && !poz; ++i)
- if(strcmp(v[i].cod, key) == 0)
- poz = i;
- if(poz == 0)
- cout << "Elev inexistent\n";
- else
- {
- for(int i = poz + 1; i <= n; i++)
- v[i - 1] = v[i];
- n--;
- cout << "Stergere efectuata\n";
- }
- }
- int main()
- {
- do
- {
- cout << "Alegeti o actiune:\n";
- cout << "1 - Adaugare student\n";
- cout << "2 - Afisare numar de studenti din fiecare grupa\n";
- cout << "3 - Afisarea studentilor cu cea mai mare medie\n";
- cout << "4 - Afisarea informatiilor unui student cautat dupa cod\n";
- cout << "5 - Lista alfabetica a studentilor bursieri\n";
- cout << "6 - Valoarea totala a burselor\n";
- cout << "7 - Lista studentilor in ordinea descrescatoare a mediilor\n";
- cout << "8 - Lista studentilor dintr-o grupa\n";
- cout << "9 - Eliminare student\n";
- cout << "10 - Iesire\n";
- cout << "Introduceti un numar: ";
- cin >> cerinta;
- cout << '\n';
- if(cerinta == 1)
- adauga_student();
- if(cerinta == 2)
- studenti_grupe();
- if(cerinta == 3)
- studenti_media_maxima();
- if(cerinta == 4)
- cautare_student();
- if(cerinta == 5)
- studenti_bursieri();
- if(cerinta == 6)
- valoare_burse();
- if(cerinta == 7)
- lista_elevi();
- if(cerinta == 8)
- elevi_din_grupa();
- if(cerinta == 9)
- eliminare_student();
- cout << '\n';
- }while(cerinta != 10);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement