Big Java, Binder Ready Version: Early Objects
Big Java, Binder Ready Version: Early Objects
6th Edition
ISBN: 9781119056447
Author: Cay S. Horstmann
Publisher: WILEY
Question
Book Icon
Chapter 25, Problem 5PP
Program Plan Intro

Invoice Builder

Program plan:

Filename: “LineItem.java”

This program file is used to define a class “LineItem”. In the code,

  • Define a class “LineItem”.
    • Declare the class members “quantity” and “theProduct”.
    • Define the constructor “LineItem()”.
      • Initialize “quantity”.
      • Initialize “theProduct”.
    • Define a method “getTotalPrice()”,
      • Return the price.
    • Define a method “format()”,
      • Return the value in string format
    • Define a method “getQuantity()”,
      • Return the value of “quantity”.
    • Define a method “getProduct()”,
      • Return the value of “theProduct”.

Filename: “Product.java”

This program file is used to define a class “Product”. In the code,

  • Define a class “Product”.
    • Declare the class members “description” and “price”.
    • Define the constructor “Product()”.
      • Initialize “description”.
      • Initialize “price”.
    • Define a method “getDescription()”,
      • Return the “description”.
    • Define a method “getPrice()”,
      • Return the “price”.

Filename: “Address.java”

This program file is used to define a class “Address”. In the code,

  • Define a class “Address”.
    • Declare the class members “name”, “street”, “city”, “state” and “zip”.
    • Define the constructor “Address()”.
      • Initialize “name”.
      • Initialize “street”.
      • Initialize “city”.
      • Initialize “state”.
      • Initialize “zip”.
    • Define a method “format()”,
      • Return the value in string format
    • Define a method “getName()”,
      • Return the value of “name”.
    • Define a method “getStreet()”,
      • Return the value of “street”.
    • Define a method “getCity()”,
      • Return the value of “city”.
    • Define a method “getState()”,
      • Return the value of “state”.
    • Define a method “getZip()”,
      • Return the value of “zip”.

Filename: “Invoice.java”

This program file is used to define a class “Invoice”. In the code,

  • Define a class “Invoice”.
    • Declare the class members “billingAddress”, “shippingAddress” and “items”.
    • Define the constructor “Invoice()”.
      • Set “items”.
      • Initialize “billingAddress”.
      • Initialize “shippingAddress”.
    • Define a method “add()”,
      • Define the object of “LineItem” called “anItem”.
      • Add item using “add()” method.
    • Define a method “getBillingAddress()”,
      • Return the value of “billingAddress”.
    • Define a method “getShippingAddress()”,
      • Return the value of “shippingAddress”.
    • Define a method “getItems()”,
      • Return the value of “items”.
    • Define a method “format()”,
      • Declare a string variable “r” and set its value.
      • Iterate a “for” loop,
        • set the value of “r”.
          • Set the value of “r” to a string format.
          • Return the value of “r”.
    • Define a method “getAmountDue()”,
      • Declare a variable “amountDue”.
      • Iterate a “for” loop,
        • Set the value of “amountDue”.
          • Return the value of “amountDue”.

Filename: “InvoiceBuilder.java”

