diff --git a/Updated Main to fix issue: Code design and Implementation. b/Updated Main to fix issue: Code design and Implementation. new file mode 100644 index 0000000..002d8f4 --- /dev/null +++ b/Updated Main to fix issue: Code design and Implementation. @@ -0,0 +1,632 @@ +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + + +class Food implements Serializable +{ + int itemno; + int quantity; + float price; + + Food(int itemno,int quantity) + { + this.itemno=itemno; + this.quantity=quantity; + switch(itemno) + { + case 1:price=quantity*50; + break; + case 2:price=quantity*60; + break; + case 3:price=quantity*70; + break; + case 4:price=quantity*30; + break; + } + } +} +class Singleroom implements Serializable +{ + String name; + String contact; + String gender; + ArrayList food =new ArrayList<>(); + + + Singleroom() + { + this.name=""; + } + Singleroom(String name,String contact,String gender) + { + this.name=name; + this.contact=contact; + this.gender=gender; + } +} +class Doubleroom extends Singleroom implements Serializable +{ + String name2; + String contact2; + String gender2; + + Doubleroom() + { + this.name=""; + this.name2=""; + } + Doubleroom(String name,String contact,String gender,String name2,String contact2,String gender2) + { + this.name=name; + this.contact=contact; + this.gender=gender; + this.name2=name2; + this.contact2=contact2; + this.gender2=gender2; + } +} +class NotAvailable extends Exception +{ + @Override + public String toString() + { + return "Not Available !"; + } +} + +class holder implements Serializable +{ + Doubleroom luxury_doublerrom[]=new Doubleroom[10]; //Luxury + Doubleroom deluxe_doublerrom[]=new Doubleroom[20]; //Deluxe + Singleroom luxury_singleerrom[]=new Singleroom[10]; //Luxury + Singleroom deluxe_singleerrom[]=new Singleroom[20]; //Deluxe +} + +class Hotel +{ + static holder hotel_ob=new holder(); + static Scanner sc = new Scanner(System.in); + static List validGender= Arrays.asList("Male","Female","Others"); + static void CustDetails(int i,int rn) throws Exception + { + String name, contact, gender; + String name2 = null, contact2 = null; + String gender2=""; + System.out.print("\nEnter customer name: "); + name = sc.next(); + System.out.print("Enter contact number: "); + contact=sc.next(); + if(!checkContactNo(contact)) + { + System.out.println("Invalid contact no"); + + throw new Exception(); + } + System.out.print("Enter gender: "); + gender = sc.next(); + checkGender(gender); + + if(i<3) + { + System.out.print("Enter second customer name: "); + name2 = sc.next(); + System.out.print("Enter contact number: "); + contact2=sc.next(); + if(!checkContactNo(contact2)) + { + System.out.println("Invalid contact no"); + + throw new Exception(); + } + + System.out.print("Enter gender: "); + gender2 = sc.next(); + checkGender(gender2); + + } + + switch (i) { + case 1:hotel_ob.luxury_doublerrom[rn]=new Doubleroom(name,contact,gender,name2,contact2,gender2); + break; + case 2:hotel_ob.deluxe_doublerrom[rn]=new Doubleroom(name,contact,gender,name2,contact2,gender2); + break; + case 3:hotel_ob.luxury_singleerrom[rn]=new Singleroom(name,contact,gender); + break; + case 4:hotel_ob.deluxe_singleerrom[rn]=new Singleroom(name,contact,gender); + break; + default:System.out.println("Wrong option"); + break; + } + } + + private static boolean checkContactNo(String contact) { + Pattern p = Pattern.compile("^\\d{10}$"); + + + Matcher m = p.matcher(contact); + + + return (m.matches()) ; +} + +private static void checkGender(String gender) throws Exception { + + if(!validGender.contains(gender)) + { + System.out.println("Enter valid Gender [Male,Female,Others]"); + throw new Exception(); + + + } +} + +static void bookroom(int i) + { + int j; + int rn; + System.out.println("\nChoose room number from : "); + switch (i) { + case 1: + for(j=0;j60) + System.out.println("Room doesn't exist"); + else if(ch2>40) + Hotel.order(ch2-41,4); + else if(ch2>30) + Hotel.order(ch2-31,3); + else if(ch2>10) + Hotel.order(ch2-11,2); + else if(ch2>0) + Hotel.order(ch2-1,1); + else + System.out.println("Room doesn't exist"); + break; + case 5: + System.out.print("Room Number -"); + ch2 = sc.nextInt(); + if(ch2>60) + System.out.println("Room doesn't exist"); + else if(ch2>40) + Hotel.deallocate(ch2-41,4); + else if(ch2>30) + Hotel.deallocate(ch2-31,3); + else if(ch2>10) + Hotel.deallocate(ch2-11,2); + else if(ch2>0) + Hotel.deallocate(ch2-1,1); + else + System.out.println("Room doesn't exist"); + break; + case 6:break x; + + } + + System.out.println("\nContinue : (y/n)"); + wish=sc.next().charAt(0); + if(!(wish=='y'||wish=='Y'||wish=='n'||wish=='N')) + { + System.out.println("Invalid Option"); + System.out.println("\nContinue : (y/n)"); + wish=sc.next().charAt(0); + } + + }while(wish=='y'||wish=='Y'); + + Thread t=new Thread(new write(Hotel.hotel_ob)); + t.start(); + } + catch(Exception e) + { + System.out.println("Not a valid input"); + } + } +}