Pentru un parc auto se defineşte o structură AUTOMOBIL având ca membri câmpurile: marca (şir de caractere), tipul de carburant - Benzină sau Motorină- (un caracter) modelul (berlină, break sau decapotabilă) şi data de fabricaţie (o stuctura formată din câmpurile luna şi anul de fabricaţie). Să se scrie cel puţin o funcţie per cerinţă pentru fiecare dintre operaţiile: a) Crearea fişierului cu evidenţa automobilelor din parcul auto, citind informaţiile despre acestea de la tastatură; b) Adăugarea în fişier a unor automobile noi, pe măsură ce acestea intră în componenţa parcului auto; c) Găsirea unui automobil după marcă şi tipul de carburant (precizate de la tastatură). Funcţia va returna valoarea 1 dacă automobilul căutat există în evidenţă, respectiv valoarea 0 dacă nu există; d) Crearea unei liste a automobilelor cu vechime mai mare de 5 ani; e) Ordonarea automobilelor crescător după data de fabricaţie şi înscrierea informaţiilor astfel aranjate într-un fişier separat; f) Afişarea informaţiilor despre toate automobilele decapotabile produse într-un anumit an (anul fiind introdus de la tastatură) sau, la alegere, crearea unui fişier separat cu aceste informaţii.
Răspunsuri la întrebare
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
struct automobil {
char marca[100], model[100], tip;
struct datafab{int zi,luna,an;}d;
}m[100];
ofstream g("masini.txt", std::ofstream::app);
int n;
///a
void a() {
cout<<"Cate masini sunt in parcul auto?: ";cin>>n;
for(int i=0;i<n;i++) {
cout<<"Masina numarul "<<i<<endl;
cout<<"Marca: ";cin.getline(m[i].marca, 100);g<<m[i].marca<<" ";
cout<<"Model: ";cin.getline(m[i].model, 100);g<<m[i].model<<" ";
cout<<"Tip: ";cin>>m[i].tip;g<<m[i].tip<<" ";
cout<<"Data de fabricatie"<<endl;
cout<<"Ziua: ";cin>>m[i].d.zi;g<<m[i].d.zi<<".";
cout<<"Luna: ";cin>>m[i].d.luna;g<<m[i].d.luna<<".";
cout<<"Ziua: ";cin>>m[i].d.an;g<<m[i].d.an<<endl;
}
}
///b
void b() {
cout<<"Masina numarul "<<n<<endl;
cout<<"Marca: ";cin.getline(m[n].marca, 100);g<<m[n].marca<<" ";
cout<<"Model: ";cin.getline(m[n].model, 100);g<<m[n].model<<" ";
cout<<"Tip: ";cin>>m[n].tip;g<<m[n].tip<<" ";
cout<<"Data de fabricatie"<<endl;
cout<<"Ziua: ";cin>>m[n].d.zi;g<<m[n].d.zi<<".";
cout<<"Luna: ";cin>>m[n].d.luna;g<<m[n].d.luna<<".";
cout<<"Ziua: ";cin>>m[n].d.an;g<<m[n].d.an<<endl;
n++;
}
///c
int c() {
char marca[100], tip;
cout<<"Marca cautata: ";cin.getline(marca, 100);
cout<<"Tipul cautat: ";cin>>tip;
for(int i=0;i<n;i++)
if(!strcmp(m[i].marca, marca) && m[i].tip==tip) return 1;
return 0;
}
///d
automobil vechi[100];
int k;
void d() {
for(int i=0;i<n;i++)
if(2019-m[i].d.an>5)
vechi[k++]=m[i];
}
///f
void f() {
int an;cout<<"Anul: ";cin>>an;
for(int i=0;i<n;i++)
if(m[i].d.an==an && !strcmp(m[i].model, "decapotabila")) {
cout<<"Marca: "<<m[i].marca<<" ";
cout<<"Model: "<<m[i].model<<" ";
cout<<"Tip: "<<m[i].tip<<" ";
cout<<"Data de fabricatie: ";
cout<<"Ziua: "<<m[i].d.zi<<".";
cout<<"Luna: "<<m[i].d.luna<<".";
cout<<"Ziua: "<<m[i].d.an<<endl;
}
}