FCUL - Trabalho de Programação 1ª Parte 2009/2010

by ambarreira 25. outubro 2009 00:00

Eleições e Sistemas de Votação
Num ano em que tanto se tem ouvido falar de eleições, o trabalho de programação que vos é proposto em IP endereça um problema relacionado com eleições e sistemas de votação.  
 
A realização de uma eleição pressupõe a escolha de um sistema de votação, ou seja, de um sistema que rege a forma como uma população de votantes pode escolher entre um conjunto de opções e define como é calculado o resultado da votação.  Os sistemas de votação  são  úteis noutras situações, por exemplo, quando se pretende atribuir os vários prémios de um concurso ou se pretende ordenar os candidatos a um lugar.  
 
A primeira parte do trabalho, para além de vos obrigar a pôr em prática os conhecimentos entretanto adquiridos, vai servir para se familiarizarem com este tema. 
Em que consiste o trabalho, afinal? A vossa tarefa é desenvolver um programa Java que implemente parte de um método cumulativo de votação por nota num cenário em que a escolha se faz entre 3 opções.
 
O sistema de votação é definido da seguinte forma:
•  cada votante atribui uma pontuação numérica entre 0 e 100 a cada opção;
•  a soma das pontuações atribuídas por cada votante não pode exceder 100;
•  a ordenação das opções é determinada pela pontuação acumulada (fica à frente quem acumula mais pontos)
•  o desempate é feito utilizando a média das pontuações quando se considera apenas as pontuações positivas (i.e., não entram para esta médias as pontuações nulas)

O programa deve começar por obter o número de votantes e recolher os seus votos, considerando que os votos de cada votante são 3 inteiros (possivelmente na mesma linha apenas separados por espaços).
Depois, para cada opção, deve apresentar a pontuação recolhida e a média das pontuações. 
Eis  uma possível interacção com o vosso programa (a itálico apresenta-se o texto introduzido pelo utilizador):  
 
    Número de eleitores, sff: 3
    Voto eleitor 1 [A B C]: 25 0 0 
    Voto eleitor 2 [A B C]: 5 10 5
    Voto eleitor 3 [A B C]: 25 0 5
 
    Resultados: 
    Opção A: 55 18.3
    Opção B: 10 10.0
    Opção C: 10 5.0
 
Exemplo de outra interacção, desta vez envolvendo a repetição da leitura de um voto:
 
    Número de eleitores, sff: 5
    Voto eleitor 1 [A B C]: 1 0 0 
    Voto eleitor 2 [A B C]: 5 100 5
    Voto inválido! Insira de novo. 
    Voto eleitor 2 [A B C]: 5 10 5 
    Voto eleitor 3 [A B C]: 1 0 5 
    Voto eleitor 4 [A B C]: 1 0 5 
    Voto eleitor 5 [A B C]: 1 0 5 
 
    Resultados: 
    Opção A: 9 1.8
    Opção B: 10 10.0
    Opção C: 20 5.0


Segue 4 resoluções numa unica aplicação para este problema, é só fazer download e correr (atenção aos plágios, recurso para ajuda e não para uso):

t1.java (6,74 kb)

Divirtam-se, boa programação,
AlexSmile

 

Tags: ,

Java | Tecnologia

Powered by BlogEngine.NET 1.5.0.7
Theme by Mads Kristensen