Advertisement
Guest User

Untitled

a guest
Dec 12th, 2018
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.14 KB | None | 0 0
  1. ' Name: Cerruti Project
  2. ' Purpose: Displays an employee's gross pay, taxes, and net pay.
  3. ' Programmer: <your name> on <current date>
  4.  
  5. Option Explicit On
  6. Option Strict On
  7. Option Infer Off
  8.  
  9. Public Class frmMain
  10. ' Independent Sub procedure and function.
  11. Private Sub GetSingleFwt(ByVal dblTaxPay As Double,
  12. ByRef dblFedWthTax As Double)
  13. Select Case dblTaxPay
  14. Case Is <= 44
  15. dblFedWthTax = 0
  16. Case Is <= 224
  17. dblFedWthTax = 0.1 * (dblTaxPay - 44)
  18. Case Is <= 774
  19. dblFedWthTax = 18 + 0.15 * (dblTaxPay - 224)
  20. Case Is <= 1812
  21. dblFedWthTax = 100.5 + 0.25 * (dblTaxPay - 774)
  22. Case Is <= 3730
  23. dblFedWthTax = 360 + 0.28 * (dblTaxPay - 1812)
  24. Case Is <= 8058
  25. dblFedWthTax = 897.04 + 0.33 * (dblTaxPay - 3730)
  26. Case Is <= 8090
  27. dblFedWthTax = 2325.28 + 0.35 * (dblTaxPay - 8058)
  28. Case Else
  29. dblFedWthTax = 2336.48 + 0.396 * (dblTaxPay - 8090)
  30. End Select
  31. End Sub
  32.  
  33. Private Function GetMarriedFwt(ByVal dblTaxPay As Double) As Double
  34. Dim dblFedWthTax As Double
  35.  
  36. Select Case dblTaxPay
  37. Case Is <= 166
  38. dblFedWthTax = 0
  39. Case Is <= 525
  40. dblFedWthTax = 0.1 * (dblTaxPay - 166)
  41. Case Is <= 1626
  42. dblFedWthTax = 35.9 + 0.15 * (dblTaxPay - 525)
  43. Case Is <= 3111
  44. dblFedWthTax = 201.05 + 0.25 * (dblTaxPay - 1626)
  45. Case Is <= 4654
  46. dblFedWthTax = 572.3 + 0.28 * (dblTaxPay - 3111)
  47. Case Is <= 8180
  48. dblFedWthTax = 1004.34 + 0.33 * (dblTaxPay - 4654)
  49. Case Is <= 9218
  50. dblFedWthTax = 2167.92 + 0.35 * (dblTaxPay - 8180)
  51. Case Else
  52. dblFedWthTax = 2531.22 + 0.396 * (dblTaxPay - 9218)
  53. End Select
  54. Return dblFedWthTax
  55. End Function
  56.  
  57. Private Sub btnCalc_Click(sender As Object, e As EventArgs) Handles btnCalc.Click
  58. ' Calculates and displays gross pay, taxes, and net pay.
  59.  
  60. Const dblONE_ALLOWANCE As Double = 77.9
  61. Const dblFICA_RATE As Double = 0.0765
  62. Dim dblHours As Double
  63. Dim dblPayRate As Double
  64. Dim intAllowances As Integer
  65. Dim dblGross As Double
  66. Dim dblTaxable As Double
  67. Dim dblFwt As Double
  68. Dim dblFica As Double
  69. Dim dblNet As Double
  70.  
  71. Double.TryParse(lstHours.SelectedItem.ToString, dblHours)
  72. Double.TryParse(lstRates.SelectedItem.ToString, dblPayRate)
  73. Integer.TryParse(cboAllowances.Text, intAllowances)
  74.  
  75. ' Calculate gross pay.
  76. If dblHours <= 40 Then
  77. dblGross = dblHours * dblPayRate
  78. Else
  79. dblGross = 40 * dblPayRate + (dblHours - 40) * dblPayRate * 1.5
  80. End If
  81.  
  82. ' Calculate taxable wages.
  83. dblTaxable = dblGross - (intAllowances * dblONE_ALLOWANCE)
  84.  
  85. ' Determine the FWT.
  86. If radSingle.Checked Then
  87. GetSingleFwt(dblTaxable, dblFwt)
  88. Else
  89. dblFwt = GetMarriedFwt(dblTaxable)
  90. End If
  91. ' Calculate FICA tax.
  92. dblFica = dblGross * dblFICA_RATE
  93. ' Round gross pay, FWT, and FICA tax.
  94. dblGross = Math.Round(dblGross, 2)
  95. dblFwt = Math.Round(dblFwt, 2)
  96. dblFica = Math.Round(dblFica, 2)
  97. ' Calculate net pay.
  98. dblNet = dblGross - dblFwt - dblFica
  99.  
  100. ' Display calculated amounts.
  101. lblGross.Text = dblGross.ToString("N2")
  102. lblFwt.Text = dblFwt.ToString("N2")
  103. lblFica.Text = dblFica.ToString("N2")
  104. lblNet.Text = dblNet.ToString("N2")
  105. End Sub
  106.  
  107. Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click
  108. Me.Close()
  109. End Sub
  110.  
  111. Private Sub txtName_Enter(sender As Object, e As EventArgs) Handles txtName.Enter
  112. txtName.SelectAll()
  113. End Sub
  114.  
  115. Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles Me.Load
  116. ' Fill list boxes and combo box with values and select a default value in each.
  117.  
  118. For dblHours As Double = 0 To 55 Step 0.5
  119. lstHours.Items.Add(dblHours.ToString("N1"))
  120. Next dblHours
  121. lstHours.SelectedItem = "40.0"
  122.  
  123. For dblRates As Double = 7.5 To 15.5 Step 0.5
  124. lstRates.Items.Add(dblRates.ToString("N2"))
  125. Next dblRates
  126. lstRates.SelectedItem = "9.50"
  127.  
  128. For intAllow As Integer = 0 To 10
  129. cboAllowances.Items.Add(intAllow)
  130. Next intAllow
  131. cboAllowances.SelectedIndex = 0
  132. End Sub
  133. Private Sub ClearOutput(sender As Object, e As EventArgs) _
  134. Handles cboAllowances.TextChanged, lstHours.SelectedIndexChanged,
  135. lstRates.SelectedIndexChanged, radMarried.CheckedChanged,
  136. radSingle.CheckedChanged, txtName.TextChanged
  137.  
  138. lblGross.Text = String.Empty
  139. lblFwt.Text = String.Empty
  140. lblFica.Text = String.Empty
  141. lblNet.Text = String.Empty
  142. End Sub
  143. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement