0% found this document useful (0 votes)
29 views

PoS Lab Assignment

Uploaded by

22201260
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
29 views

PoS Lab Assignment

Uploaded by

22201260
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

NAME:Abdullah Bin Hossain

ID:22201260
SECTION:E(2)
import java.util.ArrayList;
import java.util.Scanner;

class Customer {
private int customerID;
private String customerName;

public Customer(int customerID, String customerName) {


this.customerID = customerID;
this.customerName = customerName;
}

public int getCustomerID() {


return customerID;
}

public String getCustomerName() {


return customerName;
}

public String getCustomerDetails() {


return "Customer ID: " + customerID + ", Customer Name: " + customerName;
}
}

class Product {
private int productid;
private String productName;
private double price;

public Product(int productid, String productName, double price) {


this.productid = productid;
this.productName = productName;
this.price = price;
}

public double getPrice() {


return price;
}

public void setPrice(double price) {


this.price = price;
}

public int getProductid() {


return productid;
}

public String getProductName() {


return productName;
}
public String getProductInfo() {
return "Product ID: " + productid + ", Name: " + productName + ", Price: " +
price;
}
}

interface DiscountProvider {
void applyDiscount(double discountPercent);
}

interface CustomerRegistration {
void registerCustomer(Customer customer);
}

class ShoppingCart extends Product implements DiscountProvider, CustomerRegistration {


private Customer customer;
private ArrayList<Product> items = new ArrayList<>();

public ShoppingCart() {
super(0, "Cart", 0); // Default Product ID and name for the cart
}

public void addItem(Product product, int quantity) {


for (int i = 0; i < quantity; i++) {
items.add(product);
}
}

public void removeItem(Product product) {


items.remove(product);
}

public void clearCart() {


items.clear();
}

public ArrayList<Product> getCartItems() {


return items;
}

public double getTotalPrice() {


double total = 0;
for (Product item : items) {
total += item.getPrice();
}
return total;
}

@Override
public void applyDiscount(double discountPercent) {
for (Product product : items) {
double originalPrice = product.getPrice();
double discountedPrice = originalPrice * (1 - (discountPercent / 100));
product.setPrice(discountedPrice);
}
}

@Override
public void registerCustomer(Customer customer) {
this.customer = customer;
}

@Override
public String toString() {
StringBuilder cartString = new StringBuilder("Shopping Cart for Customer: ");
if (customer == null) {
cartString.append("Not Registered");
} else {
cartString.append(customer.getCustomerName());
}
cartString.append("\nItems in Cart:\n");
for (Product item : items) {
cartString.append(item.getProductInfo()).append("\n");
}
cartString.append("Total Price: ").append(getTotalPrice());
return cartString.toString();
}
}

public class PoS {


public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
ShoppingCart cart = new ShoppingCart();
int choice;

while (true) {
System.out.println("Menu:");
System.out.println("1. Register Customer");
System.out.println("2. Add Product to Cart");
System.out.println("3. Remove Product from Cart");
System.out.println("4. Apply Discount");
System.out.println("5. View Cart Details");
System.out.println("0. Exit");

System.out.print("Enter your choice: ");


choice = scan.nextInt();

switch (choice) {
case 1:
System.out.print("Enter Customer ID: ");
int customerID = scan.nextInt();
scan.nextLine(); // Consume newline
System.out.print("Enter Customer Name: ");
String customerName = scan.nextLine();
Customer customer = new Customer(customerID, customerName);
cart.registerCustomer(customer);
System.out.println("Customer registered: " +
customer.getCustomerName());
break;

case 2:
System.out.print("Enter Product ID: ");
int productID = scan.nextInt();
scan.nextLine(); // Consume newline
System.out.print("Enter Product Name: ");
String productName = scan.nextLine();
System.out.print("Enter Product Price: ");
double productPrice = scan.nextDouble();
System.out.print("Enter Quantity: ");
int quantity = scan.nextInt();
Product product = new Product(productID, productName,
productPrice);
cart.addItem(product, quantity);
System.out.println("Added " + quantity + " x " + productName + "
to the cart.");
break;

case 3:
System.out.print("Enter Product ID to remove: ");
int idToRemove = scan.nextInt();
Product productToRemove = null;
for (Product item : cart.getCartItems()) {
if (item.getProductid() == idToRemove) {
productToRemove = item;
break;
}
}
if (productToRemove != null) {
cart.removeItem(productToRemove);
System.out.println("Removed Product ID: " + idToRemove);
} else {
System.out.println("Product not found.");
}
break;

case 4:
System.out.print("Enter Discount Percentage: ");
double discountPercent = scan.nextDouble();
cart.applyDiscount(discountPercent);
System.out.println("Applied a " + discountPercent + "%
discount.");
break;

case 5:
System.out.println("Cart Details:");
System.out.println(cart);
break;

case 0:
System.out.println("Exiting...");
break;

default:
System.out.println("Invalid choice. Please try again.");
break;
}

if (choice == 0) {
break;
}
}

scan.close();
}
}

OUTPUT:

You might also like