I have to use polymorphism and object oriented programming to write this code. Can someone please help me improve this code I have. The remaining code is in the pictures. Any help is appreciated. Thank You! The simulation should have 4 types of Passengers: Standard: This is the most common type of passenger and has a request percentage of 70%. Standard passengers have no special requirements.  VIP: This type of passenger has a request percentage of 10%. VIP passengers are given priority and are more likely to be picked up by express elevators.  Freight: This type of passenger has a request percentage of 15%. Freight passengers have large items that need to be transported and are more likely to be picked up by freight elevators.  Glass: This type of passenger has a request percentage of 5%. Glass passengers have fragile items that need to be transported and are more likely to be picked up by glass elevators.   The simulation should also have 4 types of Elevators: 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 items. Sample Input File Should look like this: # Building parameters  floors=30    # Passengers to add to floors  add_passenger 1 6 25 Standard 30  add_passenger 2 2 28 VIP 10  add_passenger 3 7 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 ExpressElevator 20  request_percentage FreightElevator 5  request_percentage GlassElevator 5    # Percentage of passenger requests for each passenger type  passenger_request_percentage Standard 70  passenger_request_percentage VIP 10  passenger_request_percentage Freight 15  passenger_request_percentage Glass 5   # Number of elevators in the system  number_of_elevators 8   # Run simulation for 60 iterations  run_simulation 60   The project should include these classes: 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 Passenger {     public static int passangerCounter = 0;     private String passengerID;     protected int startFloor;     protected int endFloor;     Passenger(){         this.passengerID = ""+passangerCounter;         passangerCounter++;     }     public abstract boolean requestElevator(SimulatorSettings settings); } public class StandardPassenger extends Passenger{     private String type;     public StandardPassenger() {              }     public boolean requestElevator(SimulatorSettings settings){         Random rand = new Random();         this.startFloor = rand.nextInt()% settings.getNofloors();         this.endFloor = rand.nextInt() % settings.getNofloors();         while(this.startFloor == this.endFloor){             this.endFloor = rand.nextInt() % settings.getNofloors();         }         return true;     } } public class VipPassenger extends Passenger {     public VipPassenger() {         super();     }       @Override     public boolean requestElevator(SimulatorSettings settings) {         // Request an express elevator         int expressElevator = settings.getNofloors() / 2;         this.startFloor = expressElevator;         this.endFloor = expressElevator;         return true;     } }   public class FreightPassenger extends Passenger {     public FreightPassenger() {         super();     }       @Override     public boolean requestElevator(SimulatorSettings settings) {         Random rand = new Random();         this.startFloor = rand.nextInt(settings.getNofloors());         this.endFloor = rand.nextInt(settings.getNofloors());         while (this.startFloor == this.endFloor) {             this.endFloor = rand.nextInt(settings.getNofloors());         }         return true;     } }

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

Help, I making a elevator simulator. I have to use polymorphism and object oriented programming to write this code. Can someone please help me improve this code I have. The remaining code is in the pictures. Any help is appreciated. Thank You!

The simulation should have 4 types of Passengers:

Standard: This is the most common type of passenger and has a request percentage of 70%. Standard passengers have no special requirements. 

VIP: This type of passenger has a request percentage of 10%. VIP passengers are given priority and are more likely to be picked up by express elevators. 

Freight: This type of passenger has a request percentage of 15%. Freight passengers have large items that need to be transported and are more likely to be picked up by freight elevators. 

Glass: This type of passenger has a request percentage of 5%. Glass passengers have fragile items that need to be transported and are more likely to be picked up by glass elevators.

 

The simulation should also have 4 types of Elevators:

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 items.

Sample Input File Should look like this:

# Building parameters 

floors=30 

 

# Passengers to add to floors 

add_passenger 1 6 25 Standard 30 

add_passenger 2 2 28 VIP 10 

add_passenger 3 7 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 ExpressElevator 20 

request_percentage FreightElevator 5 

request_percentage GlassElevator 5 

 

# Percentage of passenger requests for each passenger type 

passenger_request_percentage Standard 70 

passenger_request_percentage VIP 10 

passenger_request_percentage Freight 15 

passenger_request_percentage Glass 5

 

# Number of elevators in the system 

number_of_elevators 8

 

# Run simulation for 60 iterations 

run_simulation 60

 

The project should include these classes:

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 Passenger {

    public static int passangerCounter = 0;

    private String passengerID;

    protected int startFloor;

    protected int endFloor;

    Passenger(){

        this.passengerID = ""+passangerCounter;

        passangerCounter++;

    }

    public abstract boolean requestElevator(SimulatorSettings settings);

}

public class StandardPassenger extends Passenger{

    private String type;

    public StandardPassenger() {

        

    }

    public boolean requestElevator(SimulatorSettings settings){

        Random rand = new Random();

        this.startFloor = rand.nextInt()% settings.getNofloors();

        this.endFloor = rand.nextInt() % settings.getNofloors();

        while(this.startFloor == this.endFloor){

            this.endFloor = rand.nextInt() % settings.getNofloors();

        }

        return true;

    }

}

