VB.net - Ru\Eng тренажер

Программа |
67 кб |

|
База Англ словарей |
350 кб |

|
|
|
|
В этой стать мы создадим программу для обучения и проверки знаний английских слов.
Идея программы такова, в ярлыке появляется случайное слово, при чем оно может быть как русское, так и английское.
А ниже в 5 кнопках перевод, необходимо выбрать правильный.
Слова будут браться из специальных словарей.
А теперь переходим к коду.
Подключаем библиотеку Ввода-Вывода
Imports System.IO 'подключаем библиотеку Ввода-Вывода
Объявляем переменные
'словарь
Dim syw() = IO.File.ReadAllLines("syw.txt", System.Text.Encoding.Default)
Dim r As New Random 'переменная как новое случайное число
Dim slovoRu As String 'русское слово
Dim slovoEn As String 'англ слово
Dim varS(4) 'варианты ответов
Dim slovoPrav 'прав ответ
Далее идут подпрограммы и функции
'новое слово+ варианты ответов
Sub novPodbor()
Randomize()
'генерируем случаные числа
Dim randoms = r.Next(1, (syw.Length - 1))
Dim var2 = r.Next(1, (syw.Length - 1))
Dim var3 = r.Next(1, (syw.Length - 1))
Dim var4 = r.Next(1, (syw.Length - 1))
Dim var5 = r.Next(1, (syw.Length - 1))
'randoms - четное число - слово РУС
If randoms Mod 2 = 0 Then
'записываем контрольное слово
slovoRu = syw(randoms)
slovoEn = syw(randoms - 1)
lblVopros.Text = slovoRu
'выбираем ответы
varS(0) = slovoEn
varS(1) = vars4et(var2)
varS(2) = vars4et(var3)
varS(3) = vars4et(var4)
varS(4) = vars4et(var5)
'правильный ответ
slovoPrav = slovoEn
Else
'слово ENG
slovoEn = syw(randoms)
slovoRu = syw(randoms + 1)
lblVopros.Text = slovoEn
varS(0) = slovoRu
varS(1) = varsNe4et(var2)
varS(2) = varsNe4et(var3)
varS(3) = varsNe4et(var4)
varS(4) = varsNe4et(var5)
'правильный ответ
slovoPrav = slovoRu
End If
'перемешивание ответов
Dim x, y, el1, el2
Randomize()
For i = 1 To 10000
x = Int(Rnd() * 5) 'Определили случайный элемент массива с номером х
y = Int(Rnd() * 5) 'Определили случайный элемент массива с номером y
el1 = varS(x) 'Запомнили значение случайного х-элемента массива
el2 = varS(y) 'Запомнили значение случайного y-элемента массива
varS(y) = el1 'Присвоили случайному x элементу значение y элемента
varS(x) = el2 'Присвоили случайному y элементу значение x элемента
Next
'end перемешивание()
'вывод ответов
cmd1.Text = varS(0)
cmd2.Text = varS(1)
cmd3.Text = varS(2)
cmd4.Text = varS(3)
cmd5.Text = varS(4)
End Sub
'выбор ответов, если randoms - четное число
Function vars4et(var As Integer)
Dim cmd As String
If var Mod 2 = 0 Then '!!!
If syw.Length > var + 3 Then
cmd = syw(var + 3)
Else
cmd = syw(var - 3)
End If
Else
If syw.Length > var + 2 Then
cmd = syw(var + 2)
Else
cmd = syw(var - 2)
End If
End If
Return cmd
End Function
'выбор ответов, если randoms - НЕчетное число
Function varsNe4et(var As Integer)
Dim cmd As String
If var Mod 2 <> 0 Then '!!!
If syw.Length > var + 3 Then
cmd = syw(var + 3)
Else
cmd = syw(var - 3)
End If
'End If
Else
If syw.Length > var + 2 Then
cmd = syw(var + 2)
Else
cmd = syw(var - 2)
End If
End If
Return cmd
End Function
'проверка ответов
Sub provero4ka(cmd As Button)
If cmd.Text = slovoPrav Then
novPodbor() 'новое слово
Else
MsgBox("ERR") 'ошибка
End If
End Sub
'-------------end-SUB----------------
А теперь, добавим код к элементам управления.
'загрузка формы
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
novPodbor() ' новое слово
End Sub
Кнопки
'кнопка 1
Private Sub cmd1_Click(sender As Object, e As EventArgs) Handles cmd1.Click
provero4ka(cmd1) 'проверка для данной кнопки
End Sub
'кнопка 2
Private Sub cmd2_Click(sender As Object, e As EventArgs) Handles cmd2.Click
provero4ka(cmd2) 'проверка для данной кнопки
End Sub
'кнопка 3
Private Sub cmd3_Click(sender As Object, e As EventArgs) Handles cmd3.Click
provero4ka(cmd3) 'проверка для данной кнопки
End Sub
'кнопка 4
Private Sub cmd4_Click(sender As Object, e As EventArgs) Handles cmd4.Click
provero4ka(cmd4) 'проверка для данной кнопки
End Sub
'кнопка 5
Private Sub cmd5_Click(sender As Object, e As EventArgs) Handles cmd5.Click
provero4ka(cmd5) 'проверка для данной кнопки
End Sub
Меню
'-- меню--словарь (загрузка других словарей)
Private Sub СловарьToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles СловарьToolStripMenuItem.Click
' Указываем начальную папку
OFD1.InitialDirectory = Application.StartupPath + "\Dict"
' Указываем заголовок
OFD1.Title = "Откр словарь "
' При помощи фильтра можно отбросить ненужные типы файлов
OFD1.Filter = "Словарь|*.txt|Все|*.*"
' Если есть список выбора типов, то можно указать какой тип будет выбран при загрузке диалога
OFD1.FilterIndex = 1
If OFD1.ShowDialog = DialogResult.OK Then
Dim rez() = IO.File.ReadAllLines(OFD1.FileName, System.Text.Encoding.Default)
'имя словаря
Me.Text = Path.GetFileNameWithoutExtension(OFD1.FileName)
' Me.Text = FileIO.FileSystem.GetName(OFD1.FileName)
'переписываем значения в массиве
ReDim syw(rez.Length)
For i = 0 To rez.Length - 1
syw(i) = rez(i)
Next
End If
novPodbor()
End Sub
'-- меню--выход
Private Sub ВыходToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles ВыходToolStripMenuItem.Click
Close()
End Sub
'-- меню--? (подсказка)
Private Sub ToolStripMenuItem2_Click(sender As Object, e As EventArgs) Handles ToolStripMenuItem2.Click
MsgBox(slovoEn + " - " + slovoRu)
End Sub
Смотреть видео
В начало
|