I need help in making the SimulatorSettings and Simulation class for my elevator simulation. The SimulatorSettings should have setters and getters, it should have variable for the program, and it should also have information take from seetings.txt to run the program The Simulation should initialize the simulation, create arrayList of Passengers, Elevators and Floors, and also hold the process of the simulation My code: Classes requirements: 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: import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.Random; import java.util.Scanner; public class Simulation {     SimulatorSettings settings;     public void initSimulation(SimulatorSettings settings) throws FileNotFoundException {         Passenger.passengerCounter = 0;         this.settings = settings;         File file = new File("settings.txt");         Scanner scanner = new Scanner(file);         while (scanner.hasNextLine()) {             String line = scanner.nextLine();             if (line.startsWith("floor=")) {                 line = line.replace("floor=", "");                 settings.setNofloors(Integer.parseInt(line));             }         }         ArrayList passengers = new ArrayList<>();         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;     } Building {  private int totalFloors;     private int totalElevators;     private ArrayList elevators;     private ArrayList floors;     public Building(int totalFloors, int totalElevators) {         this.totalFloors = totalFloors;         this.totalElevators = totalElevators;         this.elevators = new ArrayList();         this.floors = new ArrayList();         // Create elevators         for (int i = 0; i < totalElevators; i++) {             StandardElevator elevator = new StandardElevator(10);             this.elevators.add(elevator);         }         // Create floors         for (int i = 0; i < totalFloors; i++) {             Floor floor = new Floor();             this.floors.add(floor);         }     }     public int getTotalFloors() {         return totalFloors;     }     public int getTotalElevators() {         return totalElevators;     }     public ArrayList getElevators() {         return elevators;     }     public ArrayList getFloors() {         return floors;     } } Floor {     private ArrayList passengers;     public Floor() {         this.passengers = new ArrayList();     }     public void addPassenger(Passenger passenger) {         this.passengers.add(passenger);     }     public ArrayList getPassengers() {         return passengers;     } } } abstract class Passenger {     private static int passengerCounter = 0;     private String passengerID;     protected int startFloor;     protected int endFloor;     protected static Random rand = new Random();     public Passenger() {         this.passengerID = String.valueOf(passengerCounter);         passengerCounter++;     }     public abstract boolean requestElevator(SimulatorSettings settings); } 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     } }

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question

I need help in making the SimulatorSettings and Simulation class for my elevator simulation.

The SimulatorSettings should have setters and getters, it should have variable for the program, and it should also have information take from seetings.txt to run the program

The Simulation should initialize the simulation, create arrayList of Passengers, Elevators and Floors, and also hold the process of the simulation

My code:

Classes requirements:

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:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class Simulation {
    SimulatorSettings settings;

    public void initSimulation(SimulatorSettings settings) throws FileNotFoundException {
        Passenger.passengerCounter = 0;
        this.settings = settings;

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

        while (scanner.hasNextLine()) {
            String line = scanner.nextLine();
            if (line.startsWith("floor=")) {
                line = line.replace("floor=", "");
                settings.setNofloors(Integer.parseInt(line));
            }
        }

        ArrayList<Passenger> passengers = new ArrayList<>();

        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;

    }

Building {

 private int totalFloors;
    private int totalElevators;
    private ArrayList<Elevator> elevators;
    private ArrayList<Floor> floors;

    public Building(int totalFloors, int totalElevators) {
        this.totalFloors = totalFloors;
        this.totalElevators = totalElevators;
        this.elevators = new ArrayList<Elevator>();
        this.floors = new ArrayList<Floor>();

        // Create elevators
        for (int i = 0; i < totalElevators; i++) {
            StandardElevator elevator = new StandardElevator(10);
            this.elevators.add(elevator);
        }

        // Create floors
        for (int i = 0; i < totalFloors; i++) {
            Floor floor = new Floor();
            this.floors.add(floor);
        }
    }

    public int getTotalFloors() {
        return totalFloors;
    }

    public int getTotalElevators() {
        return totalElevators;
    }

    public ArrayList<Elevator> getElevators() {
        return elevators;
    }

    public ArrayList<Floor> getFloors() {
        return floors;
    }
}

Floor {
    private ArrayList<Passenger> passengers;

    public Floor() {
        this.passengers = new ArrayList<Passenger>();
    }

    public void addPassenger(Passenger passenger) {
        this.passengers.add(passenger);
    }

    public ArrayList<Passenger> getPassengers() {
        return passengers;
    }
}

}

abstract class Passenger {
    private static int passengerCounter = 0;
    private String passengerID;
    protected int startFloor;
    protected int endFloor;
    protected static Random rand = new Random();

    public Passenger() {
        this.passengerID = String.valueOf(passengerCounter);
        passengerCounter++;
    }

    public abstract boolean requestElevator(SimulatorSettings settings);
}

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
    }
}

Expert Solution
steps

Step by step

Solved in 3 steps

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-engineering and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY