CodeBlanks Logo Icon CodeBlanks

Birleştirme

C# kursu · Orta seviye · Ders 46/116

Quiz sınıfını konsol menüsüyle birleştirirsin.

Birleştirme

Son derste tüm parçaları birleştireceğiz: Question modeli, Quiz sınıfı, AddQuestion, Run ve skor takibi. Main içinde iki soru ekleyip quiz'i oynatacağız.

İki soru eklemek için AddQuestion metodunu iki kez çağırırız. Run metodu bir dizi cevap alır; bu dizi iki elemanlı olmalıdır. Skor dönen değeri alıp Console.WriteLine(score); ile yazdırırız. Böylece tüm parçalar bir arada çalışır.

İki soru, iki cevap

İki soru eklemek için AddQuestion metodunu peş peşe iki kez çağırırız. Run metodu bu iki soruyu sırayla işler; ilk cevap ilk soruya, ikinci cevap ikinci soruya karşılık gelir.

Cevap dizisinin uzunluğu soru sayısına eşit olmalıdır. new[] { "Ankara", "İzmir" } iki cevap gönderir. Beklenen cevaplarla karşılaştırılır; her doğru için skor bir artar. Yanlış cevaplar skoru etkilemez.

Uygulama Quiz'i birleştir

Main içinde bir Quiz üret, iki soru ekle ve quiz.Run(new[] { "Ankara", "İzmir" }) çağrısı yap. Dönen skoru Console.WriteLine(score); ile yazdır. Sorular: Text = "Başkent?", Answer = "Ankara" ve Text = "En büyük şehir?", Answer = "İstanbul".

Örnek çözümü göster
`var quiz = new Quiz(); quiz.AddQuestion(new Question { Text = "Başkent?", Answer = "Ankara" }); quiz.AddQuestion(new Question { Text = "En büyük şehir?", Answer = "İstanbul" }); int score = quiz.Run(new[] { "Ankara", "İzmir" }); Console.WriteLine(score);`
Örnek çözüm:
using System;
using System.Collections.Generic;

class Question
{
    public string Text;
    public string Answer;
}

class Quiz
{
    private List<Question> questions = new List<Question>();

    public void AddQuestion(Question q)
    {
        questions.Add(q);
    }

    public int Count()
    {
        return questions.Count;
    }

    public int Run(string[] answers)
    {
        int score = 0;
        for (int i = 0; i < questions.Count; i++)
        {
            Console.WriteLine(questions[i].Text);
            if (answers[i] == questions[i].Answer)
            {
                Console.WriteLine("Doğru");
                score++;
            }
            else
            {
                Console.WriteLine("Yanlış");
            }
        }
        return score;
    }
}

class Program
{
    static void Main()
    {
        var quiz = new Quiz();
        quiz.AddQuestion(new Question { Text = "Başkent?", Answer = "Ankara" });
        quiz.AddQuestion(new Question { Text = "En büyük şehir?", Answer = "İstanbul" });
        int score = quiz.Run(new[] { "Ankara", "İzmir" });
        Console.WriteLine(score);
    }
}

Quiz tamam

Tebrikler! Beş dersin sonunda çalışan bir Quiz uygulamasına sahipsin. Question modelini tanımladın, Quiz sınıfını kurdun, soru ekledin, oynattın ve skor hesapladın. Tüm parçalar bir arada çalışıyor.

Sonraki gruplarda bu yapıyı genişleteceğiz: interface ile sözleşme tanımlama, abstract sınıf ile ortak davranış paylaşma ve polimorfizm ile farklı soru türlerini aynı koleksiyonda yönetme.

Kendini test et

  1. Birleştirme dersinde ne yapılır?

    • Tüm parçaları bir araya getirip çalışan uygulama elde ederiz.
    • Yeni bir özellik eklenir.
    • Sınıflar silinir.
    • Yalnızca yazdırma düzeltilir.
    Cevabı göster

    Tüm parçaları bir araya getirip çalışan uygulama elde ederiz. — Doğru. Birleştirme tüm parçaları çalışır bütün haline getirir.

  2. Eşleştir: birleştirme parçaları

    iki soru
    AddQuestion iki kez
    Run çağrısı
    iki cevap gönderilir
    skor
    doğru sayısı
    WriteLine
    skoru gösterir
  3. Boşluğu doldur: skoru yazdır

    int score = quiz.Run(answers);
    Console.WriteLine(____);
    Cevabı göster
    int score = quiz.Run(answers);
    Console.WriteLine(score);

Orta seviye bölümündeki tüm dersler