Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
152
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.24 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4. class przedmiot{
  5. public:
  6.     int kod_przedmiotu;
  7.     float ocena;
  8. };
  9. class egzamin{
  10. string nazwisko;
  11. int stypendium;
  12. przedmiot *A; //wskaźnik do tablicy typu przedmiot
  13. int n;
  14. public:
  15.     int l_dwojek; //zmienna przechowujaca liczbe dwojek
  16.     egzamin(string naz,int rozmiar=3) //konstruktor
  17.     {
  18.         nazwisko=naz;
  19.         n=rozmiar;
  20.         A = new przedmiot [n]; //tworzenie adresu tablicy
  21.         for(int i=0;i<n;i++)
  22.         {
  23.             A[i].kod_przedmiotu=i+1;
  24.             A[i].ocena=0;
  25.         }
  26.         stypendium=0;
  27.     }
  28.     void wpisz(int kod,int ocen)
  29.     {
  30.         A[kod-1].ocena=ocen; // Wprowadzenie oceny do danego kodu przedmiotu
  31.     }
  32.     float sred() //srednia ocen >2, zliczanie dwojek
  33.     {
  34.         float srednia=0;
  35.         int dwojek=0;
  36.         int zera=0;
  37.         for(int i=0;i<n;i++)
  38.         {
  39.             if(A[i].ocena == 0) zera++; //sprawdzam czy wszystie oceny sa zerowe
  40.             if(A[i].ocena >0)
  41.         srednia+=A[i].ocena;
  42.         if(A[i].ocena == 2) dwojek++;
  43.         }
  44.         l_dwojek=dwojek; // Przypisanie liczby dwojek do zmiennej
  45.         if (zera == n-1) return 0; //jesli wszyskie byly zerowe zwracam 0
  46.         else return srednia/n;
  47.     }
  48.     egzamin *smin(egzamin *srednia1) //zwraca obiekt o wiekszej sredniej referencja &smin(egzamin &srednia1)
  49.     {
  50.             if((this->sred()) > (srednia1->sred()))
  51.                 return this; //referencja srednia1
  52.             else return srednia1; //referencja *this
  53.     }
  54.     void styp(int stypend)
  55.     {
  56.         if(sred() > 4 && l_dwojek == 0) stypendium+=stypend;
  57.     }
  58.     void wyswietl()
  59.     {
  60.         cout<<nazwisko;
  61.         if(stypendium>0) cout<<" "<<stypendium;
  62.         cout<<"srednia: "<<sred()<<"l. dwojek: "<<l_dwojek<<endl;
  63.     }
  64.  
  65.  
  66. };
  67.  
  68. int main()
  69. {
  70.     egzamin T("Walczyna",3);
  71.         T.wpisz(1,4.5);
  72.         T.wpisz(2,5);
  73.         T.wpisz(3,5);
  74.         T.styp(20);
  75.         T.wyswietl();
  76.         egzamin A("Kowalski",5);
  77.         A.wpisz(1,3);
  78.         A.wpisz(2,5);
  79.         A.wpisz(3,4);
  80.         A.wpisz(4,3);
  81.         A.wpisz(5,5);
  82.         A.styp(20);
  83.         A.wyswietl();
  84.         (A.smin(&T))->wyswietl(); //jak by bylo przez referencje?
  85.  
  86.     return 0;
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement