DSC International School
ICS4U                         U2A1 - Building Software Library (Part B)
Mr. N. Leung
 K:                    /8   C:                  /4    A:               /8   T:             /10
You are tasked with developing a media store database, similar to iTunes. The final program
should enable users to add and purchase various media products from the store. Due to the
extensive scope of the program and the limited time available, it's not feasible for you to
complete it alone. Therefore, each team member will focus on designing and implementing a
specific part or function of the store. Once all the components are completed, you will
integrate them into your version of the store. The development process must utilize object-
oriented programming (OOP). Students will not receive any marks for the assignment if they
fail to utilize object-oriented programming (OOP) or if they incorporate programming
concepts that were not taught in class.
Part B – Individual Store (This part will be marked):
Pick one of the individual stores for building your program.
Six individual stores are listed below.
1.Music
2.Movies
3.TV Shows
4.Podcasts
5.Apps
6.eBooks
Description of your individual store:
For example, if your store is the Music store, then your program should be designed to work
for the following.
      a) A list of at least 3 music types (i.e. rock, pop, and jazz)
         - 3 items per type, each item with its own price
            -> create an object class with attributes – type of songs, name of song, and price [K: 3]
            -> create objects according to the object class you have defined (9 songs in total,
               3 songs for each type. [K: 3]
            -> use meaningful variable names through the whole program (e.g. f_nums, i_items) [K: 2]
   b) Customers can select any item in your individual store
      -include a loop for customers to select different products in your individual store [A: 2]
      -use object methods to perform this task [A: 2]
       - you may add purchase items to a shopping cart (possibly an array, say shoppingCart)
         for temporary storage. After a customer confirms his/her purchases from your store,
         we assume the amount of their purchases will be charged to their credit card and no
         further changes can be made. Customer’s full name, the name(s) and the price(s) of
         the selected item(s) will append to a text file called “purchaseRecord.txt”. Empty
         your shoppingCart at this point for future use.
         [T: 2 – shopping cart, 2 – update purchase record, 2 – allow customer to make changes]
   c) Customers can visit your partner’s store(s) for other purchases from the centralized
      system.
      -you may use the existing shopping cart for temporary storage, after purchases are
       complete and confirmed, we assume the amount of their purchases will be charged to
       their credit card and no further changes can be made. The name(s) and the price(s) of
       the selected item(s) will append to the text file, “purchaseRecord.txt”. Your task is to
       show your ability to use all the things in your partner’s program to deal with
       customer’s purchases. If your partner’s program does not work, no purchase item(s) from
       your partner’s store should be updated in the text file.
       [If your partner programs work -> T: 2 – shopping cart, 2 – update purchase record]
       [If your partner programs do not work -> T: 4 – error handling]
     -an invoice will be displayed to the customer based on the data in the “purchaseRecord.txt”
      file
          ->generate an invoice that includes the name of your shopping center, the name of
            the customer, a list of purchase items under different individual stores, subtotals,
            grand total. [A: 4]
D) Include documentation for your program including a header and comments. [C: 4]
A sample invoice may look like as follow when a customer makes orders from the Apps Store,
Music Store, and Movie Store. Assume no errors occurred in any individual store.
   ABC Store
   Customer Invoice for James Bond
   Purchases from:
   Apps Store
   1. XXX              $xx
   2. XXX              $xx
   3. XXX              $xx
   --------------------------
       Subtotal: $xxx
   Music Store
   1. XXX              $xx
   2. XXX              $xx
   --------------------------
       Subtotal: $xxx
   Movie Store
   1. XXX              $xx
   --------------------------
       Subtotal: $xx
   TV Store
   No purchase
   -------------------------
       Subtotal: $0
   ---------------------------------------------
                            Grand total: $xxx
A sample invoice with an error occurred in the Movie Store may look like as follow when a
customer makes orders from the Apps Store, Music Store, and Movie Store.
 ABC Store
 Customer Invoice for James Bond
 Purchases from:
 Apps Store
 1. XXX              $xx
 2. XXX              $xx
 3. XXX              $xx
 --------------------------
     Subtotal: $xxx
 Music Store
 1. XXX              $xx
 2. XXX              $xx
 --------------------------
     Subtotal: $xxx
 Movie Store
 This store is facing technical difficulty, please visit it later.
 TV Store
 No purchase
 -------------------------
     Subtotal: $0
 ---------------------------------------------
                          Grand total: $xxx