Itech1400 - assignment 1 supermarket self-service checkout


1a Identification of properties of a typical supermarket Product.

1b Application of abstraction to identify key properties of a typical supermarket Product as well as creation of a suitable Class Diagram.

1c Identification of the key properties of a CheckoutRegister as well as creation of a suitable Class Diagram which uses those properties, plus the four method signatures provided.

2 Creation of an activity flowchart which clearly indicates how the program should operate, using the correct symbols for elements such as start/end points, processes and decisions/branches

3 Programming of the product checkout simulation so that it:
i) Creates a small number of Product instances that may be purchased,
ii) Accepts simulated ‘scanning' of a Product to identify it (including refusal to identify products which do not exist),
iii) Adds a scanned Product to the CheckoutRegister's list of products being purchased,
iv) Allows the checkout of multiple products,
v) Accepts ‘virtual money' to pay for those products (you must pay enough to cover the cost of the items checked out), and
vi) Prints a final receipt of the products purchased, along with the total cost, total paid and any change given.

4a Analysis and documentation via code comments of the two functions provided.

4b Incorporation of the two functions provided into your main submission so that the program does not crash when an illegal money value is provided, and also virtually ‘bags up' the products purchased.

Assignment Part 1 Details - Class Design
Insert your list/table of possible product properties here...
Product Properties (All)

Product Properties (Key)

Complete the class diagram of your final Product
Product Class Diagram

CheckoutRegister Class Diagram

Assignment Part 2 - Activity Flowchart
Insert your activity flowchart of the supermarket checkout process here... If your flowchart is large then place it on the following page.

Assignment Part 3 - Software Implementation
Do not place your code here - provide the code as separate .py files submitted with this document.

Assignment Part 4 - Code Explanation and Use
Update the below code to insert comments describing what the code is doing - for each line starting with a hash symbol (#) you should write your code comments after the hash. You may add a second line of comments if you require more space.

# Function to: ___________________________
defget_float(prompt):

# ____________________________________
value =float(0.0)

# ____________________________________
whileTrue:
try:
# ____________________________________
value = float(input(prompt))

# ____________________________________
if value <0.0:
print("We don't accept negative money!")
continue

# ____________________________________
break

# ____________________________________
exceptValueError:
print('Please enter a valid floating point value.')

# ____________________________________
return value


# Function to: ___________________________
defbag_products(product_list):

# ____________________________________
bag_list=[]
non_bagged_items=[]
MAX_BAG_WEIGHT =5.0

# ____________________________________
for product inproduct_list:


# ____________________________________
ifproduct.weight> MAX_BAG_WEIGHT:
product_list.remove(product)
non_bagged_items.append(product)

# ____________________________________
current_bag_contents=[]
current_bag_weight=0.0

# ____________________________________
whilelen(product_list)>0:

# ____________________________________
temp_product=product_list[0]
product_list.remove(temp_product)

# ____________________________________
ifcurrent_bag_weight+temp_product.weight< MAX_BAG_WEIGHT:

# ____________________________________
current_bag_contents.append(temp_product)
current_bag_weight+=temp_product.weight

# ____________________________________
if(len(product_list)==0):
bag_list.append(current_bag_contents)

# ____________________________________
else:
bag_list.append(current_bag_contents)

# ____________________________________
current_bag_contents=[]
current_bag_weight=0.0

# ____________________________________
for index, bag in enumerate(bag_list):
output ='Bag '+str(index +1)+' contains: '

# ____________________________________
for product in bag:
output += product.name +'\t'
print(output,'\n')

# ____________________________________
if(len(non_bagged_items)>0):
output ='Non-bagged items: '

# ____________________________________
for item innon_bagged_items:
output += item +'\t'
print(output,'\n')

Attachment:- Assignment.rar

Solution Preview :

Prepared by a verified Expert
C/C++ Programming: Itech1400 - assignment 1 supermarket self-service checkout
Reference No:- TGS02751380

Now Priced at $60 (50% Discount)

Recommended (98%)

Rated (4.3/5)