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.ArrayIndexOutOfBoundsException: Index 0 out
of bounds for length 0
at GSEvelyn.GSLabProg.cadastro(GSLabProg.java:99)
at GSEvelyn.GSLabProg.main(GSLabProg.java:61)
Soluções para a tarefa
Respondido por
0
Resposta:
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
peyuji:
como faço para inserir o print?
Perguntas interessantes
Matemática,
4 meses atrás
Português,
4 meses atrás
Psicologia,
4 meses atrás
Matemática,
4 meses atrás
Artes,
4 meses atrás
Física,
9 meses atrás
Geografia,
9 meses atrás