Bom dia, preciso de uma ajuda para resolver um exercício, sou novo em programação e meu professor me passou a seguinte questão
Faça um algoritmo que leia dez conjuntos de três valores, o primeiro representando o nome do
aluno o segundo representando a sua altura em centímetros e o terceiro representando o sexo M ou
F.
Mostre o aluno mais alto da turma, seu nome e altura , independente do sexo;
Mostre o aluno mais baixo da turma, seu nome e altura, independente do sexo;
Mostre o aluno do sexo masculino mais alto e seu nome;
Mostre o aluno do sexo masculino mais baixo e seu nome;
Mostre a aluna do sexo feminino mais alta e seu nome;
Mostre a aluna do sexo feminino mais baixa e seu nome;
import javax.swing.JOptionPane;
public class prova {
publicstaticvoidmain(String[]args){intaltura[]=newint[2];Stringnome[]=newString[2];Stringsexo[]=newString[2];intmaior=0,menor=299,maiorM=0;intmenorM=299,maiorF=0,menorF=299;Stringaux;for(inti=0;i<2;i++){aux=JOptionPane.showInputDialog("Nome do "+(i+1)+"º Aluno: ");nome[i]=aux;aux=JOptionPane.showInputDialog("Altura do "+(i+1)+"º Aluno: ");altura[i]=Integer.parseInt(aux);aux=JOptionPane.showInputDialog("Sexo do "+(i+1)+"º Aluno (M/F): ");sexo[i]=aux;}//aluno mais autofor(inti=0;i<2;i++){if(altura[i]>maior){maior=altura[i];}}System.out.println("Aluno mais alto é: "+"Com: "+maior);//fim aluno mais alto//aluno mais baixofor(inti=0;i<2;i++){if(altura[i]<menor){menor=altura[i];}}System.out.println("Aluno mais Baixo é: "+"Com: "+menor);//fim aluno mais baixo}}
importjavax.swing.JOptionPane;publicclassExemplo{privateclassAluno{intaltura;Stringnome;charsexo;}publicstaticvoidmain(String[]args)throwsException{Exemploprograma=newExemplo();programa.executar();}publicvoidexecutar(){Aluno[]alunos=cadastrar();Aluno[]meninos=filtrarPorSexo(alunos,'M');Aluno[]meninas=filtrarPorSexo(alunos,'F');AlunoalunoMaisAlto=maiorAltura(alunos);AlunoalunoMaisBaixo=menorAltura(alunos);AlunomeninoMaisAlto=maiorAltura(meninos);AlunomeninoMaisBaixo=menorAltura(meninos);AlunomeninaMaisAlta=maiorAltura(meninas);AlunomeninaMaisBaixa=menorAltura(meninas);mostrar("Aluno mais baixo é ",alunoMaisAlto);mostrar("Aluno mais baixo é ",alunoMaisBaixo);mostrar("Menino mais alto é ",meninoMaisAlto);mostrar("Menino mais baixo é ",meninoMaisBaixo);mostrar("Menina mais alta é ",meninaMaisAlta);mostrar("Menina mais baixa é ",meninaMaisBaixa);}privateAluno[]cadastrar(){intquantidade=Integer.parseInt(JOptionPane.showInputDialog("Quantos alunos deseja cadastrar? "));Aluno[]alunos=newAluno[quantidade];for(inti=0;i<quantidade;i++){Alunoaluno=newAluno();aluno.nome=JOptionPane.showInputDialog("Nome do "+(i+1)+"º Aluno: ");aluno.altura=Integer.parseInt(JOptionPane.showInputDialog("Altura do "+(i+1)+"º Aluno: "));aluno.sexo=JOptionPane.showInputDialog("Sexo do "+(i+1)+"º Aluno (M/F): ").toUpperCase().charAt(0);alunos[i]=aluno;}returnalunos;}privateAluno[]filtrarPorSexo(Aluno[]alunos,charsexo){intquantidade=0;for(Alunoaluno:alunos){if(aluno.sexo==sexo){quantidade++;}}Aluno[]filtrados=newAluno[quantidade];intposicao=0;for(Alunoaluno:alunos){if(aluno.sexo==sexo){filtrados[posicao]=aluno;posicao++;}}returnfiltrados;}privateAlunomaiorAltura(Aluno[]alunos){Alunoaluno=alunos[0];for(inti=1;i<alunos.length;i++){if(alunos[i].altura>aluno.altura){aluno=alunos[i];}}returnaluno;}privateAlunomenorAltura(Aluno[]alunos){Alunoaluno=alunos[0];for(inti=1;i<alunos.length;i++){if(alunos[i].altura<aluno.altura){aluno=alunos[i];}}returnaluno;}privatevoidmostrar(Stringmensagem,Alunoaluno){JOptionPane.showMessageDialog(null,mensagem+aluno.nome+" com "+aluno.altura+"cm");}}
M
marcelobatista7
vlw amigo pela ajuda
C
Cicero_Janio
esta com erro
V
Villagram
Eu dei uma olhada aqui e o código do nosso amigo @staroski está perfeito, porém ele não previu o erro de BIOS (quem é da área sabe)…kkkkkkkkkk…provavelmente estavam digitando a altura com vírgula e o número solicitado é um inteiro, eu dei uma modificada no código para a maneira q eu gosto e mudei a altura para float, prevendo que o cidadão possa acabar digitando a vírgula.
Bom aprendizado para vocês:
{
publicclassExemplo{privateList<Aluno>alunos;privateclassAlunoimplementsSerializable{privatestaticfinallongserialVersionUID=6932658991816229114L;privatefloataltura;privateStringnome;privatecharsexo;publicAluno(){}publicfloatgetAltura(){returnaltura;}publicvoidsetAltura(floataltura){this.altura=altura;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicchargetSexo(){returnsexo;}publicvoidsetSexo(charsexo){this.sexo=sexo;}}publicstaticvoidmain(String[]args)throwsException{Exemploprograma=newExemplo();programa.executar();}publicExemplo(){this.alunos=newArrayList();}publicvoidexecutar(){cadastrar();List<Aluno>meninos=filtrarPorSexo('M');List<Aluno>meninas=filtrarPorSexo('F');AlunoalunoMaisAlto=maiorAltura(alunos);AlunoalunoMaisBaixo=menorAltura(alunos);AlunomeninoMaisAlto=maiorAltura(meninos);AlunomeninoMaisBaixo=menorAltura(meninos);AlunomeninaMaisAlta=maiorAltura(meninas);AlunomeninaMaisBaixa=menorAltura(meninas);mostrar("Aluno mais alto é ",alunoMaisAlto);mostrar("Aluno mais baixo é ",alunoMaisBaixo);mostrar("Menino mais alto é ",meninoMaisAlto);mostrar("Menino mais baixo é ",meninoMaisBaixo);mostrar("Menina mais alta é ",meninaMaisAlta);mostrar("Menina mais baixa é ",meninaMaisBaixa);}privateList<Aluno>cadastrar(){intquantidade=Integer.parseInt(JOptionPane.showInputDialog("Quantos alunos deseja cadastrar? "));for(inti=0;i<quantidade;i++){Alunoaluno=newAluno();aluno.nome=JOptionPane.showInputDialog("Nome do "+(i+1)+"º Aluno: ");Stringalt=JOptionPane.showInputDialog("Altura do "+(i+1)+"º Aluno: ");aluno.altura=Float.parseFloat(alt.replaceAll(",","."));aluno.sexo=JOptionPane.showInputDialog("Sexo do "+(i+1)+"º Aluno (M/F): ").toUpperCase().charAt(0);alunos.add(aluno);}returnalunos;}privateList<Aluno>filtrarPorSexo(charsexo){returnalunos.stream().filter(al->Chars.compare(al.getSexo(),sexo)==0).collect(Collectors.toList());}privateAlunomaiorAltura(List<Aluno>alunos){returnalunos.stream().sorted(Comparator.comparing(Aluno::getAltura).reversed()).findFirst().get();}privateAlunomenorAltura(List<Aluno>alunos){returnalunos.stream().sorted(Comparator.comparing(Aluno::getAltura)).findFirst().get();}privatevoidmostrar(Stringmensagem,Alunoaluno){JOptionPane.showMessageDialog(null,mensagem+aluno.getNome()+" com "+aluno.getAltura()+"cm");}}