GithubHelp home page GithubHelp logo

cpp-matrix's Introduction

oriented graph - febbraio 2024

This is my implementation of the oriented graph for the cpp course at unimib.

Points:

  • 26/26
  • +2 for custom exceptions
  • +2 for extended code coverage

utilizzo

  • make per compilare il progetto
  • make docs per generare la documentazione Doxygen

Il makefile include delle feature extra che semplificano la vita:

  • make test compila ed esegue il programma usando ASAN, una instrumentazione simile a valgrind che riconosce errori a runtime. Se il programma ha errori di memoria, verrà stampato il tipo di errore e il punto esatto del codice responsabile.

  • make coverage (solo su linux, utilizza i programmi less, grep, e gcov) Mostra quali parti del codice della matrice non sono state eseguite durante i test. Le righe non eseguite iniziano con #####. Per chiudere il programma premere q. Per passare alla riga non eseguita successiva o precedente premere n o N.

Note

Implementazione grafo orientato - progetto cpp bicocca:

La matrice di adiacenza per il grafo orientato è implementata tramite matrice di interi: int **. Il prof si aspetta una implementazione diversa tramite una classe matrice, poichè è un sistema che porta a meno errori di memoria.

Tuttavia:

  • Implementare la matrice tramite classe aumenta notevolmente le linee di codice, e quindi la "superfice di attacco" su cui il prof può trovare errori.
  • implementare la matrice tramite int ** richiede buona comprensione della gestione della memoria, e test manuali su errori di allocazione. vedi questo esempio ma richiede anche meno codice

penalizzazioni comuni progetto c++

  • test insufficenti (-2)
  • test solo su tipi standard (-2)
  • totale o parziale mancanza di funtori di confronto nella classe (fino a -3)
  • mancata gestione della memoria/eccezioni (-1 per occorrenza)
  • dimenticanza di un metodo richiesto (-5)
  • documentazione minimale/insufficente (-2)
  • non è stata messa la MAIL dello studente nel pdf della consegna (-2)
  • mancanza di const/ref nel passaggio di parametri generici (-0.5 per occorrenza)
  • metodi che espongono la struttura interna della classe (-1 per occorrenza)

cpp-matrix's People

Contributors

robalb avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.