input file ( sends a message to the TicketArraysImpl object ). Loop until the method returns a number other than 0 , indicating the file was read ( and that the ticket data array now has ticket data stored in it ). Display a message to the user , that the program is calculating the fines . Define an array ( to hold double fines ), the same size as the array for ticket objects . Uses the TicketArraysImpl object to call : The instance method to calculate the fines and store them in the array The instance method to produce a fines report Execute the static method to display a ticket summary . Ask the user whether to run the program again , using a different input file . Loop until the user says s / he does not want to run the program again . Sample Run This program will run analyses on weekly speeding ticket data files Enter input filename : tickets Cannot open input file : tickets Enter input filename : tickets . txt Reading ticket data ... Data stored for 3 tickets Calculating fines ... Done ! Enter name of report output file : report . txt Week ' s Ticket Analysis for 3 tickets issued : Lowest ticket fine 66.25 Average ticket fine 122.95 Highest ticket fine 215.10 Run program again with another file ( y / n )? n WARNING : The objects , classes , and methods must be implemented exactly as specified above .