Difference between revisions of "Creating a grocery list"

From CompSciWiki
Jump to: navigation, search
Line 52: Line 52:
  
 
//Print a header for the list
 
//Print a header for the list
System.out.println( "\n\nGrocery List" );
+
System.out.println( "Grocery List" );
 
System.out.println( "------------" );
 
System.out.println( "------------" );
  
Line 99: Line 99:
 
 
 
//Print a header for the list
 
//Print a header for the list
System.out.println( "\n\nGrocery List" );
+
System.out.println( "Grocery List" );
 
System.out.println( "------------" );
 
System.out.println( "------------" );
 
 
Line 106: Line 106:
 
{
 
{
 
System.out.println( groceryQuantity[ i ] + " " + groceryList[ i ] );
 
System.out.println( groceryQuantity[ i ] + " " + groceryList[ i ] );
 +
itemCount = itemCount + groceryQuantity[ i ];
 +
}
 +
 +
System.out.println( "\n" + itemCount + " items.");
 +
 +
}
 +
}
 +
</pre>
 +
 +
Once I have a working example I like to go a step further and simplify the code<br>
 +
The loops for prompting the user and the loop for printing the list can be combined.<br>
 +
By passing the String returned by JOptionPane to Integer.parseInt you can remove the input variable.
 +
<pre>
 +
import javax.swing.JOptionPane;
 +
 +
public class grocery2 {
 +
public static void main( String[] args )
 +
{
 +
 +
int  listSize  = 0; //the number of items for the grocery list, default 0
 +
int  itemCount = 0; //sum of the quantities of the items
 +
 +
listSize = Integer.parseInt( JOptionPane.showInputDialog("Input length:") );
 +
 +
//Create arrays for list items and quantity
 +
String[] groceryList    = new String[listSize];
 +
int[]    groceryQuantity = new int[listSize];
 +
 +
 +
//Print a header for the list
 +
System.out.println( "Grocery List\n------------" );
 +
 +
for( int i = 0; i < listSize; i++ )
 +
{
 +
//get the name of the item and
 +
groceryList[ i ]    = JOptionPane.showInputDialog("Item name");
 +
groceryQuantity[ i ] = Integer.parseInt( JOptionPane.showInputDialog("How many " + groceryList[ i ] + "?" ) );
 +
 +
//print the item on quantity to console
 +
System.out.println( groceryQuantity[ i ] + " " + groceryList[ i ] );
 +
 +
//add the most recent quantity to the item count
 
itemCount = itemCount + groceryQuantity[ i ];
 
itemCount = itemCount + groceryQuantity[ i ];
 
}
 
}

Revision as of 14:27, 7 April 2010

Back to the Program-A-Day homepage

Problem

Write a program create a simple grocery list. Prompt the user for the number of items in the list. Use parallel arrays to store the item names and quantities. Then print the list of items and a count of the number of items

Example Output

Grocery List
------------
1 bacon
12 eggs
4 apples

17 items
 

More with Arrays

Wiki method01.jpg

Solution

First, prompt the user for the number of items:

String input;        //temp variable for dialog input	
int    listSize = 0; //the number of items for the grocery list, default 0

input = JOptionPane.showInputDialog("Input length:");
listSize = Integer.parseInt(input);


Now that we have the number of items, listSize, we need to get the items and quantities.

//Create arrays for list items and quantity
String[] groceryList     = new String[listSize];
int[]    groceryQuantity = new int[listSize];

//prompt for input listSize times
for( int i = 0; i < groceryList.length; i++ )
{
	//get the name of the item and 
	groceryList[ i ] = JOptionPane.showInputDialog("Item name");

	input = JOptionPane.showInputDialog("How many " + groceryList[ i ] + "?" );
	groceryQuantity[ i ] = Integer.parseInt( input );
	
}

Last step is to print the list out. We will use the loop for printing to sum the quantities.

int itemCount = 0; //sum of the quantities of the items

//Print a header for the list
System.out.println( "Grocery List" );
System.out.println( "------------" );

//loop through and print out the list items
for( int i = 0; i < groceryList.length; i++ )
{
	System.out.println( groceryQuantity[ i ] + " " + groceryList[ i ] );
	itemCount = itemCount + groceryQuantity[ i ];
}

System.out.println( "\n" + itemCount + " items.");

Code

Solution Code

Back to the Program-A-Day homepage