Ir ao conteúdo

Posts recomendados

Postado

Bom dia, estou desenvolvendo um sistema bem simples de estoque onde os itens serao armazenados em uma matriz segue codigo:

    package main;
    
    import java.io.Console;
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class IncluirItem{
        public static void main(String[] args) {
            String[][] itens = new String[2][5];
            String[] campos = new String[7];
            int opcao = 0;
            int remover;
            int verificar = 0;
            int adcionar = 0;
            int tamanho = 2;
            
            Scanner sc = new Scanner(System.in);
            
            campos [1] = "Nome";
            campos [2] = "Codigo de barras";
            campos [3] = "quantidade";
            campos [4] = "validade";
            campos [5] = "data de entrada";
            
            do {
                System.out.println("\n\n### Sistema de estoque - simplificado ###");
                System.out.println("=========================================");
                System.out.println("      |     1 - Adcionar itens   |");
                System.out.println("      |     2 - Excluir itens    |");
                System.out.println("      |     3 - Mostrar itens    |");
                System.out.println("      |     0 - Sair             |");
                System.out.println("=========================================\n");
                
                System.out.println("Escolha uma opcao: ");
                opcao = sc.nextInt();
                System.out.print("\n");
                
                switch (opcao) {
                case 1:
                    System.out.println("Cadastro de itens: ");
                    //Adciona itens 
                    for (int i = 0; i <2; i++) {
                        System.out.println("Adcionar item? ");
                        System.out.println("1 para sim \n2 para nao: ");
                        adcionar = sc.nextInt();
                        if (adcionar == 1) {
                            System.out.printf("%d. item \n", (i+1));
                            verificar = verificar + 1;
                            for (int j=0; j < 5; j++) {    
                                System.out.printf("%s ", campos[j+1]);
                                System.out.printf("= ", i,(j+1));
                                itens[i][j] = sc.next();
                                
                            }
                            System.out.printf("\n");
                        }
                        else {
                            break;
                        }
                    }
                        
                    break;
                case 2:
                    //Remove itens
                    System.out.println("Exclusao de itens: ");
                    if(verificar > 0) {
                        for (int i = 0; i <2; i++) {    
                            System.out.printf("%d. item \n", (i+1));
                            System.out.printf("ID do produto= 00%d \n", (i+1));
                            System.out.printf("\n");
                        }
                    }
                    else {
                        System.out.println("Nenhum item listado!");
                    }
                    System.out.println("\nEscolha o numero do item a ser removido: \n");
                    remover = sc.nextInt();
                    for (int i = 0; i <2; i++) {
                        if(remover == 2) {
                        itens[i] = itens[i-1];
                        }
                    }
                    break;
                case 3:
                    //Mostra itens
                    if(verificar > 0) {
                        
                            for (int i = 0; i <2; i++) {    
                                if (verificar == 2) {
                                System.out.printf("%d. item \n", (i+1));
                                System.out.printf("ID do produto= 00%d \n", (i+1));
                                for (int j=0; j < 5; j++) {    
                                    System.out.printf("%s ", campos[j+1]);
                                    System.out.printf("= %s \n", itens [i][j]);
                                }
                                System.out.printf("\n");
                            }
                            else {
                                        itens = Arrays.copyOf(itens, tamanho - 1);
                                        verificar = 0;
                                        System.out.printf("%d. item \n", (i+1));
                                        System.out.printf("ID do produto= 00%d \n", (i+1));
                                        for (int j=0; j < 5; j++) {    
                                            System.out.printf("%s ", campos[j+1]);
                                            System.out.printf("= %s \n", itens [i][j]);
                                        }
                                        System.out.printf("\n");
                                        break;
                                }
                        }
                    }
                    else {
                        System.out.println("Nenhum item listado!");
                    }
                    
                    break;
                default:
                    System.out.println("Opção Inválida!");
                    break;
                }
            } while(opcao != 0);
        }
    }

Minha duvida é a seguinte, eu quero excluir uma posicao da matriz, exemplo: registrei dois itens, na coluna um e coluna dois da matriz e gostaria de remover a coluna um da lista, como realizo essa função, e outra coisa, eu gostaria de quando eu inserisse pela segunda vez algum item a matriz começasse na proxima possicao vazia, atualmente se eu pedir para inserir um novo item a matriz começa da primeira posicao e assim apaga os elementos ja inseridos.
 

Postado

Pode ser feito assim:

package main;

import java.util.Arrays;

public class IncluirItem {
    public static void main(String[] args) {
        String[][] matriz = new String[2][2];
        iniciar(matriz);
        
        System.out.println(inserir(matriz, "A") ? "Inseriu" : "Não coube");
        System.out.println(inserir(matriz, "B") ? "Inseriu" : "Não coube");
        System.out.println(inserir(matriz, "C") ? "Inseriu" : "Não coube");
        System.out.println(inserir(matriz, "D") ? "Inseriu" : "Não coube");
        System.out.println(inserir(matriz, "E") ? "Inseriu" : "Não coube");

        System.out.println(remover(matriz, 0, 0) ? "Removeu" : "Não encontrou");
        System.out.println(remover(matriz, 10, 10) ? "Removeu" : "Não encontrou");

        System.out.println(inserir(matriz, "E") ? "Inseriu" : "Não coube");
    }

    static private void iniciar(String[][] matriz) {
        for (String[] strings : matriz) {
            Arrays.fill(strings, "");
        }
    }

    static private boolean inserir(String[][] matriz, String item) {
        boolean resultado = false;

        for (int i = 0; i < matriz.length && !resultado; i++) {
            for (int j = 0; j < matriz[i].length && !resultado; j++) {
                if (matriz[i][j] == null || matriz[i][j].equals("")) {
                    matriz[i][j] = item;
                    resultado = true;
                }
            }
        }

        return resultado;
    }

    static private boolean remover(String[][] matriz, int linha, int coluna) {
        if (linha > matriz.length || coluna > matriz[0].length) {
            return false;
        }

        matriz[linha][coluna] = "";
        return true;
    }
}

 

  • Curtir 1
  • 2 semanas depois...
Postado
Em 06/07/2020 às 12:16, Pavolin19 disse:

Minha duvida é a seguinte, eu quero excluir uma posicao da matriz, exemplo: registrei dois itens, na coluna um e coluna dois da matriz e gostaria de remover a coluna um da lista, como realizo essa função, e outra coisa, eu gostaria de quando eu inserisse pela segunda vez algum item a matriz começasse na proxima possicao vazia, atualmente se eu pedir para inserir um novo item a matriz começa da primeira posicao e assim apaga os elementos ja inseridos.

 

Brother, eu repensaria tudo isso aí usando ArrayList. Acho que você vai conseguir gerenciar muito mais fácil.

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...