1 import java.util.Scanner;
2
3 /**
4 This class processes baby name records.
5 */
6 public class RecordReader
7 {
8 private double total;
9 private double limit;
10
11 /**
12 Constructs a RecordReader with a zero total.
13 */
14 public RecordReader(double aLimit)
15 {
16 total = 0;
17 limit = aLimit;
18 }
19
20 /**
21 Reads an input record and prints the name if the current total is less
22 than the limit.
23 @param in the input stream
24 */
25 public void process(Scanner in)
26 {
27 String name = in.next();
28 int count = in.nextInt();
29 double percent = in.nextDouble();
30
31 if (total < limit) { System.out.print(name + " "); }
32 total = total + percent;
33 }
34
35 /**
36 Checks whether there are more inputs to process
37 @return true if the limit has not yet been reached
38 */
39 public boolean hasMore()
40 {
41 return total < limit;
42 }
43 }