Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- class przedmiot{
- public:
- int kod_przedmiotu;
- float ocena;
- };
- class egzamin{
- string nazwisko;
- int stypendium;
- przedmiot *A; //wskaźnik do tablicy typu przedmiot
- int n;
- public:
- int l_dwojek; //zmienna przechowujaca liczbe dwojek
- egzamin(string naz,int rozmiar=3) //konstruktor
- {
- nazwisko=naz;
- n=rozmiar;
- A = new przedmiot [n]; //tworzenie adresu tablicy
- for(int i=0;i<n;i++)
- {
- A[i].kod_przedmiotu=i+1;
- A[i].ocena=0;
- }
- stypendium=0;
- }
- void wpisz(int kod,int ocen)
- {
- A[kod-1].ocena=ocen; // Wprowadzenie oceny do danego kodu przedmiotu
- }
- float sred() //srednia ocen >2, zliczanie dwojek
- {
- float srednia=0;
- int dwojek=0;
- int zera=0;
- for(int i=0;i<n;i++)
- {
- if(A[i].ocena == 0) zera++; //sprawdzam czy wszystie oceny sa zerowe
- if(A[i].ocena >0)
- srednia+=A[i].ocena;
- if(A[i].ocena == 2) dwojek++;
- }
- l_dwojek=dwojek; // Przypisanie liczby dwojek do zmiennej
- if (zera == n-1) return 0; //jesli wszyskie byly zerowe zwracam 0
- else return srednia/n;
- }
- egzamin *smin(egzamin *srednia1) //zwraca obiekt o wiekszej sredniej referencja &smin(egzamin &srednia1)
- {
- if((this->sred()) > (srednia1->sred()))
- return this; //referencja srednia1
- else return srednia1; //referencja *this
- }
- void styp(int stypend)
- {
- if(sred() > 4 && l_dwojek == 0) stypendium+=stypend;
- }
- void wyswietl()
- {
- cout<<nazwisko;
- if(stypendium>0) cout<<" "<<stypendium;
- cout<<"srednia: "<<sred()<<"l. dwojek: "<<l_dwojek<<endl;
- }
- };
- int main()
- {
- egzamin T("Walczyna",3);
- T.wpisz(1,4.5);
- T.wpisz(2,5);
- T.wpisz(3,5);
- T.styp(20);
- T.wyswietl();
- egzamin A("Kowalski",5);
- A.wpisz(1,3);
- A.wpisz(2,5);
- A.wpisz(3,4);
- A.wpisz(4,3);
- A.wpisz(5,5);
- A.styp(20);
- A.wyswietl();
- (A.smin(&T))->wyswietl(); //jak by bylo przez referencje?
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement