Skip to content

fazy1729/OOP

Repository files navigation

Titlu proiect

Intrusion

Descriere proiect

This is a game where I have implemented functionalities of a Linux Terminal such as : ls, cd, pwd etc... You have to solve different cryptographic puzzles, which involves real alghoritms implemented by me such as SHA256. There are 3 Hacker which have different abilities, based on the task that you need to complete. Everything was done in C++ using Oriented Object Programming

Milestone #0

  • [ x ] Nume proiect (poate fi schimbat ulterior)
  • [ x ] Scurtă descriere a temei alese, ce v-ați propus să implementați

Milestone #1

Cerințe

  • [ x ] definirea a minim 3-4 clase folosind compunere cu clasele definite de voi
  • [ x ] constructori de inițializare cu parametri
  • [ x ] pentru o aceeași (singură) clasă: constructor de copiere, operator= de copiere, destructor
  • [ x ] operator<< pentru toate clasele pentru afișare (std::ostream)
  • [ x ] cât mai multe const (unde este cazul)
  • [ x ] implementarea a minim 3 funcții membru publice pentru funcționalități specifice temei alese, dintre care cel puțin 1-2 funcții mai complexe
    • nu doar citiri/afișări sau adăugat/șters elemente într-un/dintr-un vector
  • [ x ] scenariu de utilizare a claselor definite:
    • preferabil sub formă de teste unitare, mai ales dacă vorbim de aplicații consolă
    • crearea de obiecte și apelarea tuturor funcțiilor membru publice în main
    • vor fi adăugate în fișierul tastatura.txt DOAR exemple de date de intrare de la tastatură (dacă există); dacă aveți nevoie de date din fișiere, creați alte fișiere separat
  • [ x ] tag de git: de exemplu v0.1
  • [ x ] serviciu de integrare continuă (CI); exemplu: GitHub Actions

Milestone #2

Cerințe

  • [ x ] separarea codului din clase în .h (sau .hpp) și .cpp
  • [ x ] moșteniri:
    • minim o clasă de bază și 3 clase derivate din aceeași ierarhie
    • ierarhia trebuie să fie cu bază proprie, nu derivată dintr-o clasă predefinită
    • [ x ] funcții virtuale (pure) apelate prin pointeri de bază din clasa care conține atributul de tip pointer de bază
      • minim o funcție virtuală va fi specifică temei (e.g. nu simple citiri/afișări)
      • constructori virtuali (clone): sunt necesari, dar nu se consideră funcții specifice temei
      • afișare virtuală, interfață non-virtuală
    • [ x ] apelarea constructorului din clasa de bază din constructori din derivate
    • [ x ] clasă cu atribut de tip pointer la o clasă de bază cu derivate; aici apelați funcțiile virtuale prin pointer de bază, eventual prin interfața non-virtuală din bază
      • [ x ] suprascris cc/op= pentru copieri/atribuiri corecte, copy and swap
      • [ x ] dynamic_cast/std::dynamic_pointer_cast pentru downcast cu sens
      • [ x ] smart pointers (recomandat, opțional)
  • [ x ] excepții
    • [ x ] ierarhie proprie cu baza std::exception sau derivată din std::exception; minim 3 clase pentru erori specifice
    • [ x ] utilizare cu sens: de exemplu, throw în constructor (sau funcție care întoarce un obiect), try/catch în main
    • această ierarhie va fi complet independentă de ierarhia cu funcții virtuale
  • [ x ] funcții și atribute static
  • [ x ] STL
  • [ x ] cât mai multe const
  • [ x ] funcții de nivel înalt, de eliminat cât mai mulți getters/setters/funcții low-level
  • [ x ] tag de git: de exemplu v0.2

Milestone #3

Cerințe

  • [ x ] 2 șabloane de proiectare (design patterns)
  • [ x ] o clasă șablon cu sens; minim 2 instanțieri
    • [ x ] preferabil și o funcție șablon (template) cu sens; minim 2 instanțieri
  • [ x ] tag de git: de exemplu v0.3 sau v1.0

Resurse

  • adăugați trimiteri către resursele externe care v-au ajutat sau pe care le-ați folosit

About

Joc de rezolvat puzzle-uri criptografice

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages

Generated from tibmax01/oop-template