In: Computer Science
Homework 3 Loop and Function (PYTHON)
You are asked to develop a compensation calculator application for a department store. At the department store, the compensation of sales staff consists of a base salary and a commission. The base salary is $5,000, and the commission rate is tiered based on sales amount as following:
Sales AmountCommission Rate
$0.01 – $5,000 8%
$5,000.01 – $10,000 10%
$10,000.01 and above12%
For example, if the sales amount is $12,000, the commission is calculated as following: commission = $5,000 * 8% + ($10,000 - $5,000) * 10% + ($12,000 - $10,000) * 12%. You can start with a few specific amounts first to help you figure out the general representation for commission calculation
Requirements: (1) Define compute_commission function that computes the commission, using the above commission scheme. This function receives one parameter representing the sales amount and returns the corresponding commission.
(2) Define a print_commission function, which receives three parameters representing the beginning sales amount, sales increment, and ending sales amounts, and has no return. This function uses a for-loop to display a sales and commission table. For example, if the beginning sales amount is 10000, sales increment is 5000, and the ending sales amount is 100000, then this function will print out the following table:
Sales Amount Commission
10000 900.0
15000 1500.0
...
95000 11100.0
100000 11700.0
Note: this function must call the compute_commission function to determine the commission column.
(3) Next, define a target_sales function, which receives one parameter representing a desired salary and returns the corresponding sales amount that generates the desired salary. For example, if a staff’s desired salary is 30000 (which consists of base salary + commission), then this function will return a sales amount of 210834, which is the minimum sales amount that the staff must generate to earn the desired 30000 salaries.
Note: this function must use a while-loop,and it must call the compute_commission function whenever you want to calculate the commission.In addition, it must start with an initial sales amount of $1 and increases the sales amount only by $1 in each iteration until it finds the sales amount needed to generate the desired salary.
(4) Define the main function, which will call the print_commission function to display a sales-commission table with 10000 as the beginning sales amount, 5000 as the sales increment, and 100000 as the ending sales amount. Then, ask users to enter their desired salary and use it as the argument to call the target_sales function. Lastly, display a message informing user the sales amount needed for the desired salary.
(5) Call the main function. Fix any syntax errors and test your code if you can. Save your file (especially if you can’t run it). Submit the python file through Canvas for grading. Check the rubric on Canvas.
Homework 3 Loop and Function (PYTHON)
#method to compute commission
def compute_commission(sales_amount):
#return comissions based on the criterion given based on sales amount
if sales_amount > 0.01 and sales_amount <= 5000:
return 0.8*sales_amount
elif sales_amount > 5000 and sales_amount <= 10000:
return 400 + (sales_amount - 5000) * 0.10
elif sales_amount > 10000:
return 400 + 500 + (sales_amount - 10000)*0.12
#method to print comission table
def print_commission(begin, incr, end):
print("\tSales Comission Table\n")
print("Sales Amount\t\tCommision")
#for loop to print comission table
for s in range(begin, end, incr):
commission = compute_commission(s)
print(" " + str(s) + " \t\t " + str(commission))
#method to compute target sales
def target_sales(desired_salary):
needed_sales_amt = 1
while (5000 + compute_commission(needed_sales_amt) < desired_salary):
needed_sales_amt = needed_sales_amt + 1
return needed_sales_amt
#main method
def main():
print_commission(10000, 5000, 105000)
#read user input for desired salary
desired_salary = int(input("\nEnter the desired salary: "))
print(desired_salary)
#calculate the sales amout needed for the desired salary
sales_amount = target_sales(desired_salary)
#display the needed sales amount
print("\nNeeded sale of amount " + str(sales_amount))
if __name__ == "__main__":
main()
You can refer this screenshot of the code if you have any problem with indentation in above code
Output:
if it helps you, do upvote as it motivates us a lot!