import java.util.*;
import java.io.*;
class ProductData
{
private String name;
private int lineCount;
private double inc1total;
private double inc2total;
private double inc3total;
private int rating1totalLow;
private int rating2totalLow;
private int rating3totalLow;
private int rating1totalMed;
private int rating2totalMed;
private int rating3totalMed;
private int rating1totalHigh;
private int rating2totalHigh;
private int rating3totalHigh;
private int highRaters;
private double lower1than3Total;
private int rating2lower1than3;
private long rating2ave1lower3;
private long rating1averageLow;
private long rating2averageLow;
private long rating3averageLow;
private long rating1averageMed;
private long rating2averageMed;
private long rating3averageMed;
private long rating1averageHigh;
private long rating2averageHigh;
private long rating3averageHigh;
public ProductData()
{
name = null;
lineCount = 0;
inc1total = 0;
inc2total = 0;
inc3total = 0;
rating1totalLow = 0;
rating2totalLow = 0;
rating3totalLow = 0;
rating1totalMed = 0;
rating2totalMed = 0;
rating3totalMed = 0;
rating1totalHigh = 0;
rating2totalHigh = 0;
rating3totalHigh = 0;
highRaters = 0;
lower1than3Total= 0;
rating2lower1than3 = 0;
rating1averageLow = 0;
rating2averageLow = 0;
rating3averageLow = 0;
rating1averageMed = 0;
rating2averageMed = 0;
rating3averageMed = 0;
rating1averageHigh = 0;
rating2averageHigh = 0;
rating3averageHigh = 0;
}
public void setName(String newName)
{
String name = newName;
}
public void dataRetrieve(String name)
{
try
{
BufferedReader inputStream = new BufferedReader(new FileReader(name));
String trash = "No trash yet";
while ((trash = inputStream.readLine()) !=null)
{
StringTokenizer st = new StringTokenizer(trash);
int income = Integer.parseInt(st.nextToken());
int rating1 = Integer.parseInt(st.nextToken());
int rating2 = Integer.parseInt(st.nextToken());
int rating3 = Integer.parseInt(st.nextToken());
if(rating1<rating3)
{
lower1than3Total++;
rating2lower1than3 = rating2lower1than3 + rating2;
}
if(income<50000)
{
rating1totalLow = rating1totalLow + rating1;
rating2totalLow = rating2totalLow + rating2;
rating3totalLow = rating3totalLow + rating3;
inc1total++;
}
else if(income<75000)
{
rating1totalMed = rating1totalMed + rating1;
rating2totalMed = rating2totalMed + rating2;
rating3totalMed = rating3totalMed + rating3;
inc2total++;
if((rating1>=5) && (rating2>=5) && (rating3>=5))
{
highRaters++;
}
}
else if(income<100000)
{
rating1totalHigh = rating1totalHigh + rating1;
rating2totalHigh = rating2totalHigh + rating2;
rating3totalHigh = rating3totalHigh + rating3;
inc3total++;
}
lineCount++;
}
inputStream.close();
}
catch(IOException e)
{
System.out.println("Problem reading from file.");
}
}
public void updateAverages(int rating1totalLow, int rating2totalLow, int rating3totalLow, int rating1totalMed, int rating2totalMed, int rating3totalMed, int rating1totalHigh, int rating2totalHigh, int rating3totalHigh, long inc1total, long inc2total, long inc3total)
{
rating1averageLow = Math.round(rating1totalLow/inc1total);
rating2averageLow = Math.round(rating2totalLow/inc1total);
rating3averageLow = Math.round(rating3totalLow/inc2total);
rating1averageMed = Math.round(rating1totalMed/inc2total);
rating2averageMed = Math.round(rating2totalMed/inc2total);
rating3averageMed = Math.round(rating3totalMed/inc2total);
rating1averageHigh = Math.round(rating1totalHigh/inc3total);
rating2averageHigh = Math.round(rating2totalHigh/inc3total);
rating3averageHigh = Math.round(rating3totalHigh/inc3total);
}
public long setRating2ave1lower3(int rating2lower1than3, double lower1than3Total)
{
long rating2ave1lower3 = (rating2lower1than3/lower1than3Total);
return rating2ave1lower3;
}
public String toString()
{
return ("\nIncome level $26000-$49999:" + "\n" + "-Product 1: "
+ rating1AverageLow + "-Product 2: " + rating2AverageLow
+ "-Product 3: " + rating3AverageLow + "\n" + "\n" + "Income level $50000-$74999:" + "\n" + "-Product 1: "
+ rating1AverageMed + "-Product 2: " + rating2AverageMed
+ "-Product 3: " + rating3AverageMed + "\n" + "\n" + "Income level $75000-$100000:" + "\n" + "-Product 1: "
+ rating1AverageHigh + "-Product 2: " + rating2AverageHigh
+ "-Product 3: " + rating3AverageHigh);
}
public int getHighRaters()
{
return highRaters;
}
}