2011-03-23 85 views
0

好吧,我可以看到第33行的「setUniqueType」和第50行的「ItemDetails」是需要糾正的,但我無法弄清楚它有什麼問題以及如何解決它。請幫助,所以我可以在我的程序移動...無法得到這個編譯,我做錯了什麼?

主要

package inventory4; 
import java.util.Scanner; 
import java.util.Arrays; 
import javax.swing.JOptionPane; 

public class RunApp 
{ 
public static void main(String[] args) 
    { 

    Scanner input = new Scanner(System.in); 

    ItemDetails theItem = new ItemDetails(); 

    int number; 
    String Name = ""; 
    String Type = ""; 

    String sNumber = JOptionPane.showInputDialog(null,"How many items are to be put into inventory count?: "); 
    number = Integer.parseInt(sNumber); 

    ItemDetails[] inv = new ItemDetails[number]; 

    for (int count = 0; count < inv.length; ++count) 
    { 
    Name = JOptionPane.showInputDialog(null,"What is item " + (count + 1) + "'s name?"); 
    theItem.setName(Name); 


    Type = JOptionPane.showInputDialog(null,"Enter " + Name + "'s product type"); 

    theItem.setUniqueType(Type); 


    String spNumber = JOptionPane.showInputDialog(null,"Enter " + Name + "'s product number"); 
    double pNumber = Double.parseDouble(spNumber); 
    theItem.setpNumber(pNumber); 

    String sUnits = JOptionPane.showInputDialog(null,"How many " + Name + "s are there in inventory?"); 

    double Units = Double.parseDouble(sUnits); 
    theItem.setUnits(Units); 

    String sPrice = JOptionPane.showInputDialog(null,Name + "'s cost"); 
    double Price = Double.parseDouble(sPrice); 
    theItem.setPrice(Price); 


     inv[count] = new ItemDetails(Name, Price, Units, pNumber, Type); 
    } 



    for (int i = 0; i < inv.length; ++i) 
    { 
    JOptionPane.showMessageDialog(null, "Product Name" + inv[i].getName()); 

    JOptionPane.showMessageDialog(null, "Product Type" + inv[i].getUniqueType()); 

    JOptionPane.showMessageDialog(null, "Product Number" + inv[i].getpNumber()); 

    JOptionPane.showMessageDialog(null, "Amount of Units in Stock" + inv[i].getUnits()); 

    JOptionPane.showMessageDialog(null, "Price per Unit" + inv[i].getPrice()); 

    JOptionPane.showMessageDialog(null, String.format("Total cost for %s in stock: $%.2f", inv[i].getName(), inv[i].calculateTotalPrice())); 

    JOptionPane.showMessageDialog(null,String.format("Restocking fee for %s is $%.2f", inv[i].getName(), inv[i].calculateRestock())); 

    String combinedData = inv[i].toString(); 

    if(i == (inv.length -1)){ 

     String lastItem = String.format("\nTotal Cost for all items entered: $%.2f\n", Items.getCombinedCost(inv)); 

     combinedData = combinedData + lastItem; 
     JOptionPane.showMessageDialog(null, combinedData); 

    }else{ 
     JOptionPane.showMessageDialog(null, combinedData); 
    } 


     } //end for 


    } //end main 


} //end class 

ITEMS

package inventory4; 


public class Items implements Comparable 
{ 
    private String Name; 
    public double pNumber, Units, Price; 
    String allInfo; 
    public Items() 
    { 
    Name = ""; 
    pNumber = 0.0; 
    Units = 0.0; 
    Price = 0.0; 
    } 

    public int compareTo(Object item) 
    { 

     Items tmp = (Items)item; 

     return this.getName().compareTo(tmp.getName()); 
    } // end compareTo method 

