გახსენით ახალი Visual Basic პროექტი. ფორმას დაამატეთ ორი ლეიბლი, სამი რადიო ღილაკი და ორი ღილაკი. გადაიტანეთ ორი ეტიკეტი ზევით Label1-ით Label2-ის თავზე. გადაათრიეთ RadioButton1, RadioButton2 და RadioButton3 ეტიკეტების ქვეშ ვერტიკალურად დასალაგებლად. გადაიტანეთ ორი ღილაკი რადიოს ღილაკების ქვეშ ღილაკი 1 მარცხნივ და ღილაკი 2 მარჯვნივ.
პირველი ხაზი ქმნის ორგანზომილებიან მასივს. პირველი განზომილება არის თითოეული შეკითხვისთვის, ხოლო მეორე განზომილება არის თავად კითხვისთვის, სამი პასუხის არჩევანი და სწორი პასუხი. მეორე ხაზი ქმნის მასივს მომხმარებლის პასუხების შესანახად. მესამე ხაზი ქმნის მრიცხველ ცვლადს, რომელიც თვალყურს ადევნებს მომხმარებლის მიერ დასმულ შეკითხვას.
Private Sub GetQuestions() შეკითხვები = New String(,) {{"რამდენი ფერია ცისარტყელაში?", "5", "6", "7", "7"}, {"ვინ ითამაშა კარიბის ზღვის მეკობრეებში?", "Johnny Depp", "John Malkovich", "John Cusack", "Johnny Depp"}, {"რომელია ფლორიდის დედაქალაქი?", "მაიამი", "ტალაჰასი", "ჯექსონვილი", "ტალაჰასი"}} ბოლო ქვე
ეს ქვეპროგრამა უბრალოდ აყალიბებს სამი კითხვა-პასუხს კითხვების მასივში. შეგიძლიათ დაამატოთ დამატებითი კითხვები ან მიიღოთ ისინი სხვა გზებით, მაგალითად, ტექსტური ფაილის საშუალებით, მაგრამ თუ თქვენ გააკეთეთ, დაიმახსოვრეთ შეცვალოთ კითხვა-პასუხის მასივების ზომა, რათა დააკმაყოფილოთ რაოდენობა კითხვები.
Private Sub MarkTest() Dim grade როგორც მთელი რიცხვი = 0 For i = 0-დან 2-მდე თუ პასუხები (i) = კითხვები (i, 4) მაშინ grade += 1 End If Next Label1.Text = "ტესტი დასრულდა!" Label2.Text = "თქვენ მიიღეთ ქულა " & შეფასება & " გარეთ " & პასუხები. სიგრძე & "!" RadioButton1.Enabled = False RadioButton2.Enabled = False RadioButton3.Enabled = False Button1.Enabled = False Button2.Enabled = False End Sub
პირველი ხაზი აცხადებს ქვეპროგრამას, რომელიც აღნიშნავს ტესტს. ის ქმნის ლოკალურ ცვლადს ქულების დასათვლელად, შემდეგ ციკლის მეშვეობით პასუხობს კითხვების მასივში და მომხმარებლის მიერ წარდგენილ პასუხებს. თითოეული პასუხისთვის, რომელიც ემთხვევა, შეფასება იზრდება ერთით. შემდეგ აჩვენებს ქულას ეტიკეტებში და გამორთავს დანარჩენ კონტროლს.
მე. ტექსტი = "ჩემი მრავალჯერადი არჩევანის ვიქტორინა!" GetQuestions() quesNum = 1 Label1.Text = "კითხვა" & quesNum & " of " & პასუხები. სიგრძე Label2.Text = კითხვები (0, 0) Button1.Text = "წინა" ღილაკი2.Text = "შემდეგი" RadioButton1.Text = კითხვები (0, 1) RadioButton2.Text = კითხვები (0, 2) RadioButton3.Text = კითხვები (0, 3)
პირველი ხაზი აყენებს სათაურს სათაურის ზოლში. შემდეგი ხაზი უწოდებს GetQuestions() ქვეპროგრამას. მესამე სტრიქონი ახდენს კითხვის მრიცხველის ცვლადის ინიციალიზებას. მეოთხე სტრიქონი აჩვენებს, თუ რა კითხვის ნომერზეა მომხმარებელი. მეხუთე სტრიქონი აჩვენებს პირველ შეკითხვას ეტიკეტზე. მეექვსე და მეშვიდე სტრიქონები ცვლის ტექსტს ორი ღილაკისთვის. ბოლო სამ სტრიქონში ჩასმულია სამი მრავალჯერადი არჩევანის პასუხი, როგორც ტექსტი სამი რადიო ღილაკისთვის.
თუ quesNum > 1 მაშინ quesNum -= 1 Label1.Text = "კითხვა " & quesNum & " 3-დან" Label2.Text = კითხვები (quesNum - 1, 0) RadioButton1.Text = კითხვები (quesNum - 1, 1) RadioButton2.Text = კითხვები (quesNum - 1, 2) RadioButton3.Text = კითხვები (quesNum - 1, 3) If 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 If RadioButton1.Focus() თუ quesNum < 3 მაშინ quesNum += 1 Label1.Text = "Question " & quesNum & " of " & პასუხობს. Length Label2.Text = კითხვები (quesNum - 1, 0) RadioButton1.Text = კითხვები (quesNum - 1, 1) RadioButton2.Text = კითხვები (quesNum - 1, 2) RadioButton3.Text = კითხვები (quesNum - 1, 3) თუ quesNum = 3, მაშინ Button2.Text = "გაგზავნა" დასასრული If Else MarkTest() Დაასრულე თუ
ეს არის ღილაკის "შემდეგი" კოდი. პირველი შვიდი ხაზი ამოწმებს, თუ რომელი რადიო ღილაკი აირჩია მომხმარებელმა, შემდეგ ინახავს პასუხს პასუხების მასივში. შემდეგი ხაზი ფოკუსირებულია რადიოს ღილაკის არჩევაზე RadioButton1-ზე. შემდეგი ხაზი ამოწმებს, რომ მომხმარებელი არ არის საბოლოო კითხვაზე. თუ ეს მართალია, ის გაზრდის კითხვების მრიცხველს ერთით და განაახლებს ლეიბლებსა და რადიო ღილაკებს შემდეგი შეკითხვის საჩვენებლად. შემდეგ ის ამოწმებს, არის თუ არა მომხმარებელი ბოლო კითხვაზე. თუ ასეა, ის ცვლის შემდეგი ღილაკის ტექსტს "შემდეგი"-დან "გაგზავნაზე". თუ მომხმარებელი უკვე იყო საბოლოო შეკითხვა და დააწკაპუნეთ "გაგზავნა", პროგრამა უწოდებს "MarkTest" ფუნქციას მომხმარებლის ქულის მისაღებად.