เปิดโครงการ Visual Basic ใหม่ เพิ่มป้ายชื่อสองป้าย ปุ่มตัวเลือกสามปุ่ม และตัวควบคุมปุ่มสองปุ่มในแบบฟอร์ม ลากป้ายกำกับทั้งสองไปที่ด้านบนด้วย Label1 ที่ด้านบนของ Label2 ลาก RadioButton1, RadioButton2 และ RadioButton3 เพื่อจัดเรียงในแนวตั้งใต้ป้ายกำกับ ลากสองปุ่มใต้ปุ่มตัวเลือกด้วย Button1 ทางด้านซ้ายและ Button2 ทางด้านขวา
บรรทัดแรกสร้างอาร์เรย์สองมิติ มิติแรกมีไว้สำหรับคำถามแต่ละข้อ และมิติที่สองมีไว้สำหรับตัวคำถามเอง สามตัวเลือกคำตอบและคำตอบที่ถูกต้อง บรรทัดที่สองสร้างอาร์เรย์เพื่อเก็บคำตอบของผู้ใช้ บรรทัดที่สามสร้างตัวแปรตัวนับที่ติดตามคำถามที่ผู้ใช้เปิดอยู่
Private Sub GetQuestions() คำถาม = สตริงใหม่ (,) {{"รุ้งมีกี่สี", "5", "6", "7", "7"}, {"ใครแสดงใน Pirates of the Caribbean", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"เมืองหลวงของฟลอริดาคืออะไร", "ไมอามี่", "แทลลาแฮสซี", "แจ็กสันวิลล์", "แทลลาแฮสซี"}} End Sub
รูทีนย่อยนี้เริ่มต้นคำถามและคำตอบสามข้อในอาร์เรย์คำถาม คุณสามารถเพิ่มคำถามเพิ่มเติมหรือสอบถามด้วยวิธีอื่นได้ เช่น ผ่านไฟล์ข้อความ แต่ถ้าคุณ ทำอย่าลืมเปลี่ยนขนาดของคำถามและคำตอบอาร์เรย์เพื่อรองรับจำนวน คำถาม.
Private Sub MarkTest() Dim grade As Integer = 0 For i = 0 To 2 ถ้าคำตอบ (i) = คำถาม (i, 4) แล้ว เกรด += 1 จบ ถ้า Next Label1.Text = "ทดสอบเสร็จแล้ว!" Label2.Text = "คุณได้คะแนน " & เกรด & " ออกจาก " & คำตอบ ความยาว & "!" RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = ปลายทางเท็จ
บรรทัดแรกประกาศรูทีนย่อยที่ทำเครื่องหมายการทดสอบ จะสร้างตัวแปรท้องถิ่นเพื่อนับคะแนน จากนั้นวนรอบคำตอบในอาร์เรย์คำถามและคำตอบที่ผู้ใช้ส่งมา สำหรับคำตอบแต่ละข้อที่ตรงกัน คะแนนจะเพิ่มขึ้นทีละหนึ่ง จากนั้นจะแสดงคะแนนในป้ายกำกับและปิดใช้งานส่วนควบคุมที่เหลือ
ฉัน. Text = "แบบทดสอบตัวเลือกของฉัน!" GetQuestions() quesNum = 1 Label1.Text = "คำถาม " & quesNum & " ของ " & คำตอบ Label2.Text = คำถาม (0, 0) Button1.Text = "ก่อนหน้า" Button2.Text = "ถัดไป" RadioButton1.Text = คำถาม (0, 1) RadioButton2.Text = คำถาม (0, 2) RadioButton3.Text = คำถาม (0, 3)
บรรทัดแรกตั้งชื่อในแถบชื่อเรื่อง บรรทัดถัดไปเรียกรูทีนย่อย GetQuestions() บรรทัดที่สามเริ่มต้นตัวแปรตัวนับคำถาม บรรทัดที่สี่แสดงหมายเลขคำถามที่ผู้ใช้อยู่ บรรทัดที่ห้าแสดงคำถามที่หนึ่งในป้ายกำกับ บรรทัดที่หกและเจ็ดเปลี่ยนข้อความสำหรับสองปุ่ม สามบรรทัดสุดท้ายแทรกสามคำตอบแบบปรนัยเป็นข้อความสำหรับปุ่มตัวเลือกสามปุ่ม
ถ้า quesNum > 1 แล้ว quesNum -= 1 Label1.Text = "Question " & quesNum & " of 3" Label2.Text = คำถาม (quesNum - 1, 0) RadioButton1.Text = คำถาม (quesNum - 1, 1) RadioButton2.Text = คำถาม (quesNum - 1, 2) RadioButton3.Text = คำถาม (quesNum - 1, 3) ถ้า Button2.Text = "ส่ง" จากนั้น Button2.Text = "ถัดไป" สิ้นสุดถ้าสิ้นสุดถ้า
นี่คือรหัสสำหรับปุ่ม "ก่อนหน้า" ก่อนอื่นจะตรวจสอบเพื่อดูว่าผู้ใช้กดปุ่มในขณะที่คำถามแรกอยู่แล้วหรือไม่ หากไม่เป็นเช่นนั้น ระบบจะลดตัวนับคำถามทีละหนึ่งและอัปเดตข้อความสำหรับป้ายกำกับและปุ่มตัวเลือกเพื่อแสดงคำถามก่อนหน้า หากผู้ใช้อยู่ในคำถามสุดท้าย ข้อความบน Button2 จะเปลี่ยนจาก "ส่ง" กลับไปเป็น "ถัดไป"
ถ้า RadioButton1.Checked = True คำตอบ (quesNum - 1) = RadioButton1.Text ElseIf RadioButton2.Checked = True แล้วคำตอบ (quesNum - 1) = RadioButton2.Text ElseIf RadioButton3.Checked = True แล้วตอบ (quesNum - 1) = RadioButton3.Text End ถ้า RadioButton1.Focus() ถ้า quesNum < 3 แล้ว quesNum += 1 Label1.Text = "Question " & quesNum & " of " & คำตอบ ความยาว Label2.Text = คำถาม (quesNum - 1, 0) RadioButton1.Text = คำถาม (quesNum - 1, 1) RadioButton2.Text = คำถาม (quesNum - 1, 2) RadioButton3.Text = คำถาม (quesNum - 1, 3) ถ้า quesNum = 3 จากนั้น Button2.Text = "ส่ง" สิ้นสุดหากเป็นอย่างอื่น MarkTest () จบถ้า
นี่คือรหัสสำหรับปุ่ม "ถัดไป" เจ็ดบรรทัดแรกตรวจสอบเพื่อดูว่าผู้ใช้เลือกปุ่มตัวเลือกใด จากนั้นบันทึกคำตอบนั้นลงในอาร์เรย์คำตอบ บรรทัดถัดไปเน้นการเลือกปุ่มตัวเลือกบน RadioButton1 บรรทัดถัดไปจะตรวจสอบว่าผู้ใช้ไม่อยู่ในคำถามสุดท้าย หากเป็นจริง จะเพิ่มตัวนับคำถามหนึ่งตัวและอัปเดตป้ายกำกับและปุ่มตัวเลือกเพื่อแสดงคำถามถัดไป จากนั้นจะตรวจสอบเพื่อดูว่าผู้ใช้อยู่ในคำถามสุดท้ายหรือไม่ หากเป็นเช่นนั้น ระบบจะเปลี่ยนข้อความสำหรับปุ่มถัดไปจาก "ถัดไป" เป็น "ส่ง" หากผู้ใช้อยู่ใน .แล้ว คำถามสุดท้ายและคลิก "ส่ง" โปรแกรมเรียกใช้ฟังก์ชัน "MarkTest" เพื่อรับคะแนนของผู้ใช้