Soru ekleme
- C++ kursu
- Orta seviye
- Ders 43/116
- 6 dk
addQuestion metoduyla quiz'e soru eklemeyi öğrenirsin.
Soru ekleme
Şimdi Quiz sınıfına soru ekleme özelliği ekleyeceğiz. std::vector<Question> ile soruları saklarız ve addQuestion metoduyla yeni soru ekleriz.
Örnek: void addQuestion(std::string text, std::string answer) { questions.push_back({text, answer}); }. Burada push_back yeni bir Question oluşturup vector sonuna ekler. main içinde quiz.addQuestion("Başkent?", "Ankara"); ile soru eklersin. Önceki dersin "Quiz hazır" çıktısının altına soru sayısını yazdırırız.
vector ve push_back
std::vector, C++'ta dinamik dizi sağlar. push_back metodu sona eleman ekler; size() eleman sayısını döndürür.
Önceki derste tanımladığımız Quiz sınıfına std::vector<Question> questions; üyesi ekleriz. İki soru ekleyip questions.size() ile sayısını yazdırırız. Bu, quizin veri yapısını kurar. Sonraki derslerde bu soruları oynatacağız ve skor hesaplayacağız.
Uygulama Quiz'e addQuestion metodunu ekle
Önceki dersin Question ve Quiz iskeletini al. Quiz sınıfına public: altına std::vector<Question> questions; üyesi ve void addQuestion(std::string text, std::string answer) metodu ekle; gövdesi questions.push_back({text, answer});. main içinde bir Quiz oluştur, iki soru ekle ve std::cout << "Quiz hazır" << std::endl; std::cout << quiz.questions.size() << " soru eklendi"; yaz.
Başlangıç kodu
#include <iostream>
#include <string>
struct Question {
std::string text;
std::string answer;
};
class Quiz {
};
int main() {
std::cout << "Quiz hazır";
// addQuestion metodunu ekle ve iki soru ekle, sayıyı 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;
void addQuestion(std::string text, std::string answer) {
questions.push_back({text, answer});
}
};
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";
return 0;
}Beklenen çıktı
Quiz hazır 2 soru eklendi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 addQuestion çağrısını tamamla
quiz.____("Başkent?", "Ankara");
quiz.addQuestion("Başkent?", "Ankara");
Açıklama: addQuestion metodu ile soru eklenir.
2 Bileşeni rolüne eşle
| Kavram | Anlamı |
|---|---|
std::vector<Question> |
Soru listesi |
push_back |
Sona ekleme |
size() |
Eleman sayısı |
addQuestion |
Ekleme metodu |
3 push_back ne yapar?
questions.push_back({text, answer});- Sona eleman ekler Doğru cevap
- Vector boyutunu küçültür
- İlk elemanı siler
- İndeks döndürür
Açıklama: push_back, vector'ün sonuna yeni eleman ekler.