2012-07-15 59 views
-4

这里是我到目前为止的代码:错误在我的奖金计算器

# This program will determine the appropriate bonus to be given to both the store 
# and the employess. 

# Lab 3-4 

# The main function 
def main(): 
    monthlySales = getSales() # Call to get sales 
    salesIncrease = getIncrease() # Call to get sales increase 
    storeAmount = storeBonus(monthlySales) # Call to get the store bonus 
    empAmount = empBonus(monthlySales) # Call to get the employee bonus 
    printBonus (storeAmount, empAmount) # Call to print amounts  

# This function gets the monthly sales 
def getSales(): 
    monthlySales = input('Enter the monthly sales $') 
    monthlySales = float(monthlySales) 
    return monthlySales 

# This function gets the percent of increase in sales 
def getIncrease(): 
    salesIncrease = input('Enter percent of sales increase. For example, 4% should be entered as 4: ') 
    salesIncrease = float(salesIncrease) 
    salesIncrease = salesIncrease/100 
    return salesIncrease 

# This function determines storeAmount bonus 
def storeBonus(monthlySales): 
    if monthlySales >=110000: 
     storeAmount = 6000 
    elif monthlySales >=100000: 
     storeAmount = 5000 
    elif monthlySales >=90000: 
     storeAmount = 4000 
    elif monthlySales >=80000: 
     storeAmount = 3000 
    else: 
     storeAmount = 0 
    return storeAmount 

# This function determines empAmount bonus 
def empBonus(salesIncrease): 
    if salesIncrease >= .05: 
     empAmount = 75 
    elif salesIncrease >= .04: 
     empAmount = 50 
    elif salesIncrease >= .03: 
     empAmount = 40 
    else: 
     empAmount = 0 
    return empAmount 

# This function prints the bonus information 
def printBonus(storeAmount, empAmount): 
    print('The store bonus is $', storeAmount) 
    print('The employee bonus is $', empAmount) 
    if storeAmount == 6000 and empAmount == 75: 
     print('Congrats! You have reached the highest bonus amounts possible!') 

# Calls main 
main() 

现在,为了测试这个代码,我是给这些以下情况:

1)monthlySales = 120500 salesIncrease = 5

2)monthlySales = 93400 salesIncrease = 5

3)monthlySales = 75000 salesIncrease = 1.5

4)monthlySales = 82000 salesIncrease = 3.6

5)monthlySales = 125000 salesIncrease = 4.5

现在一切都很好,直到3-5。 “员工奖金金额”不应该是75美元,但这是什么出来的。任何想法如何解决这个问题?任何人都看到我的代码中的任何错误,我没有看到?

*编辑:代码应该为每个输入值输出如下;

1)$ $ 6000 75

2)$ $ 4000 75

3)$ 0 $ 0

4)$ $ 3000 40

5)$ $ 6000 50

回答

6

很难说出你的问题是什么,因为你的问题并没有解释你正在做什么,但我会冒险猜测你已经失去了100倍:

def empBonus(salesIncrease): 
    if salesIncrease >= 5: 
     empAmount = 75 
    elif salesIncrease >= 4: 
     empAmount = 50 
    elif salesIncrease >= 3: 
     empAmount = 40 
    else: 
     empAmount = 0 
    return empAmount 

要使用你的第三个例子,你在检查1.5 >= 0.05这当然是True所以empAmount被设定为75的。

+0

请参阅'*编辑:'了解更多信息。希望这会更清楚地说明我的问题。我为最初的困惑道歉。 – 2012-07-15 17:35:13