Question: Java Programming Im using netbeans 8.2 Java Project Files provided to you: Valiator.jar and Validator.html https://www.dropbox.com/s/laezmiazcypjd4y/Validator.html?dl=0 https://drive.google.com/open?id=0B0SDbm25NLe-NGhRYmxJUHR2REE link for JAR FILE The provided Validator.html, similar

Java Programming

Im using netbeans 8.2

Java Project

Files provided to you:

Valiator.jar and Validator.html

https://www.dropbox.com/s/laezmiazcypjd4y/Validator.html?dl=0

https://drive.google.com/open?id=0B0SDbm25NLe-NGhRYmxJUHR2REE link for JAR FILE

The provided Validator.html, similar to the standard Java API Specifications, shows you what methods the class Validator provides. In your NetBeans project, you need to use the provided Validator.jar file to validate users input so that you dont need to write your own validation program.

In order to use the Validator.jar file, you need to add this jar file to your project in NetBeans by the following procedures.

Assume that in NetBeans your project name is Projectfinal. After you create the projectfinal project, right click Libraries under Projectfinal, click Add JAR/Folder , then choose the Validator.jar file from your computer.

orderline.txt: a sample output file. The provided text file is for your reference, such as to show the format of its content, and your program needs to write output to this file. If this file does not exist yet, your program needs to create it dynamically.

Requirements description:

Assume you work part-time at a sandwich store. As the only employee who knows java programming, you help to write a sandwich ordering application for the store.

The following is a brief requirement description with some sample output.

Design requirements:

You must have the following java classes.

[1] a Sandwich class to simulate the sandwich entity in real world, which has attributes of bread, vegetables, meat, and price of the sandwich, and corresponding methods.

[2] an OrderLine class to simulate the orderline. This class has attributes of customer name, sandwich object, and the string value of time stamp (refer to the prior sample code). This class also provides a method to append the content of an orderlines content to the output text file, orderline.txt.

[3] a java application, named SandwichApp.java, that contains a main method. This class interacts with Sandwich and Orderline classes.

1. Selecting bread

When the program starts, it first shows a list/menu of sandwich breads and their prices, then asks a user to select a bread by entering an integer number. A sample output is as follows.

=== Select Sandwich Bread: ===

1 White Bread $1.5

2 Wheat Bread $1.8

3 French Bread $2.0

4 Organic Bread $2.3 Select a bread [1, 4]:

If the user enters a number not between 1 and 4, the user will see an error message and the input verification is done by using the provided Validator class (i.e., Validator.jar). A sample output for invalid number is as follows.

Select a bread [1, 4]: 0

Error! Number must be greater than 0. Select a bread [1, 4]:

In your program, you can hard-code the information for sandwich breads (i.e., bread names and prices) shown above, such as 1 White Bread $1.5 and use the hard-code price, such as 1.5, for calculation of a total price of the order.

2. Selecting vegetables

After the user provides a right bread number for bread selection, the program asks the user to select vegetables. A sample output is as follows. Again, input validation is needed and is provided by the Validator class (Validator.jar).

=== Select Sandwich Vegetables: ===

1 red onions $0.10

2 olives $0.10

3 pickles $0.10

4 lettuce $0.20

5 green peppers $0.25

6 tomatoes $0.30

7 cheese $0.49

8 Quit vegetable selection Select vegetables: [1, 8]:

You hard-code the vegetables information as shown above, such as 1 red onions $0.10 and use the hard-code price, such as 0.10, for calculation of the total price of the order.

After the user makes a choice for vegetable, such as 2 for olives. The program continues asking for selecting a vegetable so that the user can have multiple vegetables for one sandwich. The user can enter 8 to quit vegetable selection. A sample output is as follows.

=== Select Sandwich Vegetables: ===

1 red onions $0.10

2 olives $0.10

3 pickles $0.10

4 lettuce $0.20

5 green peppers $0.25

6 tomatoes $0.30

7 cheese $0.49

8 Quit vegetable selection

Select vegetables: [1, 8]: 2

=== Select Sandwich Vegetables: ===

1 red onions $0.10

2 olives $0.10

3 pickles $0.10

4 lettuce $0.20

5 green peppers $0.25

6 tomatoes $0.30

7 cheese $0.49

8 Quit vegetable selection Select vegetables: [1, 8]:

3. Selecting meat

After vegetable selection, the program shows meat selection. A sample output is as follows.

=== Select Sandwich Vegetables: ===

1 red onions $0.10

2 olives $0.10

3 pickles $0.10

4 lettuce $0.20

5 green peppers $0.25

6 tomatoes $0.30

7 cheese $0.49

8 Quit vegetable selection

Select vegetables: [1, 8]: 8

=== Select Sandwich Meat: ===

1 Ham $0.9

2 Roasted Chicken Breast $1.0

3 Turkey Breast $1.1

4 Roast Beef $1.5

5 Quit meat selection Select meat [1, 5]:

Input validation is needed and works as before. Unlike vegetable selection which allows selecting multiple vegetables, meat selection does not repeat after the user enters a valid number between 1 and 5.

You hard-code the information for meat shown above, such as 1 Ham $0.9 and use the hard-code price, such as 0.9, for calculation of the total price of the order.

4. Entering a customers name

After making a meat selection, the program asks for the users name so that the user can enter text like John or John Smith.

=== Select Sandwich Meat: ===

1 Ham $0.9

2 Roasted Chicken Breast $1.0

3 Turkey Breast $1.1

4 Roast Beef $1.5

5 Quit meat selection

4

Select meat [1, 5]: 4

Enter customer's name: John Smith

5. Displaying and writing order line information

After entering a name, the program prints details for this order line in computer monitor. The information includes the six fields: date and time, customer name, bread, vegetable(s), meat, and a (formatted) total price, and each field is separated by a tab, /t. A sample output to the monitor is as follows.

Enter customer's name: John Smith

Jul 6, 2016 10:35:43 AM John Smith Organic Bread lettuce, tomatoes, green peppers Roast Beef $4.55

Continue to order more sandwich? (y/n):

For your reference, the date and time is created by the following statements.

Date now = new Date();

DateFormat defaultDate = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);

String time = defaultDate.format(now);

Multiple vegetables are separated by commas.

Besides showing on monitor, the same order line content is written (appended) to a text file named orderline.txt and each order line occupies one line in the text file. Here is a specific example for an order in the orderline.txt.

2016/07/05 20:34:17 John Smith Organic Bread lettuce, tomatoes, green peppers Roast Beef $4.55

Your program needs to create the output file, named orderline.txt, if it doesnt exist yet, and later appends (not overwrite) order line information to the file. So next time when your program is executed, new order information will be appended to the orderline.txt file. You must use a relative path when creating an output stream writer object. For simplicity, we dont record any information about the sales clerk and one order includes only one sandwich.

6. Repeating the order process (5 points)

Continue to order more sandwich? (y/n):

If the user enters y or Y in the above prompt, the whole order process repeats by asking the user to select a sandwich bread, vegetable(s), meat, and enter a customer name, etc.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!