Как я могу распечатать мою информацию правильно? - PullRequest
0 голосов
/ 04 мая 2020

Здравствуйте, у меня был некоторый опыт в изучении 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");
    }
}

...