簡體   English   中英

彩票軟件有問題

[英]Having trouble with a lottery software

很抱歉像這樣來這里尋找答案,但我真的很難過。 我應該使用 2 個 forms 制作一個應用程序,一個生成自己的數組並將用戶輸入的數字存儲到另一個數組中,然后在第二種表單上顯示它們並告訴你有多少數字是共同的

我根本無法讓數字顯示在第二個表格上,我也無法真正理解如何獲得匹配的數字,但是當我可以在表格 2 中正確引用它們時,我會的。我完美地設置了 arrays ,但我什至不能從他們那里調用數字到表格 2。我需要幫助從第一個表格調用 arrays 以顯示在下一個表格

表格 1 代碼

Public Class Form1
Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
    Me.Close()
End Sub
Shared random As New Random()
Dim UserArray(4) As String
Dim LotteryArray(4) As String
Public Sub btnCheck_Click(sender As Object, e As EventArgs) Handles btnCheck.Click
    If txtNumbers.Text <> "" Then
        For i As Integer = 0 To 4
            If UserArray(i) = "" Then
                UserArray(i) = txtNumbers.Text
            End If
        Next
    End If

    For n As Integer = 0 To 9
        Dim RandomNumber As Integer = CInt(Int(Rnd() * 5) + 1)
        LotteryArray(4) = CStr(RandomNumber)
    Next
End Sub
End Class

表格 2 代碼

    Public Class Form2
    
    Public Sub btnOk_Click(sender As Object, e As EventArgs) Handles btnOk.Click
    lblUser1.Text = Form1.UserArray(0)
    lblUser2.Text = Form1.UserArray(1)
    lblUser3.Text = Form1.UserArray(2)
    lblUser4.Text = Form1.UserArray(3)
    lblUser5.Text = Form1.UserArray(4)

    lblRand1.Text = Form1.LotteryArray(0)
    lblRand2.Text = Form1.LotteryArray(1)
    lblRand3.Text = Form1.LotteryArray(2)
    lblRand4.Text = Form1.LotteryArray(3)
    lblRand5.Text = Form1.LotteryArray(4)
    If Form1.LotteryArray(4) = Form1.UserArray(4) Then
        MessageBox("CONGRATULATIONS!", "You Are The GRAND PRIZE WINNER!")
    End If
    Me.Close()
End Sub
End Class

我會回答你的第一個問題。 如何讓你的數字進入你的第二種形式。

您的主要問題是您用於 arrays 的訪問修飾符。 Dim相當於Private ,這意味着該變量僅在 class 中可見。 Friend在程序集中的任何地方都可見。 有關詳細信息,請參閱https://docs.microsoft.com/en-us/dotnet/visual-basic/programming-guide/language-features/declared-elements/access-levels 不要更改您的事件過程訪問公共。

您必須讓用戶填寫另一個猜測。 Check 按鈕中的第一個循環只會輸入相同的輸入 5 次。 每次單擊都需要一個條目,但您需要跟蹤您在數組中的位置。 Private NumberOfGuesses As Integer請注意,此變量是Private 它不需要在 Form1 class 之外看到。

我們不需要在每次點擊時重新填充LotteryArray ,所以我在 Form.Load 中做了一次。您嘗試使用Random class,就像使用舊的 vb6 Random 一樣。 .net class 要容易得多。

為了在 Form2 上顯示 arrays,我使用了列表框和循環。 節省了一點打字。

如果您對問題的第 2 部分仍有疑問,請發布另一個問題。 展示你嘗試過的東西。

Public Class Form1
    Private random As New Random()
    Friend UserArray(4) As Integer
    Friend LotteryArray(9) As Integer
    Private NumberOfGuesses As Integer

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For n As Integer = 0 To 9
            Dim RandomNumber As Integer = random.Next(0, 10)
            LotteryArray(n) = RandomNumber
        Next
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        If NumberOfGuesses > 4 Then
            MessageBox.Show("You have used up your guesses")
            Form2.Show()
            Me.Close()
        End If
        If TextBox1.Text <> "" Then
            UserArray(NumberOfGuesses) = CInt(TextBox1.Text)
            NumberOfGuesses += 1
            TextBox1.Clear()
            TextBox1.Focus()
        End If
    End Sub

End Class

Public Class Form2

    Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        For Each number In Form1.UserArray
            ListBox1.Items.Add(number)
        Next
        For Each number In Form1.LotteryArray
            ListBox2.Items.Add(number)
        Next
    End Sub

End Class

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM