2 Replies - 7424 Views - Last Post: 20 June 2011 - 11:35 AM Rate Topic: -----

#1 sugg3013  Icon User is offline

  • New D.I.C Head

Reputation: 0
  • View blog
  • Posts: 3
  • Joined: 20-June 11

Help finding error on simple programming challenge

Posted 20 June 2011 - 10:26 AM

This is what the question asks:
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.


This is the code which I have written up:

Public Class Form1
    Inherits System.Windows.Forms.Form
    Const decReMeals As Decimal = CDec(37.0)
    Const decReParkingFees 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 + decReParkingFees + decReTaxi + decReLodge + decReMiles


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

    End Sub

    Private Sub btnDisplay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplay.Click

        Dim intNumberOfDays As Integer
        Dim decAirFare As Decimal
        Dim decCarRent As Decimal
        Dim decMiles As Decimal
        Dim decParkingFees As Decimal
        Dim decTaxi As Decimal
        Dim decSemReg As Decimal
        Dim decLodge As Decimal
        Dim decTotalInc As Decimal
        Try
            intNumberOfDays = CInt(CInt(txtDays.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(txtCar.Text) >= 0)
            decMiles = CDec(CDec(txtMiles.Text) >= 0)
            decParkingFees = CDec(CDec(txtParking.Text) >= 0)
            decTaxi = CDec(CDec(txtTaxi.Text) >= 0)
            decSemReg = CDec(CDec(txtConference.Text) >= 0)
            decLodge = CDec(CDec(txtLodging.Text) >= 0)
        Catch ex As Exception
            MessageBox.Show("Input amounts cannot be less than zero please enter a zero for any empty fields. Input Error")
            Return

        End Try
        decTotalInc = CDec(CDec(txtAirfare.Text) + CDec(txtCar.Text) + CDec(txtMiles.Text) + CDec(txtParking.Text) + CDec(txtTaxi.Text) + CDec(txtConference.Text) + CDec(txtLodging.Text))
        lblTotalInc.Text = FormatCurrency(decTotalInc.ToString)

        CalcMeals()
        CalcMileage()
        CalcParkingFees()
        CalcTaxiFees()
        CalcLodging()
        CalcTotalReimbursement()
        CalcUnallowed()
        CalcSaved()


    End Sub
    Sub CalcMeals()
        Dim decMealsRe As Decimal
        decMealsRe = CDec(txtDays.Text) * decReMeals
    End Sub
    Sub CalcMileage()
        Dim decMilesRe As Decimal
        decMilesRe = CDec(txtMiles.Text) * decReMiles
    End Sub
    Sub CalcParkingFees()
        Dim decParkingFeesRe As Decimal
        decParkingFeesRe = CDec(txtParking.Text) - CDec(CDec(txtDays.Text) * decReParkingFees)


    End Sub
    Sub CalcTaxiFees()
        Dim decTaxiFeesRe As Decimal
        decTaxiFeesRe = CDec(txtTaxi.Text) - CDec(CDec(txtDays.Text) * decReTaxi)

    End Sub
    Sub CalcLodging()
        Dim decLodgingRe As Decimal
        decLodgingRe = CDec(txtLodging.Text) - CDec(CDec(txtDays.Text) * decReLodge)

    End Sub
    Sub CalcTotalReimbursement()
        Dim decTotalRe As Decimal
        Dim decMealsRe As Decimal
        Dim decMilesRe As Decimal
        Dim decParkingFeesRe As Decimal
        Dim decTaxiFeesRe As Decimal
        Dim decLodgingRe As Decimal

        CalcMeals()
        CalcMileage()
        CalcParkingFees()
        CalcTaxiFees()
        CalcLodging()
        decTotalRe = decMealsRe + decMilesRe + decParkingFeesRe + decTaxiFeesRe + decLodgingRe
        lblTotalInc.Text = FormatCurrency(decTotalRe.ToString)

    End Sub
    Sub CalcUnallowed()
        Dim decTotalExc As Decimal
        Dim decTotalInc As Decimal
        Dim decTotalRe As Decimal
        decTotalExc = decTotalInc - decTotalRe
        lblTotalExc.Text = FormatCurrency(decTotalExc.ToString)

    End Sub
    Sub CalcSaved()
        Dim decSaved As Decimal
        Dim decTotalAll As Decimal
        decSaved = decReTotal - decTotalAll

        lblSav.Text = FormatCurrency(decSaved.ToString)

    End Sub


    Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
        'Clears all the labels and textboxes
        txtDays.Clear()
        txtAirfare.Clear()
        txtCar.Clear()
        txtLodging.Clear()
        txtMiles.Clear()
        txtParking.Clear()
        txtTaxi.Clear()
        txtConference.Clear()
        lblAll.Text = String.Empty
        lblSav.Text = String.Empty
        lblExc.Text = String.Empty
        lblTotalInc.Text = String.Empty

    End Sub

    Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click
        'Closes the application 
        Me.Close()
    End Sub
End Class





The problem is that it is not calculating right. I have also attached the VB file that includes the code as well as the form.

Any help would be greatly appreciated! Thank you !!!

MOD EDIT: When posting code...USE CODE TAGS!!!

:code:

This post has been edited by JackOfAllTrades: 20 June 2011 - 10:31 AM
Reason for edit:: Added code tags


Is This A Good Question/Topic? 0
  • +

Replies To: Help finding error on simple programming challenge

#2 JackOfAllTrades  Icon User is offline

  • Saucy!
  • member icon

Reputation: 6110
  • View blog
  • Posts: 23,670
  • Joined: 23-August 08

Re: Help finding error on simple programming challenge

Posted 20 June 2011 - 10:32 AM

Your topic was posted in the VB6 forum, but the provided code and/or question actually is not VB6, but rather VB.NET code. If you are writing code in Visual Basic 2003, Visual Basic 2005, Visual Basic 2008, or Visual Basic 2010, this code is written in VB.NET. While VB6 code and VB.NET code have some similarities in syntax, their differences outweigh these. For this reason we have a dedicated VB.NET forum.

Your post has been moved to this VB.NET forum. Please post your future questions on VB.NET in this more appropriate location.

Thank you for your cooperation.
Was This Post Helpful? 0
  • +
  • -

#3 Btu  Icon User is offline

  • D.I.C Regular

Reputation: 36
  • View blog
  • Posts: 250
  • Joined: 16-May 11

Re: Help finding error on simple programming challenge

Posted 20 June 2011 - 11:35 AM

I'm not clear on this part:
decAirFare = CDec(CDec(txtAirfare.Text) >= 0)
            decCarRent = CDec(CDec(txtCar.Text) >= 0)
            decMiles = CDec(CDec(txtMiles.Text) >= 0)
            decParkingFees = CDec(CDec(txtParking.Text) >= 0)
            decTaxi = CDec(CDec(txtTaxi.Text) >= 0)
            decSemReg = CDec(CDec(txtConference.Text) >= 0)
            decLodge = CDec(CDec(txtLodging.Text) >= 0)


Are you asking it to convert text to decimal if it is equal to or above 0?
I also recommend using:

decimal.tryparse(textbox.text, decVariable)


Also, you can try:

lblSav.Text = decSaved.ToString("c2")

For currency format.
Was This Post Helpful? 0
  • +
  • -

Page 1 of 1