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 4PP
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” and “items”.
    • Define the constructor “Invoice()”.
      • Initialize “billingAddress”.
      • Initialize “items”.
    • 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 “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 “addressElement”.
      • Create an element “itemsElement”.
      • Append “addressElement” 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 “samsAddress” 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
Please do not use any AI tools to solve this question. I need a fully manual, step-by-step solution with clear explanations, as if it were done by a human tutor. No AI-generated responses, please.
Obtain the MUX design for the function F(X,Y,Z) = (0,3,4,7) using an off-the-shelf MUX with an active low strobe input (E).
I cannot program smart home automation rules from my device using a computer or phone, and I would like to know how to properly connect devices such as switches and sensors together ? Cisco Packet Tracer 1. Smart Home Automation:o Connect a temperature sensor and a fan to a home gateway.o Configure the home gateway so that the fan is activated when the temperature exceedsa set threshold (e.g., 30°C).2. WiFi Network Configuration:o Set up a wireless LAN with a unique SSID.o Enable WPA2 encryption to secure the WiFi network.o Implement MAC address filtering to allow only specific clients to connect.3. WLC Configuration:o Deploy at least two wireless access points connected to a Wireless LAN Controller(WLC).o Configure the WLC to manage the APs, broadcast the configured SSID, and applyconsistent security settings across all APs.
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS
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