Hello. I'm having some trouble understanding linked lists. I've been working on trying to figure this out all week, reading through the text, looking at examples and I still can't figure it out. This is due for me by midnight tonight, so I'm reaching out as a last ditch effort for help on getting a solution.

Here is the problem:

Write a program that lets the user enter four quarterly sales figures for all the divisions of a company.

Prompt the user for the number of divisions and enter for each division the sales for four quarters.

Create a DivisionSales class that contains
double salesPerQuarter
double getSales(int quarter)

Create a linked list of DivisionsSales (do not use a standard template).

Display the following information:

• A list of the sales figures by division by quarter
• Each division's increase or decrease from the previous quarter.
• The total sales by quarter.
• The company's increase of decrease from the previous quarter.
• The average sales for all divisions for each quarter.
• The division with the highest sales for each quater.

Also, do not accept a negative number for divisions or sales amounts.

What I can't figure out is how to communicate the divisions and sales in a linked list. If it was a 2D array, I would zip right through this.

Also, I'm having trouble understanding how to get my append constructor to work in my driver.

I'm completely lost! Any help would be greatly appreciated!!

-Sammy

``````import java.util.Scanner;

public class QuarterlySales

{

public static void main(String[] args)
{

List qSales = new List();
int numDivisions = 0;
double total = 0.0, min, max;
Scanner keyboard = new Scanner(System.in);

// get number of divisions
System.out.print("Enter number of divisions: ");
numDivisions = keyboard.nextInt();

// prompt user for sales for each quarter and store it in a linked list
for (int counter = 0; counter < numDivisions; counter++)
{
double[] salesAmount = new double;
for(int j = 0; j < 4; ++j) {
System.out.print("\tSales for quarter " + (j+1)+ "" + "Division: " + numDivisions);
salesAmount[j] = keyboard.nextDouble();
}
qSales.append(new DivisionSales(salesAmount));

}

// display data

if (nextNode == null)
min = max = 0;
else
min = max = nextNode.getSales();

while (nextNode != null)
{
System.out.println("Sales for the quarter " + nextNode.getSales());

total += nextNode.getSales();

if (min > nextNode.getSales())
min = nextNode.getSales();

if (max < nextNode.getSales())
max = nextNode.getSales();

nextNode = nextNode.getNext();
}

// calculate total, avarage, min and max
System.out.println("The total sales is: " + total);
System.out.println("The average sales is: " + total / numDivisions);
System.out.println("The minimum sales is: " + min);
System.out.println("The maximum sales is: " + max);
}}``````
``````public class DivisionSales {

private double amt;
public double[] salesPerQuarter;

public DivisionSales(double[] amount)
{
salesPerQuarter = amount;
}

public void setSales(double salesAmount)
{
amt = salesAmount;
}

public double getSales()
{
return amt;
}
}``````
``````public class ListNode
{
private double amt;
private ListNode nextNode;

public ListNode()
{
amt = 0;
nextNode = null;
}

public ListNode(double salesAmount)
{
amt = salesAmount;
nextNode = null;
}

public void setNext(ListNode next)
{
nextNode = next;
}

public ListNode getNext()
{
return nextNode;
}

public void setSales(double salesAmount)
{
amt = salesAmount;
}

public double getSales()
{
return amt;
}
}``````
``````public class List
{

public List()
{
}

public void append(double sale)
{
ListNode newNode = new ListNode(sale);

if (head == null)		// empty list
{
}
else					// list contains data
{
// find last item in list

while (nextNode.getNext() != null)
{
nextNode = nextNode.getNext();
}

nextNode.setNext(newNode);
}
}

{
}