Birleştirme
- C++ kursu
- Orta seviye
- Ders 46/116
- 6 dk
Quiz sınıfını konsol menüsüyle birleştirirsin.
Birleştirme
Son ders olarak Quiz sınıfına reset() metodu ekleyip uygulamayı tamamlıyoruz. reset() skoru sıfırlar; quiz yeniden başlatılabilir.
Tüm parçalar artık bir arada: Question yapısı, addQuestion, run, getScore ve reset metotları. main bir quiz oluşturur, soru ekler, oynatır, skoru yazdırır ve sıfırlar. Bu, birikimli bir proje örneğidir: her ders bir öncekinin üzerine inşa edilmiştir.
Proje tamamlandı
Projeyi tamamladın! Beş ders boyunca bir Quiz sınıfını aşama aşama inşa ettin. Bu, gerçek dünya yazılım geliştirmenin küçük bir örneğidir.
Önce veri modelini (Question) tanımladın, sonra soru ekleme, oynatma, skor ve sıfırlama metotlarını ekledin. Her dersin başlangıç kodu önceki çözümü içeriyordu; böylece kod birikimli büyüdü. Bu yaklaşım, büyük projeleri küçük adımlara bölmenin gücünü gösterir.
Uygulama Quiz'e reset metodunu ekle
Önceki dersin Quiz sınıfını al. getScore() metodundan sonra void reset() ekle; gövdesi score = 0;. main içinde std::cout << "Skor: " << quiz.getScore(); satırının sonuna << std::endl ekle, ardından quiz.reset(); ve std::cout << "Sıfırlandı"; yaz.
Başlangıç kodu
#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();
// reset metodunu ekle ve çağır, mesaj 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;
}
void reset() {
score = 0;
}
};
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() << std::endl;
quiz.reset();
std::cout << "Sıfırlandı";
return 0;
}Beklenen çıktı
Quiz hazır 2 soru eklendi Soru: Başkent? Soru: En büyük gezegen? Skor: 2 Sıfırlandı
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Metodu amacına eşle
| Kavram | Anlamı |
|---|---|
addQuestion |
Soru ekleme |
run |
Quiz oynatma |
getScore |
Skor okuma |
reset |
Sıfırlama |
2 reset() metodu ne yapar?
void reset() { score = 0; }- Metodları gizler
- Soruları siler
- Programı kapatır
- Skoru sıfırlar Doğru cevap
Açıklama: reset(), score değişkenini 0 yapar.
3 reset çağrısını tamamla
quiz.____();
quiz.reset();
Açıklama: quiz.reset(); ile skor sıfırlanır.