CodeBlanks Logo Icon CodeBlanks

Skor hesaplama

Skor hesaplama metoduyla doğru sayısını öğrenirsin.

Skor hesaplama

Şimdi Quiz sınıfına skor takibi ekleyeceğiz. int score üyesi tutulur ve run() içinde her soru için artırılır. getScore() metodu skoru döndürür.

Örnek: int score = 0; üye değişken. run() içinde score++; ile her soruda bir artırırız. int getScore() { return score; } ile skoru okuruz. main içinde std::cout << "Skor: " << quiz.getScore(); yazılır. Bu örnekte her soru doğru sayıldığı için skor soru sayısına eşit olur.

Skor ve üye değişken

score üye değişkeni Quiz sınıfının bir parçasıdır. run() her çağrıldığında artar; bu durum bilgisini nesne taşır.

Bu tasarımda score her soru için bir puan ekler. Gerçek bir quizde cevap kontrolü yapılır; ama bu projede girdi okuma olmadığı için her soruyu doğru kabul ediyoruz. getScore() metodu skoru dışarıya açar. Böylece quiz bittiğinde sonucu yazdırabiliriz.

Uygulama Quiz'e skor takibi ekle

Önceki dersin Quiz sınıfını al. questions üyesinden sonra int score = 0; ekle. run() içinde std::cout satırından sonra score++; ekle. public: altına int getScore() ekle; gövdesi return score;. main içinde quiz.run(); satırından sonra std::cout << "Skor: " << quiz.getScore(); ekle.

Başlangıç kodu

main.cpp
#include <iostream>
#include <string>
#include <vector>

struct Question {
    std::string text;
    std::string answer;
};

class Quiz {
public:
    std::vector<Question> questions;
    void addQuestion(std::string text, std::string answer) {
        questions.push_back({text, answer});
    }
    void run() {
        for (const auto& q : questions) {
            std::cout << "Soru: " << q.text << std::endl;
        }
    }
};

int main() {
    Quiz quiz;
    quiz.addQuestion("Başkent?", "Ankara");
    quiz.addQuestion("En büyük gezegen?", "Jüpiter");
    std::cout << "Quiz hazır" << std::endl;
    std::cout << quiz.questions.size() << " soru eklendi" << std::endl;
    quiz.run();
    // score ekle ve getScore metodunu yaz, skoru yazdır
    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <string>
#include <vector>

struct Question {
    std::string text;
    std::string answer;
};

class Quiz {
public:
    std::vector<Question> questions;
    int score = 0;
    void addQuestion(std::string text, std::string answer) {
        questions.push_back({text, answer});
    }
    void run() {
        for (const auto& q : questions) {
            std::cout << "Soru: " << q.text << std::endl;
            score++;
        }
    }
    int getScore() {
        return score;
    }
};

int main() {
    Quiz quiz;
    quiz.addQuestion("Başkent?", "Ankara");
    quiz.addQuestion("En büyük gezegen?", "Jüpiter");
    std::cout << "Quiz hazır" << std::endl;
    std::cout << quiz.questions.size() << " soru eklendi" << std::endl;
    quiz.run();
    std::cout << "Skor: " << quiz.getScore();
    return 0;
}

Beklenen çıktı

Quiz hazır
2 soru eklendi
Soru: Başkent?
Soru: En büyük gezegen?
Skor: 2

Soru ve cevaplar

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

1 getScore() ne döndürür?

main.cpp
int getScore() { return score; }
  • Soru sayısını
  • Vector'ü
  • Skoru Doğru cevap
  • Boş değeri

Açıklama: getScore(), score üyesinin değerini döndürür.

2 Bileşeni rolüne eşle

Kavram Anlamı
int score Skor üyesi
score++ Artırma
getScore() Skor okuma
return score Geri döndürme

3 Skor üye değişkenini tamamla

Soru
class Quiz { public: std::vector<Question> questions; int ____ = 0; };
Cevap
class Quiz { public: std::vector<Question> questions; int score = 0; };

Açıklama: score üye değişkeni 0 ile başlatılır.

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