Database System Concepts
Database System Concepts
7th Edition
ISBN: 9780078022159
Author: Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher: McGraw-Hill Education
Bartleby Related Questions Icon

Related questions

Question

I need help in improving my Passenger 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.
The system has 8 elevators, each of which can be one of 4 types of elevators, with a certain
percentage of requests for each type. Similarly, each passenger can be one of 4 types, with a
different percentage of requests for each type.

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.

Passenger {

Should have the variable used in sub classes

initializes Passenger Counter - keeps count of number of passengers

}

Sub-classes (Standarda, Vip, Frieght, Glass) {

Use the polymorphic methods from Passenger class

requestElevator - Uses random to generate a Start floor and End floor.

getPercent - Retrieves the percent from the setting.txt file.

}

This is what I have:

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;

}

}

import java.util.Random;

public abstract class Passenger {

public static int passengerCounter = 0;

private String passengerID;

protected int startFloor;

protected int endFloor;

Passenger() {
this.passengerID = "" + passengerCounter;
passengerCounter++;
}

public abstract boolean requestElevator(SimulatorSettings settings);
}

class StandardPassenger extends Passenger {

public StandardPassenger() {
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;
}
}

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

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

class GlassPassenger extends Passenger {

public GlassPassenger() {
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;
}
}

[画像: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]
expand button
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
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-science and related others by exploring similar questions and additional content below.
Similar questions
Recommended textbooks for you
Text book image
Database System Concepts
Computer Science
ISBN:9780078022159
Author:Abraham Silberschatz Professor, Henry F. Korth, S. Sudarshan
Publisher:McGraw-Hill Education
Text book image
Starting Out with Python (4th Edition)
Computer Science
ISBN:9780134444321
Author:Tony Gaddis
Publisher:PEARSON
Text book image
Digital Fundamentals (11th Edition)
Computer Science
ISBN:9780132737968
Author:Thomas L. Floyd
Publisher:PEARSON
Text book image
C How to Program (8th Edition)
Computer Science
ISBN:9780133976892
Author:Paul J. Deitel, Harvey Deitel
Publisher:PEARSON
Text book image
Database Systems: Design, Implementation, & Manag...
Computer Science
ISBN:9781337627900
Author:Carlos Coronel, Steven Morris
Publisher:Cengage Learning
Text book image
Programmable Logic Controllers
Computer Science
ISBN:9780073373843
Author:Frank D. Petruzella
Publisher:McGraw-Hill Education