Ce projet est une calculatrice en ligne de commande (CLI) qui permet d’évaluer des expressions mathématiques simples ou complexes, soit directement depuis l’entrée standard (STDIN), soit via un fichier contenant des expressions.
Le projet gère les priorités opératoires et inclut une gestion avancée des erreurs, comme la division par zéro ou les expressions invalides.
- Calcul d’expressions mathématiques : Évalue les expressions contenant +, -, *, /, avec gestion des priorités et des parenthèses.
- Support des fichiers : Permet de traiter un fichier contenant plusieurs expressions ligne par ligne.
- Entrée directe depuis la ligne de commande : Possibilité de passer une expression ou un fichier en argument lors de l’exécution.
- Mode interactif : Permet d’entrer les expressions dynamiquement.
- Gestion des erreurs : Détecte et gère les erreurs comme la division par zéro ou les arguments invalides.
- Test unitaire : Inclut une suite de tests unitaires pour valider les opérations mathématiques de base et avancées.
PHP version 7.4 ou ultérieure
Un terminal ou une console pour exécuter le script
Clonez le projet sur votre machine locale :
CalculatorPHP/
├── classes/
│ ├──operation/
│ │ └── Addition.php
│ │ └── Cosinus.php
│ │ └── Division.php
│ │ └── Multiplication.php
│ │ └── Sinus.php
│ │ └── Soustraction.php
│ │ └── Tangente.php
│ ├── parser/
│ │ └── Parser.php # Classe pour évaluer les expressions
│ ├── readerFile/
│ │ └── ProcessFile.php # Classe pour traiter les fichiers d’expressions
├── includes/
├── Test/ # Dossier contenant les fichiers de tests
├── index.php # Point d’entrée principal
├── README.md # Documentation du projet
Pour évaluer une expression, utilisez la commande suivante : php index.php “2+2”
Créez un fichier texte avec une expression par ligne, comme Test/test.txt :
3 + 5
10 / 2
(2 + 3) * 4
Puis exécutez le script avec le chemin du fichier comme argument : php index.php Test/test.txt
Exemple de sortie :
Processing results for file ‘Test/test.txt’:
Result for ‘3 + 5’: 8
Result for ‘10 / 2’: 5
Result for ‘(2 + 3) * 4’: 20
Lancez le script sans argument pour passer en mode interactif : php index.php
Exemple :
- Enter an expression or file path (or ‘exit’ to quit): 2 + 2
Result: 4 - Enter an expression or file path (or ‘exit’ to quit): exit
Exiting calculator.
- Division par zéro : Affiche un message d’erreur clair.
- Argument invalide : Détecte les expressions mal formées.
- Fichier inexistant : Vérifie si le fichier spécifié existe.
Le projet inclut une suite de tests unitaires pour valider les opérations mathématiques de base et avancées.
Assurez-vous d’avoir Composer installé.
composer require --dev phpunit/phpunit./vendor/bin/phpunit Test/OperationTest.php