2016-06-09 5 views
0

У меня возникли трудности с проблемой для моего класса Visual Basic 2012. Инструкции приведены ниже:Параллельные массивы со строкой и целыми числами

Месяц \ Дни Программа: Приложение будет использовать два параллельных массива: массив строк, который инициализируется с названиями месяцев, и массив целых чисел, которое инициализируется с количеством дней в каждом месяце. При нажатии кнопки приложение отображает свой вывод в списке.

Вот мой код. Как мне запрограммировать его так, чтобы месяц был назначен на правильное количество дней? Спасибо за любую помощь!

Private Sub btnclick_Click(sender As Object, e As EventArgs) Handles btnclick.Click 
    'displays the month associated with the number of days entered by the user 
    Dim months() As String = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} 
    Dim days() As Integer = {31, 28, 30} 
    Dim searchfor As String 
    Dim subscript As Integer 

    'assign the month to a variable 
    searchfor = txtbox.Text 

    'search the month array for the number of days 
    'continue searching until there are no more array 
    'elements to search for or until the months are found 
    Do Until subscript = months.length _ 
     OrElse searchfor = months(subscript) 
     subscript = subscript + 1 
    Loop 

    'determine whether the days were found in the months array 
    If subscript < months.length Then 
     dayslabel.Text = days(subscript).ToString 
    Else 

    End If 

    txtbox.Focus() 

End Sub 

Private Sub txtbox_TextChanged(sender As Object, e As EventArgs) Handles txtbox.TextChanged 
    txtbox.SelectAll() 
    dayslabel.Text = String.Empty 
End Sub 

End Class

+0

Почему вы делаете долго 'дней()' три элемента, а не 12? – GSerg

+0

Я считаю, что они интерпретировали его для хранения возможностей '{31, 28, 30}' и не знают полной информации о параллельных массивах. –

+1

Действительно arent parallel, если они разных размеров. Маленький класс, чтобы держать имя и «размер», был бы лучше, или, возможно, Tupple. – Plutonix

ответ

0

Я думаю, что-то вроде этого является то, что они нацелены на:

Dim months() As String = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"} 
    Dim days() As Integer = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} 
    'click event 
    If months.Length = days.Length Then 
     For i As Integer = 0 To months.GetUpperBound(0) 
      ListBox1.Items.Add(months(i) & " has " & days(i) & " days in it") 
     Next 
    End If 

два параллельных массива

Для любого действительного показателя X, элемент (с индексом X) в массиве месяцев связан с элементом (с индексом X) в количестве дней массива

Кроме того, намек намек ...

инициализируется с количеством дней в каждый месяц

с момента его создания, количество дней массив должен иметь один пункт за каждый месяц

0

Вы можете получить количество дней по названию месяца, как это:

Private Sub btnclick_Click(sender As Object, e As EventArgs) Handles btnclick.Click 
    Try 
     Dim Year As Integer = 2016 
     Dim MonthName As String = txtbox.Text 
     Dim Month As Integer = DateTime.ParseExact(MonthName, "MMMM", CultureInfo.CurrentCulture).Month 
     dayslabel.Text = DateTime.DaysInMonth(Year, Month) 
    Catch ex As Exception 
     'Message 
    End Try 
End Sub 
Смежные вопросы