Related questions
Concept explainers
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;
}
}
Step by stepSolved in 3 steps with 1 images
- Object-oriented languages like Java are designed to make it easy for programmers to implement software versions of real-world objects. In learning Java, an important skill to master is the ability to represent an object in code. Objects that we model are described using Java classes, so we have chosen to begin this lab by modeling a very simple, everyday object: a door.Write the code to create a class that models a door object. Don’t worry about the internal details just yet. Just give the class a name and an empty body for the moment. We will add more to the class shortly. When modeling an object as a class, we also need to describe the properties it possesses. An everyday object that we wish to model always has one or more properties that describe it. For instance a door object might have a name like "Front" or "Side" to distinguish it from other doors. Another property that could describe a door is its state: "open" or "closed". Properties of objects are described in code by using...arrow_forwardNeed help writing the program creating two different class. Provide with ss of ur code if possible and UML diagram.arrow_forwardSolve this question using java language you have to read the information from a file then print them in a file please read the instructour carefully, also look at the attach image to help you to solve it. pecificationsWhat You Must ImplementYou must define a class named MediaRental that implements the MediaRentalInt interface functionality(index A). You must define classes that support the functionality specified by the interface. The followingspecifications are associated with the project:1. Define a class named MediaRental. Feel free to add any instance variables you understand are needed or anyprivate methods. Do not add any public methods (beyond the ones specified in the MediaRentalInt interface).2. The media rental system keeps track of customers and media (movies ,music albums and games). A customerhas a name, address as string , a plan and two lists. One list represent the media the customer is interested inreceiving and the second one represents the media already received...arrow_forward
- I need help with completing my Java programming project. I will be using the software Eclipse for this project so if you could also guide me through the project like labeling what is supposed to be in whatever "4 java files" or what section is what so I'm not trying to guess around, that would be great. Thank youarrow_forwardScooby and the Mystery Inc. gang are in a real pickle, or more accurately, you’ll be putting them in one! You will set the stage for their newest adventure, a text-based command-line adventure game, in which the gang must escape a HauntedMansion. You will define several classes and hierarchies that take advantage of object-oriented concepts to handle the different events and scenarios in your mansion. This will include a set of Rooms, Monsters, and a Player. Rooms in the mansion are arranged into a two-dimensional square grid. HauntedMansion models the arrangement, or floorplan, of rooms. A Player always begins in the middlemost Room of the mansion. An exit room will be specially designated. The Player can move left, right, up, or down one step (Room) during each round of the game. The Player begins the game with a level of courage (integer value). The Player wins the game if they find exit room while still having a level of courage above 0. If the player’s courage level ever goes to...arrow_forwardIn java language Class Design – Date V0.0 & V1.0 Create a new project for this lab and create a new class inside called Date. If you created a Date class last week, you may use it as a base. What does it mean to be a Date? What data items (called "state") do you need to keep track of? Alternatively, what does a date have? ("has a" == composition) What can a Date do? What are the actions and verbs that can be applied to a date? Come up with one or two. These become the class’s methods. Try adding 3 data items to your Date to manage the month, day and year. Should these be local variables? Class-level (or instance) variables? Now let’s build a method to set the date This function should take 3 integers as input and assign these to your instance variables declared in the previous step. public void setDate(int m, int d, int y) { And, let’s build a method to report the date This function takes no input and uses the console to output the Date in the format...arrow_forward
- Need help with the following: Adding comments to help explain the purpose of methods, classes, constructors, etc. to help improve understanding. Implementing enhanced for loop (for each loop) to iterate over the numbers array in the calculateProduct method. Creating a separate class for the UI and a separate class for the calculator logic. Lastly, creating a constant instead of hard coding the number "5" in multiple places. Thank you for any input/knowldge you can transfer to me, I appreciate it. Source Code: package implementingRecursion; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class RecursiveProductCalculator extends JFrame { private JTextField[] numberFields; private JButton calculateButton; private JLabel resultLabel; public RecursiveProductCalculator() { setTitle("Recursive Product Calculator"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLayout(new GridLayout(7, 1)); numberFields = new...arrow_forwardDevelop the code that would be used in the main() function to test the class Cube. Create an object of Cube type using the constructor with argument, with the name of "Box", side length of 5, and color "Brown". Print out the information for the Cube. Change the name to BigBox, and increase the volume by 60%. Print the information for your Cube object one more time to verify the changes. Edit View Insert Format Tools 12pt ✓ Paragraph v Table BIU ✓ T2 ✓arrow_forwardMUST BE IN JAVA. PLEASE USE COMMENTS AND WRITE THE CODE IN SIMPLEST FORM.arrow_forward
- Hi, this is a java programming question with direction of what to do. I'm just gonna attach the question sheet. Implement the following class diagram (diagram in attached photo)setFirstName() method should set the firstName attribute of the class.setLastName() method should set the lastName attribute of the class.setSpecialization() method should set the specialization attribute of the Doctor class.setHealthnumber() method should set the healthNumber attribute of the Patient class.setIllness() method should set the illness attribute of the Patient class.If you are not comfortable with set methods, you are free to create your own constructors to set the attribute values.Create a HospitalApplication class which contains the main method. Inside the main method the following should be done in the order mentioned. (Any other ordering would not guarantee full marks).Prompt for the following inputs for 5 Doctors. (Use for loops)• First name• Last name• SpecializationValid specializations...arrow_forwardPlease help with this error. I have 2 seperate files pet.java and dog.java. I don't know what code I'm missing or how to resolve the errors, I've been at this for 3 days trying to trouble shoot. I wrote the code and everything passed except I keep getting below errors: Class Definition: Please click next for more feedback. If you review the UML diagram you will find that the classes are to be in separate class files. Class found, not "Dog" (case-sensitive) // pet.java public class Pet { private String petType; private String petName; private int dogSpaces; private int catSpaces; private int petAge; private int daysStay; private double amountDue; // constructor public Pet (String petType, String petName, int dogSpaces, int catSpaces, int petAge, int dogsStay, double amountDue) { } /** * @return the petType */ public String getPetType() { return petType; } /** * @return the petName */ public String getPetName() { return petName; } /** * @return the petAge */ public int...arrow_forwardWhich is NOT true of the decorator design pattern? It requires modification of the way an object is used It allows us to detach new methods to an object at runtime It allows us to attach new methods to an object at runtime It allows us to combine several features in a scaleable mannerarrow_forward
- Text book imageDatabase System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationText book imageStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONText book imageDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- Text book imageC How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONText book imageDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningText book imageProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education