CodeBlanks Logo Icon CodeBlanks

Birleştirme

Tüm parçaları birleştirerek çalışan bir uygulama yazarsın.

Menü ile birleştir

Son derste tüm parçaları bir menüde birleştirirsin. Scanner ile kullanıcıdan seçim alır; 1 ise kitap ekler, 2 ise ödünç alır. Hata yönetimi de menü içine yerleşir.

System.out.print("Seç: ");
int choice = input.nextInt();
if (choice == 1) {
  System.out.print("Başlık: ");
  input.nextLine();
  cat.addBook(input.nextLine());
} else if (choice == 2) {
  try { cat.borrowBook(); }
  catch (IllegalStateException e) {
    System.out.println("Hata: " + e.getMessage());
  }
}

nextInt'ten sonra nextLine ile kalan satırı temizlersin; sonra gerçek başlığı okursun. Bu, daha önce öğrendiğin nextInt/nextLine tuzağını çözer. Menü, tüm becerileri tek akışta toplar.

Tüm parçalar bir arada

Bu derste Book sınıfı, Catalog sınıfı (addBook, borrowBook, throw) ve Scanner menüsü birleşir. Kullanıcı bir kitap ekler ve ödünç alır; tüm hatalar yakalanır.

Başlangıç kodu önceki derslerin çözümünü içerir; sen yalnızca menü döngüsünü yazacaksın. Bu, başlangıç seviyesinin final görevidir: değişkenler, koşullar, döngüler, koleksiyonlar, yöntemler, istisnalar ve girdi/çıktı hepsi tek uygulamada.

Uygulama Menüyü çalıştır

main'de menüyü yaz: System.out.print("Seç: ") ile bilgi iste, nextInt() ile seçim al. if (choice == 1) ise print("Başlık: "), nextLine() ile satırı temizle, tekrar nextLine() ile başlığı oku ve cat.addBook(...) çağır. else if (choice == 2) ise try { cat.borrowBook(); } ve catch (IllegalStateException e) ile Hata: yazdır. Son olarak cat.books yazdır. Kullanıcı önce 1, sonra Suç ve Ceza yazacak.

Başlangıç kodu

Main.java
import java.util.ArrayList;
import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Catalog cat = new Catalog();
    Scanner input = new Scanner(System.in);
    // Seç: yaz, nextInt ile seçim al, 1 ise başlık iste ve ekle, 2 ise borrowBook çağır
    // Sonra cat.books yazdır
  }
}

class Book {
  String title;
  boolean available;
  Book(String title) {
    this.title = title;
    this.available = true;
  }
  public String toString() {
    return (available ? "[müsait] " : "[ödünç] ") + title;
  }
}

class Catalog {
  ArrayList<Book> books = new ArrayList<>();
  void addBook(String title) {
    books.add(new Book(title));
  }
  void borrowBook() {
    for (Book b : books) {
      if (b.available) {
        b.available = false;
        return;
      }
    }
    throw new IllegalStateException("Müsait kitap yok");
  }
}

Örnek çözüm

Main.java
System.out.print("Seç: ");
int choice = input.nextInt();
if (choice == 1) {
  System.out.print("Başlık: ");
  input.nextLine();
  cat.addBook(input.nextLine());
} else if (choice == 2) {
  try { cat.borrowBook(); }
  catch (IllegalStateException e) {
    System.out.println("Hata: " + e.getMessage());
  }
}
System.out.println(cat.books);

Beklenen çıktı

Seç: Başlık: [[müsait] Suç ve Ceza]

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Menü seçimini eylemiyle eşleştir

Kavram Anlamı
1 Kitap ekle
2 Ödünç al
Seç: Bilgi iste
Hata: Hata mesajı

2 Scanner oluştur

Soru
Scanner input = new Scanner(System.____);
Cevap
Scanner input = new Scanner(System.in);

Açıklama: System.in konsol girdisidir ve Scanner'ı buna bağlarsın.

3 Menüde 1 seçilince ne olur?

  • Kitap ödünç alınır
  • Hata fırlatır
  • Program kapanır
  • Kullanıcıdan başlık istenir ve eklenir Doğru cevap

Açıklama: 1 seçilince başlık istenir, nextLine ile okunur ve addBook ile eklenir.

Başlangıç bölümündeki tüm dersler