Zadanie brzmi: W pliku BazaAut.txt zawarte są dane samochodów w następujący sposób: w grupach po 5 linii każda są:
marka
model
przebieg
pojemność
rok produkcji
Napisz program, który zapisze do pliku Zabytki.txt dane tylko tych samochodów, które mają co najmniej 25 lat. Dane w pliku Zabytki.txt mają być zapisane w ten sam sposób jak w pliku BazaAut.txt.
Program ma być napisany w C++, zaczęłam kombinować, ale kompletnie nie wiem teraz już co do czego dołączyć w tym moim "programie"... na pewno nie działa funkcja która miała sprawdzać czy auto ma co najmniej te 25 lat, w main pojawia się problem, gdy chciałam stworzyć tablicę na zestawy danych... a przede wszystkim nawet nie wiem czy to co już zdołałam wymyślić ma jakikolwiek sens. Proszę o pomoc.
#include<iostream>
#include<fstream>
#include<string.h>
using namespace std;
class samochod
{
public:
string marka;
string model;
string przebieg;
string pojemnosc;
string rok;
int nr_linii;
int nr_auta;
void czytaj_plik();
void szukaj_zabytku();
int liczba_aut();
};
void samochod:: czytaj_plik()
{
fstream plik;
plik.open("BazaAut.txt",ios::in);
if(plik.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
int nr_linii=(nr_auta-1)*5+5; // tu bedzie nam czytac linie z rokiem pr.
int aktualny_nr=1;
string linia; // bedzie czytac rok produkcji
while(getline(plik,linia))
{
if(aktualny_nr==nr_linii) rok=linia;
if(aktualny_nr==nr_linii+1) marka=linia;
if(aktualny_nr==nr_linii+2) model=linia;
if(aktualny_nr==nr_linii+3) przebieg=linia;
if(aktualny_nr==nr_linii+4) pojemnosc=linia;
aktualny_nr++;
}
plik.close();
}
void samochod::szukaj_zabytku() //!!!!!!!!!!!!!!!!!!
{
if(rok<=1992) //ta funkcja jest zla bo rok nie jest int tylko string :(
cout<<marka<<endl<<model<<endl<<przebieg<<endl<<pojemnosc<<endl<<rok<<endl;
}
int samochod::liczba_aut() //PROBLEM
{
fstream plik;
plik.open("BazaAut.txt",ios::in);
if(plik.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
int nr_linii=(nr_auta-1)*5+1; // tu bedzie nam czytac linie z przebiegiem
int aktualny_nr=1;
string linia; // bedzie czytac rok produkcji
while(getline(plik,linia))
{
if(aktualny_nr==nr_linii) marka=linia;
if(aktualny_nr==nr_linii+1) model=linia;
if(aktualny_nr==nr_linii+2) przebieg=linia;
if(aktualny_nr==nr_linii+3) pojemnosc=linia;
if(aktualny_nr==nr_linii+4) rok=linia;
aktualny_nr++;
}
plik.close();
return aktualny_nr;
}
int main()
{ fstream plik2;
plik2.open("Zabytki.txt", ios::out);
if(plik2.good()==false)
{
cout<<"Nie udalo sie otworzyc pliku!";
exit(0);
}
else
//PROBLEM
{
samochod a[];
while(linia!=NULL)
{int i=1;
i++
a[i].czytaj_plik();
a[i].szukaj_zabytku();
}
}
}