1
answer
1
watching
475
views

His assignment is the next step to enhance your Programming Project 1 and Homework 3 works. As for 
now, you can keep the inventory in a file and upload it to the array available for your program. You have 
three classes for each type of products. It is time to think about how to improve the data model – all 
three types have enough in common to be child classes of one parent class.
Thus, the first thing to do is create a superclass and make three product type classes subclasses. Then, 
move as many members (fields and methods) from Type X, Y, and Z product classes to a superclass as 
possible. Change the constructors appropriately. 
The advantage of inheritance is the ability to create an array of superclass objects to be filled with 
objects of different subclasses. Thus, your inventory is in one array. Use the product’s index in the array 
to build the product’s ID (I would recommend starting with 1). In the superclass, create a static variable 
that holds the number of products available in the inventory. It must grow as reading from the file 
progresses.
Override a default toString() method for a superclass such that it shows product ID, name, regular 
price, and type.
At this moment, make sure that all modifications you have made keep your application alive and 
working.
The next step is to add three new classes to the project: 
• Create a class to represent the user – hardware store customer. You must decide what members 
this class needs. Ask the user to input necessary information.
• You may notice that the date of the year is a complicated piece of data. Create a class Date that 
converts a string of the form of “mm/dd/yyyy” into an object with three fields – month, day, and 
year. The class constructor may do this job, but do not forget to check the string for correctness.
Once you have this class ready, input the date as a string with the following converting into an 
object of type Date. Remember, if you read a string from the keyboard after a number, you 
may need to handle the new line symbol left in the input buffer.
• The result of your application is an order that must have the customer’s information, the date, 
the product information, and the total amount to pay. Thus, the third class to add is the class 
Order. When all the information is collected, the order is ready to be created and printed out. 
Outputting the order is the primary behavior of an object of type Order, and it is the final step 
of your application. Thus, class Order aggregates the customer’s info, date, product info, and 
total. Please note that Type X and Type Y products need only regular price and amount to 
calculate the total, while Type Z products must also consider the date.
The input and output examples for Types Y and Z are
User: Vladimir Kuperman
The inventory:
1 Light Bulb 60W 3.0 Type X
2 Light Bulb 100W 5.99 Type X
3 Steel Bolt M5 0.15 Type Y
4 Steel Bolt M8 0.25 Type Y
5 Hose 25 feet 10.0 Type Z
6 Hose 50 feet 15.0 Type Z
Your choice: 3
Number of units: 1000
What is the purchasing date? (mm/dd/yyyy)
12/12/2021
*********************************
Date 12/12/2021
*********************************
Vladimir Kuperman
Your item: 
+----+--------------+------+----+
|ID | Name |Price |Type|
+----+--------------+------+----+
|3 Steel Bolt M5 0.15 Y |
+----+--------------+------+----+
in the amount of 1000
*If you buy more than 1500 units you would pay $0.14 per unit.
*********************************
Your total: 127 dollars 50 cents
Save to file? (Y/N) Y
User: Vladimir Kuperman
The inventory:
1 Light Bulb 60W 3.0 Type X
2 Light Bulb 100W 5.99 Type X
3 Steel Bolt M5 0.15 Type Y
4 Steel Bolt M8 0.25 Type Y
5 Hose 25 feet 10.0 Type Z
6 Hose 50 feet 15.0 Type Z
Your choice: 5
Number of units: 10
What is the purchasing date? (mm/dd/yyyy)
10/12/2021
*********************************
Date 10/12/2021
*********************************
Vladimir Kuperman
Your item: 
+----+--------------+------+----+
|ID | Name |Price |Type|
+----+--------------+------+----+
|5 Hose 25 feet 10.0 Z |
+----+--------------+------+----+
in the amount of 10
*********************************
Your total: 70 dollars 0 cents
Save to file? (Y/N) Y
Program requirements
The program must have one superclass and three subclasses for three types of products according to 
the description given in Programming Project 1. 
The program must read the inventory from the file into one array for all three types of products. Each 
element of the array must be an object of one of the subclasses according to the information in the file. 
Product ID must be formed automatically using a static variable.
The user must be registered in the system, and the corresponding object must be created. Then, the
user chooses a product from the list, specifies an amount and the date of planned purchasing.
The date, user, product, amount, and the total must be aggregated in an object of type Order and 
outputted.
For this assignment, it is sufficient to output the order to the console. However, additional saving the 
order in the file will be considered as a plus.
The test plan must be developed for the program. Consider and test different inputs that may cause 
errors: incorrect file records, wrong date format, invalid user’s choice.
You have four weeks and three submission attempts for this assignment. Here is the suggested scenario 
on how to plan your work:

For unlimited access to Homework Help, a Homework+ subscription is required.

Avatar image
Liked by thelaziestgamereviewer and 1 others

Unlock all answers

Get 1 free homework help answer.
Already have an account? Log in

Related questions

Related Documents

Weekly leaderboard

Start filling in the gaps now
Log in