Problema com vetores [RESOLVIDO]

8 respostas
Pinhorox

Bem, estou começando em java, estou na primeira fase de Ciencias da Computação e me deparei com um problema que não sei resolver.
Estou fazendo no NetBeans e até ali não há nenhum erro. A parte que está em branco eu não tenho a mínima ideia de como fazer.
Já procurei em vários sites mas não acho algo que consiga me ajudar com isso.
Talvez vocês possam me ajudar, gostaria de entender e não da resposta.
A questão é a seguinte:

Considerandos os seguintes dados de um aluno como sendo:
Nome, Matrícula, Idade e Sexo.

Armazene cada dado num vetor, considerando um total de 20 alunos.

Implemente:
1)Cadastro de alunos
2)Listagem de alunos
3)Consulta por nome
4)Consulta or matrícula
5)Nomes dos alunos mais idosos
6)Nomes dos alunos mais jovens
7)Média de idade dos alunos
8)Total de homens e de mulheres
9)Nome da mulher com menor idade

Ficou assim:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package vetor;

import javax.swing.JOptionPane;

/**
 *
 * @author Pinhorox
 */
 public class Vetor {

   static String nomes[] = new String[20];
   static int idades[] = new int[20];
   static char sexos[] = new char[20];
   static int matriculas[] = new int[20];

     public static void main(String[] args){
        int op=0;
        do{
           op = Integer.parseInt(JOptionPane.showInputDialog("1 - Cadastro de alunos\n"+
                                                             "2 - Listagem de alunos\n"+
                                                             "3 - Consultar por nome\n"+
                                                             "4 - Consultar por matrícula\n"+
                                                             "5 - Nomes dos alunos mais idosos\n"+
                                                             "6 - Nomes dos alunos mais jovens\n"+
                                                             "7 - Média de idade\n"+
                                                             "8 - Total de homens e mulheres\n"+
                                                             "9 - Nome da mulher com menor idade\n"+
                                                             "10 - Sair"));
                      switch(op){
                        case 1: armazenar(); break;
                        case 2: listar(); break;
                        case 3: consultarnome(); break;
                        case 4: consultarmatricula(); break;
                        case 5: idosos(); break;
                        case 6: jovens(); break;
                        case 7: media(); break;
                        case 8: total(); break;
                        case 9: mulheridade(); break;
                      }

        }while(op!=10);
    }

        public static void armazenar(){
            for(int i=0; i<20; i++){
             nomes[i]=JOptionPane.showInputDialog("Digite o nome do aluno: ");
             matriculas[i]=Integer.parseInt(JOptionPane.showInputDialog("Digite a matrícula de " + nomes[i] + ": "));
             idades[i]=Integer.parseInt(JOptionPane.showInputDialog("Digite a idade de " + nomes[i] + ": "));
             sexos[i]=JOptionPane.showInputDialog("Digite o sexo de " + nomes[i]+ ": ").toUpperCase().charAt(0);

            }
        }

        public static void listar(){
            for(int i=0; i<20; i++){
                JOptionPane.showMessageDialog(null, "Nome do aluno: " + nomes[i] +
                                                    "\nMatrícula: " + matriculas[i] +
                                                    "\nIdade: " + idades[i] +
                                                    "\nSexo: " + sexos[i]);
            }
        }

        public static void consultarnome(){
            String nome;
            nome=JOptionPane.showInputDialog("Nome do aluno: ");
            for(int i=0; i<20; i++){
               if(nome.equals(nomes[i])){
                   JOptionPane.showMessageDialog(null, "Aluno cadastrado: " + nomes[i] +
                                                       "\nMatrícula: " + matriculas[i] +
                                                       "\nIdade: " + idades[i] +
                                                       "\nSexo: " + sexos[i]);
               }
            }
        }

        public static void consultarmatricula(){
            int matricula;
            matricula=Integer.parseInt(JOptionPane.showInputDialog("Número da matrícula: "));
         for(int i=0; i<20; i++){
             if(matricula==matriculas[i]){
                 JOptionPane.showInputDialog(null, "Matrícula cadastrada: " + matriculas[i] +
                                                   "\nNome do aluno: " + nomes[i] +
                                                   "\nIdade: " + idades[i] +
                                                   "\nSexo: " + sexos[i]);
             }
         }
        }

        public static void idosos(){
            
        }

        public static void jovens(){

        }

        public static void media(){
            
        }

        public static void total(){
            
        }

        public static void mulheridade(){
            
        }
}

8 Respostas

Carreiro

Desculpe mas não achei o código e é bom o algoritmo para exercitar! rsrsrs

Segue um programinha exemplo:

