Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Klasy, metoda pobierania i wyświetlania

Ostatnio zmodyfikowano 2016-03-08 21:43
Autor Wiadomość
Zdziszek
Temat założony przez niniejszego użytkownika
Klasy, metoda pobierania i wyświetlania
» 2016-03-08 20:41:51
Witam, mam problem z metodą, która pobiera dane obiektu i je wyświetla:
C/C++
struct sOcena
{
    string nazwa_przedmiotu;
    float ocena;
    int ECTS;
};

class cStudent
{
private:
    string m_ImieNazwisko;
    char m_plec;
    int m_nrIndeksu;
    int m_ECTS;
    vector < sOcena > m_oceny;
public:
    cStudent();
    cStudent( const cStudent & s );
    cStudent( string ImieNazwisko, int nrIndeksu );
    void pobierz();
    void wyswietl();
    string imieNazwisko();
    vector < sOcena > oceny( string nazwa, int rosnaca );
    float srednia();
    void wczytaj( fstream & plik );
    void zapisz( fstream & plik );
    void dodaj_ocene( sOcena & o );
};

void cStudent::pobierz()
{
    cout << "Podaj imie i nazwisko: ";
    getline( cin, m_ImieNazwisko );
    cin.ignore();
}

void cStudent::wyswietl()
{
    cout << m_ImieNazwisko << endl;
}


int main()
{
    list < cStudent > studenci;
    char a;
    while( 1 )
    {
        cout << "1. Dodaj studenta." << endl;
        cout << "2. Wyswietl studentow." << endl;
        cin >> a;
       
        switch( a )
        {
        case '1':
            {
                cStudent s1;
                s1.pobierz();
                studenci.push_back( s1 );
                break;
            }
        case '2':
            {
                for( auto v = studenci.begin(); v != studenci.end(); ++v )
                {
                    ( * v ).wyswietl();
                    cout << endl;
                }
            }
        }
    }
   
    system( "pause" );
    return 0;
}

Problem polega na tym, że, po wpisaniu imienia i nazwiska wyświetla mi się takie coś:

1. Dodaj studenta.
2. Wyswietl studenta.
1
Podaj imie i nazwisko: Jan Kowalski
1. Dodaj studenta.
2. Wyswietl studenta.
1. Dodaj studenta.
2. Wyswietl studenta.
1. Dodaj studenta.
2. Wyswietl studenta.
1. Dodaj studenta.
2. Wyswietl studenta.
1. Dodaj studenta.
2. Wyswietl studenta.
1. Dodaj studenta.
2. Wyswietl studenta.
1. Dodaj studenta.
2. Wyswietl studenta.
1. Dodaj studenta.
2. Wyswietl studenta.
1. Dodaj studenta.
2. Wyswietl studenta.
1. Dodaj studenta.
2. Wyswietl studenta.

A jak wybiorę wyświetlanie to nie wyświetla, w czym jest problem?Bo nie mam pojęcia.
P-145757
Kaikso
» 2016-03-08 21:21:39
A po co to
cin.ignore();
?
P-145758
Zdziszek
Temat założony przez niniejszego użytkownika
» 2016-03-08 21:22:51
Bez tego nie pobiera imienia i nazwiska
P-145759
Kaikso
» 2016-03-08 21:32:28
Daj to przed wczytaniem tekstu, to powinno zadziałać.
P-145760
Zdziszek
Temat założony przez niniejszego użytkownika
» 2016-03-08 21:43:31
Faktycznie, zadziałało, dzięki wielkie=] Zawsze cin.ignore() dawałem po wczytaniu i wszystko było ok, a w klasach jakoś nie bardzo, nie sądziłem, że tu jest błąd :P
P-145763
« 1 »
  Strona 1 z 1