如何使用两级库存计划?

时间:2013-11-19 04:06:23

标签: java

我对我的库存计划有疑问,需要稍加调整才能正常运行。基本上,我要求使用输入个人想要订购的产品数量,我希望它保存在RAM中,然后输出产品数量和用户的总成本。这是我的第一个构造函数类“Item”。

 import java.text.*;
 import java.util.*;
 import javax.swing.*;


public class Item
{
  public static final double SUBWOOFER_VALUE= 175.99; 
  public static final double TWEETER_VALUE= 34.49;    
  public int subOrder;
  public int tweetOrder;
  public double totPrice;
  public int subStock;
  public int tweetStock;

  public Item()
  {
      int subStock=1000;
      int tweetStock=3000;    

     double subPrice= (subOrder*SUBWOOFER_VALUE);
     double tweetPrice= (tweetOrder*TWEETER_VALUE);

  }


  public void addSubOrder(int newsubOrder)
  {
   subOrder=newsubOrder;
  }

  public int getSubOrder()
  {
   return subOrder;
  }

  public void addTweetOrder(int newtweetOrder)
  {
   tweetOrder= newtweetOrder;
  }

  public int getTweetOrder()
  {
   return tweetOrder;
  }

  public void newSubStock(int newSubStock)
  {
   subStock= newSubStock;
   newSubStock= (subStock)-(subOrder);
  }

  public int getsubStock()
  {
   return subStock;
  }

  public void newTweetStock(int newTweetStock)
  {
   tweetStock= newTweetStock;
   newTweetStock= (tweetStock)-(tweetOrder);
  }

  public int gettweetStock()
  {
   return tweetStock;
  }

  public void totPrice(double newTotPrice, double subPrice, double tweetPrice)
  {
   newTotPrice= (subPrice+tweetPrice)*(.065);
   totPrice= newTotPrice;

  }
  public double getTotPrice()
  {
   return totPrice;
  }



   public static void main (String[] args)
   { 
      Item Order= new Item();

   }//end main

}

然后这是我的控制器类,它控制输入和输出......

    import javax.swing.*;
    import java.util.*;

public class Controller
{

   public static void main (String[] args)
   {
     Scanner myScan=new Scanner(System.in);
     Item Order= new Item();

 String question= "Would you like to make an order?";
 String question1= "Would you like to order Subwoofers?";
 String question2= "Would you like to order Tweeters?";
 String question3= "How many would you like to order?";
 String question4="Would you like to place another order?";
 String thank= "Thank you for your order,";

 System.out.println(question);
 String answer= myScan.nextLine();
 System.out.println(question1);

 while(!answer.equalsIgnoreCase("No"))
 {


  String subAns= myScan.nextLine();

  if(subAns.equals("Yes"))
  {
   System.out.println(question3);
   int subOrder= myScan.nextInt();      
  }

   System.out.println(question2);
   String tweetAns= myScan.nextLine();

   if(tweetAns.equals("Yes"))
   {
     System.out.println(question3);
     int tweetOrder= myScan.nextInt();
   }


  else//If subAns= no then proceed to ask about tweeters.
   {

     tweetAns= myScan.nextLine();

     if(tweetAns.equals("Yes"))//If tweeter answer = yes then proceed to ask for an amount
     {
       System.out.println(question3);
       int tweetOrder= myScan.nextInt();

     }

   }break;
 }//end while 

System.out.println(thank);
System.out.println("Your ordered: "+ Order.getSubOrder() + " Subwoofer's and "+ Order.getTweetOrder() + " Tweeter's");
System.out.println("Your total is:"+ Order.getTotPrice()); 







   }//end main


}//Two items

因此,当我输入内容并期望输出时,我知道输出中会得到0。

---- jGRASP exec:java Controller

您想订购吗? 是 您想订购低音炮吗? 是 你想订几个? 9 您想订购Tweeters吗? 是 你想订几个? 4 谢谢您的订单, 您的订购:0个重低音扬声器和0个高音扬声器 你的总数是:0.0

---- jGRASP:操作完成。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

您从未调用任何方法计算更新ItemtotPrice())的状态,并且您不自行更新字段(subStock tweetStock)因此它们仍然是它们的初始值,因为你从未改变它们。

另外,在控制器中创建一个类型为Item的subwoofertweeter对象更有意义,以避免在项目中加倍所有代码

此外,由于java是按值传递的,因此为函数分配参数(例如newSubStock= (subStock)-(subOrder);中的newSubStock())是多余的,没有用处

答案 1 :(得分:0)

我想知道你为什么要使用swing。* import?你需要纠正你的代码很多。你使用忽略大小写'否'但不使用相同的'是'。你从来没用过'question4'。而且一旦你在subOrder和tweetOrder中获得订单,你在哪里使用它?您需要调用Item对象的方法才能进行计算。

尝试添加“Order.addSubOrder(subOrder);& Order.addTweetOrder(tweetOrder);”收到订单后