Birleştirme
- Dart kursu
- Orta seviye
- Ders 40/116
- 6 dk
Quiz sınıfını menü döngüsüyle birleştirirsin.
Birleştirme
Artık tüm parçaları birleştirme zamanı. Question sınıfı, Quiz sınıfı, addQuestion, play ve grade metotları hazır. Geriye yalnızca main içinde quiz'i oluşturmak, soru eklemek, oynatmak ve değerlendirmek kalıyor.
Çalışan oturum şöyle olur: quiz oluştur, iki soru ekle, play() ile soruları göster, grade() ile cevapları değerlendir. Çıktı hem soruları hem skoru içerir.
Bu, nesne yönelimli bir uygulamanın nasıl parça parça kurulduğunu gösterir. Her ders bir tuğla ekledi; şimdi bina tamam.
Çalışan oturum
Tüm sınıflar tanımlı. main içinde quiz oluştur, iki soru ekle, play() ve grade() çağır. Çıktı önce numaralı soruları, sonra skoru gösterir.
İki soru ve ['Ankara', 'Yanlış'] cevap listesiyle çıktı şöyle olur: 1. Başkent nerede?, 2. Kaç gün bir hafta?, Skor: 1. Bir cevap doğru, biri yanlış.
Proje tamam! OOP, listeler, döngüler ve koşulları bir arada kullandın. Bu yapıyı genişleterek daha büyük quiz uygulamaları kurabilirsin.
Uygulama Çalışan quiz
Tüm sınıflar tanımlı (Question, Quiz, addQuestion, play, grade). main içinde bir Quiz oluştur, iki soru ekle ('Başkent nerede?', 'Ankara' ve 'Kaç gün bir hafta?', '7'), quiz.play() ve quiz.grade(['Ankara', 'Yanlış']) çağır.
Başlangıç kodu
class Question {
String text;
String answer;
Question(this.text, this.answer);
}
class Quiz {
List<Question> questions = [];
int score = 0;
void addQuestion(Question q) {
questions.add(q);
}
void play() {
for (var i = 0; i < questions.length; i++) {
print('${i + 1}. ${questions[i].text}');
}
}
void grade(List<String> answers) {
score = 0;
for (var i = 0; i < questions.length; i++) {
if (answers[i] == questions[i].answer) {
score++;
}
}
print('Skor: $score');
}
}
// main içinde quiz oluştur, iki soru ekle, play ve grade çağır
void main() {
// quiz oluştur, iki soru ekle, play ve grade çağır
}Örnek çözüm
class Question {
String text;
String answer;
Question(this.text, this.answer);
}
class Quiz {
List<Question> questions = [];
int score = 0;
void addQuestion(Question q) {
questions.add(q);
}
void play() {
for (var i = 0; i < questions.length; i++) {
print('${i + 1}. ${questions[i].text}');
}
}
void grade(List<String> answers) {
score = 0;
for (var i = 0; i < questions.length; i++) {
if (answers[i] == questions[i].answer) {
score++;
}
}
print('Skor: $score');
}
}
void main() {
var quiz = Quiz();
quiz.addQuestion(Question('Başkent nerede?', 'Ankara'));
quiz.addQuestion(Question('Kaç gün bir hafta?', '7'));
quiz.play();
quiz.grade(['Ankara', 'Yanlış']);
}Beklenen çıktı
1. Başkent nerede? 2. Kaç gün bir hafta? Skor: 1
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Hangi sıra mantıklı?
- grade, play, addQuestion
- addQuestion, grade, play
- play, addQuestion, grade
- addQuestion, play, grade Doğru cevap
Açıklama: önce sorular eklenir, sonra oynatılır, en son değerlendirilir.
2 Metotları amacına eşleştir
| Kavram | Anlamı |
|---|---|
addQuestion |
Soru ekleme |
play |
Soruları gösterme |
grade |
Cevap değerlendirme |
questions.length |
Soru sayısı |
3 İkinci soruyu ekle
void main() {
var quiz = Quiz();
quiz.addQuestion(Question('Başkent nerede?', 'Ankara'));
____.addQuestion(Question('Kaç gün bir hafta?', '7'));
quiz.play();
quiz.grade(['Ankara', 'Yanlış']);
}
void main() {
var quiz = Quiz();
quiz.addQuestion(Question('Başkent nerede?', 'Ankara'));
quiz.addQuestion(Question('Kaç gün bir hafta?', '7'));
quiz.play();
quiz.grade(['Ankara', 'Yanlış']);
}
Açıklama: quiz.addQuestion ile ikinci soru eklenir.