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

Construisez 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 démontrer tous les sujets abordés dans ce module :

  1. Fichiers externes : calculator.dart sera importé par driver.dart en utilisant import 'calculator.dart';
  2. Bibliothèques & Imports : driver.dart utilise import 'dart:io';
  3. Introduction à la POO : Définissez class Calculator et créez des objets avec Calculator()
  4. Classes vs Objets : Chaque test crée un nouvel objet Calculator avec son propre état indépendant
  5. Le mot-clé this : Utilisez this.result à l'intérieur de 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. Bases des constructeurs : Ajoutez un constructeur Calculator() qui définit result à 0 et affiche 'Calculator ready'

Exigences des méthodes :

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

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