Trabalho Prático 1: Eleição Algorítmica
Data de Entrega (Disponibilização): 10 de outubro de 2018 (são 4 semanas de prazo, não haverá adiamento, organize-se!)
Os alunos devem informar por e-mail a URL do trabalho, usando o subject "TP-1 ALGORITMOS II 2018-2"
OBS.: O trabalho pode ser feito em dupla.
Neste trabalho você vai fazer um sistema que gerencia a votação durante as eleições. O sistema mantém uma lista de candidatos. Cada candidato aparece na lista com nome, número e partido. Você deve fazer o sistema que permite a construção e manutenção da lista de candidatos, permitindo inserir candidatos, remover candidatos, imprimir a lista. Veja que também é necessário implementar as operações para inicializar a lista e checar se está vazia.
Durante o dia os eleitores vão formar uma fila, e você vai registrar todos aqueles que votaram. Faça o sistema para manter a fila com todas as operações vistas em aula. Ao final do dia a fila tem todos os eleitores que por ali passaram. Cada eleitor informa na urna eletrônica seu voto. Ao final do dia a urna eletrônica contabiliza quantos votos cada candidato teve, e o número total de votos.
O mesário mantém os comprovantes de votação. Cada eleitor que retorna da urna recebe um comprovante; o mesário mantém também pilha com os cópias dos comprovantes dos eleitores que foram votando. Ao final do dia esta pilha é impressa, a partir do topo. O número de votantes também é conferido com o número total de votos.
Para executar o sistema, crie uma lista com seus candidatos ideais. Encha a fila de pessoas conhecidas, mostre o resultado da eleição (quantos votos cada candidato teve e quem ganhou) bem como o número total de votos.
Para as implementações dos Tipos Abstratos de Dados, se a fila for em vetor, a pilha deve ser apontadores ou vice-versa. Cada dupla pode escolher a implementação que julgar mais conveniente. O programa deve ter opções para imprimir a lista, fila ou pilha a qualquer momento.
Execute testes exaustivos, mostrando que seu programa funciona nas mais diversas situações (ex. pilha vazia, fila cheia, etc etc).
Importante: capriche na legibilidade e organização.
Prof. Elias P. Duarte Jr.     Departamento de Informática     UFPR