Não tenho conhecimentos em Java e preciso implementar o seguinte
Pede-se:
a) O usuário somente poderá digitar A, B, C, D, E ou F.
b) Ao sair do sistema (opção F) deverá ser exibido o seguinte relatório:
? Nomes, QTD de votos e percentuais de votação (excluindo-se os votos nulos) das candidatas, ordenadas por QTD de votos (Utilizar uma técnica de ordenação ex. BUBLE SORTE)
? QTD de votos nulos
? QTD de votos válidos (excluindo-se os nulos)
? Diferença, em percentual, entre a primeira e a últimas colocadas
? Nome, QTD de votos e percentual da candidata com menor número de votos
A tela incial seria essa abaixo:
BELAS DA UGF
A ? Chenia Cabeção
B ? Mercia Toca-Fogo
C- Gilda Cabo de Guarda-Chuva
D- Samanta Raio Laiser
E- Nulo
F ? Sair
Opção:
Preciso mesmo é a implentação pois a tela consegui montar e alguns recursos, se alguem puder ?
private static void imprimeMenu(){
System.out.println("\n********************");
System.out.println("* BELAS DA UGF *");
System.out.println("********************\n");
System.out.println("A - Chenia Cabeção");
System.out.println("B - Mercia Toca-Fogo");
System.out.println("C - Gilda Cabo de Guarda-Chuva");
System.out.println("D - Samantha Raio Laser");
System.out.println("E - Nulo");
System.out.println("F - Sair\n");
System.out.print("Opção selecionada: ");
}
public static void main(String args[]){
//>>Inicialização das variáveis
int contador = 0, numeroVotos=0;
int totalVotos[] = new int[5];
char opcoesDisponiveis[] = {'A','B','C','D','E'};
String opcaoSelecionada = "";
Scanner userInput = new Scanner(System.in);
//>>Zera os votos antes do início da execução
//>>Estão sendo consideradas as posições 0 a 4 como
//>>os votos para as opções A a E respectivamente
for (contador=0;contador<5;contador++){
totalVotos[contador] = 0;
}
//>>Inicia a contagem dos votos
while(!opcaoSelecionada.equals("F")){
//>>Exibe as opções
imprimeMenu();
opcaoSelecionada = userInput.next();
//>>Valida a opção selecionada pelo usuário
while (opcaoSelecionada.length()!=1 || "ABCDEF".indexOf(opcaoSelecionada)<0){
System.out.println("Opção inválida. Informe uma opção entre A e F.\n");
imprimeMenu();
opcaoSelecionada = userInput.next();
}
//>>Contabiliza o voto de acordo com a opção selecionada
switch(opcaoSelecionada.charAt(0)){
case 'A': totalVotos[0]++;
numeroVotos++;
break;
case 'B': totalVotos[1]++;
numeroVotos++;
break;
case 'C': totalVotos[2]++;
numeroVotos++;
break;
case 'D': totalVotos[3]++;
numeroVotos++;
break;
case 'E': totalVotos[4]++;
numeroVotos++;
break;
}
}
//>>Pega o total de votos nulos
int votosNulos = totalVotos[4];
//>>Ordena o array utilizando Bubble Sort
//>>O segundo array é ordenado junto com o primeiro para que
//>>As opções fiquem na ordem dos votos;
int contador2 = 0;
int tmpInt = 0;
char tmpChar = '0';
for (contador=0;contador<totalVotos.length-1;contador++){
for (contador2=0; contador<totalVotos.length-contador-1;contador2++){
if (totalVotos[contador2]>totalVotos[contador2+1]){
tmpInt = totalVotos[contador];
tmpChar = opcoesDisponiveis[contador];
totalVotos[contador] = totalVotos[contador2];
opcoesDisponiveis[contador] = opcoesDisponiveis[contador2];
totalVotos[contador2] = tmpInt;
opcoesDisponiveis[contador2] = tmpChar;
}
}
}
//>>Exibe os votos
for (contador=0;contador<5;contador++){
System.out.printf("Total de votos %d: %d\n", contador, totalVotos[contador]);
}
}