I need help in improving my Elevator class and it's subclasses code. This is an elevator simulator that uses polymorphism and object-oriented programming to simulate the movement of elevators in a building with multiple types of passengers and elevators. There are 4 types of elevators in the system: StandardElevator: This is the most common type of elevator and has a request percentage of 70%.  Standard elevators have a maximum capacity of 10 passengers. ExpressElevator: This type of elevator has a request percentage of 20%. Express elevators have a  maximum capacity of 8 passengers and are faster than standard elevators. FreightElevator: This type of elevator has a request percentage of 5%. Freight elevators have a  maximum capacity of 5 passengers and are designed to transport heavy items. GlassElevator: This type of elevator has a request percentage of 5%. Glass elevators have a  maximum capacity of 6 passengers and are designed to transport fragile item Classes should have this: Elevator { Holds variable and ArrayList needed for each elevators Holds setters and getters } Standard, Express, Glass, Freight subclasses { Each keep track of the amount of Elevators Contains method of generating passengers } My code: public class Simulation {     SimulatorSettings settings = new SimulatorSettings("settings.txt");     public void InitSimulation() throws FileNotFoundException{         ///// Read all parameters from the file and store in the clas         File file = new File("settings.txt");         Scanner scanner = new Scanner(file);         //FileReader freader = new FileReader(file);          while(scanner.hasNextLine()){             String line = scanner.nextLine();             if(line.startsWith("floor="))             {                 line= line.replace("floor=", "");                 // Convert the value to the wanted type                  System.out.println(line);             }         }         settings.setNofloors(55);         Passenger pass1 = new StandardPassenger();         pass1.requestElevator(settings);         ArrayList passengers = null;         for(int i = 0; i < 100; i++){             //Use the percentage from the file             passengers.add(new StandardPassenger());         }     } }   public class SimulatorSettings {     SimulatorSettings(String fileName){              }     private int nofloors;       public int getNofloors() {         return nofloors;     }       public void setNofloors(int nofloors) {         this.nofloors = nofloors;     } } public abstract class Elevator{     private int currentFloor;     private int maxCapacity;     private int passengersCount;     public Elevator(int maxCapacity) {         this.currentFloor = 0; // assuming initial floor is 0         this.maxCapacity = maxCapacity;         this.passengersCount = 0;     }     public abstract void moveUp();     public abstract void moveDown();     public abstract void addPassenger(Passenger passenger);     public abstract void removePassenger(Passenger passenger); } class StandardElevator extends Elevator{     public StandardElevator() {         super(10); // max capacity is 10 for StandardElevator     }     @Override     public void moveUp() {         // implementation for moving up for StandardElevator     }     @Override     public void moveDown() {         // implementation for moving down for StandardElevator     }     @Override     public void addPassenger(Passenger passenger) {         // implementation for adding passenger to StandardElevator     }     @Override     public void removePassenger(Passenger passenger) {         // implementation for removing passenger from StandardElevator     } } public class FreightElevator extends Elevator{      public FreightElevator() {         super( 4);     } } public class GlassElevator extends Elevator{     public GlassElevator() {         super( 8);     } } class ExpressElevator extends Elevator{     public ExpressElevator() {         super(8); // max capacity is 8 for ExpressElevator     } }

Database System Concepts
7th Edition
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Chapter1: Introduction
Section: Chapter Questions
Problem 1PE
icon
Related questions
Question

I need help in improving my Elevator class and it's subclasses code. This is an elevator simulator that uses polymorphism and object-oriented programming to simulate the movement of elevators in a building with multiple types of passengers and elevators.

There are 4 types of elevators in the system:
StandardElevator: This is the most common type of elevator and has a request percentage of 70%. 
Standard elevators have a maximum capacity of 10 passengers.
ExpressElevator: This type of elevator has a request percentage of 20%. Express elevators have a 
maximum capacity of 8 passengers and are faster than standard elevators.
FreightElevator: This type of elevator has a request percentage of 5%. Freight elevators have a 
maximum capacity of 5 passengers and are designed to transport heavy items.
GlassElevator: This type of elevator has a request percentage of 5%. Glass elevators have a 
maximum capacity of 6 passengers and are designed to transport fragile item

Classes should have this:

Elevator {

Holds variable and ArrayList needed for each elevators

Holds setters and getters

}

Standard, Express, Glass, Freight subclasses {

Each keep track of the amount of Elevators

Contains method of generating passengers

}

My code:

public class Simulation {

    SimulatorSettings settings = new SimulatorSettings("settings.txt");

    public void InitSimulation() throws FileNotFoundException{

        ///// Read all parameters from the file and store in the clas

        File file = new File("settings.txt");

        Scanner scanner = new Scanner(file);

        //FileReader freader = new FileReader(file); 

        while(scanner.hasNextLine()){

            String line = scanner.nextLine();

            if(line.startsWith("floor="))

            {

                line= line.replace("floor=", "");

                // Convert the value to the wanted type 

                System.out.println(line);

            }

        }

        settings.setNofloors(55);

        Passenger pass1 = new StandardPassenger();

        pass1.requestElevator(settings);

        ArrayList<Passenger> passengers = null;

        for(int i = 0; i < 100; i++){

            //Use the percentage from the file

            passengers.add(new StandardPassenger());

        }

    }

}

 

