Exceções Java

Exercício Exceções Java

Crie um aplicativo, chamado ExcecaoJava que permita o registro de dados coletados através de pesquisa de campo junto a uma amostra de até 100 pessoas. Os dados coletados junto  cada pessoa são apenas três: nome, idade e estado civil. Este aplicativo deve realizar toda interação com o usuário através de interface gráfica (Diálogos). 

Procure implementar este aplicativo de modo que sua interação com o usuário se estabeleça como a seguir:



- Armazene os nomes dos entrevistados em um vetor de String;
- Utilize um vetor do tipo byte para armazenar as idades;
- Utilize um vetor para armazenar estado civil. Os valores que serão armazenados serão: S, C, V, D, O.
- Quando o usuário cancelar um dos diálogos de entrada, o aplicativo deve considerar que os dados de todos os entrevistados já foram registrados. Nesse caso, realizar os cálculos estatísticos sobre estes dados e exibir o relatório final através de um diálogo gráfico de saída;
- Devem ser exibidos as seguintes informações: Os dados de todas as pessoas entrevistadas; A média de idade dos entrevistados;  O percentual de pessoas que se enquadra em cada estado civil.
- Se um dado informado não for válido, o aplicativo deve emitir um mensagem de erro e solicitá-lo novamente;
- A validade dos dados será quebrada nas situações descritas abaixo e as mensagens de erro devem ser exibidas são aquelas indicadas:
  • Se o nome contém menos de 5 ou mais de 50 cacarteres, exiba a mensagem de erro: "O nome deve conter de 5 a 50 caractares!";
  • Se o nome contiver dígitos numéricos, exiba a mensagem de erro: "O nome não deve conter números!".
  • Se a idade não for um número inteiro ou se for um número inteiro superior a 127, exiba a mensagem de erro: "Dado inválido!";
  • Se a idade for menor que zero, exiba a mensagem de erro: "Não existe idade negativa!";
  • Se o estado civil informado não for um dos caracteres previstos (S, C.V, D e O), exiba a mensagem de erro: "Opção inválida!".

