Computer Networking: A Top-Down Approach (7th Edition)
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
Bartleby Related Questions Icon

Related questions

bartleby

Concept explainers

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