Тематический план
Lucrări de laborator
Crearea unui proiect care să conțină o interfață, în care vor fi declarate metode de setare și primire a unor parametri caracteristici unei singure grupe de obiecte fizice ca exemplu: Calculatoare, mașini, specii de copaci și altele la alegerea studentului.
Să se creeze o clasă care va implementa aceste metode. Crearea a altor 3 clase care vor moșteni clasa precedentă.
Crearea unei liste în care se vor păstra 30 de obiecte, câte 10 pentru fiecare clasă inferioară.
Implementarea acestor obiecte după fiecare din parametri și afișarea rezultatelor în terminal.
Fiecare obiect trebuie să conțină minim 3 parametrii distincți, ca exemplu: CPU, RAM, Memory.
Familiarizarea cu biblioteca grafică CustomTkinter.
Implementarea funcționalului din laboratorul precedent prin intermediul interfeței grafice.
Lista cu elemente se va afișa prin intermediul unui widget de tip CTkTextbox.
Vor fi adăugate 3 butoane, CTkButton, care vor permite apelarea metodelor de sortare.
Implementarea se va face exclusiv prin intermediul claselor. Funcționalul aflat înafara claselor nu va fi luat în considerare la atribuirea notei pentru lucrarea de laborator.
Implementarea șablonului Model View Presenter, în continuare MPV, având la bază clasele create în laboratorul 1 și laboratorul 2. Se va realiza divizarea claselor în fișiere distincte, conform funcționalului pe care aceste le oferă.
Model: Sunt toate clasele implementate la lucrarea de laborator numărul 1. Aceste clase oferă posibilitatea de a genera, stoca și la necesitate de a prelucra datele specifice grupului de obiecte fizice selectat.
Presenter: Presenter-ul are ca scop de a face legătura între Model și View. În View se vor arăta callback-urile către metodele din Presenter. Iar în Presenter se vor fi chemat funcționalul din Model.
View: Va păstra implementarea tuturor claselor care oferă exclusiv funcționalul grafic. Interfață, butoane, text și alte widget-uri.
În urma acestor schimbări, atât interfața grafică cât și funcționalitățile întregului proiect ar trebui să rămână aceleași.
Implementarea se va face exclusiv prin intermediul claselor, care se vor regăsi în fișiere separate conform destinație acestora. Funcționalul aflat înafara claselor nu va fi luat în considerare la atribuirea notei pentru lucrarea de laborator.
Se va realiza modificarea interfeței grafice având ca scop adăugarea noilor funcționalități, și anume adăugarea elementelor noi și ștergerea elementelor existente.
Fiecare element va fi afișat într-un cadru (CTkFrame) distinct iar în aplicație se afișa o listă din astfel de cadre. Pe acest cadru poate fi implementat butonul de ștergere a unui element. Dar este posibilă implementare si a unei alte logici de ștergere, cum ar fi utilizarea CTkCheckBox pentru a selecta mai multe elemente care ulterior vor fi șterse.
Se va adăuga un buton la apăsarea căruia va apărea o fereastră în care va fi posibilă introducerea parametrilor caracteristic proiectului prin intermediul CTkEntry, CTkOptionMenu, CTkCheckBox sau prin utilizarea altor metode disponibile.
Implementarea se va face exclusiv prin intermediul claselor, care se vor regăsi în fișiere separate conform destinație acestora. Funcționalul aflat înafara claselor nu va fi luat în considerare la atribuirea notei pentru lucrarea de laborator.
Integrarea în proiectul curent a unei biblioteci care va permite construirea graficelor în baza datelor caracteristice proiectului. Este recomandată biblioteca Matplotlib, care este o bibliotecă cuprinzătoare pentru crearea de vizualizări statice, animate și interactive în Python.
Integrarea graficelor se va face prin intermediul unui cadru distinct (vezi exemplul atașat), care va fi implementat într-o clasă aparte. Funcționalitățile vor fi implementate în Presenter care la rândul său va chema metodele necesare din Model.
Implementarea se va face exclusiv prin intermediul claselor, care se vor regăsi în fișiere separate conform destinație acestora. Funcționalul aflat înafara claselor nu va fi luat în considerare la atribuirea notei pentru lucrarea de laborator.
Integrarea în proiectul curent a unei baze de date, ca exemplu PostgreSQL, pentru stocare și prelucrarea datelor. Pentru interacțiunea cu baza de date se va utiliza librăria pentru Python psycopg. Din considerente obiective este permisă utilizarea unei altei baze de date, la alegerea studentului.
Listele create în laboratorul 1 vor fi înlocuite cu baza de date. Respectiv, vor fi implementate metodele necesare pentru crearea cererilor și primirea răspunsurilor de la baza de date. Ștergerea, adăugarea, sortarea și alte operațiuni cu datele, se vor realiza, de asemenea, prin intermediul bazei de date.
Implementarea se va face exclusiv prin intermediul claselor, care se vor regăsi în fișiere separate conform destinație acestora. Funcționalul aflat înafara claselor nu va fi luat în considerare la atribuirea notei pentru lucrarea de laborator.