poniedziałek, 18 lutego 2008

C++

Warto czasem poczytać mądrą książkę a nie tylko ten internet ciągle. C++ to fajny język. Wszystko w nim można tak przepięknie zagmatwać. Dzisiaj na forum poprawiłem jakiemuś chłopakowi program do liczenia średniej ocen klasy. Pętla for, jakieś tablice... zacząłem się zastanawiać jak by to można było bardziej C++'owo zrobić...

#include <vector>
#include <iostream>

using namespace std;

class UCZEN
{
  public:
     string imie;
     string nazwisko;
     float srednia;
     UCZEN(){};
};

class KLASA
{
  public:
     static int uczniow;
     static float suma_srednich;
     vector<UCZEN> uczniowie;
     UCZEN u_tmp;

    KLASA(bool b_);
    KLASA() {};

    UCZEN &operator()();
    float srednia() {return suma_srednich/uczniow;};
};


KLASA::KLASA(bool b_)
{
   int ilu_uczniow;
   cout << "Wprowadz liczbe uczniow: ";
   cin >> ilu_uczniow;
   generate_n(back_inserter(uczniowie),ilu_uczniow,KLASA());
}

UCZEN &KLASA::operator()()
{
   cout << "Podaj imie ucznia: ";
   cin >> u_tmp.imie;
   cout << "Podaj nazwisko ucznia: ";
   cin >> u_tmp.nazwisko;
   cout << "Podaj srednią ucznia: ";
   cin >> u_tmp.srednia;
   uczniow++;
   suma_srednich+=u_tmp.srednia;
   return u_tmp;
}

int KLASA::uczniow=0;
float KLASA::suma_srednich=0;

int main()
{
   KLASA kl(true);
   cout << "Srednia klasy wynosi: "<<kl.srednia()<<endl;
   return 0;
}

Maszkaron, paskuda, szkarada, okropieństwo, wymoczek... tak bym ten kod podsumował ;-).

Brak komentarzy: