我正在爲我的計算機科學類測驗和基本概念是,你有15個關鍵字和15個定義。所有需要隨機顯示,並出現正確的答案。用戶必須將正確的定義與關鍵字匹配兩次,然後該關鍵字和定義纔會再次顯示。當所有人都回答了兩次測驗結束後。如何從文本文件填充此字典?
我已經存儲了我的兩個關鍵字和我在同一文件中定義,所以他們沒有得到同步的。該文本文件看起來像這樣:
等(總共15行)
目前,我有我的字典手動像這樣創建:
Const NUMBER_OF_ANSWERS As Integer = 3
Public Class Form1
Dim kv As New Dictionary(Of String, String)
kv.Add("Keyword1", "Definition1")
kv.Add("Keyword2", "Definition2")
kv.Add("Keyword3", "Definition3")
kv.Add("Keyword4", "Definition4")
kv.Add("Keyword5", "Definition5")
kv.Add("Keyword6", "Definition6")
kv.Add("Keyword7", "Definition7")
kv.Add("Keyword8", "Definition8")
kv.Add("Keyword9", "Definition9")
kv.Add("Keyword10", "Definition10")
kv.Add("Keyword11", "Definition11")
kv.Add("Keyword12", "Definition12")
kv.Add("Keyword13", "Definition13")
kv.Add("Keyword14", "Definition14")
kv.Add("Keyword15", "Definition15")
Dim r As New Random
Dim kvRandom As List(Of KeyValuePair(Of String, String)) =
kv.OrderBy(Function() r.Next).ToList
'questions will appear in random order
For Each line As KeyValuePair(Of String, String) In kvRandom
Dim keyword As String = line.Key
Dim correctDefinition As String = line.Value
Dim keywords As New List(Of String)
keywords.Add(keyword)
keywords.AddRange(kv.Keys.Except({keyword}).
OrderBy(Function() r.Next).Take(NUMBER_OF_ANSWERS - 1))
Dim definitionsRandom As List(Of String) =
keywords.Select(Function(x) kv(x)).OrderBy(Function() r.Next).ToList
'TODO: need to write some code here
'display keyword and three possible definitions to the user
'(out of which one is correct)
'answers will also appear in random order
'Check answer against value stored in "correctDefinition"
LabelKeyword.Text = keyword
RadioButtonDef1.Text = definitionsRandom(0)
RadioButtonDef2.Text = definitionsRandom(1)
RadioButtonDef3.Text = definitionsRandom(2)
Next
End Sub
我知道填充從字典一個文本我做到以下幾點:
For Each line As String In IO.File.ReadAllLines("keywords_and_definitions.txt")
Dim parts() As String = line.Split(",")
kv.Add(parts(0), parts(1))
Next
但是我不知道如何改變這種代碼成功實現這一點。由於之前的幫助,我被告知要這樣做(通過@Neolisk):
將您的進度變量設置爲14(問題數減1,索引爲零,基於VB.NET)。在第一個問題中,顯示問題#0,當用戶按Next時,增加進度變量。不要忘記計算有效/無效的答案。您可能需要爲用戶存儲完整的答案歷史記錄。如果你需要這個模式的細節,我認爲值得提出一個單獨的問題 - 在那裏提供你需要的功能。
再次我不知道如何去這樣做。上面的代碼可以創造奇蹟,它只是我不知道如何更改代碼來填充從文本文件的字典,而不是我是如何做到了上面,因爲它是我們包括我們的關鍵詞和定義從一個文本文件的要求。