Skip to content

alexandraminca/FixItNow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FixItNow – Simulare service pentru electrocasnice

Descriere proiect

Acest proiect implementează o aplicație orientată pe obiecte în C++ care simulează fluxul de lucru al unui service pentru repararea electrocasnicelor.

Aplicația gestionează angajații, electrocasnicele și cererile de reparație și simulează modul în care reparațiile sunt alocate și procesate în timp.


Funcționalități

  • gestionarea angajaților:

    • tehnicieni
    • recepționeri
    • supervizori
  • gestionarea electrocasnicelor:

    • mărci
    • modele
    • specificații tehnice
  • procesarea cererilor de reparație

  • alocarea automată a cererilor către tehnicienii disponibili

  • simularea procesului de reparare în timp

  • generarea de rapoarte și statistici

  • validarea datelor de intrare și gestionarea erorilor

  • scenarii de test folosind fișiere de intrare CSV


Simulare

Sistemul simulează procesul de reparare în timp.

La fiecare unitate de timp aplicația:

  • procesează cererile de reparație active
  • reduce durata rămasă pentru reparațiile în curs
  • finalizează cererile pentru care reparația s-a terminat
  • alocă cererile aflate în așteptare tehnicienilor disponibili

Structura proiectului

  • Angajat.* – clase pentru angajați
  • Tehnician.*, Receptioner.*, Supervizor.* – tipuri de angajați
  • Electrocasnic.* – clasa de bază pentru aparate
  • Frigider.*, Masina_de_spalat.*, Televizor.* – tipuri de aparate
  • Cerere_reparatie.* – gestionarea cererilor
  • Service_Manager.* – logica principală a service-ului
  • Meniu.* – interfața aplicației
  • main.cpp – punctul de intrare în program

Fisiere de Test

Descriere Generala

Fișierele de test se găsesc în directorul tests/. Acest folder contine 5 fisiere de test care verifica functionalitatile principale ale aplicatiei FixItNow, testand atat cazuri normale, cat si situatii care genereaza erori.

Descrierea Fisierelor

1. date_complete.csv

Scop: Test functional complet - demonstrare toate functionalitatile de baza

Continut:

  • Angajati: 8 (2 supervizori, 2 receptioneri, 4 tehnicieni)
  • Electrocasnice: 8 aparate (3 frigidere Samsung, 2 masini de spalat Arctic, 3 TV-uri)
  • Cereri: 12 cereri valide si 1 invalida cu complexitati variate (1-4)

Verifica:

  • Import complet din fisier CSV
  • Service functional (minim 3 tehnicieni, 1 receptioner, 1 supervizor)
  • Alocare automata cereri la tehnicieni
  • Incarcarea relativ egala cu cereri a tehnicienilor
  • Simulare completa cu finalizare cereri
  • Generare toate cele 3 rapoarte CSV

2. test_incarcare_egala.csv

Scop: Verificare incarcare relativ egala a tehnicienilor

Continut:

  • Angajati: 5 (1 supervizor, 1 receptioner, 3 tehnicieni specializati pe Televizor:LG)
  • Electrocasnice: 1 TV LG OLED55
  • Cereri: 21 cereri TV LG cu complexitati 1-3

Verifica:

  • Algoritm de asignare corect (durata totala minima)
  • Fiecare tehnician primeste aproximativ 7 cereri (21/3=7) cu diferente de maxim 1-2 cereri
  • Tehnicienii nu primesc mai mult de 3 cereri simultan

3. test_demisie.csv

Scop: Test demisie tehnician cu cereri active in timpul simularii

Continut:

  • Angajati: 6 (1 supervizor, 1 receptioner, 4 tehnicieni)
  • Electrocasnice: 1 frigider Samsung, 1 TV LG, 1 masina de spalat Arctic
  • Cereri: 11 cereri cu complexitati 3-5 (pentru durate lungi)

Verifica:

  • Demisie tehnician in timpul lucrului
  • Tehnician marcat inactiv (nu mai primeste cereri noi)
  • Tehnicianul continua sa finalizeze cererile active
  • Tehnician sters automat cand nu mai are cereri active
  • Cereri in asteptare realocate la tehnicienii ramasi
  • Cerere care va ramane in asteptare, deoarece nu mai exista tehnician specializat

Cum se foloseste:

  1. Incarca fisierul
  2. Porneste simulare pas cu pas
  3. Dupa 2-3 tic-uri, apasa M sau m (meniu in simulare)
  4. Alege optiunea 1 (Demisie angajat)
  5. Introdu CNP: 1950303123456 (Georgescu)
  6. Continua simularea (ENTER)
  7. Se observa ca tehnicianul:
    • Nu mai primeste cereri noi
    • Continua sa proceseze cererile active
    • E sters automat la finalizare

4. date_invalide.csv

Scop: Test gestionare erori - continuare procesare dupa erori

Continut:

  • Angajati invalizi: cazuri diferite de eroare
    • CNP prea scurt
    • CNP cifra 1 invalida (3, 7)
    • CNP luna invalida (00, 13)
    • CNP zi invalida (00, 32, 30 feb)
    • CNP cod judet invalid (48, 99)
    • Nume/prenume < 3 caractere sau > 30 caractere
    • Varsta la angajare < 16 ani
    • Tehnician fara specializari
  • Angajati valizi: 5 (pentru comparatie)
  • Cereri invalide: 5 (modele inexistente, complexitate 0)
  • Cereri valide: 3

Verifica:

  • Mesaje eroare clare pentru fiecare linie invalida
  • Afisare numar linie si cauza erorii
  • Continuare procesare dupa erori (nu se opreste)
  • Angajatii valizi sunt adaugati corect
  • Raport aparate nereparabile functional

5. test_service_nefunctional.csv

Scop: Test service nefunctional - angajati insuficienti

Continut:

  • Angajati: 4 (1 supervizor, 1 receptioner, doar 2 tehnicieni )
  • Electrocasnice: 2
  • Cereri: 2

Verifica:

  • Functia poate_functiona() returneaza false
  • Mesaj clar: "Service-ul NU poate functiona"
  • Explicatie cauza: "minim 3 tehnicieni necesari"
  • Aplicatia nu se blocheaza, doar afiseaza avertisment
  • Procesare cereri din meniu nu va functiona pana nu sunt adaugati destui angajati

Compilare și rulare

Programul poate fi compilat folosind un compilator C++ standard:

g++ *.cpp -o fixitnow
./fixitnow

About

C++ object-oriented application that simulates and manages an appliance repair service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages