Here's an updated version of the program with additional features and functionality:
Sales Booster Program (Updated)
import java.util.Scanner;
import java.util.ArrayList;
// Define a class for products
class Product {
String name;
double price;
int quantity;
public Product(String name, double price, int quantity) {
this.name = name;
this.price = price;
this.quantity = quantity;
}
}
// Define a class for customers
class Customer {
String name;
String contact;
int purchaseCount;
public Customer(String name, String contact) {
this.name = name;
this.contact = contact;
this.purchaseCount = 0;
}
}
// Define a class for sales strategies
class SalesStrategy {
// Strategy 1: Discounted Pricing
public void applyDiscount(Product product, double discountPercentage) {
double discountedPrice = product.price - (product.price * discountPercentage / 100);
System.out.println("Discounted price for " + product.name + ": $" + discountedPrice);
}
// Strategy 2: Bundle Deals
public void offerBundleDeal(Product product1, Product product2, double bundleDiscountPercentage) {
double totalBundlePrice = product1.price + product2.price;
double bundleDiscount = totalBundlePrice * bundleDiscountPercentage / 100;
double finalBundlePrice = totalBundlePrice - bundleDiscount;
System.out.println("Bundle deal for " + product1.name + " and " + product2.name + ": $" + finalBundlePrice);
}
// Strategy 3: Loyalty Rewards
public void rewardLoyalCustomers(Customer customer, double rewardPercentage) {
double rewardAmount = customer.purchaseCount * rewardPercentage;
System.out.println("Reward amount for loyal customer " + customer.name + ": $" + rewardAmount);
}
}
// Define a class for sales management
class SalesManagement {
ArrayList<Product> products;
ArrayList<Customer> customers;
SalesStrategy salesStrategy;
public SalesManagement() {
this.products = new ArrayList<>();
this.customers = new ArrayList<>();
this.salesStrategy = new SalesStrategy();
}
public void addProduct(Product product) {
products.add(product);
}
public void addCustomer(Customer customer) {
customers.add(customer);
}
public void displayProducts() {
System.out.println("Products:");
for (Product product : products) {
System.out.println(product.name + ": $" + product.price);
}
}
public void displayCustomers() {
System.out.println("Customers:");
for (Customer customer : customers) {
System.out.println(customer.name + ": " + customer.contact);
}
}
public void applySalesStrategy() {
Scanner scanner = new Scanner(System.in);
System.out.println("Choose a sales strategy:");
System.out.println("1. Discounted Pricing");
System.out.println("2. Bundle Deals");
System.out.println("3. Loyalty Rewards");
int choice = scanner.nextInt();
switch (choice) {
case 1:
System.out.println("Enter product name:");
String productName = scanner.next();
Product product = getProduct(productName);
if (product != null) {
System.out.println("Enter discount percentage:");
double discountPercentage = scanner.nextDouble();
salesStrategy.applyDiscount(product, discountPercentage);
} else {
System.out.println("Product not found!");
}
break;
case 2:
System.out.println("Enter product 1 name:");
String product1Name = scanner.next();
Product product1 = getProduct(product1Name);
System.out.println("Enter product 2 name:");
String product2Name = scanner.next();
Product product2 = getProduct(product2Name);
if (product1 != null && product2 != null) {
System.out.println("Enter bundle discount percentage:");
double bundleDiscountPercentage = scanner.nextDouble();
salesStrategy.offerBundleDeal(product1, product2, bundleDiscountPercentage);
} else {
System.out.println("One or both products not found!");
}
break;
case 3:
System.out.println("Enter customer name:");
String customerName = scanner.next();
Customer customer = getCustomer(customerName);
if (customer != null) {
System.out.println("Enter reward percentage:");
double rewardPercentage = scanner.nextDouble();
salesStrategy.rewardLoyalCustomers(customer, rewardPercentage);
} else {
System.out.println("Customer not found!");
}
break;
default:
System.out.println("Invalid choice!");
}
}
private Product getProduct(String productName) {
for (Product product : products) {
if (product.name.equals(productName)) {
return product;
}
}
return null;
}
private Customer getCustomer(String customerName) {
for (Customer customer : customers) {
if (customer.name.equals(customerName)) {
return customer;
}
}
return null;
}
}
public class SalesBooster {
public static void main(String[] args) {
SalesManagement salesManagement = new SalesManagement();
// Add products
salesManagement.addProduct(new Product("Product A", 100.0, 10));
salesManagement.addProduct(new Product("Product B", 200.0, 5));
// Add customers
salesManagement.addCustomer(new Customer("John Doe", "123-456-7890"));
salesManagement.addCustomer(new Customer("Jane Doe", "987-654-3210"));
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("Sales Booster Program");
System.out.println("1. Display Products");
System.out.println("2. Display Customers");
System.out.println("3. Apply Sales Strategy");
System.out.println("4. Exit");
System.out.print("Enter your choice: ");
int choice = scanner.nextInt();
switch (choice) {
case 1:
salesManagement.displayProducts();
break;
case 2:
salesManagement.displayCustomers();
break;
case 3:
salesManagement.applySalesStrategy();
break;
case 4:
System.out.println("Exiting...");
return;
default:
System.out.println("Invalid choice!");
}
}
}
}
This updated program includes the following additional features:
1. *Product and customer management*: The program allows you to add and display products and customers.
2. *Sales strategy application*: The program enables you to apply different sales strategies, such as discounted pricing, bundle deals, and loyalty rewards.
3. *User-friendly interface*: The program features a menu-driven interface that makes it easy to navigate and use.
Note that this program is still a simplified example and does not cover real-world complexities like:
- Inventory management
- Order processing and fulfillment
- Payment processing and invoicing
- Customer relationship management
To make this program more comprehensive and useful, you would need to consider these factors and add additional features and functionality.