By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
464,299 Members | 1,235 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 464,299 IT Pros & Developers. It's quick & easy.

Inventory Program Part2

P: 12
I have to assignment which includes the following: Modify the Inventory Program so the application can handle multiple items. Use an array to store the items. The output should display the information one product at a time, including the item number, the name of the product, the number of units in stock, the price of each unit, and the value of the inventory of that product. In addition, the output
should display the value of the entire inventory.
Create a method to calculate the value of the entire inventory.
Create another method to sort the array items by the name of the product.

I have tried so far this is what I have;


Expand|Select|Wrap|Line Numbers
  1.  
  2. 1. import java.text.NumberFormat;
  3. 2. 
  4. 3. public class Produce {
  5. 4.
  6. 5.    //initialize and load array with values  
  7. 6.  
  8. 7.  private static int[] produceNumber = new int[] {2015, 2016, 2017, 2018,   2019, 2020, 2021, 2022, 2023, 2024};
  9. 8. 
  10. 9. 
  11. 10.  private static String[] produceName = new String[] {"carrots","potatoe", "bananas", "tomatoe", "lettuce", "apples", "oranges", "grapes", "cherrie", "celery"};
  12. 11. 
  13. 12.
  14. 13. private static int[] produceStock = new int[] {20, 50, 12, 15, 10, 30, 40, 6, 75, 8};
  15. 14.  
  16. 15. 
  17. 16.
  18. 17. private static double[] producePrice = new double[] {.50,2.75,.60,1.00,1.50,2.50,3.00,1.89,2.50,1.48};
  19. 18.
  20. 19.
  21. 20. public static void DisplayOutput()
  22. 21.
  23. 22. {   //Displays inventory and totals
  24. 23.
  25. 24.   System.out.println("Item Number\tProduce Name\tStock\tPrice\tTotal Price\n");
  26. 25.
  27. 26.   NumberFormat numForm = NumberFormat.getCurrencyInstance();//Displays double values as currency
  28. 27.
  29. 28.        double totalValue = 0;
  30. 29.
  31. 30.   for (int i=0; i<10; i++){
  32. 31.
  33. 32.        //   String price = numform.format(producePrice[i]);
  34. 33.
  35. 34.           System.out.println(produceNumber[i]+"\t\t"+ produceName[i]+"\t\t"+produceStock[i]+"\t"+numForm.format(producePrice[i])+
  36. 35.
  37. 36.                   "\t"+(numForm.format(produceStock[i]*producePrice[i])));
  38. 37.
  39. 38.           totalValue=totalValue+(produceStock[i]*producePrice[i]);
  40. }
  41. 39.        System.out.println("\n\nTotal Stock Value: "+numForm.format(totalValue));
  42. 40.}
  43. 41.}
  44. 42.
  45. 43.// Inventory Part 2 July 17, 2008
  46. 44.
  47. 45.   function setObject (produceName, produceNumber, produceStock, producePrice){
  48. 46.      myObjectArray[objectArrayIndex++] = new ownObject (produceName, produceNumber, produceStock, producePrice);
  49. 47.
  50. 48.   }
  51. 49.
  52. 50.
  53. 51.
  54. 52.   var objectArrayIndex =0;
  55. 53.   var myObjectArray = new Array();
  56. 54.
  57. 55.   SetObject ("carrots","potatoe", "bananas", "tomatoe", "lettuce", "apples", "oranges", "grapes", "cherrie", "celery");
  58. 56.   SetObject (2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024);
  59. 57.   SetObject (20, 50, 12, 15, 10, 30, 40, 6, 75, 8);
  60. 58.   SetObject (.50,2.75,.60,1.00,1.50,2.50,3.00,1.89,2.50,1.48);
  61. 59.
  62. 60.   function showArray (produceName, produceNumber, produceStock, producePrice) {
  63. 61.
  64. 62.     document.write (produceName + ':');
  65.  
Jul 16 '08 #1
Share this Question
Share on Google+
16 Replies

Expert 100+
P: 849
What is your actual question? Are you not getting the desired output, are there compilation/runtime errors?
Jul 16 '08 #2

P: 12
I received 24 compile errors
Jul 16 '08 #3

P: 12
Produce.java:53: class, interface, or enum expected
}
^