Comentários

  1. package excecaojava;
    import javax.swing.JOptionPane;
    public class ExcecaJava {

    public static void main(String[] args) {
    String [] nome=new String[100];
    byte [] idade=new byte[100];
    String [] estado=new String[100];

    //try{
    for(int i=0;i<=100;i++){
    nome[i]=JOptionPane.showInputDialog(null,"Digite o nome: ");
    idade[i]=Byte.parseByte(JOptionPane.showInputDialog(null,"Digite a idade: "));
    estado[i]=JOptionPane.showInputDialog(null,"Digite seu estado civil: \nC - Para casado.\nS - para Solteiro.\nV - para Viuvo. \nD - para Divorciado. \nO - para Outros.");
    }

    }
    //catch{

    //}

    }

    //}

    ResponderExcluir
  2. package excecaojava;
    import javax.swing.JOptionPane;
    public class ExcecaoJava {

    public static void main(String[] args) {

    String [] nome=new String[100];
    byte [] idade=new byte[100];
    String [] estado=new String[100];
    String dados="";
    int i;
    int parado = 0;
    float mediaIdade=0;

    for(i=0;i<=100;i++){

    try{
    nome[i]=JOptionPane.showInputDialog(null,"Digite o nome: ");
    if (nome[i]==null){break;}
    }finally{}

    while(idade[i]==0){
    try{
    idade[i]=Byte.parseByte(JOptionPane.showInputDialog(null,"Digite a idade: "));
    if (idade[i]==0){break;}
    mediaIdade=mediaIdade+idade[i];
    }catch(NumberFormatException a){JOptionPane.showMessageDialog(null,"POR FAVOR DIGITE APENAS NUMEROS");}}

    try{
    estado[i]=JOptionPane.showInputDialog(null,"Digite seu estado civil: \nC - Para casado.\nS - para Solteiro.\nV - para Viuvo. \nD - para Divorciado. \nO - para Outros.");
    if (estado[i]==null){break;}
    }finally{}
    dados=dados+(nome[i]+" - "+idade[i]+" - "+estado[i]+"\n");

    parado++;
    }

    mediaIdade=(mediaIdade/parado);

    JOptionPane.showMessageDialog(null,mediaIdade);



    }
    }

    ResponderExcluir
  3. public class Executavel {

    public static void main(String[] args) {
    int controle = 100;
    String [] nome = new String[controle];
    byte [] idade = new byte[controle];
    String [] eCivil = new String[controle];

    int i;
    int cont = 0;
    boolean opc = false;
    boolean loop;
    try{
    while(opc == false){//loop do cadastro 'nome, idade e estado civil'

    do{//inicio da entrada e validação do atributo nome------------------------------------
    loop = false;
    nome[cont] = JOptionPane.showInputDialog("Nome completo: ");
    if (nome[cont].length() < 5 || nome[cont].length() > 50){
    JOptionPane.showMessageDialog(null, "O nome deve conter entre 5 e 50 caracteres");
    loop = true;
    }else{
    for(i = 0; i < nome[cont].length(); i++){//loop para verificar cada caractere do nome digitado.
    char caracter = nome[cont].charAt(i);//retorna um char para variavel c.
    if(Character.isDigit(caracter)){//verifica se a variavel c é um número.
    JOptionPane.showMessageDialog(null, "O nome digitado não pode conter números.\nNome digitado '"+nome[cont]+"'.");
    loop = true;
    break;
    }//fim if.
    }//fim for.
    }//fim else.
    }while(loop == true);//fim do/while da entrado do nome.

    do{//inicio da entrada e validação do atributo idade---------------------------------
    loop = false;
    try{
    idade[cont] = Byte.parseByte(JOptionPane.showInputDialog("Idade: "));
    if(idade[cont] < 0 || idade[cont] > 127){
    JOptionPane.showMessageDialog(null, "Por favor digite apenas números entre 0 e 127.\nIdade digitada '"+idade[cont]+"'.");
    loop = true;
    }
    }catch(NumberFormatException e){
    JOptionPane.showMessageDialog(null, "Por favor digite apenas números entre 0 e 127.\n"+e);
    loop = true;
    }
    }while(loop == true);//fim do/while da entrado da idade.

    do{//inicio da entrada e validação do atributo Estado civil----------------------------
    loop = false;
    String a = JOptionPane.showInputDialog("Estado Cívil (Digite a letra correspondente a opção):\n\n"+
    "S - Solteiro(a)\nC - Casado(a)\nV - Viuvo(a)\nD - Divorciado(a)\nO - Outros");
    eCivil[cont] = a.toUpperCase();//retorna o valor digitado MAIUSCULO.
    //Compara o valor digitado com as opções.
    if(eCivil[cont].equals("S") || eCivil[cont].equals("C") || eCivil[cont].equals("V") || eCivil[cont].equals("D") || eCivil[cont].equals("O")){
    }else{
    JOptionPane.showMessageDialog(null, "Opção invalida, você digitou '"+eCivil[cont]+"', observe as opções do menu.");
    loop = true;
    }
    }while(loop == true);//fim do/while da entrado do Estado Civil.

    ResponderExcluir
  4. //continuação
    cont++;//incremento da quantidade de dados inserio no vetor.
    if(cont == controle){
    JOptionPane.showMessageDialog(null,"Cadastro inserido com sucesso. Vetor completo.\nAgora será exibido o resultado.");
    opc = true;
    }else{
    JOptionPane.showMessageDialog(null,"Cadastro inserido com sucesso.");
    }
    }//fim do loop do cadastro 'nome, idade e estado civil'

    }catch(NullPointerException e){//Excessão lançada quando pressionado a opção cancelar em qualquer dialogo.
    JOptionPane.showMessageDialog(null, "Se o último cadastro estiver incompleto será descartado.\n"+e);
    }
    //PROCESSAMENTO E EXIBIÇÃO DOS DADOS DA PESQUISA
    String amostra = "AMOSTRA PESQUISADA\n\n";
    String estCivil;
    int mIdade = 0, idades = 0, s = 0, c = 0, v = 0, d = 0, o = 0;
    for(int x = 0; x <= cont; x++){
    amostra += nome[x]+" - ";
    amostra += idade[x]+" - ";
    amostra += eCivil[x]+".\n";
    idades += idade[x];
    estCivil = eCivil[x];
    System.out.print(eCivil[x]);
    if(estCivil.equals("S")){
    s++;
    }else if(estCivil.equals("C")){
    c++;
    }else if(estCivil.equals("V")){
    v++;
    }else if(estCivil.equals("D")){
    d++;
    }else if(estCivil.equals("O")){
    o++;
    }
    }
    try{
    mIdade = (idades/cont);
    amostra += "\nDADOS ESTATÍSTICOS\n\n"+
    "Média de idade: "+mIdade+
    "\nPercentual de Solteiros: "+(s*100)/cont+
    "\nPercentual de Casados: "+((c*100)/cont)+
    "\nPercentual de Viúvos: "+((v*100)/cont)+
    "\nPercentual de Divorciados: "+((d*100)/cont)+
    "\nPercentual de Outros: "+((o*100)/cont);
    }catch(ArithmeticException e){
    JOptionPane.showMessageDialog(null, "Nenhum Dado inserido. "+e);
    }
    JOptionPane.showMessageDialog(null, amostra);

    }//fim main.
    }//fim classe executavel.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Questão Comentada - Prof Nelson Lage

Classes(abstratas e concretas), Objetos, Métodos, Construtores, Vetor de Objetos e trabalhar o conceito de interface.

10 habilidades digitais que todo professor deve ter