Hello, I have completed 90% of this but I cannot make my calculations work prope
ID: 3632535 • Letter: H
Question
Hello, I have completed 90% of this but I cannot make my calculations work properly. If someone could look over my code and fix it. That would be great. The Test sample data for input is attached here.
Create an application that calculates and displays the total travel expenses for a buisness trip. The user must provide the following information
Number of days on the trip
Amount of airfare, if any
Amount of car rental fees, if any
Number of miles driven, if a private vehicle was used
Amount of parking fees, if any
Amount of Taxi charges, if any
Conference or seminar registration fees, if any
Lodging charges, per night
The company reimburses travel expenses according to the following policy:
$37.00 per day for meals
parking fees, up to $10.00 per day
Taxi charges up to $20.00 per day
Lodging charges up to $95.00 per day
If a private vehicle is used, $0.27 per mile driven
The application should calculate and display the following:
Total expenses incurred by the business person
The total allowable expenses for the trip
The excess that must be paid by the business person, if any
The amount saved by the business person if the expenses were under the total allowed
The application should have the following functions:
CalcMeals: Calculates and returns the amount reimbursed for meals
CalcMileage: Calculates and returns the amount reimbursed for mileage driven in a private vehicle
CalcParkingFees: Calculates and returns the amount reimbursed for parking fees.
CalcTaxiFees: Calculates and returns the amount reimbursed for taxi charges
CalcLodging: Calculates and returns the amount reimbursed for lodging.
CalcTotalReimbursement: Calculates and returns the total amount reimbursed
CalcUnallowed: Calculates and returns the total amount of expenses that are not allowable, if any. These are parking fees that exceed $10.00 per day, taxi charges that exceed $20.00 per day and lodging charges that exceed $95.00 per day.
CalcSaved: Calculates and returns the total amount of expenses under the allowable amount, if any. For example, the allowable amount for lodging is $95.00 per day. If a business person stayed in a hotel for $85.00 per day for five days, the savings would be $50.00.
Input validation:
Do not accept negative numbers for any dollar amount or for miles driven in a private vehicle. Do not accept numbers less than 1 for the number of days.
My Code:
Public Class Form1
Inherits System.Windows.Forms.Form
Const decReMeals As Decimal = CDec(37.0)
Const decReParkFees As Decimal = CDec(10.0)
Const decReTaxi As Decimal = CDec(20.0)
Const decReLodge As Decimal = CDec(95.0)
Const decReMiles As Decimal = CDec(0.27)
Const decReTotal As Decimal = decReMeals + decReParkFees + decReTaxi + decReLodge + decReMiles
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub btnCalc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalc.Click
Dim intNumberOfDays As Integer
Dim decAirFare As Decimal
Dim decCarRent As Decimal
Dim decMiles As Decimal
Dim decParkFees As Decimal
Dim decTaxi As Decimal
Dim decSemReg As Decimal
Dim decLodge As Decimal
Dim decTotalInc As Decimal
Try
intNumberOfDays = CInt(CInt(txtNumberOfDays.Text) >= 1)
Catch ex As Exception
MessageBox.Show("Number of days cannot be less than 1.")
Return
End Try
Try
decAirFare = CDec(CDec(txtAirFare.Text) >= 0)
decCarRent = CDec(CDec(txtCarRent.Text) >= 0)
decMiles = CDec(CDec(txtMiles.Text) >= 0)
decParkFees = CDec(CDec(txtParkFees.Text) >= 0)
decTaxi = CDec(CDec(txtTaxi.Text) >= 0)
decSemReg = CDec(CDec(txtSemReg.Text) >= 0)
decLodge = CDec(CDec(txtLodge.Text) >= 0)
Catch ex As Exception
MessageBox.Show("Input amounts cannot be less than zero." & _
" Please enter a zero for any empty fields.", "Imput Error")
Return
End Try
decTotalInc = CDec(CDec(txtAirFare.Text) + CDec(txtCarRent.Text) + CDec(txtMiles.Text) _
+ CDec(txtParkFees.Text) + CDec(txtTaxi.Text) + CDec(txtSemReg.Text) _
+ CDec(txtLodge.Text))
txtTotalInc.Text = FormatCurrency(decTotalInc.ToString)
CalcMeals()
CalcMileage()
CalcParkingFees()
CalcTaxiFees()
CalcLodging()
CalcTotalReimbursement()
CalcUnallowed()
CalcSaved()
End Sub
Sub CalcMeals()
Dim decMealsRe As Decimal
decMealsRe = CDec(txtNumberOfDays.Text) * decReMeals
End Sub
Sub CalcMileage()
Dim decMilesRe As Decimal
decMilesRe = CDec(txtMiles.Text) * decReMiles
End Sub
Sub CalcParkingFees()
Dim decParkFeesRe As Decimal
decParkFeesRe = CDec(txtParkFees.Text) - CDec(CDec(txtNumberOfDays.Text) * decReParkFees)
End Sub
Sub CalcTaxiFees()
Dim decTaxiFeesRe As Decimal
decTaxiFeesRe = CDec(txtTaxi.Text) - CDec(CDec(txtNumberOfDays.Text) * decReTaxi)
End Sub
Sub CalcLodging()
Dim decLodgingRe As Decimal
decLodgingRe = CDec(txtLodge.Text) - CDec(CDec(txtNumberOfDays.Text) * decReLodge)
End Sub
Sub CalcTotalReimbursement()
Dim decTotalRe As Decimal
Dim decMealsRe As Decimal
Dim decMilesRe As Decimal
Dim decParkFeesRe As Decimal
Dim decTaxiFeesRe As Decimal
Dim decLodgingRe As Decimal
CalcMeals()
CalcMileage()
CalcParkingFees()
CalcTaxiFees()
CalcLodging()
decTotalRe = decMealsRe + decMilesRe + decParkFeesRe + decTaxiFeesRe + decLodgingRe
txtTotalRe.Text = FormatCurrency(decTotalRe.ToString)
End Sub
Sub CalcUnallowed()
Dim decTotalExc As Decimal
Dim decTotalInc As Decimal
Dim decTotalRe As Decimal
decTotalExc = decTotalInc - decTotalRe
txtTotalExc.Text = FormatCurrency(decTotalExc.ToString)
End Sub
Sub CalcSaved()
Dim decSaved As Decimal
Dim decTotalAll As Decimal
decSaved = decReTotal - decTotalAll
txtTotalSav.Text = FormatCurrency(decSaved.ToString)
End Sub
Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
Me.Close()
End Sub
Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
txtNumberOfDays.Clear()
txtAirFare.Clear()
txtCarRent.Clear()
txtMeals.Clear()
txtLodge.Clear()
txtMiles.Clear()
txtParkFees.Clear()
txtSemReg.Clear()
txtTaxi.Clear()
txtTotalInc.Text = String.Empty
txtTotalExc.Text = String.Empty
txtTotalRe.Text = String.Empty
txtTotalSav.Text = String.Empty
txtNumberOfDays.Focus()
End Sub
End Class
Explanation / Answer
Public Class Form1
Inherits System.Windows.Forms.Form
Const decReMeals As Decimal = 37.0
Const decReParkFees As Decimal = 10.0
Const decReTaxi As Decimal = 20.0
Const decReLodge As Decimal = 95.0
Const decReMiles As Decimal = 0.27
Dim miles As Decimal
'Const decReTotal As Decimal = decReMeals + decReParkFees + decReTaxi + decReLodge + decReMiles
Private Sub btnCalculate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalculate.Click
Dim intNumberOfDays As Integer
Dim decAirFare As Decimal
Dim decCarRent As Decimal
Dim decMiles As Decimal
Dim decParkFees As Decimal
Dim decTaxi As Decimal
Dim decSemReg As Decimal
Dim decLodge As Decimal
Dim decTotalInc As Decimal
Dim decTotalRe As Decimal
Dim decSaved As Decimal
Dim decTotalExc As Decimal
Try
intNumberOfDays = CInt(CInt(txtNumberOfDays.Text) >= 1)
Catch ex As Exception
MessageBox.Show("Number of days cannot be less than 1.")
Return
End Try
Try
decAirFare = CDec(CDec(txtAirFare.Text) >= 0)
decCarRent = CDec(CDec(txtCarRent.Text) >= 0)
decMiles = CDec(CDec(txtMiles.Text) >= 0)
decParkFees = CDec(CDec(txtParkFees.Text) >= 0)
decTaxi = CDec(CDec(txtTaxi.Text) >= 0)
decSemReg = CDec(CDec(txtSemReg.Text) >= 0)
decLodge = CDec(CDec(txtLodge.Text) >= 0)
Catch ex As Exception
MessageBox.Show("Input amounts cannot be less than zero." & " Please enter a zero for any empty fields.", "Imput Error")
Return
End Try
miles = CDec(txtMiles.Text)
Dim totalMilescost As Decimal = miles * decReMiles
decTotalInc = CDec(CDec(txtAirFare.Text) + CDec(txtCarRent.Text) + CDec(txtParkFees.Text) + CDec(txtTaxi.Text) + CDec(txtSemReg.Text) + CDec(txtLodge.Text) + CDec(txtMeals.Text) + totalMilescost.ToString)
txtTotalInc.Text = FormatCurrency(decTotalInc.ToString)
decTotalRe = CalcTotalReimbursement()
txtTotalRe.Text = FormatCurrency(decTotalRe.ToString("c"))
decTotalExc = CalcUnallowed()
txtTotalExc.Text = FormatCurrency(decTotalExc.ToString("c"))
decSaved = CalcSaved(decTotalRe)
txtTotalSav.Text = FormatCurrency(decSaved.ToString)
End Sub
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.