2013-10-06 6 views
-2

Я застрял в проблеме, связанной с бронированием простой авиакомпании.Visual Basic 2010 Простая резервирование авиакомпаний

  • 10 Textbox добавляют в форме
  • 1-5 текстового поля предназначены для области только курильщиков
  • 6-10 текстовое поле в область Только для некурящих.

Твист с помощью Inputbox вводит пользовательский ввод 1 в качестве курильщиков и 2 как курильщиков.

Если пользователь вводит 1, текстовое поле для сидения должно быть помещено случайно компьютером и не установлено пользователем (текстовое поле1-5), то же самое относится к некурящим.

Наш учитель дал намек на создание массива для текстового поля, но, похоже, он действительно не знает, как это работает.

в основном запас сидений.

Не уверен в этом коде, что мне нужно добавить.

Dim reserve() As TextBox = {smokingtxt1, smokingtxt2, smokingtxt3, smokingtxt4, smokingtxt5} 

Dim reserve1() As TextBox = {nonsmokingtxt1, nonsmokingtxt2, nonsmokingtxt3, nonsmokingtxt4, nonsmokingtxt5} 
Dim notification As Integer 

notification = InputBox("Enter 1 or 2") 

If notification = 1 Then 
    For Each i As TextBox In reserve 
    i.Text = "Reserve" 
    Next 
ElseIf notification = 2 Then 
    For Each j As TextBox In reserve1 
    Randomize() 
    Next 
Else 
    MessageBox.Show("Invalid operation") 
End If 
+0

Что у вас есть для метода 'Randomize()'? – Tim

+0

Кстати, 'InputBox' является удержанием для Visual Basic - я бы посоветовал не использовать его и делать это еще в .NET-модуле - возможно, текстовое поле, в котором пользователь может ввести значение или даже лучше использовать ComboBox с выпадающим списком, из которого они могут выбрать значение. – Tim

+0

Ну, я просто пытаюсь понять, поэтому метод Randomize() существует. Однако наш учитель предложил использовать Inputbox, чтобы ввести 1 для курильщиков и 2 для некурящих. После ввода процесса компьютер должен быть назначен случайным образом из текстового поля как «Зарезервировано» до тех пор, пока сиденья не будут заняты. – JC3196

ответ

0

В VB6 раньше вы использовали массив элементов управления на форме. Это не представляется возможным в VB.NET (например, Visual Studio 2010)

Вы можете добиться того, что вам нужно сделать, добавив 10 текстовых полей в форме, а затем, используя следующий код:

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    Dim notification As Integer 

    notification = InputBox("Enter 1 or 2") 

    Dim RandomInt As Integer 

    If notification = 1 Then 
    If Textbox1.Text = "RESERVED" And Textbox2.Text = "RESERVED" Then 
     Msgbox "All seats are reserved" 
     Exit Sub 
    End If 
    TryAgain: 
     RandomInt = GetRandomInt(1, 5) 
     Select Case RandomInt 
      Case 1 
       'Check if the current textbox is already reserved 
       If TextBox1.Text = "RESERVED" Then 
        'Get a new number 
        Goto TryAgain 
       End If 
       TextBox1.Text = "RESERVED" 
      Case 2 
       TextBox2.Text = "RESERVED" 
       'etc 
     End Select 
    ElseIf notification = 2 Then 
     RandomInt = GetRandomInt(6, 10) 
     Select RandomInt 
      Case 5 
       TextBox5.Text = "RESERVED" 
      Case 6 
       TextBox6.Text = "RESERVED" 
       'etc 
     End Select 
    Else 
     MsgBox("You entered an invalid number") 
    End If 

End Sub 

Public Function GetRandomInt(ByVal StartNum As Integer, ByVal EndNum As Integer) As Integer 
    Dim RandomClass As New Random() 
    Dim RandomNumber As Integer 
    RandomNumber = RandomClass.Next(StartNum, EndNum) 

    GetRandomInt = RandomNumber 

End Function 

удачи с проект.

+0

Каково будет утверждение, если все текстовые поля заняты случайным образом? – JC3196

+0

Я отредактирую свое сообщение, чтобы вы его увидели. –

+0

Я неправильно понял, что вам нужно. Я снова отредактирую :) –

Смежные вопросы