Big Java Late Objects
Big Java Late Objects
2nd Edition
ISBN: 9781119330455
Author: Horstmann
Publisher: WILEY
Question
Book Icon
Chapter 24, 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
module: java   Question3:                                                                                                                                    (30 MARKS) Passenger Rail Agency for South Africa Train Scheduling System Problem Statement Design and implement a train scheduling system for Prasa railway network. The system should handle the following functionalities: 1. Scheduling trains: Allow the addition of train schedules, ensuring that no two trains use the same platform at the same time at any station. 2. Dynamic updates: Enable adding new train schedules and canceling existing ones. 3. Real-time simulation: Use multithreading to simulate the operation of trains (e.g., arriving, departing). 4. Data management: Use ArrayList to manage train schedules and platform assignments. Requirements 1. Add Train Schedule, Cancel Scheduled Train, View Train Schedules and Platform Management 2. Concurrency Handling with Multithreading i.e Use threads to simulate train operations, Each…
java: Question 1: (40 MARKS) E-Hailing Bicycle Management System Case Study:An e-hailing company that rents out bicycles needs a system to manage its bicycles, users, and borrowing process. Each user can borrow up to 2 bicycles at a time, specifically for families with children 18 years or below. The system must track the bicycles (name, make, type, and availability) and users (name, ID, and borrowed bicycles). The company also wants to ensure that the system uses a multidimensional array to store information about the bicycles. Requirements: Add and View Bicycles: Borrow Bicycles: Return Bicycles Display Borrowed Bicycles and Search for a bicycle Create a menu-driven program to implement the above. Sample Output: Add Bicycle View All Bicycles Borrow Bicycle Return Bicycle View Borrowed Bicycles Search Bicycle ExitEnter your choice: Question 2 (30 MARKS) Pentagonal Numbers Problem Statement Create a Java program that will display the first 40 pentagonal…
Request for Java Programming Expert Assistance - Module: Java 731 Please assign this to a human expert for detailed Java programming solutions. The AI keeps attempting to answer it, but I need expert-level implementation. Question 1 (40 MARKS) - E-Hailing Bicycle Management System Case Study:An e-hailing company needs a Java system to manage bicycle rentals. Key requirements: Users (families with children ≤18) can borrow up to 2 bicycles. Track bicycles (name, make, type, availability) and users (name, ID, borrowed bikes). Use a multidimensional array for bicycle data. Functionalities: Add/view bicycles. Borrow/return bicycles. Display borrowed bikes and search functionality. Menu-driven program with the following options:   Copy 1. Add Bicycle 2. View All Bicycles 3. Borrow Bicycle 4. Return Bicycle 5. View Borrowed Bicycles 6. Search Bicycle 7. Exit Question 2 (30 MARKS) - Pentagonal Numbers Problem Statement:Write a Java program to display the first 40…
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