Hey everyone… I’m creating some business objects for a class I’m taking to freshen up on my skills, and I have had to make a few business objects. I’m pretty sure on the others (the other ones are testing my thoroughness on interfaces, abstract classes, and inheritance). I just have to write methods that deal with the functionality related to these two objects (the code doesn’t have to be perfect at all, pseudo code is acceptable):
1) Building Object (say the building is 20 levels, but this could work for any building with a number of floors)
2) Elevator Object (has to include code to include the machinery moving the elevator up and down smoothly, not just going from level 1 to level 3, etc… it has to pass from level 1 to level 2 to level 3)
** I definitely need help and making sure I am going in the right direction… any help is APPRECIATED!!!
class Building
{
boolean _bPower = false;
int
public void setPower(boolean b) { _bPower = b;}
public boolean hasPower() { return _bPower; }
public void setNumberOfFloors(int i) { _iNumberOfFloors = i;}
public int getNumberOfFloors() { return _iNumberOfFloors; }
}
class Elevator
{
boolean _bWorking = false;
boolean
boolean _bButtonDepressed = false;
Vector
int _iCurrentFloor = 0;
public void setElevatorWorking(boolean b) { _bWorking = b; }
public boolean isWorking() { return _bWorking); }
public void setDoorOpened(boolean b) { _bDoorOpened = b; }
public boolean isDoorOpened() { retrun _bDoorOpened; }
public void setButtonDepressed(boolean b) { _bButtonDepressed = b; }
public boolean isButtonDepressed() { retrun _bButtonDepressed ; }
public void setFloorCalledQuery(int i)
{
boolean bAlreadyInQue = false;
for (int j = 0; j < _vFloorCalledQuery.size(); j++)
{
if (_vFloorCalledQuery.elementAt(j) == i)
{
bAlreadyInQue = true;
}
if (!bAlreadyInQue)
{
_vFloorCalledQuery.add(i);
// How do I sort this integer vector so the elements are in a proper order?
}
}
} // adds to which floor is called
public Vector getFloorCalledQuery() { return _vFloorCalledQuery ; } //returns a Vector of floors called in que
public void moveElevator(int iNumberOfFloors, int iCurrentFloorFromPressedButton )
{
boolean bDirectionOfElevator = true; // true means elevator going up, false means elevator going down
boolean bReachedElevatorFloor = false;
if (_bWorking )
{
if (_bDoorOpened)
{
_bDoorOpened = false; //close the door
}
if (_iCurrentFloor == iCurrentFloorFromPressedButton)
{
_bDoorOpened = true; //open the door, it’s the same floor
}
else
{
if (iCurrentFloorFromPressedButton – _iCurrentFloor > 0)
{
// elevator is moving upwards
bDirectionOfElevator = true;
for (int i=_iCurrentFloor; i< iNumberOfFloors; i++)
{
if (_iCurrentFloor == iCurrentFloorFromPressedButton )
{
// reached floor
while (!bReachedElevatorFloor)
{
// haven’t reached floor, need to check the next floor and then see if that floor is in the que
if (_vFloorCalledQuery.size() > 0)
{
for (int k=0; k < _vFloorCalledQuery.size(); k++)
{
if(_iCurrentFloor == _vFloorCalledQuery.elementAt(k))
{
_bDoorOpened = true;
// HOW DO I ADD ANOTHER POSITION to the que??
}
}
}
}
}
bReachedElevatorFloor = true;
break;
}
}
else
{
// elevator is moving downwards
}
}
}
}
}
[upl-file uuid=9edab5a6-f14f-4511-9ccf-344f2da25a50 size=344B]Building.txt
[upl-file uuid=a7e1fef0-8d09-4170-929f-d5b0169a6b97 size=4kB]Elevator.txt