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.