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.
Răspunsuri la întrebare
#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);
}
}
}