}//end loadQueues():int /** * determines if registrant has finished registering<br> * * <hr> * Date created: Nov 12, 2013<br> * Date last modified: Nov 16, 2013<br> * <hr> * @author Stan Seiferth */ public int CheckDone(int i, double currentTime) { int result = -1; Registrant temp = new Registrant(); if ((whenDone[i] <= currentTime) && (whenDone[i] > 0)) { line[i].Dequeue(); whenDone[i] = 0; if (line[i].Count > 0) { temp = line[i].Peek() as Registrant; whenDone[i] = (temp.ArrTime / 100) + currentTime; } result = i; return(result); } return(result); }//end CheckDone(double):int
}//end Events() /** * determines how long it takes to register for each registrant<br> * * <hr> * Date created: Nov 12, 2013<br> * Date last modified: Nov 16, 2013<br> * <hr> * @author Stan Seiferth */ public void FindTimeInLine(int people, double expected, double shortest) { double arrival; double observed; double xSqr; double result = 0; Registrant temp; Random time = new Random(); this.people = people; //StreamWriter sw = new StreamWriter("excel.csv"); registrants = new List <Registrant>(); for (int i = 0; i < people; i++) { for (int j = 0; j < 256; j++) { observed = time.Next(15, 200); //cast statistical mojo observed = observed / 10.0; //make random numbers follow chi square distribution xSqr = observed - 4.25; result += (xSqr * xSqr) / 4.25; } result = (result / 255) - (12.34 + (4.25 - expected)); //adjust average to match user input if (result < shortest) //if less than shortest time make shortest time { result = shortest; } arrival = ArrEvent(time.Next(1000)); //find arrival time for individual arrival = Math.Round((arrival * EventTimeSpan) + OpenTime, 2); temp = new Registrant(); //make a temporary registrant to hold values temp.TimeInLine = result; //assign time needed to register temp.ArrTime = arrival; //assign time arrived to register registrants.Add(temp); // add that temporary to list //sw.Write(result + ",");Math.Round(, 2) result = 0; } registrants.Sort(); //SinkSort(registrants); }