Menu
Coddy logo textTech

Tekrar - 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 sınıfını calculator.dart içinde oluşturarak öğrendiğin her şeyi bir araya getir. driver.dart dosyası sınıfını içe aktaracak ve test edecektir.

Calculator sınıfın bu modülde ele alınan 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 ve İçe Aktarmalar: driver.dart, import 'dart:io'; kullanır
  3. OOP'ye Giriş: class Calculator tanımla ve Calculator() ile nesneler oluştur
  4. Sınıflar ve Nesneler: Her test, kendine ait bağımsız duruma sahip yeni bir Calculator nesnesi oluşturur
  5. this Anahtar Sözcüğü: Örnek değişkenine erişmek için tüm metotların içinde this.result kullan
  6. Metotlar: add, subtract, multiply, divide, clear ve getResult metotlarını uygula
  7. Örnek Değişkenleri: Örnek değişkeni olarak int result = 0 tanımla
  8. Kurucu Temelleri: Calculator() değerini result olarak ayarlayan ve 0 yazdıran bir 'Calculator ready' kurucusu ekle

Metot gereksinimleri:

  • int add(int number): number değerini result değerine ekler, yeni sonucu döndürür
  • int subtract(int number): number değerini result değerinden çıkarır, yeni sonucu döndürür
  • int multiply(int number): result değerini number ile çarpar, yeni sonucu döndürür
  • int divide(int number): result değerini tamsayı bölmesi (number) kullanarak ~/= değerine böler, yeni sonucu döndürür. number değeri 0 ise tam olarak 'Error: Division by zero' yazdırır ve değişmemiş sonucu döndürür
  • void clear(): result değerini 0 olarak sıfırlar
  • int getResult(): geçerli 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

Kendi başına pratik yap: Online Dart derleyicisi