Здравствуйте, у меня был некоторый опыт в изучении java раньше, но я начал заниматься этим семестром. Я думаю, что смог построить свою программу и получить необходимую информацию, но теперь у меня возникают проблемы с пониманием того, как я хотел бы, чтобы отображалась часть моей информации
У меня есть симулятор линии и я хотел бы для отображения:
- общее время ожидания каждого клиента в очереди
- среднее время в очереди для всех
- Максимальная длина линии
Что-нибудь поможет, но мне бы очень хотелось понять, как это делается. Спасибо
import java.util.LinkedList;
import java.util.Scanner;
import java.io.*;
import java.util.Queue;
public class MovieLineSimulator {
public static void main (String args[]) {
int MaxTime = 100; //100 minutes
int time = 0;
Queue<Customer> movieLine = new LinkedList<Customer>();
Queue <Customer>inTheater = new LinkedList<Customer>();
int avelength = 20; //wait time per customer
int maxlength = 0; //max length of waiting line
int maxLineSize= 0;
Customer customerAtCounter = null;
int countNumCustomers =0;
int avgArrivalRate =0;
int peopleserved = 0;
int i;
int avgTimeServed =0;
Scanner userInput = new Scanner(System.in);
//how long it takes to serve
System.out.println("How many minutes does it take to serve a customer?");
avgTimeServed = userInput.nextInt();
System.out.println(avgTimeServed);
//Average minutes someone enters line
System.out.println("Abou how many minutes does someone enter the line?");
avgArrivalRate = userInput.nextInt();
System.out.println(avgArrivalRate);
while (time < MaxTime) {
//if statement
if (time % avgArrivalRate ==0 ) {
movieLine.add(new Customer(time,++countNumCustomers));
if (movieLine.size() > maxLineSize) {
maxLineSize = movieLine.size();
}
}
//someone is waiting in line, serve that person
if (movieLine.size() > 0 && customerAtCounter == null){
customerAtCounter = movieLine.remove(); // remove from line
customerAtCounter.setarrivedSnackCounter(time);
peopleserved++; //track of people served
}
if ( customerAtCounter != null ) {
if (time - customerAtCounter.getarrivedSnackCounter() >= avgTimeServed ) {
customerAtCounter.setDepartureTime(time);
inTheater.add(customerAtCounter);
customerAtCounter = null;
}
}
time++; //track of time
} // end of while
//Total time each individual customer waited in line
//Average time in line for all customers
//if (peopleserved > 0)
//System.out.println("Average Waiting Time: " + waittime / peopleserved + " minutes");
//Maximum size (length) of line
System.out.println("Maximum Line Length: " + maxlength + " people");
}
}