UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO
DEPARTAMENTO DE INFORMÁTICA
ENGENHARIA DE COMPUTAÇÃO
PRIMEIRO TRABALHO DE PROGRAMAÇÃO II
07/10/2010
A prefeitura da cidade de Miracema do Norte contratou sua empresa de software para
desenvolver uma urna eletrônica para ser utilizada nas eleições para vereador da cidade. A
urna eletrônica deve ser capaz de:
1 – Cadastrar até 100 candidatos.
2 – Excluir um candidato (cuja candidatura foi cassada pela lei “ficha limpa”) dado seu número.
3 – Listar os candidatos cadastrados ordenados em ordem alfabética.
4 – Realizar o processo de votação. A votação deve ser similar à realidade, ou seja, o eleitor
deve digitar o número do seu candidato e, em seguida o nome do candidato deve aparecer na
tela. O eleitor deve então confirmar ou corrigir o voto. Se o eleitor confirmar um voto num
candidato que não existe, o voto deve ser anulado. Também deve existir a opção de voto em
branco.
5 – Exibir o resultado da votação. O resultado deve ser a listagem dos dados dos candidatos
mais suas porcentagens de votos válidos ordenados pelo número de votos em ordem
decrescente, ou seja, do mais votado para o menos votado.
Exemplo de resultado:
Zezinho
Número 1111
Votos: 10
50%
Uguinho
Número 2222
Votos: 7
35%
Luisinho
Número 333
Votos: 3
15%
Votos Brancos e Nulos: 5
Total de votos: 25
Cada grupo deve escrever um programa em linguagem C que realize as funcionalidades
exigidas para a urna eletrônica. Para isso, o programa desenvolvido deve conter:
a) Um menu textual que apresente as funcionalidades do programa (Cadastrar candidato,
Excluir candidato, Listar candidatos, Iniciar votação e Exibir resultado).
b) Um TAD tCandidato cuja estrutura seja composta pelo nome do candidato, seu número e
número de votos.
c) Um TAD tVetorCandidato cuja estrutura seja composta por um vetor de tCandidatos e um
inteiro indicando o número de elementos no vetor.
d) Uma operação de ordenação do TAD tVetorCandidato para ordená-lo em ordem alfabética e
outra para ordená-lo em ordem decrescente de número de votos.
e) Todas as operações sobre os TAD’s (leitura dos dados dos candidatos pelo teclado,
comparação entre nomes e número de votos dos candidatos, acréscimo no número de votos
de um candidato, ordenação dos vetores de candidatos, etc.) devem ser modurarizadas, ou
seja, devem utilizar as operações definidas pelo respectivo TAD.
Observações importantes:
1 – O trabalho deverá ser feito em grupo de três.
2 – O trabalho que não estiver compilando receberá nota zero.
3 – Trabalhos iguais receberão nota zero.
4 – Os programas serão avaliados pela sua correção durante a execução e também pelo estilo
de programação. Serão observados particularmente se os programas possuem os comentários
apropriados, se usam nomes significativos para as variáveis, se o código está identado
corretamente.
5 – O programa deve ser compilado e executado na plataforma Linux.
Entrega:
1 – O arquivo com o código do programa deve se chamar trab01.c.
2 – O arquivo com o código (não enviar o executável) deve ser enviado por email para
[email protected] até o dia 03/11 às 23:59 com o título trab01Aluno1Aluno2Aluno3.
Apenas um integrante do grupo deve enviar o arquivo.
3 – No dia 04/11 cada grupo vai apresentar o trabalho para o professor em uma máquina do
LabGrad.
Download

universidade federal do espírito santo departamento de informática