OOPs

18. Write a Java program to create a class called "Restaurant" with attributes for menu items, prices, and ratings, and methods to add and remove items, and to calculate average rating.

            class MenuItem{
                String name;
                double price;
                MenuItem(String i, double p){
                    name = i;
                    price = p;
                }
            }
            class Restaurant{
                java.util.List menu;
                java.util.List rating;
                Restaurant(){
                    menu = new java.util.ArrayList<>();
                    rating = new java.util.ArrayList<>();
                }
                void addMenu(String item, double price){
                    if(price >= 0){
                        if(menu.add(new MenuItem(item, price))){
                            System.out.println("Item : "+item+" Price : "+price+" Added to Menu");
                        }
                    }
                    else{
                        System.out.println("Price can not be negative");
                    }
                }
                void removeMenu(String item){
                    for(int i = 0; i < menu.size(); i++){
                        if(menu.get(i).name == item){
                            if(menu.remove(i) != null){
                                System.out.println(item + " Removed Successfully");
                                return;
                            }
                        }
                    }
                    System.out.println(item + " Not Found");	
                }
                void addRating(double val){
                    if(val < 0 || val > 10){
                        System.out.println("Rating Should be between 0 to 10. You Entered : " + val);
                        return;
                    }
                    if(rating.add(val)){
                        System.out.println(val + " Rated Successfull");
                    }
                }
                double averageRating(){
                    double sum = 0;
                    int i = 0;
                    for(i = 0; i < rating.size(); i++){
                        sum += rating.get(i);
                    }
                    return (sum/i);
                }
            }
            
            class Main{
                public static void main(String[] args){
                    Restaurant chillis = new Restaurant();
                    chillis.addMenu("Noodles - Full", 100);
                    chillis.addMenu("Noodles - Half", 70);
                    chillis.addMenu("Burger", 50);
                    chillis.addMenu("White Sauce Pasta", 120);	
                    chillis.addMenu("Masala Dosa", 70);
                    chillis.removeMenu("White Sauce Pasta");
                    chillis.removeMenu("abc");
                    chillis.addRating(18);
                    chillis.addRating(5.5);
                    chillis.addRating(7);
                    chillis.addRating(8.3);
                    System.out.println(chillis.averageRating());
                }
            }
        

OUTPUT

            Item : Noodles - Full Price : 100.0 Added to Menu
            Item : Noodles - Half Price : 70.0 Added to Menu
            Item : Burger Price : 50.0 Added to Menu
            Item : White Sauce Pasta Price : 120.0 Added to Menu
            Item : Masala Dosa Price : 70.0 Added to Menu
            White Sauce Pasta Removed Successfully
            abc Not Found
            Rating Should be between 0 to 10. You Entered : 18.0
            5.5 Rated Successfull
            7.0 Rated Successfull
            8.3 Rated Successfull
            6.933333333333334