Extras din proiect
Programul ajuta la tinerea evidentei unui magazin de inchirieri auto
Acest program contine functii ce ofera utilizatorului acestuia posibilitatea de afisare, adaugare, modificare, stergere si cautare in fisier. Fiecare functie a programului ofera posibilitatea reluarii ei in interior fara a mai iesi in meniul principal. Pentru a fi posibila intoarcerea in meniul principal se va apasa caracterul “0”(zero).
In prima faza se va cere introducerea de la tastatura a numelui fisierului cu care se va lucra. Daca fisierul este existent se vor face operatiile asupra acestuia, daca nu exista se va introduce numele de fisier dorit si se va lucra in acesta.
ADAUGARE
Aceasta functie permite adaugarea datelor in fisier referitoare la datele despre fiecare masina in parte. Se va cere sa se insereze numarul de identificare pentru masina dorita. Daca numarul “n” introdus de la tastatura este egal cu unul introdus déjà se va mentiona acest lucru si se va trece la introducerea unei noi inregistrari. Se va cere adaugarea informatiilor despre marca, capacitate, motorizare, model, prêt inchiriere.
void adaugare(char c[20])
{FILE *f;
masina d;
char v;
int id_masina;
f=fopen(c,"rb+");
printf("Introduceti Numarul masinii sau valoarea 0 pentru iesire: "); scanf("%i", &id_masina);
while(id_masina!=0)
{
fseek(f,0,2);
int n=(int)ftell(f)/sizeof(masina);
if (id_masina>=n)
{
d.st=0;
d.capacitate=0;
d.chirie=0;
fseek(f,0,2);
for (int i=n+1;i<id_masina;i++)
fwrite(&d, sizeof(masina),1,f);}
fseek(f,(id_masina-1)*sizeof(masina),0);
fread(&d,sizeof(masina),1,f);
if(d.st==1)
printf("nAcesta masina este inregistrata!n");
else
{fflush(stdin);
printf("Marca acestei masini: ");gets(d.marca);
printf("Capacitatea cilindrica acestei masini: "); scanf("%i",&d.capacitate);
printf("Motorizarea masinii : "); gets(d.motorizare);
printf("Modelul: "); gets(d.model);
printf("Pretul de inchiriere: "); scanf("%i",&d.chirie);
d.st=1;
fseek(f,(id_masina-1)*sizeof(masina),0);
fwrite(&d,sizeof(masina),1,f);
}
printf("Introduceti Numarul masinii sau valoarea 0 pentru iesire: ");
scanf("%i",&id_masina);}
fclose(f);}
MODIFICAREA
Aceasta functie permite modificarea datelor care au fost introduse in fisier. Se va cere numarul de identificare asupra caruia se va face modificarea, apoi din lista se va allege optiunea care se doreste sa fie modificata. Se pot face modificari in parte asupra fiecarei date despre masina.
void modificare(char c[20])
{FILE *f;
masina d;
char v;
int id_masina;
f=fopen(c,"rb+");
printf("Introduceti Numarul masinii sau valoarea 0 pentru iesire: ");
scanf("%i",&id_masina);
while(id_masina != 0)
{fseek(f,0,2);
int n=(int)ftell(f)/sizeof(masina);
if(id_masina>n) printf("nMasina care se identifica prin %d nu exista.n",id_masina);
else {fseek(f,(id_masina-1)*sizeof(masina),0);
fread(&d,sizeof(masina),1,f);
char optiune=' ';
while(optiune!='6')
{printf("1)Marca: n2)Capacitate: n3)Motorizarea: n4)Model: n5)Chirie: n6)Incheie modificari"); fflush(stdin);
printf("n Optiunea dvs:");scanf("%c",&optiune);
fflush(stdin);
switch(optiune){
case '1':printf("Marca noua: ");gets(d.marca);break;
case '2':printf("Capacitatea cilindrica noua: ");scanf("%d",&d.capacitate);break;
case '3':printf("Motorizarea noua: ");gets(d.motorizare);break;
case '4':printf("Model nou: ");gets(d.model);break;
case '5':printf("Chiria noua: ");scanf("%d",d.chirie);break;
case '6':break;
default:{printf("n Optiunea dvs. nu exista !n");break;}}
if(optiune!='6')
{fseek(f,(id_masina-1)*sizeof(masina),0);
fwrite(&d,sizeof(masina),1,f);}
}
}
}
printf("Introduceti Numarul masinii sau valoarea 0 pentru iesire: ");
scanf("%i",&id_masina);
fclose(f);}
Preview document
Conținut arhivă zip
- Proiect Algoritmi in Programare.doc