Menu
Coddy logo textTech

Özet - Basit Hesap Makinesi

Coddy'nin Dart Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası — ders 9 / 110.

challenge icon

Görev

Orta

calculator.dart dosyasında, öğrendiğiniz her şeyi bir araya getiren eksiksiz bir Calculator sınıfı oluşturun. driver.dart dosyası sınıfınızı içe aktaracak ve test edecektir.

Calculator sınıfınız bu modülde kapsanan tüm konuları göstermelidir:

  1. Harici Dosyalar: calculator.dart, driver.dart tarafından import 'calculator.dart'; kullanılarak içe aktarılacaktır.
  2. Kütüphaneler & İçe Aktarmalar: driver.dart, import 'dart:io'; kullanır.
  3. OOP'ye Giriş: class Calculator tanımlayın ve Calculator() ile nesneler oluşturun.
  4. Sınıflar vs Nesneler: Her test, kendi bağımsız durumuna sahip yeni bir Calculator nesnesi oluşturur.
  5. this Anahtar Kelimesi: Örnek değişkene erişmek için tüm metotların içinde this.result kullanın.
  6. Metotlar: add, subtract, multiply, divide, clear ve getResult metotlarını uygulayın.
  7. Örnek Değişkenler: int result = 0 ifadesini bir örnek değişken olarak tanımlayın.
  8. Yapıcı (Constructor) Temelleri: result değerini 0 yapan ve 'Calculator ready' yazdıran bir Calculator() yapıcısı ekleyin.

Metot gereksinimleri:

  • int add(int number)number değerini result'a ekler, yeni sonucu döndürür.
  • int subtract(int number)number değerini result'tan çıkarır, yeni sonucu döndürür.
  • int multiply(int number)resultnumber ile çarpar, yeni sonucu döndürür.
  • int divide(int number)resultnumber'a tam sayı bölmesi (~/=) kullanarak böler, yeni sonucu döndürür. Eğer number değeri 0 ise, tam olarak 'Error: Division by zero' yazdırın ve değişmemiş sonucu döndürün.
  • void clear()result değerini 0 olarak sıfırlar.
  • int getResult() — güncel result değerini döndürür.

Örnek kullanım:

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

Kendin dene

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');
  }
}

Nesne Yönelimli Programlama bölümündeki tüm dersler