Problemas del programa de inventario de Java [cerrado]

Tengo 2 mensajes de error que me indican que tengo problemas para averiguar qué me está pidiendo. Los errores son:

Desktop \ Inventory Program \ InventoryPart1.java: 93: no se puede encontrar el símbolo símbolo: variable ubicación de la impresora: clase InventoryPart1 System.out.println ("Número de artículo:" + printer.getItemNumber ()); Desktop \ Inventory Program \ InventoryPart1.java: 95: no se puede encontrar el símbolo símbolo: impresora variable`introduzca el código aquí` ubicación: class InventoryPart1 System.out.println ("Nombre del producto:" + printer.getProductName ());

El código hasta ahora es

import java.text.NumberFormat; import java.util.locale; import java.util.Scanner; class Printer {cadena privada itemNumber; Private String productName; unidades dobles privadas; unidad doble privadaPrecio; unidades dobles privadasTotal; // constructor public Printer (String itemNumber, String productName, unidades dobles, unidades doblesTotal) {setItemNumber (itemNumber); setProductName (productName); setUnits (unidades); setUnitPrice (precioUnidad); unidadesTotal = unidades ++; } // métodos de acceso para variables de clase public String getItemNumber () {return itemNumber; } setItemNumber public void (String itemNumber) {this.itemNumber = itemNumber; } public String getProductName () {return productName; } public void setProductName (String productName) {this.productName = productName; } public double getUnits () {unidades de retorno; } public void setUnits (unidades dobles) {this.units = unidades; } public double getUnitPrice () {return unitPrice; } setUnitPrice público void (precio unitario doble) {this.UnitPrice = unidades * precio unitario; } public double getUnitsTotal () {return unitTotal; } public void setUnitsTotal (doble unitTotal) {this.unitsTotal = unidades ++; }} public class InventoryPart1 {public static void main (String args []) {int unidades; double unitPrice; unidades doblesTotal; unidadesTotal = unidades ++; unidades doblesPrecio; unitPrice = unidades * unitPrice; unidades doblesTotalPrice; unitTotalPrice = unitTotal * unitPrice; double totalInventory; totalInventory = unitTotal * unitTotalPrice; NumberFormat nf = NumberFormat. getCurrencyInstance (Locale.US); // crea una instancia de la clase Printer Printer epson = new Printer ("Epson579", "All In One", 2, 50.99); // use los métodos de la clase Printer para generar los detalles del inventario. System.out.println ("Número de artículo:" + printer.getItemNumber ()); System.out.println ("Nombre del producto:" + printer.getProductName ()); System.out.print ("Número de unidades:"); System.out.println (nf.format (unidades)); System.out.print ("Precio unitario:"); System.out.println (nf.format (unitPrice)); System.out.print ("Unidades totales:"); System.out.println (nf.format (unitsTotal)); System.out.print ("Precio total de las unidades:"); System.out.println (nf.format (unitTotalPrice)); System.out.print ("Inventario total:"); System.out.println (nf.format (totalInventory)); }}

Lo siento, soy nuevo en este sitio y sigo tratando de resolver las cosas con todo el código ingresado,

preguntado el 27 de agosto de 11 a las 20:08

¡Está todo bien! Le di formato al código para que no se preocupe. :) -

3 Respuestas

Ah, no declaraste una variable llamada printer. Tu lo llamaste epson.

Respondido 28 ago 11, 00:08

Hubo un par de problemas con su clase InventoryPart1, no se compilaría hasta que inicializara las variables al comienzo de main. Es un buen hábito, también necesitabas usar 'epson' y no 'impresora':

public class InventoryPart1 {

    public static void main (String args[]) {


        int units = 0;

        double unitPrice = 0;

        double unitsTotal = units++;

        double unitsPrice = 0;
        unitsPrice = units * unitPrice;

        double unitsTotalPrice;
        unitsTotalPrice = unitsTotal * unitPrice;

        double totalInventory;
        totalInventory = unitsTotal * unitsTotalPrice;


        NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);

        //create an instance of the Printer class
        Printer epson = new Printer ("Epson579", "All In One", 2, 50.99);

        //use the methods from class Printer to output the inventory details.
        System.out.println("Item Number: " + epson.getItemNumber());

        System.out.println("Product Name: " + epson.getProductName());

        System.out.print("Number of Units: ");
        System.out.println(nf.format(units));

        System.out.print("Unit Price: ");
        System.out.println(nf.format(unitPrice));

        System.out.print("Units Total: ");
        System.out.println(nf.format(unitsTotal));

        System.out.print("Units Total Price: ");
        System.out.println(nf.format(unitsTotalPrice));

