Wyszukiwanie po tablicy

0

Witam. Zrobiłem mały program dotyczący "Spisu pojazdów w warsztacie". Jedyny problem jaki mam to opcje wyszukiwania.

Cały kod programu:

#include <iostream>
#include <conio.h>
#include <string>
#include <fstream>

using namespace std;

struct pojazd
{
  string marka;
  string model;
  string rok;
  string tablice;
};

short i;
pojazd samochod[200];

void Dodaj();
void Zobacz();
void Wczytaj();
void Szukaj();


int main()
{
  int menu=0;
  cout<<"#######################"<< endl
  <<    "#   Lista samochodow  #"<< endl
  <<    "#     w warsztacie    #"<< endl
  <<    "#######################"<< endl << endl;

  do
  {
    cout << endl<< "Obecnie w warsztacie znajduje sie "<<i<<" samochod/ow"<<endl<<endl;
    cout <<"[1] Dodaj Samochod "<<endl;
    cout <<"[2] Zobacz pelna liste "<<endl;
    cout <<"[3] Wczytaj liste pojazdow z bazy "<<endl;
    cout <<"[4] Wyszukaj samochod"<<endl;
    cout <<"[5] Koniec programu "<<endl<<endl;

    cout <<"Wybierz opcje: ";
    cin >> menu;

    switch (menu)
    {
      case 1: Dodaj();
      break;
      case 2: Zobacz();
      break;
      case 3: Wczytaj();
      break;
      case 4: Szukaj();
      break;
    }


  } while (menu != 5);




  return 0;
}
void Dodaj()
{
  cout <<"Podaj marke samochodu: \n";
  cin >>samochod[i].marka;

  cout <<"Podaj model samochodu: \n";
  cin >>samochod[i].model;

  cout <<"Rok produkcji: \n";
  cin >>samochod[i].rok;

  cout <<"Numer tablic rejestracyjnych: \n";
  cin >>samochod[i].tablice;

  cin.ignore();

    i++;

   ofstream plik("warsztat.txt", ios::out | ios::trunc);

  plik <<i<<"\n";

  for (short j = 0; j < i; j++)
  {
    plik <<samochod[j].marka<<endl;
    plik <<samochod[j].model<<endl;
    plik <<samochod[j].rok<<endl;
    plik <<samochod[j].tablice<<endl;
  }

  cout << "Samochod zostal dodany:)" << endl;
}
void Zobacz()
{
  if ( i != 0)
  {
    for (short j = 0; j < i; j++)
    {
      cout <<j+1<<". ";
      cout <<"Marka: "<<samochod[j].marka<<endl;
      cout <<"Model: "<<samochod[j].model<<endl;
      cout <<"Rok produkcji: "<<samochod[j].rok<<endl;
      cout <<"Tablice rejestracyjne: "<<samochod[j].tablice<<endl;
      cout <<"-------------------------------------------" << endl;
    }
  }
  else
  cout <<"Nie ma zadnego samochodu w bazie!!";
}

void Wczytaj()
{
  ifstream plik("warsztat.txt", ios::in);

  plik >> i;


  short j = 0;

  do
  {
    plik >>samochod[j].marka;
    plik >>samochod[j].model;
    plik >>samochod[j].rok;
    plik >>samochod[j].tablice;
    j++;
  } while( !plik.eof() );

  cout <<"Lista zostala zaladowana" << endl;
}

void Szukaj()

{
string szukane;
cout<<"Podaj kryterium wyszukiwanie np. marke, model, rok:"<<endl;
getline(cin, szukane);
 for(int k=0; k<=200; k++)
 {
    if(samochod[k].find(szukane)!=string::npos)
       cout<<samochod[k]<<endl;
 }
}

 

Czy może ktoś pomóc naprowadzić jak to naprawić tudzież nakierować na nową metodę?

0

if((samochod[k].marka==szukane)||(samochod[k].model==szukane)||(samochod[k].rok==szukane)||(samochod[k].tablice==szukane)) ...

0

Niestety ale po skompilowanie ciągle wyskakuje

main.cpp||In function 'void Szukaj()':|
main.cpp|145|error: no match for 'operator<<' in 'std::cout << samochod[k]'|

Wspomagam się googl i kursami ale ciezko idzie :/

dodanie znaczników <quote> dla treści błędu - fp

0

Wspomóż się kodem który komuś skradłeś i wydajesz za swój, wyświetlenie samochodu masz w funkcji zobacz()

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