Ir ao conteúdo

Posts recomendados

Postado

Esta dando esse erro alguem pode me ajudar meu codigo é esse aqui  Exception in thread "main" java.lang.UnsupportedOperationException: Not sup

 

 

 

package estoque;


import java.util.LinkedList;
import javax.swing.JOptionPane;

public class Estoque {
    
      public int codigo;
    public String nome;
    public double qtTotal;
    public double qtMinima;

    public Estoque(int codigo, String nome, double qtTotal, double qtMinima) {
        this.codigo = codigo;
        this.nome = nome;
        this.qtTotal = qtTotal;
        this.qtMinima = qtMinima;


    }

    @Override
    public String toString() {
        return codigo + "\n" + nome + "\n" + qtTotal + " " + qtMinima ;
    }
}


 class Principal2 {

    
    public static void main(String[] args) {
        LinkedList<Estoque> listaest = new LinkedList<>();
        char continua = 'S';
        int codigo;
        String nome;
        double qtTotal;
        double qtMinima;
        double soma = 0;
        int codigoproduto;
        int quantvendida;
        int valor = 1;
        int somaquan = 0;
        while (continua == 'S') {
            codigo = Integer.parseInt(JOptionPane.showInputDialog("Informe o código do Produto"));
            nome = JOptionPane.showInputDialog("Informe o nome do Produto");
            qtTotal = Double.parseDouble(JOptionPane.showInputDialog("Informe a quantidade do Produto em estoque"));
            qtMinima = Double.parseDouble(JOptionPane.showInputDialog("Informe a quantidade mínima do Produto em estoque"));
            listaest.add(new Estoque(codigo, nome, qtTotal, qtMinima));

            soma=soma+qtTotal;
            continua = InOut.leChar("Deseja continuar?(S/N)");
        }
        for (Estoque elemento : listaest) {
            System.out.println(elemento + "\n");
            System.out.println();

        while(valor == 1){
          codigoproduto = Integer.parseInt(JOptionPane.showInputDialog("Informe o código do Produto"));
          quantvendida  = Integer.parseInt(JOptionPane.showInputDialog("Informe a quantidade vendida"));

        somaquan=somaquan+quantvendida;
        System.out.println("Deseja continuar?(1/2)");
        }

          if(soma<somaquan) {
                System.out.println("Quantidade em estoque não é suficiente – produto não pode ser vendido");
            }

        }
    }
}

Postado

Se estruturar seu projeto assim, fica mais fácil:

package model;

public class Produto {
    public long codigo;
    public String descricao;
    public double valor;

    public Produto() {
    }

    public Produto(long codigo, String descricao, double valor) {
        this.codigo = codigo;
        this.descricao = descricao;
        this.valor = valor;
    }

    public long getCodigo() {
        return codigo;
    }

    public void setCodigo(long codigo) {
        this.codigo = codigo;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public double getValor() {
        return valor;
    }

    public void setValor(double valor) {
        this.valor = valor;
    }

    @Override
    public String toString() {
        return "Produto{" +
                "codigo=" + codigo +
                ", descricao='" + descricao + '\'' +
                ", valor=" + valor +
                '}';
    }
}
package model;

import java.util.HashMap;
import java.util.Map;

public class Estoque {
    public Map<Produto, Integer> estoque;

    public Estoque() {
        this.estoque = new HashMap<>();
    }

    public void adicionar(Produto produto, int quantidade) {
        quantidade = Math.abs(quantidade);

        if (estoque.containsKey(produto)) {
            estoque.replace(produto, estoque.get(produto) + quantidade);
        } else {
            estoque.put(produto, quantidade);
        }
    }

    public boolean vender(Produto produto, int quantidade) {
        quantidade = Math.abs(quantidade);

        if (!estoque.containsKey(produto) || estoque.get(produto) < quantidade) {
            return false;
        } else {
            estoque.replace(produto, estoque.get(produto) - quantidade);
            return true;
        }
    }
}
package controller;

import model.Estoque;
import model.Produto;

public class Principal {
    public static void main(String[] args) {
        final Estoque estoque = new Estoque();

        Produto produto1 = new Produto(1, "Produto 1", 11);
        Produto produto2 = new Produto(2, "Produto 2", 22);
        Produto produto3 = new Produto(3, "Produto 3", 33);
        Produto produto4 = new Produto(4, "Produto 4", 44);
        Produto produto5 = new Produto(5, "Produto 5", 55);

        // Dá erro porque o produto não está no estoque ainda
        if (estoque.vender(produto1, 1)) {
            System.out.println("Vendido " + 1 + " unidade de '" + produto1.descricao + "'.");
        } else {
            System.out.println("'" + produto1.descricao + "' não encontrado ou quantidade insuficiente.");
        }

        // Abastece o estoque
        estoque.adicionar(produto1, 10);
        estoque.adicionar(produto2, 10);
        estoque.adicionar(produto3, 10);
        estoque.adicionar(produto4, 10);
        estoque.adicionar(produto5, 10);

        // Tem quantidade suficiente
        if (estoque.vender(produto1, 2)) {
            System.out.println("Vendido " + 2 + " unidade de '" + produto1.descricao + "'.");
        } else {
            System.out.println("'" + produto1.descricao + "' não encontrado ou quantidade insuficiente.");
        }

        // Dá erro porque o estoque é insuficiente
        if (estoque.vender(produto1, 10)) {
            System.out.println("Vendido " + 10 + " unidade de '" + produto1.descricao + "'.");
        } else {
            System.out.println("'" + produto1.descricao + "' não encontrado ou quantidade insuficiente.");
        }
    }
}

Eu testei seu código, mas não vi o erro descrito. Apenas um fluxo estranho, provavelmente por não estar completo ainda.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!