Yeni bir Visual Basic projesi açın. Forma iki etiket, üç radyo düğmesi ve iki düğme denetimi ekleyin. İki etiketi, Label1'in Label2'nin üstünde olacak şekilde en üste sürükleyin. Etiketlerin altında dikey olarak hizalamak için RadioButton1, RadioButton2 ve RadioButton3'ü sürükleyin. Düğme1 solda ve Düğme2 sağda olacak şekilde radyo düğmelerinin altındaki iki düğmeyi sürükleyin.
İlk satır iki boyutlu bir dizi oluşturur. Birinci boyut her soru için, ikinci boyut ise sorunun kendisi, üç cevap seçeneği ve doğru cevap içindir. İkinci satır, kullanıcının yanıtlarını depolamak için bir dizi oluşturur. Üçüncü satır, kullanıcının üzerinde bulunduğu soruyu takip eden bir sayaç değişkeni oluşturur.
Private Sub GetQuestions() soruları = New String(,) {{"Gökkuşağında kaç renk var?", "5", "6", "7", "7"}, {"Karayip Korsanları'nda kimler rol aldı?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"Florida'nın başkenti neresidir?", "Miami", "Tallahassee", "Jacksonville", "Tallahassee"}} End Sub
Bu alt program, sorular dizisindeki üç soruyu ve yanıtı basitçe başlatır. Ek sorular ekleyebilir veya bunları bir metin dosyası gibi başka yollarla alabilirsiniz, ancak yapma, soru ve cevap dizilerinin boyutunu değiştirmeyi unutmayın. sorular.
Private Sub MarkTest() Dim not As Integer = 0 For i = 0 - 2 Eğer cevaplar (i) = sorular (i, 4) O zaman grade += 1 End If Next If Next Label1.Text = "Test tamamlandı!" Label2.Text = "Puan aldınız " & not & " üzerinden " & Yanıtlar. Uzunluk & "!" RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = False End Sub
İlk satır, testi işaretleyen bir alt program bildirir. Puanı saymak için yerel bir değişken oluşturur, ardından soru dizisindeki yanıtlar ve kullanıcı tarafından gönderilen yanıtlar arasında geçiş yapar. Eşleşen her cevap için not bir artar. Ardından, puanları etiketlerde görüntüler ve geri kalan kontrolleri devre dışı bırakır.
Ben mi. Metin = "Çoktan Seçmeli Testim!" GetQuestions() quesNum = 1 Label1.Text = "Soru " & quesNum & " of " & cevaplar. Uzunluk Label2.Text = sorular (0, 0) Button1.Text = "Önceki" Button2.Text = "Sonraki" RadioButton1.Text = sorular (0, 1) RadioButton2.Text = sorular (0, 2) RadioButton3.Text = sorular (0, 3)
İlk satır, başlık çubuğunda başlığı ayarlar. Sonraki satır GetQuestions() alt yordamını çağırır. Üçüncü satır, soru sayacı değişkenini başlatır. Dördüncü satır, kullanıcının hangi soru numarasında olduğunu gösterir. Beşinci satır, etikette birinci soruyu görüntüler. Altıncı ve yedinci satırlar, iki düğmenin metnini değiştirir. Son üç satır, üç radyo düğmesi için metin olarak üç çoktan seçmeli yanıtı ekler.
quesNum > 1 ise quesNum -= 1 Label1.Text = "Soru" & quesNum & " of 3" Label2.Text = sorular (quesNum - 1, 0) RadioButton1.Text = sorular (quesNum - 1, 1) RadioButton2.Text = sorular (quesNum - 1, 2) RadioButton3.Text = sorular (quesNum - 1, 3) ise Button2.Text = "Gönder" O zaman Button2.Text = "Sonraki" Bitir If End If
Bu, "Önceki" düğmesinin kodudur. İlk önce, kullanıcının ilk sorudayken düğmeye basıp basmadığını kontrol eder. Değilse, soru sayacını birer birer azaltır ve etiketlerin ve radyo düğmelerinin metnini önceki soruyu gösterecek şekilde günceller. Kullanıcı son sorudaysa, Button2'deki metin "Gönder"den "İleri"ye döner.
RadioButton1.Checked = True ise cevaplar (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True O zaman cevaplar (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True O zaman cevaplar (quesNum - 1) = RadioButton3.Text Eğer RadioButton1.Focus() End ise quesNum < 3 ise quesNum += 1 Label1.Text = "Soru " & quesNum & " / " & Yanıtlar. Uzunluk Label2.Text = sorular (quesNum - 1, 0) RadioButton1.Text = sorular (quesNum - 1, 1) RadioButton2.Text = sorular (quesNum - 1, 2) RadioButton3.Text = sorular (quesNum - 1, 3) Eğer quesNum = 3 ise Button2.Text = "Gönder" Else ise Bitir MarkTest() Bitir
Bu, "İleri" düğmesinin kodudur. İlk yedi satır, kullanıcının hangi radyo düğmesini seçtiğini kontrol eder, ardından bu yanıtı yanıtlar dizisine kaydeder. Sonraki satır, RadioButton1'deki radyo düğmesi seçimine odaklanır. Sonraki satır, kullanıcının son soruda olmadığını kontrol eder. Bu doğruysa, soru sayacını birer birer artırır ve sonraki soruyu göstermek için etiketleri ve radyo düğmelerini günceller. Ardından, kullanıcının şimdi son soruda olup olmadığını kontrol eder. Öyleyse, İleri düğmesinin metnini "İleri"den "Gönder"e değiştirir. Kullanıcı zaten son soru ve "Gönder" tıklandığında, program kullanıcının puanını almak için "MarkTest" işlevini çağırır.