Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- interface PaymentMethod {
- void processPayment(double amount);
- }
- class WalletPayment implements PaymentMethod {
- public void processPayment(double amount) {
- System.out.println("Rs. " + amount + " paid via Wallet.");
- }
- }
- class CardPayment implements PaymentMethod {
- public void processPayment(double amount) {
- System.out.println("Rs. " + amount + "paid via Card.");
- }
- }
- class CashPayment implements PaymentMethod {
- public void processPayment(double amount) {
- System.out.println("Rs. " + amount + " paid via Cash-on-Delivery.");
- }
- }
- abstract class User {
- protected String name;
- protected String email;
- protected String password;
- public User(String name, String email, String password) {
- this.name = name;
- this.email = email;
- this.password = password;
- }
- public String getName() {
- return name;
- }
- public String getEmail() {
- return email;
- }
- }
- class Customer extends User {
- public Customer(String name, String email, String password) {
- super(name, email, password);
- }
- public void placeOrder() {
- System.out.println(name + " placed an order.");
- }
- }
- class DeliveryAgent extends User {
- private static int count = 0;
- private Vehicle vehicle;
- public DeliveryAgent(String name, String email, String password, Vehicle vehicle) {
- super(name, email, password);
- this.vehicle = vehicle;
- count++;
- }
- public static int agentCount() {
- return count;
- }
- public Vehicle getVehicle() {
- return vehicle;
- }
- }
- abstract class Vehicle {
- protected String type;
- public String getType() {
- return type;
- }
- }
- class Scooter extends Vehicle {
- public Scooter() {
- this.type = "Scooter";
- }
- }
- class Bicycle extends Vehicle {
- public Bicycle() {
- this.type = "Bicycle";
- }
- }
- class FoodItem {
- private String itemName;
- private double price;
- private String category;
- public FoodItem(String itemName, double price, String category) {
- this.itemName = itemName;
- this.price = price;
- this.category = category;
- }
- public String getItemName() {
- return itemName;
- }
- public double getPrice() {
- return price;
- }
- public String getCategory() {
- return category;
- }
- }
- class Order {
- private List<FoodItem> foodItems;
- private Customer customer;
- private DeliveryAgent deliveryAgent;
- private Date orderTime;
- private double totalAmount;
- private String deliveryAddress;
- public Order(List<FoodItem> foodItems, Customer customer, DeliveryAgent deliveryAgent, String deliveryAddress) {
- this.foodItems = foodItems;
- this.customer = customer;
- this.deliveryAgent = deliveryAgent;
- this.deliveryAddress = deliveryAddress;
- this.orderTime = new Date();
- calculatePrice();
- }
- public void calculatePrice() {
- totalAmount = 0;
- for (FoodItem item : foodItems) {
- totalAmount += item.getPrice();
- }
- }
- public double getTotalAmount() {
- return totalAmount;
- }
- public void printSummary() {
- System.out.println("Customer: " + customer.getName());
- System.out.println("Delivery Rider: " + deliveryAgent.getName() + " (" + deliveryAgent.getVehicle().getType() + ")");
- System.out.println("Address: " + deliveryAddress);
- System.out.println("Time: " + orderTime);
- System.out.println("\n");
- for (FoodItem item : foodItems) {
- System.out.println("- " + item.getItemName() + " (" + item.getCategory() + ") Rs. " + item.getPrice());
- }
- System.out.println("Total Amount: Rs. " + totalAmount);
- }
- }
- interface OrderService {
- void placeOrder();
- void cancelOrder();
- void completeOrder();
- }
- class OrderManager implements OrderService {
- private List<Order> orderList = new ArrayList<>();
- public void addOrder(Order order) {
- orderList.add(order);
- placeOrder();
- }
- public void placeOrder() {
- System.out.println("Order placed.");
- }
- public void cancelOrder() {
- System.out.println("Order cancelled.");
- }
- public void completeOrder() {
- System.out.println("Order delivered.");
- }
- }
- public class FoodDeliverySystem {
- public static void main(String[] args) {
- List<FoodItem> items = new ArrayList<>();
- items.add(new FoodItem("Cheese Burger", 350, "Fast-Food"));
- items.add(new FoodItem("Mayo Fries", 150, "Side"));
- Order order = new Order(items, customer, agent, "Street 69-C, Hyderabad");
- order.printSummary();
- PaymentMethod payment = new CardPayment();
- payment.processPayment(order.getTotalAmount());
- OrderManager manager = new OrderManager();
- manager.addOrder(order);
- manager.completeOrder();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement