Using SceneBuilder and Javafx create a Elevator Simmulation. The Simulation should include polymorphism and object-oriented programming. 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. The project should include these classes: 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 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 class FreightPassenger extends Passenger{ } public class GlassPassenger extends Passenger{ } public abstract class Elevator{ } public class StandardElevator extends Elevator{ } public class ExpressElevator extends Elevator{ } public class FreightElevator extends Elevator{ } public class GlassElevator extends Elevator{ }
Using SceneBuilder and Javafx create a Elevator Simmulation. The Simulation should include polymorphism and object-oriented programming.
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.
The project should include these classes:
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 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 class FreightPassenger extends Passenger{
}
public class GlassPassenger extends Passenger{
}
public abstract class Elevator{
}
public class StandardElevator extends Elevator{
}
public class ExpressElevator extends Elevator{
}
public class FreightElevator extends Elevator{
}
public class GlassElevator extends Elevator{
}
![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](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2Ffbae58db-91aa-4ce7-a998-96a4b33e3126%2Fa8c2afb7-18df-43af-967e-430b604021c6%2F4x7ckri_processed.png&w=3840&q=75)
![](/static/compass_v2/shared-icons/check-mark.png)
Trending now
This is a popular solution!
Step by step
Solved in 3 steps with 1 images
![Blurred answer](/static/compass_v2/solution-images/blurred-answer.jpg)
![Programming with Microsoft Visual Basic 2017](https://www.bartleby.com/isbn_cover_images/9781337102124/9781337102124_smallCoverImage.gif)
![Programming with Microsoft Visual Basic 2017](https://www.bartleby.com/isbn_cover_images/9781337102124/9781337102124_smallCoverImage.gif)
![Microsoft Visual C#](https://www.bartleby.com/isbn_cover_images/9781337102100/9781337102100_smallCoverImage.gif)