Produce.java:58: class, interface, or enum expected
var myObjectArray = new Array();
^

Produce.java:60: class, interface, or enum expected
SetObject ( "carrots", "potatoe",...)


I have 24 errors consisting of above
Jul 16 '08 #4

BigDaddyLH
Expert 100+
P: 1,216
var?! Is this Java or JavaScript? Seems an ungodly mix of the two.
Jul 16 '08 #5

Expert 100+
P: 785
var?! Is this Java or JavaScript? Seems an ungodly mix of the two.
The beginning is surely java, but at line 41, javascript starts
("document.write", "function", "new Array()" etc.)
This forum entry should be splitted and the bottom should be moved to the javascript forum.
Jul 16 '08 #6

P: 12
my codes are wrong it was java script and it should be java, the main thing is I need help sorting arrays that hold multiple data, displaying the data one at a time like orange, 00215, 24, $5.00. Can someone please help me do this I have found another sort code and changed it, but now I'm getting the error duplicate class.

Expand|Select|Wrap|Line Numbers
  1.  
  2. 1. import java.util.Arrays;
  3. 2. import java.text.NumberFormat;
  4. 3.
  5. 4.  public class Produce {
  6. 5.
  7. 6.  //initialize and load array with values  
  8. 7. 
  9. 8.  private static int[] produceNumber = new int[] {2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024};
  10. 9.  
  11. 10. private static String[] produceName = new String[] {"carrots","potatoe", "bananas", "tomatoe", "lettuce", "apples", "oranges", "grapes", "cherrie", "celery"};
  12. 11.
  13. 12. private static int[] produceStock = new int[] {20, 50, 12, 15, 10, 30, 40, 6, 75, 8};
  14. 13.
  15. 14. private static double[] producePrice = new double[] {.50,2.75,.60,1.00,1.50,2.50,3.00,1.89,2.50,1.48};
  16. 15. 
  17. 16.
  18. 17. public static void DisplayOutput()
  19. 18.
  20. 19. {   //Displays inventory and totals
  21. 20.
  22. 21.   System.out.println("Item Number\tProduce Name\tStock\tPrice\tTotal Price\n");
  23. 22.
  24. 23.   NumberFormat numForm = NumberFormat.getCurrencyInstance();//Displays double values as currency
  25. 24.
  26. 25.        double totalValue = 0;
  27. 26.
  28. 27.   for (int i=0; i<10; i++){
  29. 28.
  30. 29.        //   String price = numform.format(producePrice[i]);
  31. 30.
  32. 31.           System.out.println(produceNumber[i]+"\t\t"+ produceName[i]+"\t\t"+produceStock[i]+"\t"+numForm.format(producePrice[i])+                   "\t"+(numForm.format(produceStock[i]*producePrice[i])));
  33. 32.
  34. 33.           totalValue=totalValue+(produceStock[i]*producePrice[i]);
  35. 34.  }
  36. 35.        System.out.println("\n\nTotal Stock Value: "+numForm.format(totalValue));
  37. 36.  }
  38. 37.     }
  39. 38.
  40. 39.  // Inventory Part 2 July 17, 2008
  41. 40. 
  42. 41.  public class Produce {
  43. 42.
  44. 43.  public static void main(String[] args) {
  45. 44.
  46. 45.
  47. 46.   double[] lengths = {.50,2.75,.60,1.00,1.50,2.50,3.00,1.89,2.50,1.48};
  48. 47.    Arrays.sort(lengths);
  49. 48.   
  50. 49.    }
  51. 50.  }
  52.  
Jul 16 '08 #7

Expert 100+
P: 849
Right. You declare 'public class Produce' twice within the file.
Jul 16 '08 #8

P: 12
how would I start the sort at first I had public class Sort and I was getting the error "Class Sort is public, should be in a file called Sort.java
Jul 16 '08 #9

Expert 100+
P: 849
You can only have one class declared public per file. Just declare the other as 'class Sort', rather than 'public class Sort' and the compiler will shut up.
Jul 16 '08 #10

P: 12
it did shut up but it didn't sort the data.
Jul 16 '08 #11

BigDaddyLH
Expert 100+
P: 1,216
it did shut up but it didn't sort the data.
http://java.sun.com/docs/books/tutor...x.html#sorting
Jul 16 '08 #12

P: 12
Thanks for the site but can you give me an example of how you would start the sort because the site you gave me basically has the same thing I have to sort but it's not sorting one product at a time with the name, number, units, and price.
Jul 17 '08 #13

Expert 10K+
P: 11,448
Thanks for the site but can you give me an example of how you would start the sort because the site you gave me basically has the same thing I have to sort but it's not sorting one product at a time with the name, number, units, and price.
That's because you've split different attributes that belong in one single class,
not spread out over separate arrays; the is so Fortranesque and is cursing at
proper OO programming. The following little article can help you out but you do
have to read and understand it first; good luck with it.

kind regards,

Jos
Jul 17 '08 #14

P: 12
ok, I have changed my code about 15 million times, I am a beginner at this and when I say beginner like this is the first time I laid eyes on programming. No I don't understand everything but the more I work at it and perform practices programs I will conquer it. So here's my new code.

[code]

1. import java.util.*;
2. import java.text.NumberFormat;
3.
4. public class Produce {
5.
6. //initialize and load array with values
7.
8. private static int[] produceNumber = new int[] {2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024};
9.
10. private static String[] produceName = new String[] {"carrots","potatoe", "bananas", "tomatoe", "lettuce", "apples", "oranges", "grapes", "cherrie", "celery"};
11.
12. private static int[] produceStock = new int[] {20, 50, 12, 15, 10, 30, 40, 6, 75, 8};
13.
14. private static double[] producePrice = new double[] {.50,2.75,.60,1.00,1.50,2.50,3.00,1.89,2.50,1.48};
15.
16.
17. public static void DisplayOutput()
18.
19. { //Displays inventory and totals
20.
21. System.out.println("Item Number\tProduce Name\tStock\tPrice\tTotal Price\n");
22.
23. NumberFormat numForm = NumberFormat.getCurrencyInstance();//Displays double values as currency
24.
25. double totalValue = 0;
26.
27. for (int i=0; i<10; i++){
28.
29. // String price = numform.format(producePrice[i]);
30.
31. System.out.println(produceNumber[i]+"\t\t"+ produceName[i]+"\t\t"+produceStock[i]+"\t"+numForm.format(producePrice[i])+
32.
33. "\t"+(numForm.format(produceStock[i]*producePrice[i])));
34.
35. totalValue=totalValue+(produceStock[i]*producePrice[i]);
36. }
37. System.out.println("\n\nTotal Stock Value: "+numForm.format(totalValue));
38. }
39. }
40.
41. // Inventory Part 2 July 17, 2008
42.
43.
44.
45. class Sort {
46.
47. public static void main(String[] args) {
48.
49.
50. List<String> list = Arrays.asList (args);
51. Collections.sort (list);
52. System.out.println (list);
53.
54.
55. }
56. }
Jul 17 '08 #15

Expert 10K+
P: 11,448
You've still missed the point: a Product should be a single class, not just a couple
of separate arrays that take the individual attributes of a Product. First define that
little class.

kind regards,

Jos
Jul 17 '08 #16

Expert 100+
P: 785
first make a class called Product. It stores the name price, stock, name, and number (which are called attributes) of a single object. Then this class should have setter and getter methods for each attribute. Like
Expand|Select|Wrap|Line Numbers
  1. public String getName()
  2. {
  3.    return this.name;
  4. }
  5.  
  6. public void setName(String newName)
  7. {
  8.    this.name = newName;
  9. }
You don't need the setter methods if you make a constructor that sets them all, and if you are sure you don't need to change them anymore. But you need the getter methods to make up your Comparator later on.

Then you make an array of these products.
Expand|Select|Wrap|Line Numbers
  1. Product[10] productArray =
  2. {
  3.  new Product("apple", "10.20 Dollar", 3),
  4.  new Product("banana", "6.40 Dollar", 4),
  5.  ...
  6. }
That means, as what JosAH was saying, you don't have separate arrays of names, prices etc. Instead you have single products as objects which have all its data inside.

Then read about about Collections and Comparator to sort your array the way you want.
Sorting should be in a single line like:
Expand|Select|Wrap|Line Numbers
  1. Collections.sort(productArray, sortByPriceComparator);
Jul 18 '08 #17

Post your reply

Sign in to post your reply or Sign up for a free account.