2011-02-26 2 views
0

Je suis officiellement arrivé au bout de ma corde. Je ne peux pas trouver ce que j'ai mal fait. J'ai fait ce programme presque exactement comme un autre programme que j'ai écrit il y a quelques jours mais j'ai de la difficulté à compiler. Je ne sais pas pourquoi je reçois des erreurs sur les lignes de sortie. S'il vous plaît aider:Plusieurs classes: Qu'est-ce que je fais mal ici?

CECI EST LE FICHIER RUNNING:

package inventory1; 

import java.util.Scanner; 

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

    Scanner input = new Scanner(System.in); 

    DataCollection theProduct = new DataCollection(); 

    String Name = ""; 
    double pNumber = 0.0; 
    double Units = 0.0; 
    double Price = 0.0; 

    while (true) { 
     System.out.print("Enter Product Name: "); 
     Name = input.next(); 
     theProduct.setName(Name); 
     if (Name.equalsIgnoreCase("stop")) { 
     return;}  
     System.out.print("Enter Product Number: "); 
     pNumber = input.nextDouble(); 
     theProduct.setpNumber(pNumber); 

     System.out.print("Enter How Many Units in Stock: "); 
     Units = input.nextDouble(); 
     theProduct.setUnits(Units); 

     System.out.print("Enter Price Per Unit: "); 
     Price = input.nextDouble(); 
     theProduct.setPrice(Price); 

     System.out.print("\n Product Name:  " + theProduct.getName()); 
     System.out.print("\n Product Number:  " + theProduct.getpNumber()); 
     System.out.print("\n Amount of Units in Stock:  " + theProduct.getUnits()); 
     System.out.print("\n Price per Unit: " + theProduct.getPrice() + "\n\n"); 
     System.out.printf("\n Total cost for %s in stock: $%.2f\n\n\n", theProduct.getName(), theProduct.calculatePrice()); 

    } 
    } 
} 

CECI EST LE COLLECTIONS DE DONNÉES FICHIER:

package inventory1; 

public class DataCollection { 
    String productName; 
    double productNumber, unitsInStock, unitPrice, totalPrice; 

    public DataCollection() { 
    productName = ""; 
    productNumber = 0.0; 
    unitsInStock = 0.0; 
    unitPrice = 0.0; 
    } 

    // setter methods 
    public void setName(String name) { 
    productName = name; 
    } 

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

    public void setUnits(double units) { 
    unitsInStock = units; 
    } 

    public void setPrice(double price) { 
    unitPrice = price; 
    } 

    // getter methods 
    public void getName(String name) { 
    productName = name; 
    } 

    public void getpNumber(double pNumber) { 
    productNumber = pNumber; 
    } 

    public void getUnits(double units) { 
    unitsInStock = units; 
    } 

    public void getPrice(double price) { 
    unitPrice = price; 
    } 

    public double calculatePrice() { 
    return (unitsInStock * unitPrice); 
    } 
} 
+1

1) S'il vous plaît formater votre code correctement 2) Quelles erreurs obtenez-vous? – Zulan

+0

Idem que Zulan ... Difficile d'aider sans code bien formaté et plus d'infos. – Endophage

+0

J'ai formaté son code, long retrait automatique! –

Répondre

2

La raison pour laquelle il ne compile pas est parce que votre code principal:

System.out.print("\n Product Name:  " + theProduct.getName()); 
    System.out.print("\n Product Number:  " + theProduct.getpNumber()); 
    System.out.print("\n Amount of Units in Stock:  " + theProduct.getUnits()); 
    System.out.print("\n Price per Unit: " + theProduct.getPrice() + "\n\n"); 
    System.out.printf("\n Total cost for %s in stock: $%.2f\n\n\n", theProduct.getName(), theProduct.calculatePrice()); 

Mais votre getName() Nécessite la mise en œuvre getName() n'existait pas. Vous n'aviez pas la bonne signature. Changez-le à un getter approprié et cela devrait fonctionner. Idem pour les autres getters.

Au lieu de:

// getter methods 
    public void getName(String name) { 
    productName = name; 
    } 

    public void getpNumber(double pNumber) { 
    productNumber = pNumber; 
    } 

    public void getUnits(double units) { 
    unitsInStock = units; 
    } 

    public void getPrice(double price) { 
    unitPrice = price; 
    } 

Utilisation:

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

    public double getpNumber() { 
    return productNumber; 
    } 

    public double getUnits() { 
    return unitsInStock; 
    } 

    public double getPrice() { 
    return unitPrice; 
    } 
+0

Cela a fonctionné parfaitement. J'apprends encore les différentes méthodes et parfois je me perds un peu. Merci pour votre aide @Mohamed Mansour – g3n3rallyl0st

+0

Pas de soucis, je recommande fortement http://download.oracle.com/javase/tutorial/ pour les débutants :) –

0

Je crois que le problème est dans la façon dont vous lisez les valeurs. Bien qu'il soit sûr de lire Strings en utilisant Scanner.next() mais pour d'autres structures de données, vous devrez peut-être effacer un nouveau caractère de ligne de votre flux d'entrée avant de lire réellement la valeur.

Mais c'est seulement en théorie parce que vous n'avez pratiquement rien donné à propos de votre problème.

Questions connexes