Question

11.12 LAB*: Program: Online shopping cart (continued) This program extends the earlier "Online shopping cart" program....

11.12 LAB*: Program: Online shopping cart (continued)

This program extends the earlier "Online shopping cart" program. (Consider first saving your earlier program).

(1) Extend the ItemToPurchase class to contain a new attribute. (2 pts)

  • item_description (string) - Set to "none" in default constructor

Implement the following method for the ItemToPurchase class.

  • print_item_description() - Prints item_description attribute for an ItemToPurchase object. Has an ItemToPurchase parameter.


Ex. of print_item_description() output:

Bottled Water: Deer Park, 12 oz.

(2) Build the ShoppingCart class with the following data attributes and related methods. Note: Some can be method stubs (empty methods) initially, to be completed in later steps.

  • Parameterized constructor which takes the customer name and date as parameters (2 pts)
  • Attributes
  • customer_name (string) - Initialized in default constructor to "none"
  • current_date (string) - Initialized in default constructor to "January 1, 2016"
  • cart_items (list)
  • Methods
  • add_item()
    • Adds an item to cart_items list. Has parameter ItemToPurchase. Does not return anything.
  • remove_item()
    • Removes item from cart_items list. Has a string (an item's name) parameter. Does not return anything.
    • If item name cannot be found, output this message: Item not found in cart. Nothing removed.
  • modify_item()
    • Modifies an item's description, price, and/or quantity. Has parameter ItemToPurchase. Does not return anything.
    • If item can be found (by name) in cart, check if parameter has default values for description, price, and quantity. If not, modify item in cart.
    • If item cannot be found (by name) in cart, output this message: Item not found in cart. Nothing modified.
  • get_num_items_in_cart() (2 pts)
    • Returns quantity of all items in cart. Has no parameters.
  • get_cost_of_cart() (2 pts)
    • Determines and returns the total cost of items in cart. Has no parameters.
  • print_total()
    • Outputs total of objects in cart.
    • If cart is empty, output this message: SHOPPING CART IS EMPTY
  • print_descriptions()
    • Outputs each item's description.

Ex. of print_total() output:

John Doe's Shopping Cart - February 1, 2016
Number of Items: 8

Nike Romaleos 2 @ $189 = $378
Chocolate Chips 5 @ $3 = $15
Powerbeats 2 Headphones 1 @ $128 = $128

Total: $521


Ex. of print_descriptions() output:

John Doe's Shopping Cart - February 1, 2016

Item Descriptions
Nike Romaleos: Volt color, Weightlifting shoes
Chocolate Chips: Semi-sweet
Powerbeats 2 Headphones: Bluetooth headphones


(3) In main section of your code, prompt the user for a customer's name and today's date. Output the name and date. Create an object of type ShoppingCart. (1 pt)

Ex.

Enter customer's name:
John Doe
Enter today's date:
February 1, 2016

Customer name: John Doe
Today's date: February 1, 2016


(4) Implement the print_menu() function. print_menu() has a ShoppingCart parameter, and outputs a menu of options to manipulate the shopping cart. Each option is represented by a single character. Build and output the menu within the function.

If the an invalid character is entered, continue to prompt for a valid choice. Hint: Implement Quit before implementing other options. Call print_menu() in the main() function. Continue to execute the menu until the user enters q to Quit. (3 pts)

Ex:

MENU
a - Add item to cart
r - Remove item from cart
c - Change item quantity
i - Output items' descriptions
o - Output shopping cart
q - Quit

Choose an option:


(5) Implement Output shopping cart menu option. (3 pts)

Ex:

OUTPUT SHOPPING CART
John Doe's Shopping Cart - February 1, 2016
Number of Items: 8

Nike Romaleos 2 @ $189 = $378
Chocolate Chips 5 @ $3 = $15
Powerbeats 2 Headphones 1 @ $128 = $128

Total: $521


(6) Implement Output item's description menu option. (2 pts)

Ex.

OUTPUT ITEMS' DESCRIPTIONS
John Doe's Shopping Cart - February 1, 2016

Item Descriptions
Nike Romaleos: Volt color, Weightlifting shoes
Chocolate Chips: Semi-sweet
Powerbeats 2 Headphones: Bluetooth headphones


(7) Implement Add item to cart menu option. (3 pts)

Ex:

ADD ITEM TO CART
Enter the item name:
Nike Romaleos
Enter the item description:
Volt color, Weightlifting shoes
Enter the item price:
189
Enter the item quantity:
2


(8) Implement remove item menu option. (4 pts)

Ex:

REMOVE ITEM FROM CART
Enter name of item to remove:
Chocolate Chips


(9) Implement Change item quantity menu option. Hint: Make new ItemToPurchase object before using ModifyItem() method. (5 pts)

Ex:

CHANGE ITEM QUANTITY
Enter the item name:
Nike Romaleos
Enter the new quantity:
3

Homework Answers

Answer #1

'''

Python version : 2.7

Python program to implement a shopping cart

'''

class ItemToPurchase:

               def __init__(self, name='none', price=0, quantity=0, description='none'):

                              self.item_name=name

                              self.item_description=description

                              self.item_price=price

                              self.item_quantity=quantity

                             

               def print_item_cost(self):

                              total = self.item_price * self.item_quantity

                              print('%s %d @ $%d = $%d' % (self.item_name, self.item_quantity, self.item_price, total))

               def print_item_description(self):

                             

                              print('%s: %s' % (self.item_name, self.item_description))

                             

                             

class ShoppingCart:

              

               def __init__(self, customer_name = 'none', current_date = 'January 1, 2016', cart_items = []):

                              self.customer_name = customer_name

                              self.current_date = current_date

                              self.cart_items = cart_items        

                             

               def add_item(self, itemToPurchase):

                             

                              self.cart_items.append(itemToPurchase)               

                             

                             

               def get_cost_of_cart(self):

                              total_cost = 0

                              cost = 0

                              for item in self.cart_items:

                                             cost = (item.item_quantity * item.item_price)

                                             total_cost += cost

                              return total_cost

               def print_total():

                              total_cost = self.get_cost_of_cart()

                              if (total_cost == 0):

                                             print('SHOPPING CART IS EMPTY')

                              else:

                                             self.output_cart()                                          

                                            

               def print_descriptions(self):

                             

                              if len(self.cart_items) == 0:

                                             print('SHOPPING CART IS EMPTY')

                              else:

                                             print('\nOUTPUT ITEMS\' DESCRIPTIONS')             

                                             print('{}\'s Shopping Cart - {}'.format(self.customer_name, self.current_date))

                                             print('\nItem Descriptions')

                                             for item in self.cart_items:

                                                            item.print_item_description()

                                                           

                             

               def output_cart(self):

                              print('\nOUTPUT SHOPPING CART')

                              print('{}\'s Shopping Cart - {}'.format(self.customer_name, self.current_date))

                              print('Number of Items:'+ str(self.get_num_items_in_cart())+'\n')

                              if len(self.cart_items) == 0:

                                             print('SHOPPING CART IS EMPTY')

                              else:      

                                             tc = 0

                                             for item in self.cart_items:

                                                            print('{} {} @ ${} = ${}'.format(item.item_name, item.item_quantity, item.item_price, (item.item_quantity * item.item_price)))

                                                            tc += (item.item_quantity * item.item_price)

                                             print('\nTotal: ${}'.format(tc))

                                            

               def remove_item(self, itemName):

                             

                              tremove_item = False

                             

                              for item in self.cart_items:

                                             if item.item_name == itemName:

                                                            self.cart_items.remove(item)

                                                            tremove_item = True

                                                            break

                              if not tremove_item:                                    

                                             print('Item not found in the cart. Nothing removed')

              

               def modify_item(self, itemToPurchase):  

                             

                              tmodify_item = False

                             

                              for i in range(len(self.cart_items)):

                                             if self.cart_items[i].item_name == itemToPurchase.item_name:

                                                            tmodify_item = True

                                                            if(itemToPurchase.item_price == 0 and itemToPurchase.item_quantity == 0 and itemToPurchase.item_description == 'none'):

                                                                           break

                                                            else:

                                                                           if(itemToPurchase.item_price != 0):

                                                                                          self.cart_items[i].item_price = itemToPurchase.item_price

                                                                           if(itemToPurchase.item_quantity != 0):

                                                                                          self.cart_items[i].item_quantity = itemToPurchase.item_quantity

                                                                           if(itemToPurchase.item_description != 'none'):

                                                                                          self.cart_items[i].item_description = itemToPurchase.item_description

                                                                                         

                                                                           break

                              if not tmodify_item:                      

                                             print('Item not found in the cart. Nothing modified')          

               def get_num_items_in_cart(self):

                              num_items = 0

                              for item in self.cart_items:

                                             num_items = num_items + item.item_quantity

                              return num_items

                             

              

def print_menu(newCart):

               customer_Cart = newCart

               menu = ('\nMENU\n'

                              'a - Add item to cart\n'

                              'r - Remove item from the cart\n'

                              'c - Change item quantity\n'

                              "i - Output item's descriptions\n"

                              'o - Output shopping cart\n'

                              'q - Quit\n')

              

               command = ''

               while(command != 'q'):

                              string=''

                              print(menu)

                              command = raw_input('Choose an option: ')

                              while(command != 'a' and command != 'o' and command != 'i' and command != 'q' and command != 'r' and command != 'c'):

                                             command = raw_input('Choose an option: ')

                              if(command == 'a'):

                                             print("\nADD ITEM TO CART")

                                             item_name = raw_input('Enter the item name: ')

                                             item_description = raw_input('Enter the item description: ')

                                             item_price = float(raw_input('Enter the item price: '))

                                             item_quantity = int(raw_input('Enter the item quantity: '))

                                             itemtoPurchase = ItemToPurchase(item_name, item_price, item_quantity, item_description)

                                             customer_Cart.add_item(itemtoPurchase)

                              if(command == 'o'):

                                             customer_Cart.output_cart()

                              if(command == 'i'):

                                             customer_Cart.print_descriptions()

                              if(command == 'r'):

                                             print('REMOVE ITEM FROM CART')

                                             itemName = raw_input('Enter the name of the item to remove : ')

                                             customer_Cart.remove_item(itemName)

                              if(command == 'c'):

                                             print('\nCHANGE ITEM QUANTITY')

                                             itemName = raw_input('Enter the name of the item : ')

                                             qty = int(raw_input('Enter the new quantity : '))

                                             itemToPurchase = ItemToPurchase(itemName,0,qty)

                                            

                                             customer_Cart.modify_item(itemToPurchase)     

                                            

                                            

if __name__ == "__main__":

               customer_name = raw_input("Enter customer's name:")

               current_date = raw_input("Enter today's date:")

               print("\nCustomer name:"+ customer_name)

               print("Today's date:"+ current_date)

               newCart = ShoppingCart(customer_name, current_date)

               print_menu(newCart)

#end of program                                           

Code Screenshot:

Output:

Know the answer?
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for?
Ask your own homework help question
Similar Questions
This program extends the earlier "Online shopping cart" program. (Consider first saving your earlier program). Extend...
This program extends the earlier "Online shopping cart" program. (Consider first saving your earlier program). Extend the ItemToPurchase class per the following specifications              Private fields string itemDescription - Initialized in default constructor to "none" Parameterized constructor to assign item name, item description, item price, and itemquantity (default values of 0).             Public instance member methods setDescription() mutator & getDescription() accessor (2 pts) printItemCost() - Outputs the item name followed by the quantity, price, and subtotal printItemDescription() - Outputs the...
5.27 LAB*: Program: Soccer team roster (Vectors) This program will store roster and rating information for...
5.27 LAB*: Program: Soccer team roster (Vectors) This program will store roster and rating information for a soccer team. Coaches rate players during tryouts to ensure a balanced team. (1) Prompt the user to input five pairs of numbers: A player's jersey number (0 - 99) and the player's rating (1 - 9). Store the jersey numbers in one int vector and the ratings in another int vector. Output these vectors (i.e., output the roster). (3 pts) Ex: Enter player...
PLEASE POST IN C++ : Thank you!! 5.27 LAB*: Program: Soccer team roster (Vectors) This program...
PLEASE POST IN C++ : Thank you!! 5.27 LAB*: Program: Soccer team roster (Vectors) This program will store roster and rating information for a soccer team. Coaches rate players during tryouts to ensure a balanced team. (1) Prompt the user to input five pairs of numbers: A player's jersey number (0 - 99) and the player's rating (1 - 9). Store the jersey numbers in one int vector and the ratings in another int vector. Output these vectors (i.e., output...
Code in Java SAMPLE PROGRAM OUTPUT Because there are several different things your program might do...
Code in Java SAMPLE PROGRAM OUTPUT Because there are several different things your program might do depending upon what the user enters, please refer to the examples below to use to test your program. Run your final program one time for each scenario to make sure that you get the expected output. Be sure to format the output of your program so that it follows what is included in the examples. Remember, in all examples bold items are entered by...
ADVERTISEMENT
Need Online Homework Help?

Get Answers For Free
Most questions answered within 1 hours.

Ask a Question
ADVERTISEMENT