Faça um programa que lê 10 nomes e salários e escreva na tela ao final da leitura a média de salários, o nome do funcionário com maior salário e o nome do funcionário com menor salário.

INICIO

String nome[10];
 Real salario[10];
 Real maiorSalario = 0;
 Real menorSalario = 99999; //menorSalario recebe um valor máximo para ser substituído pelo primeiro salário digitado
 Inteiro salarioTotal = 0;
 Inteiro i;
 Inteiro posicaoMaiorSalario = 0;
 Inteiro posicaoMenorSalario = 0;

 para i = 0 até 9 incremento 1 faca
      escreva ?Digite o nome do ? +(i+1)+ ?º funcionário?;
      leia nome[i];
      
      escreva ?Digite o salário do ? +(i+1)+ ?º funcionário?;
      leia salario[i];

      salarioTotal = salarioTotal + salario[i];
      
      se salario[i] > maiorSalario entao
           maiorSalario = salario[i]; //muda o valor se o salário agora informado for maior que o anterior
           posicaoMaiorSalario = i;  //armazena o posição do vetor para depois chamar o nome fim-se

      se salário[i] < menorSalario entao
           menorSalario = salario[i]; //muda o valor se o salário agora informado for menor que o anterior
           posicaoMenorSalario = i; //armazena o posição do vetor para depois chamar o nome
      fim-se
 fim-para

      salarioTotal = salarioTotal / 10;
      
      escreva ?A média salarial é R$ ? +salarioTotal;
      escreva ?O funcionário com maior salário é: ? 
                    + nome[posicaoMaiorSalario];
      escreva ?O funcionário com menor salário é: ? 
                    + nome[posicaoMenorSalario];

FIM

Espero poder ter ajudado!!
Bons estudos!!

paulomn

cara a media nao tem segredo, é so voce cria um int total e depois usar um while ou um for pra ir somando as idades nessa variavel, depois dividir por 20 ou por quantas tiverem, pra saber a quantidade é só colocar o metodo lenght() no array que ele ja te da o numero, ae é so dividir pra faze a media, total de homens e mulheres tambem é bem facil, só somar do mesmo jeito que o primeiro, porem no final voce soma os dois resultados, já pra fazer as comparações, eu gosto de usa for e while, mas tem outras maneiras tambem de faze, ae vai do gosto de cada um.

D

para saber os mais idosos, vc tem que ter uma idade limite, para assim comparar quem for maior que essa idade mostrar. Da mesma forma para os jovens…
a media, vc fas um for no vetor Idade e vai ate o tamanho dele somando, e divide pelo tamanho (use o metodo .length()).
o total de homens e mulheres, é simplesmente vc somar a quantidade de Alunos(use o nomes.length()).
o nome da mulher com menor idade, vc usa uma variavel, e faz um for até o tamanho que tem alunos, e sai comparando SE é mulher, e SE a idade é menor que a primeira…pq vc já coloca o nome da primeira mulher q encontrar na variavel…

deu pra entender???
tente ai e poste o código;;;;

vlw

Pinhorox

Eu consegui que ele mostrasse as 2 idades mais velhas, porém não sei como vou fazer ele mostrar os nomes das respectvas idades.
Não sei por que aquele menor está ali, mas sem ele o programa não funciona então eu deixei.

public static void idosos(){ int maior=0; int menor=200; int aux=0; for (int i = 0; i<idades.length; i++){ if (idades[i]>maior){ aux=maior; maior=idades[i]; } } for (int i=0; i<idades.length; i++){ if(idades[i]><menor){ menor=idades[i]; } JOptionPane.showMessageDialog(null, "As idades dos mais idosos são: " + maior + " e " + aux + " anos."); break; } }

Allan_Barcelos

Tu pode criar outras classes?

D

pronto, se vc inseriu certo, qndo vc encontrou essas duas idades “idosos”, quer dizer que pra exibir o nome é só ir no vetor nome e buscar com esse mesmo indice que vc axou a idade…
vlw

Pinhorox

Consegui!!!
Ficou assim:

import javax.swing.JOptionPane;

