Skip to content

Advanced Billing System Assignment: Java Inheritance #11

Open
@Pankaj-Str

Description

@Pankaj-Str

Assignment Question:

You are tasked with developing a comprehensive and advanced billing system for a retail store using Java. This system should demonstrate the effective use of object-oriented principles, particularly inheritance, to manage various product categories and their unique attributes. Your implementation should include the following features:

  1. Base Class - Product:

    • Design a base class Product with the following attributes:
      • String productID: A unique identifier for each product.
      • String name: The name of the product.
      • double price: The base price of the product.
      • int quantity: The quantity of the product available.
    • Implement methods in the Product class to:
      • Display product details.
      • Calculate the total price for the specified quantity of the product.
  2. Derived Classes - Specialized Products:

    • Create three subclasses of Product, each representing a different product category. Each subclass should override the calculatePrice method to include specific pricing logic:
      • PerishableProduct:
        • Attributes: String expiryDate, double discount.
        • The price should include a discount based on how close the product is to its expiry date.
      • ElectronicsProduct:
        • Attributes: int warrantyPeriod, String brand.
        • The price should include any additional warranty charges.
      • ClothingProduct:
        • Attributes: String size, String material.
        • The price should reflect any seasonal discounts.
  3. Discount Mechanism:

    • Implement a Discount interface with a method to apply discounts to the product price. Ensure that each derived product class implements this interface, allowing for custom discount logic based on product attributes.
  4. Billing System:

    • Develop a BillingSystem class that:
      • Manages a list of Product objects.
      • Allows adding, removing, and viewing products in the billing list.
      • Computes the total bill by summing up the individual product prices, taking into account any discounts.
  5. User Interface - BillingSystemApp:

    • Create a user interface class, BillingSystemApp, that:
      • Interacts with the user to add products to the billing system.
      • Displays the current billing list.
      • Calculates and prints the final bill amount.
  6. Advanced Features (Optional):

    • Implement file handling capabilities to:
      • Save the billing details to a file.
      • Load billing details from a file.
    • Include sorting functionality to organize products in the billing list by price, name, or category.
    • Allow the user to update product details (e.g., change the quantity, apply a new discount).

Objective:

By completing this assignment, you will demonstrate your ability to design and implement a complex system using inheritance and polymorphism in Java. This system should be flexible, allowing for future expansion, such as adding new product categories or discount types, without significant changes to the existing codebase.

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions