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ł ;-).
poniedziałek, 18 lutego 2008
Subskrybuj:
Komentarze do posta (Atom)
Brak komentarzy:
Prześlij komentarz