/**
 *
 * @author Pinhorox
 */
 public class Vetor {

   static String nomes[] = new String[5];
   static int idades[] = new int[5];
   static char sexos[] = new char[5];
   static int matriculas[] = new int[5];

     public static void main(String[] args){
        int op=0;
        do{
           op = Integer.parseInt(JOptionPane.showInputDialog("1 - Cadastro de alunos\n"+
                                                             "2 - Listagem de alunos\n"+
                                                             "3 - Consultar por nome\n"+
                                                             "4 - Consultar por matrícula\n"+
                                                             "5 - Nomes dos alunos mais idosos\n"+
                                                             "6 - Nomes dos alunos mais jovens\n"+
                                                             "7 - Média de idade\n"+
                                                             "8 - Total de homens e mulheres\n"+
                                                             "9 - Nome da mulher com menor idade\n"+
                                                             "10 - Sair"));
                      switch(op){
                        case 1: armazenar(); break;
                        case 2: listar(); break;
                        case 3: consultarnome(); break;
                        case 4: consultarmatricula(); break;
                        case 5: idosos(); break;
                        case 6: jovens(); break;
                        case 7: media(); break;
                        case 8: total(); break;
                        case 9: mulheridade(); break;
                      }

        }while(op!=10);
    }

        public static void armazenar(){
            for(int i=0; i<5; i++){
             nomes[i]=JOptionPane.showInputDialog("Digite o nome do aluno: ");
             matriculas[i]=Integer.parseInt(JOptionPane.showInputDialog("Digite a matrícula de " + nomes[i] + ": "));
             idades[i]=Integer.parseInt(JOptionPane.showInputDialog("Digite a idade de " + nomes[i] + ": "));
             sexos[i]=JOptionPane.showInputDialog("Digite o sexo de " + nomes[i]+ ": ").toUpperCase().charAt(0);

            }
        }

        public static void listar(){
            for(int i=0; i<5; i++){
                JOptionPane.showMessageDialog(null, "Nome do aluno: " + nomes[i] +
                                                    "\nMatrícula: " + matriculas[i] +
                                                    "\nIdade: " + idades[i] +
                                                    "\nSexo: " + sexos[i]);
            }
        }
        public static void consultarnome(){
            String nome;
            nome=JOptionPane.showInputDialog("Nome do aluno: ");
            for(int i=0; i<5; i++){
               if(nome.equals(nomes[i])){
                   JOptionPane.showMessageDialog(null, "Aluno cadastrado: " + nomes[i] +
                                                       "\nMatrícula: " + matriculas[i] +
                                                       "\nIdade: " + idades[i] +
                                                       "\nSexo: " + sexos[i]);
               }
            }
        }
        public static void consultarmatricula(){
            int matricula;
            matricula=Integer.parseInt(JOptionPane.showInputDialog("Número da matrícula: "));
         for(int i=0; i<5; i++){
             if(matricula==matriculas[i]){
                 JOptionPane.showMessageDialog(null, "Matrícula cadastrada: " + matriculas[i] +
                                                   "\nNome do aluno: " + nomes[i] +
                                                   "\nIdade: " + idades[i] +
                                                   "\nSexo: " + sexos[i]);
             }
         }
        }
        public static void idosos(){
            int idosos=0;
            String saida="";
            for(int i=0;i<idades.length; i++){
                if(idosos><idades[i]){
                    idosos=idades[i];
                    saida="O mais velho é: " + nomes[i] +
                          ", " + idosos + " anos.";
                }
            }
                              JOptionPane.showMessageDialog(null,saida);
        }
       
        public static void jovens(){
            int jovens=100;
            String saida="";
            for(int i=0;i<idades.length; i++){
                if(jovens>idades[i]){
                    jovens=idades[i];
                    saida="O mais jovem é: " + nomes[i] +
                          ", " + jovens + " anos.";
                }
            }
                              JOptionPane.showMessageDialog(null,saida);
       }
        public static void media(){
            float media=0;
            float total=0;
            for(int i=0; i<idades.length; i++){
                total+=idades[i];
                media=(total/idades.length*1f);
            }
                       JOptionPane.showMessageDialog(null, "Média é: " + media);

        }
        public static void total(){
            int h=0;
            int m=0;
            for(int i=0; i><idades.length; i++){
                if(sexos[i]=='F'){
                    m=m+1;
                    
                }else{
                    h=h+1;
                 
                }
            }
                            JOptionPane.showMessageDialog(null,"Total de: " + h +
                                                               " homens e " + m +
                                                               " mulheres");

        }
        public static void mulheridade(){
            int mulher=100;
            String saida="";
             for(int i=0;i<idades.length; i++){
               if(sexos[i]=='F'){
                if(mulher>idades[i]){
                    mulher=idades[i];
                    saida="O mais jovem é: " + nomes[i] +
                          ", " + mulher + " anos.";
                }
            }
           }
                              JOptionPane.showMessageDialog(null,saida);


        }
}
D

isso msm…
agora edite o titulo do tópico e coloque [RESOLVIDO]…
vlw

Criado 26 de junho de 2010
Ultima resposta 28 de jun. de 2010
Respostas 8
Participantes 5