Extras din proiect
O agenţie CFR dintr-un oraş face rezervarea biletelor pentru trenuri prin intermediul unui fişier F1, cu următoarea structură:
• câmpul C1: cod buletin de identitate
• câmpul C2: număr tren
• câmpul C3: nume şi prenume călător
• câmpul C4: număr de locuri rezervate (maxim 10)
• câmpul C5: staţia destinaţie
Se cere:
1) Să se creeze un fişier binar F1 referitor la rezervări de trenuri.
2) Să se listeze fişierul F1 referitor la rezervări de trenuri.
3) Să se sorteze fişierul F1 crescător după nume călător.
4) Să se actualizeze fişierul F1, presupunând posibile următoarele operaţii:
• modificarea numărului de locuri rezervate;
• ştergerea unor locuri pentru rezervare;
• adăugarea în fişier a unor noi rezervări.
O agenţie CFR dintr-un oraş face rezervarea biletelor pentru trenuri prin intermediul unui fişier binar cu următoarea structură:
* cheie - întreg ce are o valoare diferită pentru fiecare înregistrare în parte;
* cod buletin de identitate - întreg ce are o valoare diferită pentru fiecare înregistrare în parte;
* numele - şir de maxim 10 caractere;
* prenumele călătorului - şir de maxim 10 caractere ;
*număr tren – întreg care îşi schimbă valoarea pentru fiecare înregistrare;
*număr de locuri rezervate – întreg care îşi schimbă valoarea pentru fiecare înregistrare;
*staţie destinaţie – şir de maxim 10 caractere ;
Ne propunem să scriem un program C care să implementeze următoarele operaţii asupra acestui fişier:
* crearea fişierului binar cu structura menţionată anterior;
* listarea la terminal a conţinutului fişierului;
* adăugarea în fişier a unor noi rezervări;
* sortarea fişierului crescător după nume călător;
* ştergerea (logică) a unei înregistrări având o cheie dată;
* modificarea valorilor câmpurilor unei înregistrări având o cheie dată;
* recuperarea înregistrărilor şterse;
* purjarea (ştergerea fizică) a fişierului cu rezervările.
1. Algoritmul creare
Pseudocod:
Start
Dacă apare o eroare la scriere
afişează mesajul „Nu se poate deschide pentru scriere fişierul”
Atâta timp cât se optează pentru introducerea unei înregistrări
se vor introduce toate câmpurile pentru înregistrarea respectivă
Se face scrierea în fişier
Dacă apar erori la scriere
afişează mesajul ”Eroare la scriere în fişier”
Se închide fişierul.
#include "antet.h"
void Creare(char* nume){
FILE*flux;
AGENTIE a;
char car;
if((flux=fopen(nume,"wb"))==NULL){
printf("Nu se poate deschide pt scriere fisierul %sn",nume);
return;
}
printf("Introduceti o INREGISTRARE?(d/n)");
fflush(stdin);
scanf("%c",&car);
while(toupper(car)=='D'){
printf("Introduceti cheia:");
scanf("%d",&a.C1);
printf("Introduceti numele ");
scanf("%s",&a.C2);
printf("Introduceti prenumele :");
scanf("%s",&a.C3);
printf("Introduceti statia destinatie:");
scanf("%s",&a.C4);
printf("Introduceti numarul trenului:");
scanf("%d",&a.C5);
printf("Introduceti numarul de locuri rezervate:");
scanf("%d",&a.C6);
printf("Introduceti codul buletinului de identitate:");
scanf("%d",&a.C7);
if (fwrite(&a,sizeof(AGENTIE),1,flux) !=1){
printf("Eroare la scriere in fisierul: %sn",nume);
return;
}
printf("Introduceti o INREGISTRARE?(d/n)");
fflush(stdin);
scanf("%c",&car);
}
fclose(flux);
}
Preview document
Conținut arhivă zip
- Structuri de Date.doc