Duvidas com um metodo

2 respostas
migtrooper
Boa tarde gente, Estou fazendo um exercicio la pro curso e estou com uma duvida.Ele pede para fazer um censo de habitantes de uma ilha e pede um relatorio com serie de coisas entao, no ultimo que pede um relatorio de habitantes por escolaridade, eu estou preso, alguem poderia me ajudar??? essa eh minha classe censo:
public class Censo {
	ArrayList <Habitante> habitantes = new ArrayList<Habitante>();

	public  void incluirHabitante(Habitante h){
		habitantes.add(h);
	}

	public int getMaiorIdade(){
		int maiorIdade=0;
		for(Habitante h : habitantes){
			if(maiorIdade<h.getIdade()){
				maiorIdade=h.getIdade();
			}

		}
		return maiorIdade;
	}

	public int getMenorIdade(){
		int menorIdade=0;
		boolean n1 = true;
		for(Habitante h : habitantes){
			if (n1) {
				menorIdade=h.getIdade();
				n1 = false;
			}


			if(menorIdade>h.getIdade()){
				menorIdade=h.getIdade();
			}
		}
		return menorIdade;
	}

	public double getIdadeMedia(){
		double mediaIdade=0;
		for(Habitante h: habitantes){
			mediaIdade+=h.getIdade();
		}
		mediaIdade/=habitantes.size();
		return mediaIdade;
	}

	public double getMaiorSalario(){
		double maiorSalario=0;
		for(Habitante h: habitantes){
			if(maiorSalario<h.getSalario()){
				maiorSalario=h.getSalario();
			}

		}
		return maiorSalario;
	}

	public double getMenorSalario(){
		boolean n1 = true;
		double menorSalario=0;
		for(Habitante h: habitantes){
			if(n1){
				menorSalario=h.getSalario();
				n1=false;
			}
			if(menorSalario>h.getSalario()){
				menorSalario=h.getSalario();
			}
		}
		return menorSalario;
	}

	public double getMediaSalarial(){
		double mediaSalarial=0;
		for(Habitante h: habitantes){
			mediaSalarial+=h.getSalario();
		}
		mediaSalarial/=habitantes.size();
		return mediaSalarial;
	}

	public int numHabitantesEscolaridade(Escolaridade escolaridade){
		int cont1=0, cont2=0, cont3=0, cont4=0;
		for(Habitante hab : habitantes){
			if(hab.getEscolaridade()==Escolaridade.ANALFABETO){
				cont1++;
				
			}else if(hab.getEscolaridade()==Escolaridade.FUNDAMENTAL){
				cont2++;
				
			}else if(hab.getEscolaridade()==Escolaridade.ENSINO_MEDIO){
				cont3++;
				
			}else if(hab.getEscolaridade()==Escolaridade.SUPERIOR){
				cont4++;
				
			}
		}
		return 0;
	}
}
abaixo a classe habitante:
public class Habitante {

	private String nome;
	private int idade;
	private double salario;
	Escolaridade escolaridade;
	ArrayList<Habitante> habitantes = new ArrayList<Habitante>();

	public Escolaridade getEscolaridade() {
		return escolaridade;
	}

	public void setEscolaridade(Escolaridade escolaridade) {
		this.escolaridade = escolaridade;
	}

	public int getIdade() {
		return idade;
	}

	public void setIdade(int idade) {
		this.idade = idade;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public double getSalario() {
		return salario;
	}

	public void setSalario(double salario) {
		this.salario = salario;
	}
}
e por fim a classe main:
public class Main {

	public static void main(String[] args) {
		
		Censo censo=new Censo();
		int op=-1;
		while(op!=0){
			System.out.println("Digite 99 para incluir os habitantes: ");
			System.out.println("Digite 1 para mostrar na tela a idade mais alta: ");
			System.out.println("Digite 2 para mostrar na tela a idade mais baixa: ");
			System.out.println("Digite 3 para mostrar na tela a media de idade:  ");
			System.out.println("Digite 4 para mostrar na tela o maior salario: ");
			System.out.println("Digite 5 para mostrar na tela o menor salario: ");
			System.out.println("Digite 6 para mostrar na tela a media salarial: ");
			System.out.println("Digite 7 para mostrar na tela o numero de habitantes por escolaridade: ");
			System.out.println("Digite 0 para sair do programa!");
			op=Console.lerInteiro();
			switch (op){
			case 99:
				int qtde=Console.lerInteiro("Digite a quantidade de habitantes");
					for(int i=0;i<qtde;i++){
					Habitante h = new Habitante();
					String nome=Console.lerTexto("Digite o nome: ");
					h.setNome(nome);
					int idade=Console.lerInteiro("Digite a idade: ");
					h.setIdade(idade);
					double salario=Console.lerDouble("Digite o salario: ");
					h.setSalario(salario);
					int opcao=Console.lerInteiro("ESCOLARIDADE: \n 0 - Analfabeto \n 1 - FUndamental \n 2 - Medio \n 3 - Superior");
					switch(opcao){
					case 0:
						h.setEscolaridade(Escolaridade.ANALFABETO);
					
						break;
					case 1:
						h.setEscolaridade(Escolaridade.FUNDAMENTAL);
						
						break;
					case 2:
						h.setEscolaridade(Escolaridade.ENSINO_MEDIO);
					
						break;
					case 3:
						h.setEscolaridade(Escolaridade.SUPERIOR);
						
						break;
					default: throw new RuntimeException();
					}
					censo.incluirHabitante(h);
				}
				
				break;

			case 1:
				System.out.println("A maior idade é: "+censo.getMaiorIdade());
				break;
			case 2:
				System.out.println("A menor idade é: "+censo.getMenorIdade());
				break;
			case 3:
				System.out.println("A media de idade é: "+censo.getIdadeMedia());
				break;
			case 4:
				System.out.println("O maior salario é: "+censo.getMaiorSalario());
				break;
			case 5:
				System.out.println("O menor salario é: "+censo.getMenorSalario());
				break;
			case 6:
				System.out.println("A media salarial é de : "+censo.getMediaSalarial());
				break;
			case 7:
				System.out.println("Para a escolaridade 0, temos "+censo.numHabitantesEscolaridade(Escolaridade.ANALFABETO)+" habitantes");
				System.out.println("Para a escolaridade 1, temos "+censo.numHabitantesEscolaridade(Escolaridade.FUNDAMENTAL)+" habitantes");
				System.out.println("Para a escolaridade 2, temos "+censo.numHabitantesEscolaridade(Escolaridade.ENSINO_MEDIO)+" habitantes");
				System.out.println("Para a escolaridade 3, temos "+censo.numHabitantesEscolaridade(Escolaridade.SUPERIOR)+" habitantes");
				break;
			case 0:
				System.out.println("Obrigado, ate a proxima!");
				break;
			default: throw new RuntimeException();
			}
		}
	}
}

agradeço desde ja!!!

2 Respostas

Pedrosa

Qual sua dúvida exatamente?

migtrooper

oi desculpa naum expleiquei direito ne???

seria com esse ultimo metodo ai o numero de habitantes por escolaridade da classe censo… eu nao estou conseguindo fazer ele retornar o q deveria…
tipo para a escolaridade 1 existem tantos habitantes entendeu??? seria isso…
nao estou conseguindo vizualizar…
c vc puder me ajudar agradeço…

Criado 10 de setembro de 2007
Ultima resposta 10 de set. de 2007
Respostas 2
Participantes 2