Documente Academic
Documente Profesional
Documente Cultură
TEHNICI DE
PROGRAMARE”
-Stefanescu Mircea 1144 ID-
-creare fisier
-adaugare automobile
-modificare automobile
-stergere automobile
-listare automobile
-listare selectiva automobile (criteriul-vechime in munca mai mare de
6 ani)
-afisare pe ecran date automobile
-in „main” s-a folosit o structra de tip „switch case” pentru a construi
un meniu cu 7 variante de a alege;
Codul sursa:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
struct Auto {
int capacitateCilindree;
char marcaAuto[20];
char codUnicAuto[13];
char ModelAuto[20];
int viteza;
int vechime;
int isEmpty;
};
char numeFisier[100];
a.isEmpty = 0;
fseek(f, 0, 2);
for (i = dimensiuneFisier(f, sizeof(a)); i <= cod; i++)
if (a.isEmpty)
{
printf("\nExista deja un automobil cu acest cod");
}else {
printf("Cod unic automobil: ");
fwrite(&a, sizeof(a.codUnicAuto), 1, f);
fflush(a.codUnicAuto);
printf("Vechime:");
fwrite(&a, sizeof(a.vechime), 1, f);
fflush(a.vechime);
printf("Viteza automobil:");
fwrite(&a, sizeof(a.viteza), 1, f);
fflush(a.viteza);
a.isEmpty = 1;
a.capacitateCilindree = cod;
fwrite(&a, sizeof(a), 1, f);
}
printf("\nCod unic: ");
fwrite(&a, sizeof(a), 1, f);
fclose(f);
} return f;
}
FILE* modificare(char* numeFisier)
{
FILE* f = NULL;
struct Auto a;
int CodModificat = 0;
printf("\n Introduceti codul unic al automobilului pe care doriti sa il
modificati: ");
fwrite(&a, sizeof(CodModificat), 1, f);
fseek(f, CodModificat * sizeof(a), 0);
fread(&a, sizeof(a), 1, f);
if (CodModificat != 1) {
printf("\nNu exista automobil cu acest cod...");
}
else
{
printf("Cod unic automobil: ");
fwrite(&a,sizeof(a.codUnicAuto),1,f);
fflush(a.codUnicAuto);
printf("Viteza automobil:");
fwrite(&a, sizeof(a.viteza), 1, f);
fflush(a.viteza);
}
void afisare(char* numeFisier)
{
FILE* f = NULL;
struct Auto a;
int CodAfisare = 0;
printf("\n Introduceti codul unic al automobilului pe care doriti sa il
afisati: ");
fwrite(&a, sizeof(CodAfisare), 1, f);
fseek(f, CodAfisare * sizeof(a), 0);
fread(&a, sizeof(a), 1, f);
if (CodAfisare != 1) {
printf("\nNu exista automobil cu acest cod...");
}
else
{
fseek(f, 0, 1);
printf("\n&d &s &d &s &s &f &d",
a.capacitateCilindree, a.codUnicAuto, a.isEmpty,
a.marcaAuto, a.ModelAuto, a.viteza, a.vechime);
}
}
void main()
{
FILE* f = NULL;
int opt = 1;
while (opt != 0)
{
system("cls");
printf("Date tehnice automobile din parcul auto\n");
printf("\n Alegeti o optiune:\n ");
printf("\n1. Alegere fisier de lucru\n");
printf("\n2. Adaugare automobil in baza de date\n");
printf("\n3. Modificare automobil din baza de date\n");
printf("\n4. Stergere automobil din baza de date\n");
printf("\n5. Generare raport cu automobilele actuale\n");
printf("\n6. Generare raport angajati cu vechime mai mare de 5
ani\n");
printf("\n7. Afisare date automobil\n");
printf("\n0. Iesire\n\n");
scanf("%d", &opt);
switch (opt)
{
case 1:
{
f = creareFisier(numeFisier);
}
break;
case 2:
{
if (f == NULL)
{
printf("\n NU ATI ALES FISIERUL DE LUCRU");
_getch();
}
else f = adaugare(numeFisier);
}
break;
case 3:
{
if (f == NULL)
{
printf("\n NU ATI ALES FISIERUL DE LUCRU");
_getch();
}
else {
modificare(numeFisier);
_getch();
}
}
break;
case 4:
{
if (f == NULL)
{
printf("\n NU ATI ALES FISIERUL DE LUCRU");
_getch();
}
else { f = stergere(numeFisier);
_getch(); }
}
break;
case 5:
{
if (f == NULL)
{
printf("\n NU ATI ALES FISIERUL DE LUCRU");
_getch();
}
else {
listaAutomobile(numeFisier);
_getch(); }
}
break;
case 6:
{
if (f == NULL)
{
printf("\n NU ATI ALES FISIERUL DE LUCRU");
_getch();
}
else
lista2(numeFisier);
}
break;
case 7:
{
if (f == NULL)
{
printf("\n NU ATI ALES FISIERUL DE LUCRU");
_getch();
}
else
afisare(numeFisier);
}
break;
}
}
fclose(f);
}