Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Module Module1
- Function Modulus11(FrequentNumber As String) As Boolean
- Dim WeightingFactor As Integer
- Dim Checksum As Integer
- For i = 2 To 5
- WeightingFactor = i * Convert.ToInt32(Convert.ToString(FrequentNumber(5 - i)))
- Checksum += WeightingFactor
- Next
- Checksum = 11 - (Checksum Mod 11)
- If Checksum = Convert.ToInt32(Right(FrequentNumber, 1)) Then
- Return True
- Else
- Return False
- End If
- End Function
- Sub Main()
- Dim DayEnd As Boolean
- Dim Day As String
- Dim ArrivalHour As Integer
- Dim NumberHours As Integer
- Dim InvalidHours As Boolean
- Dim HourlyRate As Integer
- Dim ParkingPrice As Double
- Dim ParkingPayment As Double
- Dim FrequentDiscount As Integer
- Dim FrequentNumber As String
- Dim DayTotal As Double
- Dim DayNames As New List(Of String)(New String() {"sunday",
- "monday",
- "tuesday",
- "wednesday",
- "thursday",
- "friday",
- "saturday"})
- Do
- Console.Clear()
- Do
- Console.Write("Enter the day: ") : Day = Console.ReadLine.ToLower
- Loop Until DayNames.Contains(Day)
- Do
- Console.Write("Enter the hour of arrival (8 to 23): ") : ArrivalHour = Console.ReadLine()
- Loop Until ArrivalHour > 7 And ArrivalHour < 24
- If ArrivalHour < 16 Then
- Console.WriteLine("Price per hour:" & Environment.NewLine & "Sunday : £2; Saturday : £3; Rest £10")
- Console.WriteLine("Max parking hours:" & Environment.NewLine & "Sunday : 8 hours; Saturday : 4 hours; Rest 2 hours")
- Else
- Console.WriteLine("Parking upto midnight, £2/hour")
- End If
- Do
- Console.Write("Enter the number of hours you would like to park your car: ") : NumberHours = Console.ReadLine()
- InvalidHours = True
- If ArrivalHour < 16 Then
- Select Case Day
- Case "sunday"
- If NumberHours <= 8 Then
- InvalidHours = False
- HourlyRate = 2
- End If
- Case "saturday"
- If NumberHours <= 4 Then
- InvalidHours = False
- HourlyRate = 3
- End If
- Case Else
- If NumberHours <= 2 Then
- InvalidHours = False
- HourlyRate = 10
- End If
- End Select
- If NumberHours < 0 Then
- InvalidHours = True
- End If
- Else
- If NumberHours <= 24 - ArrivalHour And NumberHours > 0 Then
- InvalidHours = False
- HourlyRate = 2
- End If
- End If
- ParkingPrice = HourlyRate * NumberHours
- Loop While InvalidHours
- If ArrivalHour < 16 And ArrivalHour + NumberHours > 16 Then
- ParkingPrice = (16 - ArrivalHour) * HourlyRate + 2
- End If
- FrequentDiscount = 0
- Console.WriteLine("Enter 'True' if you have a valid frequent parking number to avail a discount")
- Console.WriteLine("If not applicable, Enter False")
- Console.Write(">")
- If Console.ReadLine() Then
- Console.Write("Enter your frequent parking number (XXXXX): ") : FrequentNumber = Console.ReadLine()
- If Modulus11(FrequentNumber) Then
- Console.WriteLine("Discount Valid!")
- If ArrivalHour < 16 Then
- FrequentDiscount = 10
- Else
- FrequentDiscount = 50
- End If
- Else
- Console.WriteLine("Your frequent parking number is invalid.")
- End If
- End If
- ParkingPrice = ParkingPrice * (100 - FrequentDiscount) / 100
- Console.WriteLine("Your bill is £" & ParkingPrice & " after a discount of " & FrequentDiscount & "%")
- Do
- Console.Write("Enter the amount paid(more than or equal to bill): ")
- ParkingPayment = Console.ReadLine
- Loop Until ParkingPayment >= ParkingPrice
- DayTotal += ParkingPayment
- Console.Write("Enter -1 to end the day: ")
- If Console.ReadLine() = -1 Then
- DayEnd = True
- End If
- Loop Until DayEnd
- Console.WriteLine("The daily total of payments: " & DayTotal)
- Console.ReadLine()
- End Sub
- End Module
Add Comment
Please, Sign In to add comment