Treść zadania:: Dana jest lista filmów o strukturze :nazwa ,rodzaj i cena zapisana w pliku binarnym.
Napisz program,który wypisze najdroższe filmy oraz filmy o zadanym rodzaju wczytanym z klawiatury.
Nie wiem jak to zrobić z tym najdroższym filmem.Jakbym mógł korzystac z tablic to bym to zrobił,ale nie można ;p
Proszę o pomoc ;/
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <cstring>
using namespace std;
struct lista_filmow
{
char nazwa[30];
char rodzaj[30];
int cena;
};
void wpisz(lista_filmow filmy)
{
int i=1;
ofstream plik1("filmy.dat",ios::binary|ios::app|ios::out);
while(1)
{
cout<<"nazwa";
cin>>filmy.nazwa;
cout<<"rodzaj";
cin>>filmy.rodzaj;
cout<<"cena ";
cin>>filmy.cena;
plik1.write(reinterpret_cast<char*>(&filmy),sizeof(filmy));
cout<<"dalej to 1 ,przerwac 0";
cin>>i;
}
plik1.close();
}
void najdrozszy(lista_filmow filmy)
{
ifstream plik("filmy.dat",ios::binary);
//int max=plik.seekp(0,ios::beg);
for(;;)
{
plik.read(reinterpret_cast<char*>(&filmy),sizeof(filmy));
if(plik.eof())
break;
}
plik.close();
}
void rodzaj_zadany(lista_filmow filmy)
{
int i=1;
char r[30];
cout<<"podaj rodzaj";
cin>>r;
ifstream plik("filmy.dat",ios::binary);
for(;;)
{
plik.read(reinterpret_cast<char*>(&filmy),sizeof(filmy));
if(plik.eof())
break;
if(strcmp(filmy.rodzaj,r))
cout<<" "<<i<<" "<<filmy.nazwa;
}
}
int main()
{
ofstream plik1("filmy.dat",ios::binary|ios::app|ios::out);
lista_filmow filmy;
int z;
switch(z)
{
case 1:
wpisz(filmy);
break;
case 2:
najdrozszy(filmy);
break;
case 3:rodzaj_zadany(filmy);
break;
default:
break;
}
system("PAUSE");
}