Giter Club home page Giter Club logo

recipe-book's Introduction

TP3: Liste chainée, CUnit et modules

Description

Le logiciel est lancé à la console en recevant en paramètre un nom de fichier. Le fichier contiendra la banque de recettes dans laquelle nous effectuerons les recherches. Chaque ligne du fichier doit contenir une recette avec les catégories dans lesquelles elle doit apparaître. Une recette est obligatoirement dans une catégorie mais pourrait aussi apparaître dans plusieurs catégories. Les catégories apparaissent entre crochets, après le nom de la recette.

Travail accompli dans le contexte du cours Construction et maintenance de logiciels (INF3135) donnee par Serge Dogny à l'UQAM.

Le contenu du projet:

  • README.md: ce fichier
  • Makefile: permet d'automatiser la compilation
  • .gitignore: ignorer certains fichiers lors de la gestion des version
  • .gitla-ci.yml: instructions d'intégration continu avec GitLab CI/CD
  • sujet.pdf: sujet du travail
  • /test_files: dossier contenant des fichiers de recettes
  • central.h: interface main()
  • main.h: code source main()
  • main.h: interface des methodes principales du programme
  • main.c: code source es methodes principales du programme
  • linkedList.h: interface liste chainée
  • linkedList.c: code source liste chainée
  • stats.h: interface gestion des statistiques
  • stats.c: code source gestion des statistiques
  • tests.h: interface des tests
  • tests.c: code source des tests

Contraintes du travail

Auteur

Leonid Glazyrin (GLAL77080105)

Fonctionnement

Pour faire fonctionner le projet il vous faudra vous assurez d'avoir git installé, ainsi que make. Referez vous à la section Dépendances pour les sites officiels.

Tout d'abord cloner le projet avec la commande :

git clone https://gitlab.info.uqam.ca/glazyrin.leonid/inf3135-automne2022-tp3.git

Si le projet n'est pas publique vous devrez vous authentifier.

Ensuite exécuté les commandes suivantes pour vous déplacer dans le répertoire, compiler le programme:

cd inf3135-aut2022-tp3
make

Pour exécuter le programme avec une des recette contenu dans un fichier :

./recherche <FICHIER_TEXTE>
Entrez votre critère de recherche : <CATEGORIE> [MOT-CLE]

exit pour arreter le programme normalement.

Pour exécuter le programme et generer des statistiques sur les recettes fournie en parametres :

./recherche <FICHIER_TEXTE> -S <FICHIER OU ECRIRE LES STATISTIQUES>

Les cas d'erreur gérés sont :

  1. Fichier non trouvé
  2. Allocation de memoire dynamique qui echoue

Les cas d'erreur non-gérés connus sont :

  1. Si le fichier de recettes se termine par plus d'un '\n'
  2. Si seulement '\n' est entree au clavier
  3. Si le fichier est vide, la lettre la plus frequente sera 'a'

Tests

Entrez make test pour exécuter la suite de tests automatiques.

Mes résultats:

Run Summary:    Type  Total    Ran Passed Failed Inactive
              suites      3      3    n/a      0        0
               tests     19     19     19      0        0
             asserts     54     54     54      0      n/a

Elapsed time =    0.001 seconds

Tout les tests réussissent.

Verifier la couverture des tests

Entrez make coverage pour executer la verification de la couverture des tests unitaire sur tout les fichiers du programme.

Mes résultats:

main.c : 44.35%
linkedList.c : 77.95%
stats.c : 87.00%
tests.c : 94.19%

Verifier les fuites de memoire

Entrez make valgrind pour executer un test qui verifiera les fuites de memoire, l'interaction de l'utilisateur ne sera pas necessaire pour cette execution.

Mes résultats:

ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

Supprimer les fichiers generes

Entrez make clean pour supprimer tout les fichiers genere.

Dépendances

Références

recipe-book's People

Contributors

leonidglazyrin 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.