Java ile bir hesap makinesi yazacaksın. Calculator sınıfını tamamlayarak metod tanımlama, koşullu ifadeler, döngüler ve sabit boyutlu dizi konularını pekiştireceksin. (CalculatorApp hazır verildi — sınıfını bitirince çalıştırıp sonucu görürsün.) Tahmini süre: 2–3 saat.
- Metod tanımlama ve parametre geçişi
- Koşullu ifadeler (
if,switch) - Döngüler (
while,for) - Sabit boyutlu dizi (
String[]) ile veri tutma - Basit state yönetimi (FIFO geçmiş)
- Java 17 veya üzeri kurulu olmalı (
java -version). - IDE: IntelliJ IDEA (Community ücretsiz) veya VS Code + Java Extension Pack.
src/Calculator.javaiçindeki her// TODO'yu sırayla çöz.CalculatorApp'i çalıştırarak sınıfını deneyebilirsin (hazır demo, değiştirme gerekmez).
add(TODO 1–3):a + b'yi hesapla,addHistoryile"a + b = sonuç"kaydet, sonucu döndür.subtract(TODO 4–6): Aynı pattern, çıkarma.multiply(TODO 7–9): Aynı pattern, çarpma.divide(TODO 10–13):b == 0ise ekrana"Sıfıra bölme yapılamaz!"yaz ve0döndür (geçmişe ekleme). Değilse böl, geçmişe ekle, döndür.addHistory(TODO 14–15): Dizi dolmamışsa doğrudan ekle. Doluysa FIFO: hepsini bir sola kaydır, sona yaz.printHistory(TODO 16–17): Boşsa bilgi mesajı; değilse1. ...,2. ...biçiminde listele.
💡
HISTORY_SIZEdeğeri tanımlı — onu kullan, koda10yazma. FIFO kaydırma:for (int i = 1; i < history.length; i++) history[i-1] = history[i];Geçmiş formatı tutarlı olsun:"5.0 + 3.0 = 8.0".
src/CalculatorApp.java hazır bir demo — birkaç işlem yapıp sonuçları ve geçmişi ekrana yazar. Sen bir şey yazmazsın; Calculator'ı bitirince çalıştır, metodlarının çalıştığını gör.
CalculatorApp'i çalıştırınca (sınıf tamamlandığında) şuna benzer bir çıktı görürsün:
=== Basit Hesap Makinesi (Demo) ===
5 + 3 = 8.0
10 - 4 = 6.0
6 * 7 = 42.0
8 / 2 = 4.0
Sıfıra bölme denemesi:
Sıfıra bölme yapılamaz!
--- İşlem Geçmişi ---
1) 5.0 + 3.0 = 8.0
2) 10.0 - 4.0 = 6.0
3) 6.0 * 7.0 = 42.0
4) 8.0 / 2.0 = 4.0
Projede 12 JUnit testi var (tests/CalculatorTest.java — sıfıra bölme, FIFO geçmiş, kapasite korunması). Testleri çalıştırınca skorun otomatik Kaizu paneline işlenir — ayrı bir "tamamladım" adımı yok.
1. Öğrenci numaranı gir. student_id.txt dosyasını aç, 123456'yı sil, Kaizu'daki öğrenci numaranı yaz, kaydet. (Bir kez yaparsın.)
2. Testleri çalıştır.
- macOS / Linux:
./run-tests.sh - Windows:
.\run-tests.ps1
İlk çalıştırmada JUnit kütüphanesi (~6 MB) lib/'e otomatik iner. Başlangıçta testler kırmızıdır; TODO'ları çözdükçe yeşile döner.
3. Skor otomatik gider. Testler bitince çıktının sonunda görürsün:
[Kaizu] ✅ Skorun (100/100) kaydedildi. Panelde tik birazdan görünür.
Tüm testler geçince (100/100) panelde yeşil tik gelir.
Skor için testleri
run-tests.shile çalıştır (tüm testleri koşar). IDE'de tek bir testi çalıştırmak geliştirme/hata ayıklama içindir, panele işlemez.
^üs alma:Math.pow(a, b).- Mod işlemi:
%operatörü. - Geçmişi dosyaya kaydet (dosya I/O ileride gelecek).
Takılırsan proje sayfasındaki "Çözümü Göster" butonunu kullan (proje verildikten 3 gün sonra açılır). Ama önce en az 1 saat kendin uğraş — tests/CalculatorTest.java en iyi ipucu.