ASSIGNMENT 305 (JAVA)

1a.

Your team leader has explained the benefits of object-oriented design. It is time to design your application so that it is object oriented. The first step is to design a class that represents a product category that your company sells. Example product types could be toasters, books, cars, televisions, or computers.

Using UML notation, perform the following tasks:

·         Create a UML class diagram for your class.

o    Your class should have at least 3 attributes (instance variables).

o    Attributes should be appropriately typed and scoped to incorporate data hiding.

o    Getters and setters for each instance variable should be included in the diagram.

o    A constructor should also be included in your class diagram.

It is not required that you use a UML diagramming tool to create your UML diagram. Appropriate UML notation can be achieved using MS Word.

Post your class diagram to the Discussion Board.

b.

Implement the class you designed in the Week 2 Discussion Board assignment. The class represents a product category that your company sells. Example product categories could be toasters, books, cars, televisions, and computers. Your class should have at least 3 attributes (instance variables). Getters and setters for each instance variables should be provided. Attributes should be appropriately typed and scoped to incorporate data hiding. Appropriate constructors should be implemented.

Create an application that constructs at least 1 instance (object) of your class. The application should call the constructor that you implemented to construct the object. The default constructor should not be used. The initial values passed to the constructor should be values entered by the user. The application should provide clear prompts for the required initial values to be used by the constructor.

Your application should test each getter and setter for each class. Display the results of each call to a getter to demonstrate that the correct results are returned. This information should display in a well-formatted manner and using a combination of printf(), print(), and println() statements. Headers and labels should be used in the display to make it clear what each value displayed represents.

Your code should also be commented.

c.

Your technical leader has submitted additional requirements for your application. You have been asked to enhance the application so that it includes data validation, computes average sales data, and computes average shipping charges. To plan for this new functionality, you will define 2 new method headers and develop pseudocode.

Data Validation Requirement

To incorporate data validation at the time of product data entry, you will need to include an error-checking condition to allow the user to reenter a data value that is not valid. For example, if a class should have a positive number for an attribute, continuously prompt the user for a valid positive number until one has been entered by the user. Based on the attributes you provided, you will select where to include appropriate error checking. You must include error checking for at least one value required by the user. Provide pseudocode that includes error checking.

New Methods

Define method headers for computeAverageSales() and computeShipping Charges() according to the following requirements. Develop pseudocode for two new methods to be added to your product class:

The computeAverageSales() method should use sentinel-controlled repetition to allow a user to enter product sales data until the user has indicated that he or she is done. The average of the entered sales data will be computed and returned by the method to be displayed by the application. For example, if the user entered 500.50, 250.50, and 300.30, then the average sales would be computed for these 3 values and returned by the method. The prompting of the sales data is done within the method. If the value of the average sales exceeds, $200.00, a message should be displayed to alert the user that the product has produced a significant amount of revenue. The computeAverageSales() method should return type "double."

The computeShippingCharges() method should use sentinel-controlled repetition to allow a user to enter shipping data until the user has indicated that he or she is done. The total shipping charges will be computed and returned as a double value.

Post your pseudocode for the data validation, method headers, and pseudocode for each new method to the Discussion Board. You will use your pseudocode to make the modifications to your application in an upcoming task.

d.

Implement the data validation enhancement you designed in the previous task. Include an error-checking condition to allow the user to reenter a data value that is not valid. For example, if a class should have a positive number for an attribute, continuously prompt the user for a valid positive number until one has been entered by the user. Based on the attributes you provided, you have selected where to include appropriate error checking. You must include error checking for at least 1 value required by the user.

Update your design document to include this enhancement.

Submit your zipped NetBeans project and your updated design document.

e.

You have been tasked with creating an application that accepts product data and displays this information. The application also computes average sales and shipping charges. Using appropriate control structures, enhance your product class to include the 2 new methods designed in an earlier task.

The computeAverageSales() method should use sentinel-controlled repetition to allow a user to enter product sales data until the user has indicated that he or she is done. The average of the entered sales data will be computed and returned by the method to be displayed by the application. For example, if the user entered 500.50, 250.50, and 300.30, then the average sales would be computed for these 3 values and returned by the method. The prompting of the sales data is done within the method. If the value of the average sales exceeds $200.00, a message should be displayed to alert the user that the product has produced a significant amount of revenue. The computeAverageSales() method should return type "double."

