需要帮助搜索功能为我的电影数据库c++



我有一些麻烦与我的电影数据库,我的搜索功能不工作。我是一个完全的初学者,已经得到了网络的搜索功能,但它不搜索。

这是我的代码。

#include <iostream>
#include <vector>
#include <sstream> // För att kunna använda sig av getline()
#include <string> // För att kunna använda sig av getline()
#include <algorithm>
using namespace std;
class Film
{
public:
    string Titel;
    string Typ;
// FUNKTION: Skriver ut filmens titel och typ
    void skrivUtFilm()
    {
        cout << endl;
        cout << "Titel: " << Titel << endl; // Skriver ut filmens titel
        cout << "Typ: " << Typ << endl; // Skriver ut filmens typ
    }
};
int main()
{
    vector<Film> Databas;             // Skapa en vektor av typen Film
    Film nyFilm;                    // För att kunna skapa en film behöver vi kunna spara den
    while (true)
    {
        // Skriver ut menyn:
        cout << " === FILMDATABAS === " << endl;
        cout << "1: Registera en ny film"   << endl;
        cout << "2: Sx94k efter en film"   << endl;
        cout << "3: Skriv ut filmlistan"    << endl;
        cout << "0: Avsluta"    << endl;
        cout << "Ange ditt val: ";
        char menySelection; // Användarens val
        cin >> menySelection;

        if (menySelection == '1') // Registerar nya filmer
        {
            cin.get();
            cout << "nn1: Registrera en ny filmn";
            cout << "Vad x84r filmens Titel: ";
            getline(cin, nyFilm.Titel);
            cout << "x8er filmen px86 DVD eller BluRay? ";
            getline(cin, nyFilm.Typ);
            cout << endl;
            // Vi lägger vårt filmobjekt i vektorn
            Databas.push_back( nyFilm );
        }
        else if (menySelection == '2') // Söker efter filmer som användaren har lagt till
        {
            cin.get();
            cout << "nSx94k efter filmer i databasen: nn";
            string objekt;
            getline(cin, objekt);
            cout << endl;
            vector<Film>::iterator it;
            it = find_if(Databas.begin(), Databas.end(),[&] ( const Film &f )
            {
                return ( f.Titel == objekt);
            });
        }
        else if (menySelection == '3') // Skrivet ut alla filmer i Filmarkivet
        {
            cout << "n=========n";
            cout << "Filmlistann";
            for(int i=0; i<Databas.size(); i++)
            {
                Databas[i].skrivUtFilm(); // Skriver ut dem med hjälp av skrivUtFilm();
            }
            cout << "n=========n";
            cout << "nnTryck px86 ENTER fx94r att x86tervx84nda till menyn.nn";
            cin.get();
        }
        else if (menySelection == '0') // Avslutar programmet
        {
            break;
        }
        else   
        {
            cout << "Ogiltigt val!n." << endl;
        }
    }
    cin.get();
    return 0;
}

当你找到电影时,你不做任何事情。

在搜索功能之后,应该添加如下内容:

if (it != Databas.end()) {
    it->skrivUtFilm();
} else {
    cout << "No film found" << endl;
}

打印您找到的影片的信息,或者显示没有找到影片的消息。

最新更新