Public Class frmTravelPlanner Dim dailyExpensesCost(9) As Integer Dim dailyExpensesTitles(9) As String Dim numberOfExpenses As Integer = 0 Dim costOfExpenses As Double Sub OutputUserInformation() lstOutput.Items.Add("Destination: " & txtDestination.Text) lstOutput.Items.Add("Budget: " & FormatCurrency(txtBudget.Text)) lstOutput.Items.Add("Length of Trip: " & txtLengthOfTrip.Text & " days") lstOutput.Items.Add("accommodations: " & FormatCurrency(txtaccommodations.Text) * (txtLengthOfTrip.Text)) lstOutput.Items.Add("Food and Drink: " & FormatCurrency(txtFoodAndDrink.Text) * (txtLengthOfTrip.Text)) End Sub Sub EditDailyExpenses(ByRef dailyExpensesCost, ByRef dailyExpensesTitle) Dim yesOrNo As Integer Dim clearSection As Integer = 0 For i = 0 To numberOfExpenses - 1 yesOrNo = MsgBox("Would you like to change the " & dailyExpensesTitle(i) & " expense?", MsgBoxStyle.YesNo) If yesOrNo = vbYes Then lstDailyExpensesOutput.Items.RemoveAt(clearSection) dailyExpensesTitle(i) = InputBox("Please enter your revised expense. (i.e. gas, movies, car rental)") dailyExpensesCost(i) = InputBox("Please enter your revised budget for this expense.") lstDailyExpensesOutput.Items.Insert(clearSection, dailyExpensesTitle(i) & " " & FormatCurrency(dailyExpensesCost(i)) & "Per day; " & FormatCurrency((dailyExpensesCost(i)) * txtLengthOfTrip.Text) & " Per trip") End If clearSection += 1 Next End Sub Function TotalCostOfTravel(ByVal travelCost, ByVal costOfExpenses) Dim costOfTrip As Double For i = 0 To numberOfExpenses costOfExpenses += dailyExpensesCost(i) Next costOfTrip = (costOfExpenses * txtLengthOfTrip.Text + CDbl(txtaccommodations.Text) * txtLengthOfTrip.Text + CDbl(txtFoodAndDrink.Text) * txtLengthOfTrip.Text) + travelCost Return costOfTrip End Function Sub OutputCostOfTravel(ByVal costOfTrip) Dim difference As Double MsgBox("Your estimated cost for the trip is " & FormatCurrency(costOfTrip) & ".") MsgBox("Your initial budget for the trip was " & FormatCurrency(txtBudget.Text & ".")) difference = CDbl(txtBudget.Text) - costOfTrip If difference > 0 Then MsgBox("Your trip came in under budget and you had " & FormatCurrency(difference) & " left over.") ElseIf difference < 0 Then MsgBox("Your trip exceeds your initial budget by " & FormatCurrency(difference) & ". Please reveiw your budget") ElseIf difference = 0 Then MsgBox("Your trip is on budget with $0.00 left over.") End If End Sub Sub GetInputFromUser(ByRef dailyExpensesCost As Array, ByRef budget As Integer, ByRef lengthOfTrip As Integer, ByRef accommodations As Integer, ByRef foodAndDrink As Integer, ByRef numberOfExpenses As Integer, ByRef dailyExpensesTitle As Array) Dim stopNumber As Double Dim stopYesOrNo As Integer ' additional expense message box's stopYesOrNo = MsgBox("Do you have any additional expenses you want to list here? (i.e.; Car Rental, Souvenirs, Gas, Etc.)", MsgBoxStyle.YesNo) If stopYesOrNo = vbYes Then Do dailyExpensesTitle(numberOfExpenses) = CStr(InputBox("What is your first expense? (i.e. Gas, Car Rental, Souvenirs)")) dailyExpensesCost(numberOfExpenses) = InputBox("What is your daily budget for that expense? (i.e. 25, 35, 45, 55)") numberOfExpenses += 1 lstDailyExpensesOutput.Items.Add(dailyExpensesTitle(numberOfExpenses - 1) & " " & FormatCurrency(dailyExpensesCost(numberOfExpenses - 1)) & " Per day; " & (FormatCurrency(dailyExpensesCost(numberOfExpenses - 1) * CDbl(txtLengthOfTrip.Text))) & " For whole trip") stopYesOrNo = MsgBox("Are you done?", MsgBoxStyle.YesNo) If stopYesOrNo = vbYes Then stopNumber = -1 End If Loop Until (stopNumber = -1 Or numberOfExpenses = 10) End If End Sub Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click Dim transportationExpense As Double = txtTravelCost.Text Dim budget, lengthOfTrip, accommodations, foodAndDrink As Double 'clear for new entry lstDailyExpensesOutput.Items.Clear() lstOutput.Items.Clear() 'output OutputUserInformation() 'input GetInputFromUser(dailyExpensesCost, budget, lengthOfTrip, accommodations, foodAndDrink, numberOfExpenses, dailyExpensesTitles) OutputCostOfTravel(TotalCostOfTravel(transportationExpense, costOfExpenses)) 'make edit buttons visible btnDailyExpense.Visible = True btnRecalculate.Visible = True End Sub Private Sub btnDailyExpense_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDailyExpense.Click EditDailyExpenses(dailyExpensesCost, dailyExpensesTitles) End Sub Private Sub btnRecalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRecalculate.Click Dim transportationExpense As Integer = txtTravelCost.Text OutputCostOfTravel(TotalCostOfTravel(transportationExpense, costOfExpenses)) End Sub 'programmed by alexander magoon 'cis 115 End Class