Cuprins
- 1. Introducere pag. 2
- 2. Descrierea problemei pag. 3
- 3. Structura programului pag. 4
- 4. Structuri de date utilizate pag. 5
- 5. Proceduri de prelucrare pag. 8
- 6. Concluzii pag. 11
- 7. Bibliografie pag. 12
Extras din proiect
1. INTRODUCERE
1.1 Obiectivul problemei :
Aceasta aplicatie informatica are ca obiectiv gestionarea cat mai buna a orarului unei facultati pentru un an de studiu. Prin intermediul ei se poate genera o varianta de orar la un moment dat, variantele de orar ale unui profesor la un moment dat si variantele posibile de orar pentru o anumita grupa la un moment dat.
1.2 Necesitatea :
Aceasta aplicatie, pe lânga generarea orarului (in loc de orar poate fi orice alta structura care se doreste sa aibe înregistrari,unice, adica sa nu se regaseasca in cele afisate anterior.) realizeaza si implementarea diferitelor operatii pe structurile alese: adaugarea unui nou nod in lista si in arbore bianr de cautare, cautarea unui element dupa cheie unica în arbore si în lista, stergerea unei inregistrari din lista si arbore. De asemenea mai realizeaza si diferite tipuri de conversii, cum ar fi: din fisier in arbore binar de cautare si din arbore în fisier, din fisier in lista simplu înlantuita si din lista simpla în fisier, din fisier in vector memorati dinamic.
1.3 Mijloace de realizare :
Aplicatia a fost realizata in Microsoft Visual Studio 6.0 (Microsoft Visual C++ 6.0).
Datele de intrare, dupa ce acestea au fost în prealabil validate, s-au încarcat în fisierele binare corespunzatoare celor 4 structuri:prof.dat, materii.dat, grupe.dat si sali.dat, apoi aceste fisiere au fost convertite in structuri de tip arbore binar de cautare, lista sumplu înlantuita, respectiv masiv unidimensional memorat dinamic astfel încât resuresele sa fie alocate corespunzator si sa permita prelucrarie cât mai eficiente.
Aplicatia este realizata în Microsoft Visual Studio 6.0 mai precis Microsoft Visual C++ 6.0
2. DESCRIEREA PROBLEMEI
Având de rezolvat problema generarii unei variante de orar al unei facultati, am definit cele 4 structuri initiale (pentru profesori, materii, grupe si sali) cu structurile arborescente aferente, urmand apoi procesul introducerii datelor in fosiere binare nu inaintea ca acestea sa fie valide. Pentru a verifica acest lucru am realizat o functie care verifica daca un sir de caractere dat de la tastatura este numeric sau nu. In caz afirmativ, pe langa aceasta conditie , se mai verifica si unicitatea codurilor de inregistrare (programul nu ma lasa sa introduc doua coduri identice)
Pe langa operatiile de adaugare de noi inregistrari in liste si arbori, cautari dupa cheie si stergere de elemente din lista si arbore identificate dupe codul unic de inregistrare, aplicatia genereaza si o varianta a unui orar la o anumita ora (adica grupele, salile si profesorii trebuie sa nu coincida; materiile pot coincide deoarece pot exista mai multi profesori de aceeasi matarie), pentru un anumit profesor (adica ce variante de orar ar putea avea din cele care indeplinesc conditiile ) si pentru o anumita grupa.
Pentru generarea orarului am facut conversii fin cele 4 fisiere de intrare in vectori alocati dinamic si am obtinut un vector vect_o de tip orar (care contine urmatoarele campuri:codul grupei, denumirea materiei, codul salii si numele profesorului). Pentru a ajunge la acest vector trebuie sa punem o serie de filtre inregistrarilor din fisiere, cum ar fi:tipul profesorului trebuie sa fie egal cu tipul materiei (adica un profesor preda materia respetiva), numarul de studenti ai unei grupe sa fie mai mic decat numarul de locuri di sala, numarul maxim de ore al profesorului trebuie sa fir mai mic decat numarul de ore care ar trebui sa se faca la disciplina respectiva.
Preview document
Conținut arhivă zip
- Proiect Structuri de Date - Orar
- Debug
- aaa.exe
- aaa.ilk
- aaa.obj
- aaa.pch
- aaa.pdb
- arbori.exe
- arbori.ilk
- arbori.obj
- arbori.pch
- arbori.pdb
- BuildLog.htm
- dubla3.obj
- dubla3.pch
- dubla3.pdb
- eu.exe
- eu.ilk
- eu.obj
- eu.pch
- eu.pdb
- incerc.exe
- incerc.ilk
- incerc.obj
- incerc.opt
- incerc.pch
- incerc.pdb
- ionela.exe
- ionela.ilk
- ionela.obj
- ionela.pch
- ionela.pdb
- mt.dep
- orar.exe
- orar.ilk
- orar.obj
- orar.pch
- orar.pdb
- pro.exe
- pro.ilk
- pro.obj
- pro.pch
- pro.pdb
- proiect.exe
- proiect.ilk
- proiect.pch
- proiect.pdb
- proiect_orar.exe
- proiect_orar.exe.embed.manifest
- proiect_orar.exe.embed.manifest.res
- proiect_orar.exe.intermediate.manifest
- proiect_orar.ilk
- proiect_orar.obj
- proiect_orar.pdb
- vc60.idb
- vc60.pdb
- vc90.idb
- vc90.pdb
- vector.exe
- vector.ilk
- vector.obj
- vector.pch
- vector.pdb
- aaa.dsw
- documentatie_orar.doc
- ffff.txt.txt
- grupe.dat
- materii.dat
- proba.txt.txt
- prof.dat
- profesor.dat
- proiect.opt
- proiect_orar.cpp
- proiect_orar.dsp
- proiect_orar.dsw
- proiect_orar.ncb
- proiect_orar.opt
- proiect_orar.plg
- proiect_orar.sln
- proiect_orar.suo
- proiect_orar.vcproj
- proiect_orar.vcproj.sony.mihay.user
- sala.txt
- sali.dat
- vector.dsw
- vector.plg