我想回答一个问题,我必须在visual basic中使用案例。
问题是:
编写一个程序,询问用户本周的工作小时数及其每小时工资率。该计划是计算草薪。如果工作小时数大于40小时,则额外小时数按1.5倍的费率支付。如果工作小时数不在0到60范围内,程序应显示错误消息。
这是我写的代码,对于出了什么问题的任何想法都会非常感激。
Console.WriteLine("This will calculate the gross profit from the hours you work and the hourly pay")
Console.WriteLine("Your work hours can not be under 0 or above 60,
if you work above 40 hours the extra hours will be 1.5 times the original")
Console.Write("Please enter the hours you work a week: ")
Dim hours As Integer = Console.ReadLine()
Console.Write("Please enter the hourly pay you get: ")
Dim hourlyPay As Decimal = Console.ReadLine()
Dim message As String = "Your gross pay per week is: £"
Dim weeklyPay As Decimal
Select Case hours
Case 0 < hours < 40
weeklyPay = hours * hourlyPay
Case hours > 40 And hours < 60
weeklypay = ((40 * hourlyPay) + ((hours - 40) * (hourlyPay * 1.5)))
Case hours < 0 Or hours > 60
message = "Sorry the hours you entered are above the range try again"
End Select
Console.WriteLine(message & weeklyPay.ToString("N2"))
Console.ReadLine()
答案 0 :(得分:2)
Select
以先到先得的方式运作,通过测试条件并对其进行处理,以便您可以消除每个条件,以便剩下的所有条件都是“默认”条件。
Select Case hours
Case Is > 60
message = "Sorry the hours you entered are above the range try again"
Case Is < 0
message = "Sorry the hours you entered are below the range try again"
Case Is > 40
weeklypay = ((40 * hourlyPay) + ((hours - 40) * (hourlyPay * 1.5)))
Case Else
weeklyPay = hours * hourlyPay
End Select
答案 1 :(得分:0)
我想出了如何解决它:
Console.WriteLine("This will calculate the gross profit from the hours you work and the hourly pay") 'sends the message of what this program does
Console.WriteLine("Your work hours can not be under 0 or above 60,
if you work above 40 hours the extra hours will be 1.5 times the original") 'explains the boundaries and conditions
Console.ReadLine()
Console.Write("Please enter the hours you work a week: ") 'asks for the hours worked
Dim hours As Integer = Console.ReadLine() 'declares hours as an integer and sets it's value for what the user enters
Console.Write("Please enter the hourly rate of pay: ") 'asks for the hourly rate of pay
Dim hourlyPay As Decimal = Console.ReadLine() 'declares hourlyPay as a decimal and sets it's value for what the user enters
Dim message As String = "Your gross pay per week is: £" 'declares message as a string and sets it's value to tell the user what their pay is - this will be useful later
Dim weeklyPay As Decimal 'declares weekly pay as a decimal
Select Case hours 'An if statement would complicated to use so, i used a select case
Case 0 To 40 'when hours are between 0 and 40, then the weekly pay is normal (hourly rate * hours)
weeklyPay = hours * hourlyPay
Case 40 To 60 'however when hours are above 40, then the extra hours (hours - 40) are paid at a higher rate (1.5 times)
weeklyPay = ((40 * hourlyPay) + ((hours - 40) * (hourlyPay * 1.5)))
Case < 0 'when hours are under the boundary of 0 then send the error message
message = "Sorry the hours you entered are under the range try again "
Case > 60 'when hours are over the boundary of 60 then send the error message
message = "Sorry the hours you entered are above the range try again "
End Select
Console.WriteLine(message & weeklyPay.ToString("N2")) 'this sends the message across to the user and their pay
Console.ReadLine() 'stops the program from terminating