Informatică, întrebare adresată de dobranion, 8 ani în urmă

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

Răspuns de EmilJoaca
0

#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;

       }

}


dobranion: poti si in C?
Alte întrebări interesante