public class SimulatorSettings {

    SimulatorSettings(String fileName){

        

    }

    private int nofloors;

 

    public int getNofloors() {

        return nofloors;

    }

 

    public void setNofloors(int nofloors) {

        this.nofloors = nofloors;

    }

}

public abstract class Elevator{
    private int currentFloor;
    private int maxCapacity;
    private int passengersCount;

    public Elevator(int maxCapacity) {
        this.currentFloor = 0; // assuming initial floor is 0
        this.maxCapacity = maxCapacity;
        this.passengersCount = 0;
    }

    public abstract void moveUp();

    public abstract void moveDown();

    public abstract void addPassenger(Passenger passenger);

    public abstract void removePassenger(Passenger passenger);
}

class StandardElevator extends Elevator{

    public StandardElevator() {
        super(10); // max capacity is 10 for StandardElevator
    }

    @Override
    public void moveUp() {
        // implementation for moving up for StandardElevator
    }

    @Override
    public void moveDown() {
        // implementation for moving down for StandardElevator
    }

    @Override
    public void addPassenger(Passenger passenger) {
        // implementation for adding passenger to StandardElevator
    }

    @Override
    public void removePassenger(Passenger passenger) {
        // implementation for removing passenger from StandardElevator
    }
}

public class FreightElevator extends Elevator{
     public FreightElevator() {
        super( 4);
    }
}

public class GlassElevator extends Elevator{
    public GlassElevator() {
        super( 8);
    }
}

class ExpressElevator extends Elevator{

    public ExpressElevator() {
        super(8); // max capacity is 8 for ExpressElevator
    }
}

Sample Input File Should look like this:
# Building parameters
floors-30
# Passengers to add to floors
add_passenger
add_passenger
1 6 25 Standard 30
2 2 28 VIP 10
add_passenger 37 15 Freight 20
add_passenger 4 4 20 Glass 15
# Elevator types |
elevator_type StandardElevator 10 40
elevator_type ExpressElevator 8 25
elevator_type FreightElevator 5 20
elevator_type GlassElevator 6 15
# Percentage of passenger requests for each elevator type
request_percentage StandardElevator 70
request_percentage Express Elevator 20
request_percentage FreightElevator 5
request_percentage GlassElevator 5
# Percentage of passenger requests for each passenger type
Standard 70
VIP 10
Freight 15
Glass 5
passenger_request_percentage
passenger_request_percentage
passenger_request_percentage
passenger_request_percentage
# Number of elevators in the system
number_of_elevators 8
# Run simulation for 60 iterations
run_simulation 60
Transcribed Image Text:Sample Input File Should look like this: # Building parameters floors-30 # Passengers to add to floors add_passenger add_passenger 1 6 25 Standard 30 2 2 28 VIP 10 add_passenger 37 15 Freight 20 add_passenger 4 4 20 Glass 15 # Elevator types | elevator_type StandardElevator 10 40 elevator_type ExpressElevator 8 25 elevator_type FreightElevator 5 20 elevator_type GlassElevator 6 15 # Percentage of passenger requests for each elevator type request_percentage StandardElevator 70 request_percentage Express Elevator 20 request_percentage FreightElevator 5 request_percentage GlassElevator 5 # Percentage of passenger requests for each passenger type Standard 70 VIP 10 Freight 15 Glass 5 passenger_request_percentage passenger_request_percentage passenger_request_percentage passenger_request_percentage # Number of elevators in the system number_of_elevators 8 # Run simulation for 60 iterations run_simulation 60
Expert Solution
trending now

Trending now

This is a popular solution!

steps

Step by step

Solved in 4 steps with 1 images

Blurred answer
Knowledge Booster
Class
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
  • SEE MORE QUESTIONS
Recommended textbooks for you
Database System Concepts
Database System Concepts
Computer Science
ISBN:
9780078022159
Author:
Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:
McGraw-Hill Education
Starting Out with Python (4th Edition)
Starting Out with Python (4th Edition)
Computer Science
ISBN:
9780134444321
Author:
Tony Gaddis
Publisher:
PEARSON
Digital Fundamentals (11th Edition)
Digital Fundamentals (11th Edition)
Computer Science
ISBN:
9780132737968
Author:
Thomas L. Floyd
Publisher:
PEARSON
C How to Program (8th Edition)
C How to Program (8th Edition)
Computer Science
ISBN:
9780133976892
Author:
Paul J. Deitel, Harvey Deitel
Publisher:
PEARSON
Database Systems: Design, Implementation, & Manag…
Database Systems: Design, Implementation, & Manag…
Computer Science
ISBN:
9781337627900
Author:
Carlos Coronel, Steven Morris
Publisher:
Cengage Learning
Programmable Logic Controllers
Programmable Logic Controllers
Computer Science
ISBN:
9780073373843
Author:
Frank D. Petruzella
Publisher:
McGraw-Hill Education