Question
22.8 Java example: Employees and overriding class methods info Students: This content is controlled by your instructor, and is not zyBooks content. Direct questions or
22.8 Java example: Employees and overriding class methods
info
Students:
This content is controlled by your instructor, and is not zyBooks content. Direct questions or concerns about this content to your instructor. If you have any technical issues with the zyLab submission system, use the Trouble with lab button at the bottom of the lab.
assignment
Students:
Section 22.9 is a part of 1 assignment:Homework 6
Requirements:
Lab Activities
Due:
11/02/2018, 11:59 PM CDT
22.9 Homework 6
OBJECTIVE The purpose of this assignment is for students to gain a better understanding of Java inheritance and polymorphism mechanics. Due on Zybooks, Oct 31st, 11:59pm.
DESCRIPTION You have to design an e-commerce shopping cart. These require classes Item, Electronics, Food, Dress, Cart and Main. Another class Test (Test.java) will be provided to you in Blackboard. This class will contain main() method and help you test your own code. You do not need to upload Test.java.
ITEM CLASS Your Item class should contain:
Attributes (protected)
String name - name of the Itemdouble price - price of the item
Methods (public)
void setName(String n) - sets the name of Itemvoid setPrice(double p) - sets the price of ItemString getName() - retrieves namedouble getPrice() - retrieves priceString formattedOutput() returns a string containing detail of the Item as "Name,price" (without the quotes, no space only comma separating the values, for example: Apple,1.00
Constructors
Item(String n, double p) - constructor, sets name=n & price=p.Item() - default constructor, sets name="" & price=0
ELECTRONICS CLASS
Your Electronics class inherits from Item. It should have following:
Attributes (private)
String modelint year
Methods (public)
void setModel(String m) - sets the model of Electronics.void setYear(int year) - sets the manufacturing year of Electronics. If year
Constructors
Electronics(String n, double p, String md, int my) - If year
FOOD CLASS
Your Food class inherits from Item. It should have following:
Attributes (private)
double weightString weightUnit
Methods (public)
void setWeightUnit(String wu) - sets the weightUnit of Food.void setWeight(double wt) - sets the weight of Food. If w
Constructors
Food(String n, double p, double w, String wu) - If w
DRESS CLASS
Your Dress class inherits from Item. It should have following:
Attributes (private)
String sizeString fabric
Methods (public)
Constructor with parameters.Additional set/get functions for new attributes.String formattedOutput() overrides method from Item class and returns a string containing detail of the Food as "Name,price,size,fabric" (without the quotes, no space only comma separating the values, for example: Shirt,Small,cotton,9.49
Constructors
Dress(String n, double p, String s, String f)Dress() - default constructor, sets String attributes to "" and int/double to 0/0.00.
CART CLASS
Your Cart class should contain:
Attributes (private)
Item items[] - Items in the cart. Size of this array is initialized in constructor.int itemQuantities[] quantity of each item in the cart. Example: A cart has 2 apples and 1 computer. item[0] has Apple with quantity[0] =2, Item[1] has Computer with quantity[1] = 1 i.e. quantity[i] is the quantity of item[i]int itemCount number of items (types, not quantities) at any given state. For above example if you have 2 apples and 1 Electronics in the cart, your itemCount should be 2.double totalPrice - price of all the items in the cartint totalQuantity - quantity of all the items in the cart. For above example, total quantity is 3.
Constructors
Cart() - sets default value cartSize to 10 and creates arrays items & itemQuantities arrays having size 10, initializes other int/double type attributes to 0/0.00.Cart(int cartSize) - sets cartSize and creates arrays items & itemQuantities arrays having size cartSize, initializes other int/double type attributes to 0/0.00.. If cartSize is less than or equal to zero, set it to default size 10.
Methods - all methods are public (unless mentioned)
int getItemCount() - retrieves itemCount
double getTotalPrice() - retrieves totalPrice
int getTotalQuantity() - retrieves totalQuatnity
int getCartSize() - retrieves cartSize
void setCartSize(int newCartSize) - sets cartSize. It always works if newCartSize greater than current cartSize. If the newCartSize is less than current cartSize, resize only if itemCount is less than newCartSize, otherwise leave unchanged. If newCartSize is less than or equal to zero, no update is done.
void add (Item item, int addQuantity) - to add items to the cart. Make sure you can only add items if there is enough room in the cart (the quantity of each item does not matter). If an item is added (you can use searchItem method here) that is already in the cart, increase the quantity, but do not duplicate the item. If addQuantity is less than or equal to zero, no update is required.
void remove (Item item, int removeQuantity) - to remove removeQuantity number of items from the cart (if the removeQuantity is greater than quantity of items in the cart, it removes all of them). For example, you have 7 apples in the cart and removeItem(Apples,15) is called, then you remove all 7 of them (including the item from the cart), but if removeItem(Apples,5) is called, you remove 5 of them and 2 apples remain in the cart. Note that, you can only remove item if it is present in the cart (you can use searchItem method). If removeQuantity is less than or equal to zero, no update is required.
private int search (Item item) returns index of the item in the array if found, or -1 if item is not found in the cart. Compare name of the item only. This is a helper function you can use in addItem or removeItem method.
String formattedOutput() - Calls the formattedOutput() function of all items in the cart, followed by the quantity of each item type in cart, and its total price (the price should reflect the quantity). Finally, formattedOutput() should include the total number of items in the cart and the total price of all items in the cart.
MAIN CLASS
This file already has a template with empty main() method. Your Main class in Zybook should look like:
public class Main { public static void main(String[] args) { } }
BONUS (20 points)
Modify int searchItem(Item item) method in Cart class, to compare items considering all of their attributes. You have to use instance of operator for this. You are not allowed to use any new method(s) for this task. For example, if the name matches for Electronics class object, you need to check price, model and year. However, if its a Dress class object, you need to check if price, size and fabric matches. For example: without implementing bonus, following two items would be taken as same: Probook,HP,2008,190.00 and Probook,HP,2019,690.00, but would be different with the bonus version of searchItem.
TESTING & SUBMISSION
You can either work in Zybook editor or your favorite IDE. But if you use IDE, you have to copy your code to Zybook editor.
If you use your own IDE, you can use Test.java (uploaded in Blackboard) to test your code. Test.java contains 20 sample test cases and 2 bonus test cases. Your code will be tested with similar test cases. However, grading test cases will be different, for example: all the values will be changed (unless default values mentioned in the description). So don't hard code any part of your code to pass these test cases only.
Please help me with this homework, and please solve it in a way that zybook accepting the code. Thank you
Toan To E The purpose of this assignment is for students to gain a better understanding of Java inheritance and polymorphism mechanics. Due on Zybooks, Oct 31st, 11:59pm. e-commerce shopping cart. These require classes Item, Electronics, Food, Dress, Cart and Main Another class Test (Test java) You do not need to upload Test java ) will be provided to you in Blackboard This class will contain main) method and help you test your own code ITEM CLASS Your ltem class should contain Attributes (protected) o String name-name of the Item o double price -price of the item Methods (public) o void setName(String n)- sets the name of Item o void setPrice(double p)-sets the price of Item o String getName-retrieves name o double getPrice0 retrieves price o String formattedOutput0 returns a string containing detail of the ltem as Name price' (without the quotes, no space only comma separating the values, for example: Apple, 1.00 Item(String n, double p)-constructor, sets name-n & price-p. o Item0 default constructor, sets name-" & price-0 ELECTRONICS CLASS Your Electronics class inherits from item. It should have following: Attributes (private) o String model o int year . Methods (public) o void setModel(String m)- sets the model of Electronics o void setYearint year) -sets the manufacturing year of Electronics. If yearStep by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started