Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct DateAutoturism
- {
- char nrInmatriculare[30];
- char marca[30];
- char culoarea[30];
- int nrLocuri;
- char tipCombustibil[30];
- float capacitateMotor;
- char serieSasiu[30];
- int vechime;
- int nrKm;
- }autoturism;
- void citireNrInmatriculare()
- {
- printf("Va rugam sa introduceti numarul de inmatriculare al autoturismului sau -1 pentru terminare: ");
- scanf("%s", &autoturism.nrInmatriculare);
- }
- void citireAutoturism()
- {
- printf("Introduceti marca autoturismului: ");
- scanf("%s", &autoturism.marca);
- printf("Introduceti culoarea autoturismului: ");
- scanf("%s", &autoturism.culoarea);
- printf("Introduceti numarul de locuri al autoturismului: ");
- scanf("%d", &autoturism.nrLocuri);
- printf("Introduceti tipul de combustibil al autoturismului: ");
- scanf("%s", &autoturism.tipCombustibil);
- printf("Introduceti capacitatea motorului autoturismului: ");
- scanf("%f", &autoturism.capacitateMotor);
- printf("Introduceti seria de sasiu a autoturismului: ");
- scanf("%s", &autoturism.serieSasiu);
- printf("Introduceti vechimea autoturismului: ");
- scanf("%d", &autoturism.vechime);
- printf("Introduceti numarul de km ai autoturismului: ");
- scanf("%d", &autoturism.nrKm);
- }
- void creare_fisier(char* fn)
- {
- FILE* f;
- f = fopen(fn, "wb");
- if (f == NULL)
- {
- printf("A aparut o eroare in momentul in care s-a creat fisierul! \n");
- exit(1);
- }
- citireNrInmatriculare();
- while (strcmp(autoturism.nrInmatriculare, "-1") != 0)
- {
- citireAutoturism();
- fwrite(&autoturism, sizeof(autoturism), 1, f);
- citireNrInmatriculare();
- }
- fclose(f);
- }
- void listare_fisier(char* fn)
- {
- FILE* f;
- int nr_articole;
- f = fopen(fn, "rb");
- if (f == NULL)
- {
- printf("A aparut o eroare in momentul in care s-a creat fisierul. \n");
- exit(1);
- }
- nr_articole = fread(&autoturism, sizeof(autoturism), 1, f);
- printf("\nListare autoturisme: \n");
- while (nr_articole == 1)
- {
- printf("\nNr inmatriculare: %s", autoturism.nrInmatriculare);
- printf("\nMarca: %s", autoturism.marca);
- printf("\nCuloarea: %s", autoturism.culoarea);
- printf("\nNr locuri: %d", autoturism.nrLocuri);
- printf("\nTip combustibil: %s", autoturism.tipCombustibil);
- printf("\nCapacitate motor: %.2f", autoturism.capacitateMotor);
- printf("\nSerie sasiu: %s", autoturism.serieSasiu);
- printf("\nVechime: %d", autoturism.vechime);
- printf("\nNr km: %d\n\n", autoturism.nrKm);
- nr_articole = fread(&autoturism, sizeof(autoturism), 1, f);
- }
- fclose(f);
- }
- void adaugare_autoturism(char* fn)
- {
- FILE* f;
- f = fopen(fn, "ab");
- if (f == NULL)
- {
- printf("A aparut o eroare in momentul in care s-a creat fisierul. \n");
- exit(1);
- }
- citireNrInmatriculare();
- while (strcmp(autoturism.nrInmatriculare, "-1") != 0)
- {
- citireAutoturism();
- fwrite(&autoturism, sizeof(autoturism), 1, f);
- citireNrInmatriculare();
- }
- fclose(f);
- }
- void modificare_fisier(char* fn)
- {
- FILE* f;
- char nrInmatriculare[30] = { 0 };
- int pos = 0;
- int n_art = 0;
- f = fopen(fn, "rb+");
- if (f == NULL)
- {
- printf("A aparut o eroare in momentul in care s-a creat fisierul. \n");
- exit(1);
- }
- printf("\nIntroduceti numarul de inmatriculare al autoturismului al carui numar de km parcursi si vechime doriti sa le modificati sau -1 pentru terminare: ");
- scanf("%s", &nrInmatriculare);
- while (strcmp(nrInmatriculare, "-1") != 0)
- {
- do
- {
- n_art = fread(&autoturism, sizeof(autoturism), 1, f);
- if (strcmp(autoturism.nrInmatriculare, nrInmatriculare) == 0)
- {
- pos = ftell(f) - sizeof(autoturism);
- break;
- }
- } while (strcmp(autoturism.nrInmatriculare, nrInmatriculare) != 0 && n_art == 1);
- if (n_art < 1)
- {
- printf("\nNu exista acest autoturism. \n");
- break;
- }
- printf("\nIntroduceti noua vechime a autoturismului: ");
- scanf("%d", &autoturism.vechime);
- printf("Introduceti noul nr de km al autoturismului: ");
- scanf("%d", &autoturism.nrKm);
- fseek(f, pos, 0);
- fwrite(&autoturism, sizeof(autoturism), 1, f);
- printf("\nIntroduceti numarul de inmatriculare al autoturismului al carui numar de km parcursi si vechime doriti sa le modificati sau -1 pentru terminare: ");
- scanf("%s", &nrInmatriculare);
- }
- fclose(f);
- }
- int main()
- {
- char numeFisier[70];
- printf("Introduceti numele fisierului unde se vor salva informatii despre autoturisme: ");
- scanf("%s", &numeFisier);
- creare_fisier(numeFisier);
- listare_fisier(numeFisier);
- printf("\nAdaugare autoturisme noi: \n");
- adaugare_autoturism(numeFisier);
- listare_fisier(numeFisier);
- printf("\nModificare autoturisme: \n");
- modificare_fisier(numeFisier);
- listare_fisier(numeFisier);
- return 0;
- }
Add Comment
Please, Sign In to add comment