Почему эта функция не работает для моей программы.(Visual Basic) - PullRequest
0 голосов
/ 24 февраля 2011

Я делаю бейсбольную программу для классного проекта.И я почти закончил, но это дает мне синтаксическую ошибку.Я не могу понять, что я делаю неправильно.Я использую две функции, чтобы вернуть значение для разных типов бейсбольных билетов на кнопку, которая их вычисляет.

Вот инструкции 1.) Пользователь выбирает, покупать ли абонементы или билеты на одну игру

2.) Пользователь вводит количество необходимых билетов и тип мест в зависимости от того,отобранные билеты в один сезон.

3.) Пользователь нажимает кнопку Compute Ticket Cost, чтобы отобразить окончательную стоимость

4.) Пользователь нажимает кнопку Очистить форму, чтобы очистить ответ

Я просто не могувыяснить, что я сделал не так.Я знаю, что это что-то глупое, что я делаю.

ошибки происходят внутри подпрограммы btnCompute.с синтаксическими ошибками в SingleGameCost () и SeasonalCost () в строке 114 и 118

Public Class Form1
'Global Variables

Dim intTicketChoice As Integer
Dim seatType As Integer
Dim ticketNum As Integer








Private Sub cboTicketType_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cboTicketType.SelectedIndexChanged



    intTicketChoice = Me.cboTicketType.SelectedIndex
    Me.lstSeatType.Items.Clear()

    Select Case intTicketChoice

        Case 0
            SingleGame()

        Case 1
            Seasonal()


    End Select

    'Make Items visible

    Me.lblCostDisplay.Visible = True
    Me.lblSeats.Visible = True
    Me.lblTickets.Visible = True
    Me.lstSeatType.Visible = True
    Me.txtTicketNum.Visible = True
    Me.btnClear.Visible = True
    Me.btnCompute.Visible = True
    Me.txtTicketNum.Focus()

End Sub

Private Sub SingleGame()





    'Add List Items

    Me.lstSeatType.Items.Add("Box Seats $55")
    Me.lstSeatType.Items.Add("Lower Deck Seats $35")
    Me.lstSeatType.Items.Add("Upper Deck Seats $25")
    Me.lstSeatType.Items.Add("Standing Room Only $15")

    If lstSeatType.SelectedItem = "Box Seats $55" Then
        seatType = 0
    End If

    If lstSeatType.SelectedItem = "Lower Deck Seats $35" Then
        seatType = 1
    End If

    If lstSeatType.SelectedItem = "Upper Deck Seats $25" Then
        seatType = 2
    End If

    If lstSeatType.SelectedItem = "Standing Room Only $15" Then
        seatType = 3
    End If


End Sub



Private Sub Seasonal()





    'Add List Items
    Me.lstSeatType.Items.Add("Box Seats $2500")
    Me.lstSeatType.Items.Add("Lower Deck Seats $1500")


    'Price Items for Single Games
    If lstSeatType.SelectedItem = "Box Seats $2500" Then
        seatType = 4
    End If

    If lstSeatType.SelectedItem = "Lower Deck Seats $1500" Then
        seatType = 5
    End If


End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub btnCompute_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCompute.Click



    intTicketChoice = Me.cboTicketType.SelectedIndex

    If intTicketChoice = 0 Then
        SingleGameCost()
    End If

    If intTicketChoice = 1 Then
        SeasonalCost()

    End If


    'try and catch number textbox

    Try
        ticketNum = Convert.ToInt32(txtTicketNum.Text)
    Catch Exception As FormatException
        MsgBox("Number of tickets must be numeric")
        Return

    End Try

    'display cost of tickets

    Me.lblCostDisplay.Text = "The total cost of tickets purchased: " & totalCost.ToString("C")


End Sub

Private Function SingleGameCost(ByVal seatType As Integer, ByRef ticketNum As Integer, ByRef cost As Decimal) As Decimal
    Dim totalCost As Decimal


    ticketNum = Convert.ToInt32(Me.txtTicketNum.Text)

    'Price Items for Single Games

    If seatType = 0 Then
        cost = 55D
    End If


    If seatType = 1 Then
        cost = 35D
    End If


    If seatType = 2 Then
        cost = 25D
    End If

    If seatType = 3 Then
        cost = 15D
    End If

    totalCost = ticketNum * cost
    Return totalCost


End Function
Private Function SeasonalCost(ByVal seatType As Integer, ByRef ticketNum As Integer, ByRef cost As Decimal) As Decimal
    Dim totalCost As Decimal



    ticketNum = Convert.ToInt32(Me.txtTicketNum.Text)

    If seatType = 4 Then
        cost = 2500D
    End If

    If seatType = 5 Then
        cost = 1500D
    End If

    totalCost = cost * ticketNum
    Return totalCost



End Function

Конечный класс

k здесь происходит ошибка

If intTicketChoice = 0 Then
        SingleGameCost()
    End If

    If intTicketChoice = 1 Then
        SeasonalCost()

    End If

с одиночной игрой () и функция seasonacost ()

Ответы [ 2 ]

3 голосов
/ 24 февраля 2011

Я просто быстро просмотрел это, и кажется, что вы называетесь SingleGameCost () и SeasonalCost () без каких-либо аргументов, но вы определили функцию с некоторыми.

`Private Function SingleGameCost(ByVal seatType As Integer, ByRef ticketNum As Integer, ByRef cost As Decimal)`

Разве вы не должны бытьпредоставив аргументы?

 dim seat as integer = 1
 dim ticketNum as integer = 1
 dim cost as decimal = 12.00
 SingleGameCost(seat, ticketNum, cost)
0 голосов
/ 24 февраля 2011

На моей голове, если это возврат, измените его на End Sub, так как это не функция, а sub.Но я не могу сказать, не знаю, какая строка выдает ошибку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...