Dart
Birleştirme
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.
Örnek çözümü göster
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ış']);
}
Kendini test et
-
Hangi sıra mantıklı?
- grade, play, addQuestion
- addQuestion, grade, play
- play, addQuestion, grade
- addQuestion, play, grade
Cevabı göster
addQuestion, play, grade — önce sorular eklenir, sonra oynatılır, en son değerlendirilir.
-
Metotları amacına eşleştir
- addQuestion
- Soru ekleme
- play
- Soruları gösterme
- grade
- Cevap değerlendirme
- questions.length
- Soru sayısı
-
İ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ış']);
}
Cevabı göster
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ış']);
}
Sıradaki ders: List