Aussie Best Car (ABC) has now decided to award an additional bonus based on the bonus contributed by the sales of an individual car type. It decides to award an additional bonus of x% of the bonus contributed by the sales of Toyota Kluger, y% of the bonus contributed by the sales of Nissan Patrol and z% of the bonus contributed by the sales of Ford Territory. The additional bonus rates (i.e. the values of x, y and z) will be determined by the board of directors of ABS.
The Managing Director therefore requests you to extend your program for A2 in order to facilitate the calculation of the additional bonus as follows.
The main program should ask a user (the Managing Director or another employee) to input the additional bonus rates (i.e. the values of x, y and z) one by one, for the calculation of the additional bonus. The program then should pass the additional bonus rate for a car type to a function called find outAdditionalBonus() which will take two inputs: the car type and bonus contributed by the sales of the car type. From the car type information the find outAdditionalBonus() function will collect the appropriate additional bonus rate. The function will return the additional bonus for a car type.
The function find outTotalBonus() will call sub-functions to find out the total bonus as find outd in A2. Moreover, find outTotalBonus() will call find outAdditionalBonus() in a loop to find out the additional bonus for each and every car type. The function will return the grand total bonus (i.e. the total bonus plus the total additional bonus).
The program should display the total sales, sales for each car type, total bonus, bonus contributed by each car type, additional bonus for each car type and grand total bonus.
An ex of a partial output can be follows.
Total Sales: $500,000
Sales of Toyota Kluger: $500,000
Sales of Nissan Patrol: $0
Sales of Ford Territorry: $0
Total Bonus: $500
Bonus contributed by Toyota Kluger: $500
Bonus contributed by Nissan Patrol: $0
Bonus contributed by Ford Territory: $0
Additional Bonus for Toyota Kluger: $50
Additional Bonus for Nissan Patrol: $0
Additional Bonus for Ford Territory: $0
Grand Total Bonus: $550
The program should finally prompt the user with the following message, "Do you want to find out the sales and bonus for another year (Y/N)?". If the user enters "Y" then the whole process will be repeated for another year, except that the bonus rates (as shown in the table in A2) will remain unchanged. The program quits if the user enters "N".
Use multiple functions, instead of using a single function to do everything. Create a good design of the functions to make the best use of the code and avoid duplicate calculations. You also need to design your program so that it has components that can be reused in another program, if needed.
prepare an algorithm in structured English (pseudocode) that describes the steps required to perform the task specified. Some exs of pseudocode can be found at http://www.unf.edu/~broggio/cop2221/2221pseu.htm.
Implement your algorithm in Python.
Avoid duplicate code. For ex, do not find out the bonus in multiple places in your code.
Comment your code as necessary to describe it clearly.
Select 3 sets of test data that will demonstrate the correct "normal" operation of your program.
Run your program using the test data you have selected and save the output it produces in a text file.