Algoritmi in Programare Despre Evidenta unei Biblioteci

Imagine preview
(7/10 din 1 vot)

Acest proiect trateaza Algoritmi in Programare Despre Evidenta unei Biblioteci.
Mai jos poate fi vizualizat un extras din document (aprox. 2 pagini).

Arhiva contine 1 fisier doc de 20 pagini .

Profesor indrumator / Prezentat Profesorului: lector universitar Lorena Batagan

Iti recomandam sa te uiti bine pe extras si pe imaginile oferite iar daca este ceea ce-ti trebuie pentru documentarea ta, il poti descarca. Ai nevoie de doar 6 puncte.

Domenii: Limbaje de Programare, Birotica, Inteligenta Artificiala

Extras din document

1) Enuntul detaliat al temei alese

Proiectul contine un fisier organizat relativ care se ocupa cu gestionarea datelor dintr-o librarie care pune in vanzare carti. Se realizeaza diferite operatii care ajuta la o buna gestionare a cartilor aflate in librarie. Pentru aceasta se necesita informatii despre cartile aflata pentru vanzare in librarie, si anume : codul unic pentru fiecare carte aflata in stoc pentru a se putea spori viteza de gasire a unei anume carti, denumirea completa a cartii, numele autorului, numarul de exemplare ale unei carti aflat in librarie, editura la care a fost publicata cartea, anul aparitiei si pretul la care se vinde in librarie.

In cadrul librariei exista un meniu prin care utilizatorii isi pot alege diverse optiuni pentru a facilita lucrul cu programul realizat.

2) Descrierea fişierelor cu care se lucrează (organizare, structură articole)

Proiectul contine un fisier organizat relativ care se ocupa cu gestionarea datelor dintr-o librarie. Fisierul conducator contine urmatoarele articole :

- codul cartii care este unic si in functie de care se poate identifica o carte (int cod_carte )

- denumirea cartii (char nume[30])

- autorul cartii (char autor[20])

- numarul de exemplare ale cartii existente in librarie (int nr_exemplare)

- numele editurii cartii (char editura [20])

- anul aparitiei cartii (int an_aparitie)

- pretul la care se vinde cartea in librarie (int pret)

- un camp is cu rol de indicator de stare (int is).

int

is int cod_carte char

nume[30] char

autor[20]

int

nr_exemplare char

editura[20] int

an_aparitie

int

pret

Fisierul organizat relativ contine articole de aceeasi structura care contin o locatie identificabila prin numarul relativ (cod_carte in proiect).

Structura articolului include si un indicator de stare (IS). Indicatorul de stare poate lua doar doua valori: 1 si 0.

Daca IS=0 => locatia nu contine articol

Daca IS=1 => locatia contine articol

IS Articol propriu-zis

Cu aceasta conventie, operatiile de acces la articole se realizeaza in urmatoarele conditii : scrierea in fisier este permisa numai pentru articolele cu IS=0, iar citirea din fisier este permisa numai pentru articolele cu IS=1.

Pentru a regasi un articol, trebuie definit un camp numeric intreg care imi va arata defapt pozitia relativa / numarul relative.

Structura programului este urmatoarea :

1) deschidere bibliotecilor folosite in program

2) zona de definire a variabilelor globale si a campurilor articolului;

3) zona in care sunt create supbrogramele, fiecare continand anumite conditii impuse de proiect;

4) programul principal cu meniul in care sunt apelate toate subprogramele create anterior.

In program este utilizat un fisier conducator organizat relativ , iar unele rezultate sunt afisate in fisiere text in functie de cerintele problemei. Indiferent de numarul fisierelor utilizate, logica prelucrarii este coordonata de un singur fisier, obligatoriu de intrare, numit fisier conducator sau director. Aceste are proprietatea ca articolele lui pot fi citite logic indifferent de prelucrarea alor fisiere. Accesul la datele memorate in fisierul conducator se realizeaza la nivel de articol.

3) Descrierea meniului programului

Meniul programului ajuta utilizatorii sa gasesca optiunea specifica operatiilor dorite realizate asupra datelor din fisierul principal. Meniul programului are mai multe optiuni si se realizeaza cu strustura switch… case.

- Crearea si popularea fisierului principal de date.

Prima optiune se refera la crearea si popularea cu date a fisierului conducator, fisier organizat relativ. Crearea se realizeaza prin deschiderea fisierului binar in care vor fi introduce datele. Popularea se realizeaza interactive cu informatii date de la tastatura. Articolele sunt preluate camp cu camp de la tastatura, iar introducerea unei date este insotita de proceduri de validare specifice, cu reintrodecerea ei in caz de eroare. Sfarsitul preluarii datelor este marcat standard prin introducerea caracterului CTRL+Z . Popularea este una aleatoare, prin care articolele sunt scrise in casetele virtuale ale caror numere sunt furnizate explicit de utilizator (acces direct) . Scrierea unui articol se realizeaza pe numarul relativ dorit. Pot exista insa si articole numite vide.

- Listarea datelor din fisier

Aceasta optiune permite utilizatorului sa vada rezultatul introducerii datelor in fisierul binar principal. Datele sunt afisate pe ecran in ordinea crescatoare a cheilor relative a articolelor (cod_carte).

- Adaugarea de noi date in fisier

Adaugarea in fisierul principal de date se face tot in functie de cheia relativa a articolului introdus. Daca in locul mentionat de cheia relativa, indicatorul de stare sesizeaza un articol vid , datele se vor introduce pe acea pozitie, iar daca mai exista un articol in fisier cu aceeasi cheie relative, se cere reintroducerea cheii relative.

- Inserarea unor date in fisier

Aceasta optiune permite inserarea unui articol intre alte articole existente, glisandu-se cu o pozitie spre dreapta toate articolele de la sfarsitul fisierului pana la articolul cu numarul relative introdus, daca se doreste inserarea pe o pozitie deja ocupata. Daca se doreste inserarea pe o pozitie libera atunci inserarea se realizeaza normal. Se utilizeaza accesul direct, iar optiunea este valabila doar daca articolele sunt scrise intr-o ordine crescatoare sau descrescatoare a cheii relative.

Fisiere in arhiva (1):

  • Algoritmi in Programare Despre Evidenta unei Biblioteci.doc

Alte informatii

Proiectul a fost prezentat la CSIE an II sem I la materia Algoritmi in programare