        System.out.print("Total Inventory: ");
        System.out.println(nf.format(totalInventory));
    }
}

Respondido 28 ago 11, 00:08

Gracias, voy a intentar hacer esos cambios y ver qué pasa. La ayuda es bastante apreciada - Colby Plank

Funciona bajo javac, pero cuando hago clic en ejecutar el subprograma java, no se inicializa. Cuando hago clic en Java, aparece este mensaje de error: No se pudo encontrar la clase principal: C: \ Users \ Colby y Erin \ Desktop \ Inventory Program \ InventoryPart1.java. Programa saldrá. Excepción en el hilo "principal" Herramienta completada con el código de salida 1 - Colby Plank

hmmm, ese es un problema separado, tal vez pueda publicar más detalles, por ejemplo, no estoy seguro de lo que quiere decir con 'hago clic en ejecutar applet de Java', ¿desde dónde? dentro de un ide? también asegúrese de que sus clases sean públicas, la impresora no lo era (por lo que el paquete era visible), ¿era eso lo que deseaba? - eternidad

La clase que estoy tomando es que usemos TextPad ... Cuando voy a Herramientas y luego a Herramientas externas, dice Javac y Java, entre otros. Cuando hago clic en Javac, dice ¡Herramienta completada correctamente! Cuando hago clic en Java, me da ese mensaje de error: Colby Plank

hmm, no sé TextPad, ¿tal vez pueda comenzar una nueva pregunta y otras personas puedan ayudar con los problemas de TextPad? necesita obtener TextPad para ejecutar 'java InventoryPart1' y asegurarse de que la carpeta que contiene InventoryPart1.class esté en su classpath - eternidad

Un par de cuestiones ...

  • el nombre de la instancia debe ser printer y no epson
  • El número total de unidades debe ser un campo estático en lugar de una variable de instancia.
  • inicialice todas las variables locales antes de usarlas o elimínelas, ya que puede calcular estadísticas utilizando métodos de miembros de la clase Printer
  • Al mostrar, use todos los métodos miembros de la clase Printer en lugar de las variables locales
  • Utilice NumberFormat.getIntegerInstance para formatear enteros, ya que NumberFormat.getCurrencyInstance es para formatear campos de moneda.

Debería reconsiderar los campos de unidades, unitTotal, precio de las unidades e inventario.

import java.text.NumberFormat;
import java.util.Locale;

class Printer {

    private String itemNumber;
    private String productName;
    private double units;
    private double unitPrice;
    private static double unitsTotal;

    // constructor
    public Printer(String itemNumber, String productName, double units, double unitPrice) {
        setItemNumber(itemNumber);
        setProductName(productName);
        setUnits(units);
        setUnitPrice(unitPrice);
        unitsTotal += units;
    }

    // accessor methods for class variables
    public String getItemNumber() {
        return itemNumber;
    }

    public void setItemNumber(String itemNumber) {
        this.itemNumber = itemNumber;
    }

    public String getProductName() {
        return productName;
    }

    public void setProductName(String productName) {
        this.productName = productName;
    }

    public double getUnits() {
        return units;
    }

    public void setUnits(double units) {
        this.units = units;
    }

    public double getUnitPrice() {
        return unitPrice;
    }

    public void setUnitPrice(double unitPrice) {
        this.unitPrice = unitPrice;
    }

    public static double getUnitsTotal() {
        return unitsTotal;
    }
}

public class InventoryPart1 {

    public static void main(String args[]) {
        NumberFormat nf = NumberFormat.getCurrencyInstance(Locale.US);
        NumberFormat inf = NumberFormat.getIntegerInstance(Locale.US);

        // create an instance of the Printer class
        Printer printer = new Printer("Epson579", "All In One", 2, 50.99);

        // use the methods from class Printer to output the inventory details.
        System.out.println("Item Number      : " + printer.getItemNumber());
        System.out.println("Product Name     : " + printer.getProductName());
        System.out.println("Number of Units  : " + inf.format(printer.getUnits()));
        System.out.println("Unit Price       : " + nf.format(printer.getUnitPrice()));
        System.out.println("Units Total      : " + inf.format(printer.getUnitsTotal()));
        System.out.println("Units Total Price: " + nf.format(printer.getUnitPrice() * Printer.getUnitsTotal()));
        System.out.println("Total Inventory  : " + inf.format(Printer.getUnitsTotal()));
    }
}

Ejecución de muestra:

Item Number      : Epson579
Product Name     : All In One
Number of Units  : 2
Unit Price       : $50.99
Units Total      : 2
Units Total Price: $101.98
Total Inventory  : 2

respondido 10 nov., 17:04

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.