Recent Question/Assignment
Task 1
A local shop keeper wants a Python program to calculate and comparing the prices a product supplied by 3 supplies. Each supplier has different product prices and discounts. The program should allow him to enter the supplier’s first name, last name, product price, discount rate (ex: 5%) for each supplier. Then the program should calculate the discounted price for each supplier and should display the following output:
----------------------------------------------------------
Compare Return for Bank Term Deposits
----------------------------------------------------------
Supplier Name Actual Product Price Discount Rate Discounted Price
Alan Parker $100 4% $96.00
John Sugar $110 5% $104.50
Nick Dickson $120 15% $102.00
Write an algorithm in structured English (pseudocode) that describes the steps required to perform the task specified. Some examples of pseudocode can be found at http://www.unf.edu/~broggio/cop2221/2221pseu.htm.
Select 3 sets of test data that will demonstrate the ‘normal’ operation of your program: that is test data that will demonstrate what happens when VALID input is entered. Select another 2 sets of test data that will demonstrate the “abnormal” operation of your program. Set it out in a tabular form: the test data, the reason it was selected, the output expected as a result of using that test data, and finally leave space to record the output actually observed when the test data is used.
Implement your algorithm in Python. Comment your code as necessary to explain it clearly.
Run your program using the test data you have selected and save the output it produces in a text file.
Submit:
1. Your algorithm.
2. The table recording your chosen test data.
3. Source code for your Python implementation.
4. Output listings demonstrating the results of using the test data.
It is important that the output listings are not edited in any way.
Task 2
A shop keeper wants a Python program that allows him to calculate loyalty discounts for his regular customers. The program should allow a staff member to enter the customer details and sales details: customer’s first name, last name, customer category and total sales. The shop keeper offers different discount rates for different customer categories as follows:
Total Sales ($)
Customer Category
0 – 499.99
500.00- 1,999.99
2,000.00 and above
Bronze
2%
3%
4%
Silver
3%
4%
5%
Gold
4%
5%
6%
Platinum
5%
6%
7%
Then the program should calculate the discount that a customer can get and his net amount payable. Finally, the program should display the following details:
--------------------------------------------------
Sales Summary
---------------------------------------------------
Customer Name: John Smith
Customer category: Gold
Total Sales: $1,000.00
Discount Rate: 5%
Discount: $50.00
Net Sales Amount: $950.00
Write an algorithm in structured English (pseudocode) that describes the steps required to perform the task specified. Some examples of pseudocode can be found at http://www.unf.edu/~broggio/cop2221/2221pseu.htm.
Select 3 sets of test data that will demonstrate the correct ‘normal’ operation of your program. Select another 2 sets of test data that will demonstrate the “abnormal” operation of your program. Set these out in the same format as in Assignment 1.
Implement your algorithm in Python.
Avoid duplicate code. For example, do not calculate the bonus in multiple places in your code.
Comment your code as necessary to explain it clearly.
Run your program using the test data you have selected and save the output it produces in a text file.
Submit:
1. Your algorithm.
2. The table recording your chosen test data.
3. Source code for your Python implementation.
4. Output listings demonstrating the results of using the test data.
It is important that the output listings are not edited in any way.
Presentation
You MUST prepare and present all source code, output from test runs, and other documentation as separate files within a single directory (folder) identified by your name. This directory will later be compressed into a single ZIP file - see the -Requirements- section below.
The Python source code you write should be saved with a name such as ITC106_Ass.py by choosing File Save As, from the IDLE -edit- window.
The test run (or runs) produced when your Python program executes should be saved with a name such as ITC106_Ass.txt by choosing File Save As, from the IDLE -run- window. (N.B. When testing your final program, start with a new (empty) run window, perform ALL necessary test runs one after the other, then when finished save the contents of the -run- window into ONE file showing ALL test runs in the order that you carried them out. This order should match the order of the test in your -test data table-).
The other documentation (such as your pseudocode, and your table of test data etc.) should be saved in a Word document with a name such as ITC106_Ass.doc.
Thus your directory for Assignment A1 will contain three files - and be identified with your name (and not the name of the subject or the assignment).
It is critically important that your test runs (saved as one file with a .txt extension) are unmodified outputs from your program, and that these results should be reproducible by the marker running your saved .py python program in IDLE. In this subject test runs, and python program listings are NOT to be cut and pasted in any form from the IDLE windows. (For example you might be tempted to cut the output from test runs and to paste it into a Word document to create a -pretty- assignment with headers and footers the way you might be used to doing for other subjects. DO NOT DO THIS! The un-edited contents of the -edit- and -run- windows from IDLE is all we want to see in the .py program listing file and the .txt test run file.)
Requirements
Once you have saved the three files (as described under -Presentation- above) into a single directory identified by your name, you MUST compress that directory into a single ZIP file (and only a ZIP file - not a RAR file or some other compressed file format), as outlined in the section on presentation. Failure to adhere to these requirements will attract a 10% penalty.