Alguém sabe como fazer isso? meu código fala que está com problema. desenvolver um sistema em java

para realizar o controle (cadastro e busca em um vetor) de animais de uma fazenda. O sistema deverá apresentar para o usuário o seguinte menu de opções: 1. Cadastrar 2. Relatório 3. Pesquisa Ao escolher a opção de cadastro, um submenu deverá ser apresentado: 1. Bovino 2. Suíno 3. Caprino O usuário da aplicação deverá escolher uma opção válida e, em seguida, entrar com as informações do animal: raça, peso, idade. Além das informações citadas, para cada animal, deverá ser gerado um código único composto por cinco letras maiúsculas obedecendo a seguinte regra: a. Bovino --> BO + 3 letras maiúsculas b. Suíno --> SU + 3 letras maiúsculas c. Caprino --> CA + 3 letras maiúsculas Os dados de cada animal deverão ser armazenados em arrays e o código de cada animal deverá ser armazenado de forma criptografada usando a cifra de César (descrição a seguir). Para a criptografia o usuário da aplicação deverá informar qual o número de cifras para deslocamento. A opção Relatório do menu principal deverá exibir no vídeo todos os dados de cada animal, o código criptografado e o código descriptografado. A opção Pesquisa do menu principal deverá receber o código criptografado e deverá pesquisar no vetor se o animal com o código está registrado. Caso o animal esteja registrado no vetor, seus dados deverão ser exibidos no vídeo. Se não estiver cadastrado, uma mensagem deverá ser exibida para o usuário da aplicação.

código:

package GSEvelyn;
import java. util. Scanner;

public class GSLabProg {

static Scanner s = new Scanner(System. in);

static String[] alfabeto = new String[] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O",

"P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "A", "B", "C" };

static int crypt[] = new int[3];

static int qtdAnimais = 0;

public static void main(String[] args) {

int opcao = 0;

do {

System. out. println("--- Controle de Animais da Fazenda ---n");

System. out. println("--- Opções ---");

System. out. println("0 - Sair");

System. out. println("1 - Cadastro");

System. out. println("2 - Relatório");

System. out. println("3 - Pesquisa");

System. out. println("");

System. out. print("nEscolha uma opção: ");

opcao = s. nextInt();

// validação da opção

while (opcao < 0 || opcao > 3) {

System. out. print("Opção inválida, por favor digite um número válido: ");

opcao = s. nextInt();

}

if (opcao == 0) {

System. out. println("nFIM DO PROGRAMA");

} else if (opcao == 1) {

System. out. println("n--- CADASTRO ---");

System. out. print("nDigite a quantidade de animais que deseja cadastrar: ");

qtdAnimais = s. nextInt();

System. out. println(qtdAnimais);

cadastro();

} else if (opcao == 2) {

relatorio();

} else {

pesquisa();

}

} while (opcao != 0);

}// main

private static void relatorio() {

// TODO Auto-generated method stub

}

static String cod[] = new String[qtdAnimais], codCript[] = new String[qtdAnimais], raca[] = new String[qtdAnimais];

static int peso[] = new int[qtdAnimais], idade[] = new int[qtdAnimais];

public static void cadastro() {

int subopcao = 0;

System. out. println(qtdAnimais);

System. out. println(cod. length);

for (int i = 0; i < qtdAnimais; i++) {

System. out. println("n--- Raça do animal " + (i + 1) + "º animal ---");

System. out. println("1 - Bovino");

System. out. println("2 - Suíno");

System. out. println("3 - Caprino");

System. out. print("Escolha uma opção: ");

subopcao = s. nextInt();

// validação do submenu

while (subopcao < 1 || subopcao > 3) {

System. out. print("Opção inválida, por favor digite um número válido: ");

subopcao = s. nextInt();

}

System. out. print("Digite o peso do animal: ");

peso[i] = s. nextInt();

System. out. print("Digite a idade do animal: ");

idade[i] = s. nextInt();

// geração do código

String codigo = geraCodigo(subopcao);

cod[i] = codigo;

// criptografia do código

String codigoCript = encriptaCodigo(subopcao, codigo);

codCript[i] = codigoCript;

}

}

private static String encriptaCodigo(int subopcao, String codigo) {

// TODO Auto-generated method stub

return null;

}

public static String geraCodigo(int subopcao) {

String codigo = "";

int indLetra = 0;

switch (subopcao) {

case 3:

codigo = "CA";

for (int i = 0; i < 3; i++) {

indLetra = (int) (Math. random() * 26);

codigo += alfabeto[indLetra];

crypt[i] = indLetra + 3;

}

System. out. println(codigo);

break;

}

System. out. println("--Caprino--");

System. out. println("");

System. out. println("Raça");

System. out. println("Peso");

System. out. println("Idade");

return codigo;

}

public static void pesquisa() {

}

}

ao tentar executar aparece isso

Exception in thread "main" java. lang.: Index 0 out
of bounds for length 0
at GSEvelyn. GSLabProg. cadastro(GSLabProg. java:99)
at GSEvelyn. GSLabProg. main(GSLabProg. java:61)

1 Resposta

  • ClaudioOliveraAluna

    opa boa noite!

    o trecho "while (opcao != 0);" não informa oque acontece quando a opção for diferente de 0. ele só informa que entrará em loop, mas não específica. da uma verificada. Sugestão: coloca o print do código na IDE c/ o print informando a linha do erro

Clique aqui para adicionar a sua resposta.