import java.io.*; import java.util.*; public class Main { public static class Ve
ID: 3625591 • Letter: I
Question
import java.io.*;
import java.util.*;
public class Main {
public static class Vehicle {
String licensePlateNo;
char flag;
public Vehicle() {
}
String getRegistrationNum() {
return licensePlateNo;
}
public void setArrivalDepartureFlag(char flg) {
flag = flg;
}
void setRegistrationNum(String regNum) {
licensePlateNo = regNum;
}
char getArrivalDepartureFlag() {
return flag;
}
}
public static void main(String[] args)throws IOException {
VehicleStack vehicleStack = new VehicleStack();
Scanner sin = new Scanner(System.in);
Scanner sin1 = new Scanner(System.in);
boolean result = true;
while (true) {
String regNum = null;
Vehicle vehicle = new Vehicle();
System.out.println("1.Push car");
System.out.println("2.Remove car");
System.out.println("3.Display");
System.out.println("4.Exit");
System.out.println("Please enter your choice:");
int choice = sin.nextInt();
switch (choice) {
case 1:
System.out.println("1.Please enter Car registration Number");
regNum = sin1.nextLine();
vehicle.setArrivalDepartureFlag('A');
vehicle.setRegistrationNum(regNum);
result = vehicleStack.pushVehicle(vehicle);
if (!result) {
System.out.println("Vehicle garage is full(Max size:10)");
}
break;
case 2:
vehicleStack.display();
System.out.println("1.Please enter Car license plate number to remove");
regNum = sin1.nextLine();
result = vehicleStack.popVehicle(regNum);
if (!result) {
System.out.println("Vehicle number " + regNum + " was not found in the garage.");
}
break;
case 3:
vehicleStack.display();
break;
case 4:
System.exit(0);
}
}
}
private static class VehicleStack {
public VehicleStack() {
vehicleStack = new Stack<Vehicle>();
}
private static class QueueDeparture {
public QueueDeparture() {
vehicleQueue = new LinkedList<Vehicle>();
}
Queue<Vehicle> vehicleQueue;
public boolean insertIntoQueue(Vehicle vehicle) {
return vehicleQueue.offer(vehicle);
}
public Vehicle deleteFromQueue() {
return vehicleQueue.poll();
}
}
Stack<Vehicle> vehicleStack;
public boolean pushVehicle(Vehicle vehicle) {
if (vehicleStack.size() < 10) {
vehicleStack.push(vehicle);
return true;
} else {
return false;
}
}
public boolean popVehicle(String licensePlateNo) {
int i = 0;
for (i = 0; i < vehicleStack.size(); i++) {
if ((vehicleStack.get(i)).getRegistrationNum().equals(licensePlateNo)) {
break;
}
}
if (i == vehicleStack.size()) {
return false;
} else {
QueueDeparture queue = new QueueDeparture();
Vehicle tempVehicle = new Vehicle();
while (true) {
if ((vehicleStack.peek().getRegistrationNum()).equals(licensePlateNo)) {
vehicleStack.pop();
while ((tempVehicle = queue.deleteFromQueue()) != null) {
vehicleStack.push(tempVehicle);
}
break;
} else {
boolean inserted = queue.insertIntoQueue(vehicleStack.pop());
}
}
}
return true;
}
void display() {
for (int i = 0; i < vehicleStack.size(); i++) {
System.out.println("Flag:" + vehicleStack.get(i).getArrivalDepartureFlag()
+ " Registration number:" + vehicleStack.get(i).getRegistrationNum());
}
System.out.println(" ------ ");
}
}
}
Explanation / Answer
//Header file section
import java.io.*;
import java.util.*;
public class Main
{
//declaring an inner class vehicle
public static class Vehicle
{
//data fields
String licensePlateNo;
char flag;
//constructor
public Vehicle()
{
}
//returns registration number
String getRegistrationNum()
{
return licensePlateNo;
}
//sets flag value
public void setArrivalDepartureFlag(char flg)
{
flag = flg;
}
//sets registration number
void setRegistrationNum(String regNum)
{
licensePlateNo = regNum;
}
//returns flag value
char getArrivalDepartureFlag()
{
return flag;
}
}
//main function
public static void main(String[] args)throws IOException
{
//declaring vehicleStack object
VehicleStack vehicleStack = new VehicleStack();
//creating scanner class object
Scanner sin = new Scanner(System.in);
Scanner sin1 = new Scanner(System.in);
boolean result = true;
//infinite loop repeats up to option 4 entered
while (true)
{
String regNum = null;
Vehicle vehicle = new Vehicle();
System.out.println("1.Push car");
System.out.println("2.Remove car");
System.out.println("3.Display");
System.out.println("4.Exit");
System.out.println("Please enter your choice:");
int choice = sin.nextInt();
switch (choice)
{
case 1:
//input regidtration number
System.out.println("1.Please enter Car registration Number");
regNum = sin1.nextLine();
//function call to set flag
vehicle.setArrivalDepartureFlag('A');
//function call to set Registration Number
vehicle.setRegistrationNum(regNum);
result = vehicleStack.pushVehicle(vehicle);
if (!result)
{
System.out.println("Vehicle garage is full(Max size:10)");
}
break;
case 2:
//function call to display
vehicleStack.display();
System.out.println("1.Please enter Car license plate number to remove");
regNum = sin1.nextLine();
result = vehicleStack.popVehicle(regNum);
if (!result)
{
System.out.println("Vehicle number " + regNum + " was not found in the garage.");
}
break;
case 3:
//function call to display
vehicleStack.display();
break;
case 4:
//exit program
System.exit(0);
}
}
}
//declaring VehicleStack
private static class VehicleStack
{
//constructor
public VehicleStack()
{
vehicleStack = new Stack<Vehicle>();
}
//inner class QueueDeparture in vehicleStack
private static class QueueDeparture
{
public QueueDeparture()
{
vehicleQueue = new LinkedList<Vehicle>();
}
Queue<Vehicle> vehicleQueue;
public boolean insertIntoQueue(Vehicle vehicle)
{
return vehicleQueue.offer(vehicle);
}
public Vehicle deleteFromQueue()
{
return vehicleQueue.poll();
}
}
Stack<Vehicle> vehicleStack;
//pushVehicle function returns boolean value
public boolean pushVehicle(Vehicle vehicle)
{
if (vehicleStack.size() < 10)
{
vehicleStack.push(vehicle);
return true;
}
else
{
return false;
}
}
//popVehicle function returns boolean value if vehicle
//stack contain elements
public boolean popVehicle(String licensePlateNo)
{
int i = 0;
for (i = 0; i < vehicleStack.size(); i++)
{
if ((vehicleStack.get(i)).getRegistrationNum()
.equals(licensePlateNo))
{
break;
}
}
if (i == vehicleStack.size())
{
return false;
}
else
{
QueueDeparture queue = new QueueDeparture();
Vehicle tempVehicle = new Vehicle();
while (true)
{
if ((vehicleStack.peek().
getRegistrationNum()).equals(licensePlateNo))
{
vehicleStack.pop();
while ((tempVehicle = queue.deleteFromQueue()) != null)
{
vehicleStack.push(tempVehicle);
}
break;
}
else
{
boolean inserted =
queue.insertIntoQueue(vehicleStack.pop());
}
}
}
return true;
}
//function displays elements of stack
void display()
{
for (int i = 0; i < vehicleStack.size(); i++)
{
System.out.println("Flag:"
+ vehicleStack.get(i).getArrivalDepartureFlag()
+ " Registration number:" +
vehicleStack.get(i).getRegistrationNum());
}
System.out.println(" ------ ");
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.