java.lang.NullPointException和POS系统java控制台

时间:2016-11-15 16:00:28

标签: java cmd console next

我对java很新,我知道我的学习方式非常糟糕。所以,我已经理解了一下如何打印和填充(我很抱歉,我对java完全不熟悉)。无论如何,我正在创建一个POS(销售点)系统。

所以在我当前的代码中,当你在cmd / console中运行它时

您将看到2个选项(1& 0) 但它实际上有3种选择,(1,2& 0)。

1-将项目添加到列表

2-一切(需要先添加项目[1])

0-退出

将产品/项目添加到列表后,它将循环回到交易部分(1,2& 0)部分。一切都很好,直到我输入" 2" 然后我给我一个错误:

'Exception in thread "main" java.lang.NullPointException at Pos.main(Pos.java:69)'

当我在Facebook聊天的朋友使用这个在线编译器时,它说:

'java.util.Scanner.throwFor(Scanner.java:862)
    at java.util.Scanner.next(Scanner.java:1485)
    at java.util.Scanner.nextInt(Scanner.java:2117)
    at java.util.Scanner.nextInt(Scanner.java:2076)
    at Pos.main(Pos.java:47)'

(我放置了这么多进口的主要原因)

请帮助一个菜鸟: - (

我一直在搜索stackoverflow和谷歌,但似乎没有任何工作,或者我的知识水平太低,无法理解这些。

无论如何,我目前的目标是当我按下' 2'它将从我已添加的交易区域的项目中获得所有总计的总和。所以基本上按下' 1'在交易区域意味着您要订购一些东西。当我按下' 2'然后你的账单(总数)或类似的东西。

import java.*;
import java.util.*;
import java.util.Scanner;
import java.lang.*;
import java.io.*;

class Product {
      private String prodName;
      private double prodPrice;
      private int quantity;
      public double prodTotal;


  // constructor
      public Product(String prodName, double prodPrice,int quantity,double prodTotal) {
      this.prodName = prodName;
      this.prodPrice = prodPrice;
      this.quantity = quantity;
      this.prodTotal = prodTotal;
   }

       // getter
       public String getprodName() { return prodName; }
       public double getprodPrice() { return prodPrice; }
       public int getquantity() { return quantity; }
       public double getprodTotal() { return prodTotal; }

       // setter

       public void setprodName(String prodName) { this.prodName = prodName; }
       public void setprodPrice(double prodPrice) { this.prodPrice = prodPrice; }
       public void setquantity(int quantity) {this.quantity = quantity; }
       public void setprodTotal(double prodTotal) {this.prodTotal = prodTotal; }
    }
public class Pos{


        public static void main (String args[])
        {

        String pname;
        double price;
        int quant,choice,j,i=0;
        double ptotal, total=0;

        Product[] prod = new Product[100];

        do{
            System.out.println("\n1 - Add Item to List\n0 - Exit\n");
            Scanner inputReader= new Scanner( System.in );
            choice=inputReader.nextInt();
            switch(choice){
                case 1:
                    System.out.println("Enter product name: ");
                    pname = inputReader.next();
                    System.out.println("Enter price: ");
                    price = inputReader.nextDouble();
                    System.out.println("Enter quantity: ");
                    quant = inputReader.nextInt();
                    ptotal = price*quant;
                    ptotal = Math.round(ptotal * 100.0) / 100.0;
                    System.out.println("\nProduct: "+pname+"\tPrice: P"+price+"\tQuantity: "+quant+"\tTotal: P"+ptotal);
                    prod[i] = new Product (pname,price,quant,ptotal);
                    i++;
                        break;
                case 2:
                    j=i;
                    while(j>0){
                        total=total+prod[j].prodTotal;
                        j--;
                    }
                    System.out.println("Overall Total: "+total);
                        break;
                case 0:
                    break;
                    }
        }while(choice!=0);
        //System.out.println("\nProduct: "+prodName+"\tPrice: "+prodPrice+"\tQuantity: "+quantity);
        }


    }

0 个答案:

没有答案