Воскресенье, 2025-08-10

Professor VB - примеры на VB.net и C#
Меню сайта
Вход на сайт
Категории раздела
Уроки VB.net [25]
VB.net и математика [13]
Random VB [4]
VB.net - разное [7]
VB.net - Примеры программ [2]
Главная » Статьи » VB.net » Уроки VB.net

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

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


 

 

Смотреть видео

В начало

 

 



 

Категория: Уроки VB.net | Добавил: ProfessorVB (2016-03-15)
Просмотров: 2058 | Теги: Vb.net, русский, словарь, OpenFileDialog, английский | Рейтинг: 5.0/1
Всего комментариев: 0
avatar
Облако тегов
Поиск
Друзья сайта
  • www.youtube.com

  • vk.com/professorvb

  • Партнерка AIR

  • Партнерка VSP Group
  • Поделись с друзьям
    Теги
    урок C# си шарп видео hello world MenuStrip Генератор имен Switch дроби решебник Алгебра системы уравнения геометрия Vb.net генератор уроки математика программа условия Math массив элементов видеоуроки добавление записи в xml анекдот поиск создать XML удалить из xml калькулятор НОД нок время дата Деструкторы конструкторы тест сокращение дробей десятичные дроби тренажер английский развитие мнемоника иностранные слова random рандом professorvb OpenFileDialog Timer mindgames цикл словарь база пароль слова cos sin комплексные числа вирус массив классы массивы многомерные Break Continue do for forEach While Обработка событий rgb задать цвет XML база данных xml количество элементов xml поиск значений xml редактирование xml создание soft AntiCenz fri-gate google pirat proxy tor запрещенные сайты Open save RichTextBox TopMost DateTimePicker календарь количество дней между датами перемешивание массива Анаграммы Меморина Ребусы Рифмоплет скорочтение Сравнение дробей использование
    Copyright ProfessorVB © 2025