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

La o expozitie auto se gasesc masini aduse din intreaga lume. Informatiile de interes pentru fiecare masina sunt: marca, culoarea, anul de fabricatie si tara din care provin. Sa se scrie un program care realizeaza urmatoarele:
Afisarea tuturor masinilor expuse;
Stergerea unei masini de pe o anumita pozitie introdusa de la tastatura.


andrei750238: Masinile se citesc din fisier sau de la tastatura ?

Răspunsuri la întrebare

Răspuns de andrei750238
3

#include <iostream>

#include <fstream>

using namespace std;

struct masina {

char marca[20];

char culoare[20];

int an;

char tara[20];

};

void citeste_fisier(masina*& vct, int& dim) {

ifstream fin("datemasini.txt");

fin >> dim;

vct = new masina[dim];

for (int i = 0; i < dim; i++)

 fin >> vct[i].marca >> vct[i].culoare >> vct[i].an >> vct[i].tara;

cout << "\nAu fost citite " << dim << " masini.";

fin.close();

}

void scrie_fisier(masina* vct, int dim) {

ofstream fout("datemasini.txt");

fout << dim << endl;

for (int i = 0; i < dim; i++)

 fout << vct[i].marca << " " << vct[i].culoare << " " << vct[i].an << " " << vct[i].tara << endl;

cout << "\nAu fost scrise in fisier " << dim << " masini";

}

void afisare_masini(masina* vct, int dim) {

cout << endl;

for (int i = 0; i < dim; i++)

 cout << i << " - " << vct[i].marca << " " << vct[i].culoare << " " << vct[i].an << " " << vct[i].tara << endl;

}

void stergere_masina(masina*& vct, int& dim, int poz) {

for (int i = poz; i < dim - 1; i++)

 vct[poz] = vct[poz + 1];

dim--;

}

int main() {

//Declarare date

masina* v;

int dim, poz;

//Citire masini din fisier

citeste_fisier(v, dim);

//Afisare meniu

int opt = 1;

while (opt) {

 cout << "\n\nMeniu:";

 cout << "\n1.Afisare masini";

 cout << "\n2.Stergere masina";

 cout << "\n9.Salvare";

 cout << "\nOptiune : ";

 cin >> opt;

 switch (opt)

 {

 case 1:

  afisare_masini(v, dim);

  break;

 case 2:

  cout << "ID masina de sters : ";

  cin >> poz;

  stergere_masina(v, dim, poz);

  break;

 case 9:

  scrie_fisier(v, dim);

 }

}

}

Anexe:
Alte întrebări interesante