public class VipPassenger extends Passenger {

    public VipPassenger() {

        super();

    }

 

    @Override

    public boolean requestElevator(SimulatorSettings settings) {

        // Request an express elevator

        int expressElevator = settings.getNofloors() / 2;

        this.startFloor = expressElevator;

        this.endFloor = expressElevator;

        return true;

    }

}

 

public class FreightPassenger extends Passenger {

    public FreightPassenger() {

        super();

    }

 

    @Override

    public boolean requestElevator(SimulatorSettings settings) {

        Random rand = new Random();

        this.startFloor = rand.nextInt(settings.getNofloors());

        this.endFloor = rand.nextInt(settings.getNofloors());

        while (this.startFloor == this.endFloor) {

            this.endFloor = rand.nextInt(settings.getNofloors());

        }

        return true;

    }

}

public class GlassPassenger extends Passenger {
public Glass Passenger() {
super();
}
}
@Override
public boolean requestElevator(SimulatorSettings settings) {
Random rand-new Random();
this.startFloor = rand.nextInt(settings.getNofloors());
this.endFloor = rand.nextInt(settings.getNofloors());
while (this.startFloor ==this.endFloor){
this.endFloor = rand.nextInt(settings.getNofloors());
}
}
public abstract class Elevator {
private int currentFloor;
}
return true;
private int maxCapacity:
private int passengersCount;
public Elevator(int maxCapacity) {
this.currentFloor = 0; // assuming initial floor is o
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);
}
public class Standard Elevator extends Elevator
public Standard Elevator() {
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 Standard Elevator
}
@Override
public void removePassenger(Passenger passenger) {
// implementation for removing passenger from StandardElevator
}
public class FreightElevator extends Elevator
public FreightElevator() {
super(4):
}
@Override
public void moveUp() {
Transcribed Image Text:public class GlassPassenger extends Passenger { public Glass Passenger() { super(); } } @Override public boolean requestElevator(SimulatorSettings settings) { Random rand-new Random(); this.startFloor = rand.nextInt(settings.getNofloors()); this.endFloor = rand.nextInt(settings.getNofloors()); while (this.startFloor ==this.endFloor){ this.endFloor = rand.nextInt(settings.getNofloors()); } } public abstract class Elevator { private int currentFloor; } return true; private int maxCapacity: private int passengersCount; public Elevator(int maxCapacity) { this.currentFloor = 0; // assuming initial floor is o 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); } public class Standard Elevator extends Elevator public Standard Elevator() { 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 Standard Elevator } @Override public void removePassenger(Passenger passenger) { // implementation for removing passenger from StandardElevator } public class FreightElevator extends Elevator public FreightElevator() { super(4): } @Override public void moveUp() {
// implementation for moving up for Standard Elevator
}
@Override
public void moveDown() {
// implementation for moving down for Standard Elevator
}
@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 GlassElevator extends Elevator
public GlassElevator() {
super(8);
}
@Override
public void moveUp() {
// implementation for moving up for Standard Elevator
}
@Override
public void moveDown() {
// implementation for moving down for Standard Elevator
}
@Override
public void addPassenger(Passenger passenger) {
// implementation for adding passenger to StandardElevator
}
@Override
public void removePassenger(Passenger passenger) {
// implementation for removing passenger from Standard Elevator
}
public class ExpressElevator extends Elevator
public Express Elevator() {
super(8); // max capacity is 8 for Express Elevator
@Override
public void moveUp() {
// implementation for moving up for Express Elevator
}
@Override
public void moveDown() {
// implementation for moving down for Express Elevator
}
@Override
public void addPassenger(Passenger passenger) {
// implementation for adding passenger to Express Elevator
}
@Override
public void removePassenger(Passenger passenger) {
// implementation for removing passenger from Express Elevator
}
Transcribed Image Text:// implementation for moving up for Standard Elevator } @Override public void moveDown() { // implementation for moving down for Standard Elevator } @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 GlassElevator extends Elevator public GlassElevator() { super(8); } @Override public void moveUp() { // implementation for moving up for Standard Elevator } @Override public void moveDown() { // implementation for moving down for Standard Elevator } @Override public void addPassenger(Passenger passenger) { // implementation for adding passenger to StandardElevator } @Override public void removePassenger(Passenger passenger) { // implementation for removing passenger from Standard Elevator } public class ExpressElevator extends Elevator public Express Elevator() { super(8); // max capacity is 8 for Express Elevator @Override public void moveUp() { // implementation for moving up for Express Elevator } @Override public void moveDown() { // implementation for moving down for Express Elevator } @Override public void addPassenger(Passenger passenger) { // implementation for adding passenger to Express Elevator } @Override public void removePassenger(Passenger passenger) { // implementation for removing passenger from Express Elevator }
Expert Solution
steps

Step by step

Solved in 3 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