The computeShippingCharges() method should use sentinel-controlled repetition, to allow a user to enter shipping data until the user has indicated that he or she is done. The total shipping charges will be computed and returned as a double value.

Modify your application to call the computeAverageSales() and computeShippingCharges() methods.

As a result of these modifications, the following requirements should be met:

1.     Your application should use the class you created in the earlier tasks. Your class represents one product that your company sells. Your class should have at least 3 attributes (instance variables). Getters and setters for each instance variable should be provided. Attributes should be appropriately typed and scoped to incorporate data hiding. Appropriate constructors should be implemented by each class and called by the application.

2.     The application should provide a user-friendly interface that allows the user to input data for at least 2 instances of your product class.

3.     Data validation should be incorporated at the time of data entry. At least one error-checking condition must be incorporated to allow the user to reenter a data value that is not valid.

4.     Constructors should be called to create instances of your classes once the user has entered valid data. The valid data should be used appropriately by the constructors.

5.     After product information has been entered and displayed, your application should allow the user to compute average sales and shipping charges. The application should call the computeAverageSales() and computeShippingCharges() methods.

a.     There is no limit to the number of orders placed for each product. Using sentinel-controlled repetition, the computeAverageSales() method should allow a user to enter product sales data until the user has indicated that he or she is done. The average of the entered sales data will be computed and returned by the method to be displayed by the application. For example, if the user entered 500.50, 250.50, and 300.30, then the average sales would be computed for these 3 values and returned by the method. The prompting of the sales data is done within the method. If the value of the average sales exceeds $200.00, a message should be displayed to alert the user that the product has produced a significant amount of revenue.

b.     The computeShippingCharges() method should use sentinel-controlled repetition to allow a user to enter shipping data until the user has indicated that he or she is done. The total shipping charges will be computed and returned as a double value. The application will display the computed shipping charges.

Design Document Requirements

Compile all of your pseudocode from the earlier IPs into a design document. Your design document should have a section that includes the functional requirements and any class diagrams used to describe the system. Include any design requirements imposed by your technical leadership. Your design document should be ready to post to the Week 4 Discussion Board for review by your classmates. In the next task, you will get an opportunity to receive suggestions for improvement on your design document.

f.

Your company needs to provide your sales team with information on the products your company has sold. You will deliver an application that accepts product data and displays this information. Using the class you created in the earlier tasks, complete the design and development of your application.

1.     Your application should use the class you created in the earlier tasks. Your class represents one product that your company sells. Your class should have at least 3 attributes (instance variables). Getters and setters for each instance variables should be provided. Attributes should be appropriately typed and scoped to incorporate data hiding. Appropriate constructor(s) should be created and called.

2.     The application should provide a user friendly interface that allows the user to input sales data for at least 2 instances of your product class.

3.     Data validation should be incorporated at the time of data entry. At least one error checking condition must be incorporated to allow the user to re-enter a data value that is not valid.

4.     Constructor(s) should be called to create instances of your class once the user has entered valid data.

5.     The interface should allow the display of the entered product information for each product. This information should display well formatted using a combination of printf(), print() and println() statements. Headers and labels should be used in the display to make it clear what each value displayed represents.

6.     After product information has been entered and displayed, your application should allow the user to compute average sales and shipping charges. The application should call the computeAverageSales() and computeShippingCharges() method on your product class.

7.     There is no limit to the number of orders placed for each product. Using sentinel controlled repetition, the computeAverageSales() method should allow a user to enter product sales data until the user has indicated that they are done. The average of the entered sales data will be computed and returned by the method to be displayed by the application. If the value of the average sales exceeds, $200.00, a message should be displayed to alert the user that the product has produced a significant amount of revenue.

8.     The computeShipping Charges() method should use sentinel controlled repetition, to allow a user to enter shipping data until the user has indicated that they are done. The total shipping charges will be computed and returned as a double value. The application will display the computed shipping charges.

Your application should be well documented and developed using the principles covered in this course. All data displayed should be well formatted and presented in a readable manner.

A design document should be submitted that contains your UML class diagram of each class along with pseudocode for your methods and application.

Include a document that contains screenshots showing your application runs. Document each screenshot with a caption that explains the test data entered and the resulting application behavior/output.

    • 10 years ago
    Solution
    NOT RATED

    Purchase the answer to view it

    blurred-text
    • attachment
      it151-1401b-01_answer.zip
    • attachment
      it151_phase2_db.docx