Funkcja wyszukujaca i wypisujaca obiekt w wektorze

1

Czesc.

Nie wiem jak napisac funkcje wyszukujaca i wypisujaca ksiazki
okreslonego autora

a o to cale polecenie

Utworz klase Ksiazka z polami Autor i Tytul (string) oraz regal i polka (int) oraz
funkcjami wprowadzajacymi i wypisujacymi te informacje. Wypelnij przykladowymi
obiektami tej klasy pojemnik vector. Zdefiniuj funkcje wyszukujaca i wypisujaca ksiazki
okreslonego autora.

i kod


#include <iostream>
#include <stdio.h>
#include <vector>
#include <string>
#include <conio.h>
using namespace std;

/*
32) Utworz klase Ksiazka z polami Autor i Tytul (string) oraz regal i polka (int) oraz
    funkcjami wprowadzajacymi i wypisujacymi te informacje. Wypelnij przykladowymi
    obiektami tej klasy pojemnik vector. Zdefiniuj funkcje wyszukujaca i wypisujaca ksiazki
    okreslonego autora.
*/

class Ksiazka  //deklaracja klasy Ksiazka
{
    public:
    string NazwiskoAutora;
    string ImieAutora;
    string Tytul;
    int Regal;
    int Polka;
    int wprowadz();// deklaracja funkcji wprowadzajacej
    void wypisz();// deklaracja dunkcji wypisujacej

};

int Ksiazka::wprowadz() //wypelninie funkcji wprowadz
{
    cout << "Jaka ksiazke chcesz dodac?\n Podaj tytul: ";
    cin >> Tytul;
    cout << "\Nnazwisko autora: ";
    cin >> NazwiskoAutora;
    cout << "\Imie autora: ";
    cin >> ImieAutora;
    cout << "\nKtory regal?: ";
    cin >> Regal;
    cout << "\nKtora polka: ";
    cin >> Polka;
}

void Ksiazka::wypisz()
{
   cout << " \n  Tytul: " << Tytul<<endl;
   cout << "  Nazwisko autora: " << NazwiskoAutora<<endl;
   cout << "  Imie autora: " << ImieAutora<<endl;
   cout << "  Regal: " << Regal<<endl;
   cout << "  Polka: " << Polka<<endl;
}
int main()
{

 vector < Ksiazka > KsiazkaTab;
    cout << "Baza Ksiazek\n1.-Lista ksiazek\n2.-Dodaj ksiazke\n3.-Wyszukiwanie Autora \n4.-Wyjscie \nCo chcesz zrobic: ";
    char odp;
    Ksiazka ksiazka1;
    do
    {
        odp = getch();
        switch( odp )
        {
        case '1':
            cout << "\n\n\nLista ksiazek: \n";
            for( int i = 0; i < KsiazkaTab.size(); i++ )
            {

                KsiazkaTab[i].wypisz();
            }
        break;

        case '2':
            cout << "\n\n\n|----DODAWANIE_OSOBY_DO_LISTY-----|";


            ksiazka1.wprowadz();
            KsiazkaTab.push_back(ksiazka1);
            cout << "\n<***ZAKONCZONO_Z_SUKCESEM***>\n Co chcesz zrobic: ";

        break;

        case '3':
            string surname;
            cout << "\n\n\nWyszukiwanie i wyswietlanie";
            cout << "Podaj nazwisko autora: ";
            cin >> surname;
            //i co dalej

        break;

        }
    } while( odp != '4' );




    return 0;
}




 

prosze o jakies wskazowki, bo juz naprawde nie wiem jak to zrobic :(

0

Zdefiniuj operator porownania. Zaprzyjaznij sie z std::find(). Dalej juz z gorki:

dopoki znajduje nazwisko w wektorze:
  wyswietl ksiazke.
0

Sam kod już pominę, bo zawszę jak zaczynam zastanawiać się jak poprawić takie coś, to piszę wszystko na nowo.. Powiem tylko hermetyzacja.. ale czy Ty nie wiesz jak działa pętla for i instrukcja warunkowa if? Nie wspominając już o std::find()

0

hmm hmm siedze siedze i wymyslic nic nie moge.
Wiem ze to co napisal n0name_l powinno mi pomoc lecz nic nie lapie :/

0

Oczywiście main na potrzeby testowania programu a nie do zadania.

#include <iostream>
#include <string>
#include <vector>
using namespace std;

class Ksiazka
{
public:
    string DaneAutora;
    string tytulKsiazki;
    int regal, polka;

    void wprowadz();
    void wypisz();
};

void Ksiazka::wprowadz()
{
    cout << "------Dodawanie nowej ksiazki------\n";
    cout << "Tytul: ";
    getline(cin,tytulKsiazki);
    cout << "Autor: ";
    getline(cin,DaneAutora);

    cout << "Podaj regal i polke: ";
    cin >> regal >> polka;
    cout << "------Dodano pomyslnie------\n";
    cin.sync();

}

void Ksiazka::wypisz()
{
    cout << "============================\n";
    cout << "Tytul: " << tytulKsiazki << "\n";
    cout << "Autor: " << DaneAutora << "\n";
    cout << "Regal: " << regal << "\n";
    cout << "Polka: " << polka << "\n";
    cout << "============================\n";
}

void szukaj(vector <Ksiazka> ksiazka, string autor)
{
    size_t size = ksiazka.size();
    for(int i = 0; i < size; i++)
    {
        if(ksiazka[i].DaneAutora == autor)
        {
            ksiazka[i].wypisz();
        }
    }
}


int main()
{

    Ksiazka ksiazka[2];
    vector<Ksiazka> vec;
    string lewackiAutor;
    for(int i = 0; i < 2; i++)
    {
        ksiazka[i].wprowadz();
        vec.push_back(ksiazka[i]);
    }

    cout << "Podaj autora, aby wyszukac: ";
    cin.sync();
    getline(cin,lewackiAutor);
    szukaj(vec, lewackiAutor);


    cin.sync();
    cin.get();
    return 0;

}

 

1 użytkowników online, w tym zalogowanych: 0, gości: 1