Documente Academic
Documente Profesional
Documente Cultură
RAPORT
Lucrarea de laborator nr. 6 la
Programarea Calculatoarelor
A efectuat:
st. gr. RM-201 Cojocaru Alexandra
A verificat:
Stratulat Ștefan
Chişinău -2020
Lucrarea de laborator nr. 6
Теmа: Prelucrarea tabloului de structuri şi utilizarea fişierelor în
limbajul C
Descrierea variabilelor:
a) date de intrare: Cinema - variabila simple de tip Structura
b) date de ieşire: Cinema - variabila de tip Structura
int main()
{
Cinema *S,*B, a; char
temp[50], fname[50]; int
n,x,f,k;
while(1)
{ system("cls"); puts("\t MENIU:"); puts("1.
Alocarea dinamica a memoriei p/u tabl. de structuri");
puts("2. Introducerea elementelor tabloului de la tastatura");
puts("3. Cautarea elementului tabloului"); puts("4. Sortarea
elementelor tabloului"); puts("5. Redactarea elementului
tabloului"); puts("6. Adaugarea unui element nou la sfirsit");
puts("7. Eliminarea elementului indicat din tablou "); puts("8.
Inserarea unui element nou "); puts("9. Salvarea elementelor
tabloului in fisier "); puts("10. Citirea elementelor tabloului
din fisier "); puts("11. Afisarea elementelor tabloului la ecran
"); puts("12. Eliberarea memoriei alocate pentru tablou ");
puts("0. Iesire din program ");
switch(x)
{
case 1:
printf("Dati numarul de Cinematografe: ");
scanf("%d", &n);
S= (Cinema*)malloc(n*sizeof(Cinema));
2
if(S==NULL)
{
puts("Memoria nu a fost alocata");
exit (1);
}
puts("Memoria a fost alocata cu succes");
puts("Pentru a continua apasati tasta Enter");
getch(); break; case 2:
puts("Dati datele cinematografelor: ");
citesteArrayOfCinema(S,n);
puts("Pentru a continua apasati tasta
Enter"); getch(); break; case 3:
puts("Dati numele cinematografului de
cautat:"); fflush(stdin); gets(temp);
k=cautaCinema(S,n,temp);
if(k<0)
{
puts("Cinematograful cautat nu a fost gasit in tablou ");
}
else
{
puts("Info despre Cineatograf: "); printf(" Denumire: %s\n Adresa: %s\n
Nr de telefon %s\n Nr de locuri: %d\n Pretul
biletului %d\n",S[k].denumire,S[k].adresa,S[k].nr_telefon,S[k].nr_locuri,S[k].pret);
}
5
puts("Pentru a continua apasati tasta
Enter"); getch(); break; default:
puts("Aceasta comanda nu exita.\nAlegeti optiunea corecta din meniu!
"); puts("Pentru a continua apasati tasta Enter"); getch();
}
}
}
{ return
i;
} }
return -1;
}
{ return
B; }
B[*pn]= a;
*pn=*pn+1;
return B;
}
{ return
B; }
*pn=*pn-1;
return B;
}
{ return
B;
}
for(i=*pn-1; i>=k; i--)
{
8
B[i+1]=B[i];
}
B[k]=a;
*pn=*pn+1;
return B;
}
{ return
0;
}
for(i=0; i<n; i++)
{
fprintf(fp, "%s %s %s %d %d\n",
S[i].denumire,S[i].adresa,S[i].nr_telefon,S[i].nr_locuri,S[i].pret);
}
fclose(fp);
return 1;
{ return
0;
}
for(i=0; i<n; i++)
{
fscanf(fp, "%s %s %s %d %d\n",
S[i].denumire,S[i].adresa,S[i].nr_telefon,S[i].nr_locuri,S[i].pret);
}
fclose(fp);
return 1;
9
Analiza rezultatelor și concluzii:
1. Au fost obţinute deprinderi de elaborare, compilare, rulare și testare a unui program în limbajul
de programare C ce contine Structuri.
2. Verificarea rezultatelor obţinute confirmă că programul elaborat lucrează corect.
3. Programul a fost foarte usor rezolvat folosind functiile for, if, fopen, si altele.
4. Programul elaborat nu verifică datele de intrare, ce reprezintă un dezavantaj al algoritmului.
5. Programul elaborat poate fi dezvoltat ulterior prin adăugarea operațiilor de verificare a datelor
de intrare.
6. Am studiat metode de introducere, afisare, modificare a structurilor simple.
.
10