This program file is used to define a class “InvoiceBuilder”. In the code,

  • Define a class “InvoiceBuilder”.
    • Declare the class members “builder” and “doc”.
    • Define the constructor “InvoiceBuilder()”.
      • Create an object “factory” of class “DocumentBuilderFactory”.
      • Set “builder”.
      • Initialize “items”.
    • Define a method “build()”,
      • Set “doc”.
      • Create an object “root” of “Element”.
      • Add “root” to “doc”.
      • Return the “doc”.
    • Define a method “createInvoice()”,
      • Create an element “invoiceElement” for invoice.
      • Create an element “sAddressElement”.
      • Create an element “bAddressElement”.
      • Create an element “itemsElement”.
      • Append “sAddressElement” to “invoiceElement”.
      • Append “bAddressElement” to “invoiceElement”.
      • Append “itemsElement” to “invoiceElement”.
    • Define a method “createInvoice()”,
      • Create an element “addressElement” for address.
      • Create a text node “nameText”.
      • Create an element “nameElement” for name.
      • Append “nameText” to “nameElement”.
      • Create a text node “streetText”.
      • Create an element “streetElement” for street.
      • Append “streetText” to “streetElement”.
      • Create a text node “cityText”.
      • Create an element “cityElement” for city.
      • Append “cityText” to “cityElement”.
      • Create a text node “stateText”.
      • Create an element “stateElement” for state.
      • Append “stateText” to “stateElement”.
      • Create a text node “zipText”.
      • Create an element “zipElement” for zip.
      • Append “zipText” to “zipElement”.
      • Append “nameElement” to “addressElement”.
      • Append “streetElement” to “addressElement”.
      • Append “cityElement” to “addressElement”.
      • Append “stateElement” to “addressElement”.
      • Append “zipElement” to “addressElement”.
      • Return the value of “addressElement”.
    • Define a method “createItemList()”,
      • Create an element “itemsElement” for items.
      • Iterate a “for” loop,
        • Create an object “itemElement”.
        • Append “itemElement” to “itemsElement”.
          • Return the value of “itemsElement”.
    • Define a method “createItem()”,
      • Create an element “itemElement” for item.
      • Create an element “productElement”.
      • Create a text node “quantityText”.
      • Create an element “quantityElement”.
      • Append “quantityElement” to “quantityText”.
      • Append “itemElement” to “productElement”.
      • Append “itemElement” to “quantityElement”.
    • Define a method “createProduct()”,
      • Create a text node “descriptionText”.
      • Create a text node “priceText”.
      • Create an element “descriptionElement” for description.
      • Create an element “priceElement” for price.
      • Append “descriptionText” to “descriptionElement”.
      • Append “priceText” to “priceElement”.
      • Create an element “productElement” for product.
      • Append “descriptionElement” to “productElement”.
      • Append “priceElement” to “productElement”.
      • Return “productElement”.

Filename: “InvoiceBuilderDemo.java”

This program file is used to define a class “InvoiceBuilderDemo”. In the code,

  • Import the required packages.
  • Define a class “InvoiceBuilderDemo”.
    • Define the method “main()”.
      • Define the object “samsShipToAddress” of class “Address”.
      • Define the object “samsBillToAddress” of class “Address”.
      • Define the object “samsInvoice” of class “Invoice”.
      • Add the products using “add()” method.
      • Define the object “builder” of class “InvoiceBuilder”.
      • Define the DOM elements.
      • Define a variable “out”.
      • Print the variable “out”.

Blurred answer
Students have asked these similar questions
What is the generator?   Explain  motor generator  motor
This battle room is focused on entry level tasks for a network analyst where you will be given trials and reconnaissance, sensor tuning, log aggregation, SIEM queries, and network analysis.   For this week’s project, complete the following tasks:   From your Project Ares portal, LOG IN Click on LAUNCH GAME. Select the region NORTH AMERICA Click on Battle School Under the BATTLE SCHOOL pop-up window, click on START TRAINING. Under the BATTLE ROOMS tile, click on ENTER. Under the NETWORK ANALYST tile, click on PLAY. Wait for the Battle Room to load. While loading, the BATTLE ROOM button will display red. Once the Battle Room is loaded, the BATTLE ROOM button will turn yellow and the center of the disk display will indicate CONNECTED. Click on the BATTLE ROOM button to enter the Battle Room. Below the TASKS folder, make sure you click on INSTRUCTIONS to download the Network Analyst Fundamentals material. In the Battle Room, under the TASKS menu select task INTRUSION DETECTION. Complete…
Create a relationship between the common field (Technician Number) of the two tables. Make sure that each client must have 1 and only 1 technician assigned, and each technician can have multiple clients. 2. Create a query to show the Client Number, Client Name, Billed, Paid for clients in Anderson city. Save the query. 3. Create a query to show the Technician Number, Last Name, First Name, YTD Earnings for technicians whose Hourly Rate is greater than or equal to 30. Save the query. 4. Create a query to show Client Number, Client Name, Billed, Paid for clients whose technician number is 22 and whose Billed is over 300. Save the query. 5. Create a query to show the Technician Number, Last Name, First Name, Client Number, Client Name for clients whose technician number 23. Save the query. 6. Create a query to show the Technician Number, Last Name, First Name, Client Number, Client Name for clients whose technician number 23 or 29. Save the query Help please Microsoft office access
Knowledge Booster
Background pattern image
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education