Skor hesaplama
- C++ kursu
- Orta seviye
- Ders 45/116
- 6 dk
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
#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
#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?
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
class Quiz { public: std::vector<Question> questions; int ____ = 0; };
class Quiz { public: std::vector<Question> questions; int score = 0; };
Açıklama: score üye değişkeni 0 ile başlatılır.