    public Items(String productName, double productNumber, double unitsInStock, double unitPrice) 
    { 
    Name = productName; 
    pNumber = productNumber; 
    Units = unitsInStock; 
    Price = unitPrice; 
    } 

public String toString() 
{ 
    StringBuffer allInfo = new StringBuffer(); 


    allInfo.append(String.format("Name: %s\n pNumber: %.0f \n Units: %.0f \n Price: %.2f\n", 
    getName(),getpNumber(),getUnits(),getPrice())); 

    return allInfo.toString(); 
    } 


    //setter methods 
    public void setName(String n) 
    { 
    Name = n; 
    } 

    public void setpNumber(double no) 
    { 
     pNumber = no; 
    } 

    public void setUnits(double u) 
    { 
     Units = u; 
    } 

    public void setPrice(double p) 
    { 
     Price = p; 
    } 

    //getter methods 
    public String getName() 
    { 
     return Name; 
    } 

    public double getpNumber() 
    { 
     return pNumber; 
    } 

    public double getUnits() 
    { 
     return Units; 
    } 

    public double getPrice() 
    { 
     return Price; 
    } 

    public double calculateTotalPrice() 
    { 
     return (Units * Price); 
    } 

    public static double getCombinedCost(Items[] item) 
    { 
    double combined = 0; 

    for (int i = 0; i < item.length; ++i) 
    { 
    combined = combined + item[i].calculateTotalPrice(); 
    } //end loop 

    return combined; 
    } //end method 

} //end class 

項目詳細

package inventory4; 

public class ItemDetails extends Items 
{ 
    private String UniqueType; 

    public ItemDetails() 
{ 
    super(); 
} 

public String enterUniqueType() 
{ 
    return UniqueType; 
} 

public String getUniqueType() 
{ 
     return UniqueType; 
} 

public double calculateRestock() //setting up to calculate the restocking fee at 5% 
    { 
     return (Price * .05); 
    } 
} 
+2

當你說有一個錯誤,請張貼你的'javac'說什麼。 – asgs 2011-03-23 03:37:22

+0

什麼是編譯錯誤? – CoolBeans 2011-03-23 03:37:43

+3

「請幫助,讓我可以隨着我的節目進入...」對不起,我知道這是遲到,你累了,沮喪,你需要的最後一件事是互聯網上的一些混蛋(我)取笑但是......我認爲與程序合作是一個壞主意。它......它從來沒有出過...... – corsiKa 2011-03-23 03:39:28

回答

2

編譯錯誤:

RunApp.java:31: cannot find symbol 
symbol : method setUniqueType(java.lang.String) 
location: class ItemDetails 
    theItem.setUniqueType(Type); 
      ^
RunApp.java:48: cannot find symbol 
symbol : constructor ItemDetails(java.lang.String,double,double,double,java.lan 
g.String) 
location: class ItemDetails 
     inv[count] = new ItemDetails(Name, Price, Units, pNumber, Type); 
       ^
2 errors 
  1. 你ItemDetails類沒有setUniqueType方法。你應該添加一個。
  2. 您在48處使用的構造函數是「String,double,double,double,String」,但您的構造函數實際上只是「String double double double」或者刪除Type或在您的Item的末尾添加一個String參數構造函數,或使用這五個參數創建ItemDEtails構造函數。
  3. Your ItemDetails沒有與該參數匹配的構造函數。如果你想鏈的構造函數,聲明它ItemDetails

鏈的構造:

public ItemDetails(String productName, double productNumber, double unitsInStock, double unitPrice 
    super(productName,productNumber,unitsInStock,unitPrice); 
} 
+0

+1布拉沃。我遲了一分鐘,信息少了很多。 – 2011-03-23 03:45:28

+0

我刪除類型,但仍然得到錯誤... – g3n3rallyl0st 2011-03-23 04:31:24

+0

@lost我添加了如何鏈構造函數。實際上,你已經在爲默認構造函數做它了。 – corsiKa 2011-03-23 04:38:59

0

關於ItemDetails:它看起來像你的ItemDetails構造,從項目繼承,只需要4指定參數和你」重新傳遞它5.