Menu
Coddy logo textTech

Récapitulatif - Calculatrice simple

Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy. Leçon 9 sur 110.

challenge icon

Défi

Moyen

Créez une classe Calculator complète dans calculator.dart qui rassemble tout ce que vous avez appris. Le fichier driver.dart importera et testera votre classe.

Votre classe Calculator doit présenter tous les sujets abordés dans ce module :

  1. Fichiers externes : calculator.dart sera importé par driver.dart à l’aide de import 'calculator.dart';
  2. Bibliothèques et imports : driver.dart utilise import 'dart:io';
  3. Introduction à la POO : définissez class Calculator et créez des objets avec Calculator()
  4. Classes et objets : chaque test crée un nouvel objet Calculator avec son propre état indépendant
  5. Le mot-clé this : utilisez this.result dans toutes les méthodes pour accéder à la variable d’instance
  6. Méthodes : implémentez add, subtract, multiply, divide, clear et getResult
  7. Variables d’instance : déclarez int result = 0 comme variable d’instance
  8. Notions de base des constructeurs : ajoutez un constructeur Calculator() qui définit result sur 0 et affiche 'Calculator ready'

Exigences relatives aux méthodes :

  • int add(int number) : ajoute number à result et renvoie le nouveau résultat
  • int subtract(int number) : soustrait number de result et renvoie le nouveau résultat
  • int multiply(int number) : multiplie result par number et renvoie le nouveau résultat
  • int divide(int number) : divise result par number en utilisant la division entière (~/=) et renvoie le nouveau résultat. Si number vaut 0, affichez exactement 'Error: Division by zero' et renvoyez le résultat inchangé
  • void clear() : réinitialise result à 0
  • int getResult() : renvoie la valeur actuelle de result

Exemple d’utilisation :

Calculator calc = Calculator(); // prints: Calculator ready
calc.add(10);                  // result = 10
calc.multiply(3);              // result = 30
calc.subtract(5);              // result = 25
calc.divide(5);                // result = 5
calc.divide(0);                // prints: Error: Division by zero
calc.clear();                  // result = 0

Essayez vous-même

import 'calculator.dart';
import 'dart:io';

void main() {
  String testCase = stdin.readLineSync()!;

  if (testCase == 'constructor_test') {
    Calculator calc = Calculator();
    print('Initial result: ${calc.getResult()}');
    print('Calculator created successfully');

  } else if (testCase == 'addition_test') {
    Calculator calc = Calculator();
    int r1 = calc.add(10);
    print('After adding 10: $r1');
    int r2 = calc.add(5);
    print('After adding 5: $r2');
    print('Final result: ${calc.getResult()}');

  } else if (testCase == 'subtraction_test') {
    Calculator calc = Calculator();
    calc.add(20);
    int r1 = calc.subtract(8);
    print('After subtracting 8 from 20: $r1');
    int r2 = calc.subtract(2);
    print('After subtracting 2: $r2');
    print('Final result: ${calc.getResult()}');

  } else if (testCase == 'multiplication_test') {
    Calculator calc = Calculator();
    calc.add(5);
    int r1 = calc.multiply(4);
    print('After multiplying by 4: $r1');
    int r2 = calc.multiply(2);
    print('After multiplying by 2: $r2');
    print('Final result: ${calc.getResult()}');

  } else if (testCase == 'division_test') {
    Calculator calc = Calculator();
    calc.add(100);
    int r1 = calc.divide(4);
    print('After dividing by 4: $r1');
    int r2 = calc.divide(5);
    print('After dividing by 5: $r2');
    print('Final result: ${calc.getResult()}');

  } else if (testCase == 'division_by_zero_test') {
    Calculator calc = Calculator();
    calc.add(50);
    print('Initial value: ${calc.getResult()}');
    int r = calc.divide(0);
    print('Result after division by zero: $r');
    print('Value unchanged: ${calc.getResult()}');

  } else if (testCase == 'clear_test') {
    Calculator calc = Calculator();
    calc.add(25);
    calc.multiply(3);
    print('Before clear: ${calc.getResult()}');
    calc.clear();
    print('After clear: ${calc.getResult()}');
    print('Current result: ${calc.getResult()}');

  } else if (testCase == 'comprehensive_test') {
    Calculator calc = Calculator();
    calc.add(10);
    calc.multiply(3);
    calc.subtract(5);
    calc.divide(5);
    print('After sequence of operations: ${calc.getResult()}');
    calc.divide(0);
    print('After division by zero attempt: ${calc.getResult()}');
    calc.clear();
    calc.add(100);
    print('After clear and add 100: ${calc.getResult()}');

  } else {
    print('Unknown test case');
  }
}

Toutes les leçons de Programmation Orientée Objet

Entraînez-vous par vous-même : Compilateur Dart en ligne