Question: The main idea behind this activity is to create a system that allows a bookstore owner to keep track of their inventory and members. Preliminaries
The main idea behind this activity is to create a system that allows a bookstore owner to keep track of their inventory and members.
Preliminaries
The owner of a bookstore has asked for your help designing a system that allows them to keep track of the stores inventory and members. The owner provides you with the following details about what the store 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 payment method for their premium members and whether the monthly fee is due or has been paid.
The system should keep track of the members and how much money each has spent at the store regardless if they are regular or premium members.
The system 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 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?
Create your project in Netbeans, using the naming format [your last name][your first name]Project1. For instance, mine would be "LastFirstProject1"
Create all of the classes you mapped out in the UML diagram from Part A
Add all the fields and methods described in your UML, including getters/setters/constructors.
Your project and its contents should match your UML exactly. If you name a method in the UML, I will expect to see it in the Netbeans project.
Note that you can complete this step in its entirety before adding any functionality. You can use empty stub methods to start.
Now you need to add enough code and logic to your methods to implement the complete a purchase functionality and create a test harness so this function can be executed.
In order to test your functionality, you should create a Test Harness class. This will be a class whose function is to create an object that represents the book store, and use Scanner objects to take input and direct the user through the system. Text menus should be presented to the user that will allow them to pick from options such as "Make a purchase" or "Create a new member". For options that are not implemented you can simply print a message and redisplay the menu options. This should be the only class that includes a main method.
Example Output: (with input from user bolded)
Welcome to the automated BookStore System!
Select from one of the following options:
Make a Purchase for Pickup
Make a Purchase for Delivery
Make a Purchase for a Virtual Gift Card
Exit
1
Which of the following would you like to purchase?
To Kill a Mockingbird by Harper Lee - $9.99 (Book)
Charlottes Web by E.B. White - $7.99 (Book)
Cuz I Love You by Lizzo - $7.99 (CD)
How to Train Your Dragon - $15.99 (DVD)
2
You have item(s) in your cart. Are you done shopping?
Yes
No
1
Your total comes to $7.99.
Please select which member is making this purchase.
Steve
Jessica
New Member
3
Lets get you registered as a new member!
Would you like to register for free or as a premium member?
Free
Premium
1
Please enter your name:
Adam
Your purchase was $7.99.
Your order will be ready in 1 hour Adam!'
-
Welcome to the automated BookStore System!
Select from one of the following options:
Make a Purchase for Pickup
Make a Purchase for Delivery
Make a Purchase for a Virtual Gift Card
Exit
2
Which of the following would you like to purchase?
To Kill a Mockingbird by Harper Lee - $9.99 (Book)
Charlottes Web by E.B. White - $7.99 (Book)
Cuz I Love You by Lizzo - $7.99 (CD)
How to Train Your Dragon - $15.99 (DVD)
2
You have item(s) in your cart. Are you done shopping?
Yes
No
2
Which of the following would you like to purchase?
To Kill a Mockingbird by Harper Lee - $9.99 (Book)
Charlottes Web by E.B. White - $7.99 (Book)
Cuz I Love You by Lizzo - $7.99 (CD)
How to Train Your Dragon - $15.99 (DVD)
4
You have item(s) in your cart. Are you done shopping?
Yes
No
1
Your total comes to $23.98.
Please select which member is making this purchase.
Steve
Jessica
New Member
1
Please enter delivery address:
123 Street City, State ZIP
Your purchase was $23.98 Steve.
Your order will be shipped to 123 Street City, State ZIP in the next 5 business days!
-
Welcome to the automated BookStore System!
Select from one of the following options:
Make a Purchase for Pickup
Make a Purchase for Delivery
Make a Purchase for a Virtual Gift Card
Exit
3
Please enter Dollar Amount in increments of $5
$50
Your total comes to $50.
Please select which member is making this purchase.
Steve
Jessica
New Member
3
Lets get you registered as a new member!
Would you like to register for free or as a premium member?
Free
Premium
4
Please enter your name:
Chandler
Welcome to your premium membership Chandler!
Your purchase was $50.
Your gift card number is: 12345678 (a randomly generated 8 digit number)
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
