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