Witam, jestem nowy na forum(nie mam zbyt dużo doświadczenia) i mam problem bo nie jestem pewien jak powinienem wykonać wyszukiwanie wg kryterium. Program działa, jeśli chodzi o wczytywanie i zapisywanie danych, nie działają funkcje kryterium1 i kryterium2 . Chcę to zrobić bez typu tablicowego, i nie wiem jak poprawnie zapisać funkcję kryterium1 i kryterium 2 tak by wypisywać tytuły które są danego rodzaju. Byłbym bardzo wdzięczny za podpowiedzi.
#include <iostream>
#include <fstream>
#include<conio.h>
#include<string>
using namespace std;
//---------------------------
struct biblioteka
{
char tytul[20];
int rok_wyd;
char rodzaj[20];
char autor[20];
char miejsce_wyd[20];
};
//---------------------------
int menu();
void wprowadz_dane(); //wprowadza dane do pliku dane1.dat
void wyswietl_dane(); //wyswietla dane z pliku dane1.dat
void kryterium();
void kasuj(); //kasuje zawartosc pliku dane1.dat
//---------------------------
int main()
{
int koniec=1,wybor;
while(koniec)
{o wybor=menu();
if(wybor==3)
koniec=0;
else
switch(wybor)
{
case 1: wprowadz_dane();
break;
case 2: wyswietl_dane();
break;
case 4: kryterium_1();
break;
case 4: kryterium_2();
break;
case 5: kasuj();
break;
}
}
return 0;
}
//---------------------------
int menu()
{
int wybor;
cout << "- - - M E N U - - -"<<endl;
cout << "1-wprowadz dane"<<endl;
cout << "2-wyswietl dane z pliku"<<endl;
cout << "3-wyszykiwanie wg kryterium miejsce wydania"<<endl;
cout << "4-"wyszykiwanie wg kryterium rodzaj"<<endl;
cout << "5-"skasuj zawartosc pliku"<<endl;
cout << "6-"zakoncz program"<<endl<<endl;
cin >> wybor;
return wybor;
}
//---------------------------
void wprowadz_dane()
{
biblioteka a;
ofstream plik1("dane1.dat", ios::binary | ios::app | ios::out);
if (!plik1)
{
cerr << "Nieudane otwarcie pliku do zapisu\n";
getch();
exit(1);
}
cout<<"Ile ksiazek chcesz wprowadzic?"<<endl;
int n;
cin>>n;
cout<<endl;
for(int i=0; i<n; i++)
{
cout<<"Podaj tytul ksiazki: ";
cin>>a.tytul;
cout<<"Podaj autora ksiazki: ";
cin>>a.autor;
cout<<"Podaj rodzaj ksiazki(epika, liryka, dramat): ";
cin>>a.rodzaj;
cout<<"Podaj rok wydania ksiazki: ";
cin>>a.rok_wyd;
cout<<"Podaj miejsce wydania ksiazki(Wroclaw, Warszawa, Krakow): ";
cin>>a.miejsce_wyd;
plik1.write((char*)&a,sizeof (a));
}
plik1.close();
system("cls");
}
//---------------------------
void wyswietl_dane()
{
biblioteka a;
ifstream odczyt ("dane1.dat");
while (!odczyt.eof())
{odczyt.read((char*)&a,sizeof (a));
cout<<a.tytul<<endl;
cout<<a.rodzaj<<endl;
cout<<a.autor<<endl;
cout<<a.miejsce_wyd<<endl;
cout<<a.rok_wyd<<endl;
}
odczyt.close ();
getch();
system("cls");
}
//---------------------------
void kryterium()
{biblioteka a;
ifstream odczyt ("dane1.dat");
while (!odczyt.eof() && a.miejsce_wyd)
{odczyt.geline((char*)&a,sizeof (a));
cout<<a.tytul<<endl;
}
}
//---------------------------
void kasuj()
{
ofstream plik1("dane1.dat", ios::binary | ios::trunc | ios::out);
plik1.close();
system("cls");
}
//---------------------------