Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

COMP 2 1 6 Networking for Software Developers Lab 3 Shopper Class ( 4 0 Marks ) This is an individual lab. Using a Visual

COMP216 Networking for Software Developers
Lab 3 Shopper Class (40 Marks)
This is an individual lab. Using a Visual Studio Code to write the python statement to define a
Shopper class. The test harness is provided to you by the instructor as well as the resulting output
given.
Description of the Shopper Class
Class variable
There are six class variables i.e. variables that are shared by all objects of this class
__prices
This is a python dict that contains the grocery items as well as their unit price. This is defined as
follows:
__prices ={ 'apple': 1.8, 'bread': 2.2, 'milk': 4.9, 'pepper': 1.2}
__sale_items
This is a list that contains all the items that are on sale in this period. A discount of 15% is applied
to the price of each item in this collection. This is defined as follows:
__sale_items = 'apple banana'.split()
Four other class variable that are define as follows:
__discount_threshold =6
When the total cost of a purchase exceeds this amount then a discount is applied to the cost
__default_price =2.50
If an item is not found in the __prices dictionary, then this will be the default price
1 Mark
1 Mark
1 Mark
1 Mark
COMP216 Networking for Software Developers Classes Week3_Lab3
Winter 2024 Page 2 of 7
__volume_discount =0.9
This is the rate of discount when the total cost exceeds the discount_threshold
__sales_discount =0.85
This is the rate of discount on an item if this item is in the __sales_time list.
Constructor
The constructor takes two argument that represents the name of the shopper and the amount of
money she has. It assigns the argument to appropriate instance variable. It also creates an empty
list to store the purchases.
Each purchase is a single tuple comprising of the name of the item and the price actually paid for
the item.
Instance property
There is a single instance property that returns the name of this shopper object
Class method
There are three class methods:
1. One that returns the price list.
2. One that returns the list of sale items.
3. One that adds a new item to the sale items list.
Instance method
There are two instance methods:
purchase
This method takes a list of items to be purchase. It calculates the total price of the purchase by
processing each item in the argument as show below:
The price of an item is obtained from the price list. If it is not found in the price list then the
default price is used. [How to determine if an item in not in the dict]
If the item is in the sales list then a discount is applied to the price
4 Marks
9 Marks
13 Marks
1 Mark
1 Mark
6 Marks
COMP216 Networking for Software Developers Classes Week3_Lab3
Winter 2024 Page 3 of 7
The item as well as the result price is added to the list as a tuple. [How to create a tuple with
name and price and how to add the tuple to the list]
When all the items are processed, if the final cost is over the credit threshold, then a
discount is applied to this amount and then subtracted from the amount of money this
object has left over.
__str__
This method returns a string representing this object i.e. the name, cash and all its purchases
pertaining to this shopper.
How to do this assignment.
From the above description and test harness and the result output below, try to deduce the
definition of the Shopper class. Code this class in visual studio code and copy the test harness
below. Execute the code and ensure that the output matches EXACTLY with the output on the
following page.
You must use python f-strings for your output.
Documentation.
Because the code is so simple no code documentation is required, however you must put
following information including name, student ID, course number and the current date at the top
of your code.
Lab 3: Shopper Class
Name: FirstName LastName
Student ID: 123-456-789
Course: COMP216-008
Date: January 25,2024
How to submit this assignment.
Submit COMP216_008_Lab3_FirstLastName.py to the course dropbox.
Due Date: 4pm, February 1,2024
50% penalty for late submission before 10am February 6,2024.
No acceptance after 10am February 6,2024.
2 Marks
COMP216 Networking for Software Developers Classes Week3_Lab3
Winter 2024 Page 4 of 7
Test Harness
You may not change the test harness.
print(f'Price dict: {Shopper.price_list()}')
print(f'Sales list: {Shopper.sale_items()}')
tom = Shopper('Tommy',20) #create a shopper object
print(f'
{tom}') #display the object
items = 'bread milk apple'.split() #list of items to buy
print(f'
{tom.name} is purchasing: {items}')
tom.purchase(items) #volume discount
print(f'{tom}') #display the object
dave = Shopper('Dave',25) #new shopper
items = 'banana milk'.split() #one sale item
print(f'
{dave.name} is purchasing: {items}')
dave.purchase(items)
print(f'{dave}') #display the object
Shopper.add_sale_item('pepper') #add pepper to the sales items list
COMP216 Networking for Software Developers Classes Week3_Lab3
Winter 2024

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions

Question

What is scalability? How does it apply to DW?

Answered: 1 week ago