The main idea behind this activity is to extend Project 1. Create a system that allows a bookstore owner to keep track of their inventory and members utilizing inheritance. In this checkpoint, you...

2 answer below »

The main idea behind this activity is to extend Project 1. Create a system that allows a bookstore owner to keep track of their inventory and members utilizing inheritance.


In this checkpoint, you will be expanding the previous assignment in two significant ways. This assumes you have a working version of the Bookstore project from the previous assignment. If you were not able to complete that assignment, or if your project had significant issues that affected functionality, please make sure to get in touch with someone on the instructional team to help get your project caught up so you are ready for this one.



Recap


The same rules apply from Project 1:


The owner of a bookstore has asked for your help designing a system that allows them to keep track of the store’s inventory and members. The owner provides you with the following details about what their store currently offers:



  • The store sells three types of products: books, CDs, and DVDs.

  • The store offers two types of memberships to customers: regular memberships and premium memberships. The regular membership is free, while the premium members pay a fee every month.

  • The store keeps track of whether the monthly fee is due or has been paid for their premium members

  • The store keeps track of the members and their transactions (number of items purchased, total purchases, ...) regardless if they are regular or premium members.

  • The store also keeps track of the inventory of each product.


Your design of this system must include 3 distinct functionality. A function, in this context, are abstract ideas like "register a new premium member", or "complete a purchase". While in many programming contexts a specific function refers to what we refer to as methods in Java, here function and method are NOT synonymous. Functions here refer to the holistic application/program/system that we are creating for managing a bookstore. To implement your functions it may take one or more methods and will likely involve 1 or more of your classes.


One of these functions MUST be to complete a purchase. In order for that to happen the user should be able to select one or more items, and those items should be deducted from the inventory after the purchase is completed. The other two functions are entirely your choice.


As you are thinking about these features, think of any application or a website you use to purchase something online. What functionality, you as the user, are able to complete using this application? Answering this question should give you plenty of options to choose from.


You are welcome to program or map out additional functions. These do NOT necessarily need to be implemented, but can be included using empty methods (stub methods) to make your system look more complete.



Important Considerations



  • We want you to take an Object-Oriented approach in this project. That means you will be creating a good number of classes that will all interact with each other, rather than having everything contained within one class and one main method. The FastFoodKitchen lab is a good example of this kind of design. In the same way that the FastFoodKitchen contained a list of BurgerOrders, the Bookstore may contain a list of members, or a list of books that can be purchased.

  • It is very important to consider what attributes a book would need, that a member would need, etc. This is especially important when you consider functionalities like purchasing... which of these attributes do you need to access during a purchase, and if you need that information where/how can you find it?



Preliminaries


I can not iterate the importance of having a working implementation that meets the requirements of programming checkpoint 2.


Please refer tothis pagefor a UML diagram and JavaDoc of a possible design and solution overviewed in class.


While you can use your existing Bookstore project as a starting point for this submission you are encouraged to make a copy, rename it tolastNameFirstNameProject2and modify that instead.


For Project 2 you will be including inheritance including: abstracts, interfaces, overrides, and super calls and adding functionality to your bookstore management system.



Part A – Inheritance, Abstraction and Interfaces


In this part we want to introduce inheritance and abstraction into our system.


Update your design to utilize inheritance when representing the different items the store sells. At a minimum your design should incorporate a Product class that is sub-classed into the three different items available for purchasing - books, CDs, and DVDs.


The Product class must be an abstract class that implements theComparableinterface. Since we never really need to instantiate objects of the type Product it makes it a good candidate for abstraction. When comparing products we want that to be either based on the price of the product or the amount in stock. Choose one of those attributes and implement thecompareTomethod to work based on that field.



Part B – More Interfaces


In this part you want to update your Bookstore program to implement the following interface:



BookStoreSpecification




BookstoreSpecification Interface - Consult with instructional team if you can not read this image


Notice that this interface has only two methods:restockProduct (int, int)andinventoryValue(). If you have a Bookstore class this might be a good option to implement this interface. Where you implement this is highly dependent on your project design. You might have a separate inventory management class that might be a better place to implement this interface. You are encouraged to discuss your design with the instructional team for feedback on your project design. Keep in mind that with computational problem solving and design there are many ways of achieving a solution. Explore and have fun with it!



Part C – Changing the Test Harness


Update your Test Harness class to include menu options to test the functionality added in Parts A (Comparing products) and B (restock a product and display inventory total). Keep in mind here that you can add helper methods to your class to make the code cleaner and easier to debug.



Part D - Coding Style and Documentation


This grade is awarded for proper coding styles. This includes:



  • Appropriate prompts and informative output

  • Appropriate method, variable and object names

  • Proper indentation

  • Proper java documentation

  • Good commenting (explains what code is doing)

  • Well-organized, elegant solution



Bonus - UML Diagram


Your diagram should show:



  • All of the classes, interfaces, fields, and methods. Remember that you will need methods that
    accomplish appropriate functionality, not just getters and setters.

  • You must include visibility (i.e., public or private), data types, return types, and any
    other pertinent information.

  • Show the data types/structures (e.g., Strings, arrays or ArrayLists, Book,...) that your program will use to hold the important data.

  • Show the relationship between the classes




Submission Requirements:



  1. Submit your project export (lastNameFirstNameProject2.zip) that includes your program to fulfill the requirements.

  2. Submit a PDF document with the nameproject2Info.pdfthat includes the following assignment information:


    1. Explanation of any special or additional features you added, if any.

    2. If your solution to this problem is incomplete, you may explain the status as of your submission and describe any issues that kept you from completing the assignment.

    3. Discuss the easy and challenging parts of the assignment. How did you overcome all or some of the challenges?

    4. Did you learn anything that will help you perform better on future assignments?


Answered 6 days AfterMar 28, 2022

Answer To: The main idea behind this activity is to extend Project 1. Create a system that allows a bookstore...

Robert answered on Apr 04 2022
99 Votes
SOLUTION.PDF

Answer To This Question Is Available To Download

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here