import javax.swing.JOptionPane;
class Habitante{
String nome, cor, cor_cab, nacionalidade, naturalidade, c_identidade, sexo;
private int idade, filhos, cpf;
private float salario, altura, peso, endereço, telefone;
private public Habitante(String n,int i,float s){
nome = n;
idade = (i>0)&&(i<150)? i:1;
salario = s;
}
public void exibe(){
System.out.println(nome+ ?tem ?+idade+? anos e salario de ? + salario);
}
public void setNome ( String n ) { this.nome = n; }
public void setIdade( int i ) { this.idade = i; }
public void setSalario ( float s ) { this.salario = s; }
public String getNome ( ) { return nome; }
public int getIdade ( ) { return idade; }
public float getSalario ( ) { return salario; }
public Habitante(String cr,String cc, String nac, String nat, String ci, String sx){
cor=cr;
cor_cab=cc;
nacionalidade=nac;
naturalidade=nat;
c_identidade=ci;
sexo=sx;
}
public Habitante(int f, int c){
filhos=f;
cpf=c;
}
public Habitante(float al, float pe, float end, float tel){
altura=al;
peso=pe;
endereço=end;
telefone=tel;
}
}
class listaHabitantes{
public Habitante h;
listaHabitantes prox;
public listaHabitantes(){
prox = null;
}
}
class Cidade {
String nome, regiao, estado, pais, prefeito;
int num_habitantes;
public Cidade(String re, String es, String pa, String pr){
regiao=re;
estado=es;
pais=pa;
prefeito=pr;
}
public Cidade(int nb){
num_habitantes=nb;
}
listaHabitantes habitantes;
void insereHabitante(Habitante h){
listaHabitantes aux;
aux = habitantes;
if (aux != null){
while(aux.prox != null)
aux = aux.prox;
aux.prox = new listaHabitantes();
aux.prox.h = h;
}else{
habitantes = new listaHabitantes();
habitantes.h = h;
}
}
public Cidade(String n){
nome = n;
}
float mediaSalario(){
float media = 0;
int cont = 0;
listaHabitantes aux;
aux = habitantes;
while(aux != null){
cont++;
media += aux.h.getSalario;
aux = aux.prox;
}
if(cont > 0)
media /= cont;
return media;
}
float maiorSalario(){
float maiorSalario = 0;
listaHabitantes aux;
aux = habitantes;
while(aux != null){
if(maiorSalario < aux.h.getSalario)
maiorSalario = aux.h.getSalario;
aux = aux.prox;
}
return maiorSalario;
}
}
public class Exercicio{
public static void main(String[] args){
Cidade c = null;
Habitante h;
String opcao = “1”;
while(opcao != “S”){
opcao = JOptionPane.showInputDialog(“Escolha uma opção”
+"\n================="
+"\n1 - Cadastrar Cidade"
+"\n2 - Cadastrar Habitante"
+"\n3 - Média Salários Cidade"
+"\n4 - Maior Salário da Cidade"
+"\n5 - Sair");
switch(opcao.charAt(0)){
case ‘1’ :
c = new Cidade(JOptionPane.showInputDialog(“Entre com o nome da cidade”));
break;
case '2' :
h = new Habitante(JOptionPane.showInputDialog("Entre com o nome do Habitante"+h. setNome())
,Integer.parseInt(JOptionPane.showInputDialog("Entre com a idade do Habitante"+h.setIdade()))
,Float.parseFloat(JOptionPane.showInputDialog("Entre com o salario do Habitante"+h.setSalario())));
c.insereHabitante(h);
break;
case '3' : System.out.println("Media Salario:"+c.mediaSalario());
break;
case '4' : System.out.println("Maior Salario:"+c.maiorSalario());
break;
case '5' : System.out.println("Fim do Programa!!!");
break;
default: System.out.println(" Opção Inválida! Escolha Uma Opção de 1 a 5 ");
}
}
}
}