Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 UNIVERSIDADE ESTÁCIO DE SÁ Pós-graduação em Big Data e Ciência de Dados Software de Python Eliezer de Souza Batista Junior Trabalho da disciplina Python Tutor: Prof. André Luiz Braga Rio de Janeiro - RJ 2020 http://portal.estacio.br/ 2 Pedido FAÇA UM PROGRAMA QUE PERMITA AO USUÁRIO A MANIPULAÇÃO DE UM ARQUIVO BINÁRIO PARA CRIAÇÃO DE UM PEQUENO CONTROLE DE VOTOS DE UMA ELEIÇÃO, UTILIZANDO OS SEGUINTES CAMPOS: COD_CANDIDATO, NOME, CARGO, REGIAO, NUM_VOTOS. EM SEGUIDA, O USUÁRIO DEVERÁ SER CAPAZ DE INSERIR NO ARQUIVO OS DADOS de CADA CANDIDATO e DEPOIS LISTAR TODOS CADIDATOS, VOTOS POR CANDIDATOS, TOTAL POR CANDIDATO e POR REGIAO. 2 DESENVOLVIMENTO 2.1 O CÓDIGO #!/usr/bin/env python # -*- coding: utf-8 -*- import pickle import os arquivo = open('file.db', 'wb') for i in range(10): pickle.dump(i, arquivo) arquivo.close( ) print ('Arquivo criado com sucesso') db = {} def mostrar_menu(): os.system('cls') print('Existe(m) '+ str(len(db)) + ' candidatos registrados\n\n') print('Escolha a opção') print('1 - Incluir candidato') print('2 - Consultar candidato') print('3 - Modificar candidato') print('4 - Excluir candidato') print('5 - Listar todos os dados dos candidatos') print('6 - Listar votos por candidatos') print('7 - Listar votos por região') print('8 - Sair') 3 return int(input('')) def existe_registro(codigo): duplicated = False if codigo in db.keys(): duplicated = True return duplicated def inserir(): candidato = {} codigo = input('Digite o código do candidato\n') if existe_registro(codigo): print('Já existe um candidato cadastrado com este código, digite outro') frase = input('pressione para voltar ao menu\n') principal() else: candidato['cod_candidato'] = codigo candidato['nome'] = input('Digite o nome do candidato\n') candidato['cargo'] = input('Digite o cargo do candidato\n') candidato['regiao'] = input('Digite a região do candidato\n') candidato['num_votos'] = int(input('Digite a quantidade de votos do candidato\n')) db[codigo] = candidato principal() def mostrar(codigo): print('Código: ' + db[codigo]['cod_candidato']) print('Nome: ' + db[codigo]['nome']) print('Cargo: ' + db[codigo]['cargo']) print('Região: ' + db[codigo]['regiao']) print('Número de votos: ' + str(db[codigo]['num_votos'])) def mostrarVotosCandidatos(codigo): print('Nome: ' + db[codigo]['nome']) print('Número de votos: ' + str(db[codigo]['num_votos'])) def mostrarVotosRegiao(codigo): print('Regiao: ' + db[codigo]['regiao']) print('Número de votos: ' + str(db[codigo]['num_votos'])) def listar(): codigo = input('Digite o codigo do candidato\n') if existe_registro(codigo): mostrar(codigo) frase = input('pressione para voltar ao menu\n') 4 principal() else: print('Registro não encontrado') frase = input('pressione para voltar ao menu\n') principal() def modificar(): candidato = {} codigo = input('Digite o código do candidato\n') if existe_registro(codigo): candidato['codigo'] = codigo candidato['nome'] = input('Digite o nome do candidato\n') candidato['cargo'] = input('Digite o cargo do candidato\n') candidato['regiao'] = input('Digite a região do candidato\n') candidato['num_votos'] = int(input('Digite a quantidade de votos\n')) db[codigo] = candidato principal() else: print('Registro não encontrado') frase = input('pressione para voltar ao menu\n') principal() def remover(): codigo = input('Digite o código do candidato\n') if existe_registro(codigo): del(db[codigo]) print('Registro apagado com sucesso') frase = input('pressione para voltar ao menu\n') principal() else: print('Registro não encontrado') trash = input('pressione para voltar ao menu\n') principal() def list(): if len(db) > 0: for codigo in db.keys(): mostrar(codigo) print('-'*10) frase = input('pressione para voltar ao menu\n') principal() else: print('Não há registros para serem exibidos') frase = input('pressione para voltar ao menu\n') principal() 5 def votosCandidato(): if len(db) > 0: for codigo in db.keys(): mostrarVotosCandidatos(codigo) print('-'*10) frase = input('pressione para voltar ao menu\n') principal() else: print('Não há registros para serem exibidos') frase = input('pressione para voltar ao menu\n') principal() def votosRegiao(): regioes = dict() for candidato in db.values(): regioes[candidato['regiao']] = regioes.get(candidato['regiao'], 0) + candidato['num_votos'] print('Total de votos por região:' + str(regioes)) input('pressione para voltar ao menu\n') principal() def principal(): option = mostrar_menu() if(option == 1): inserir() elif(option == 2): listar() elif(option == 3): modificar() elif(option == 4): remover() elif(option == 5): list() elif(option == 6): votosCandidato() elif(option == 7): votosRegiao() elif(option == 8): print('Saindo do programa') exit() else: print('Instrução não reconhecida, tente outra opção') principal() principal() 6 2.2 O CENÁRIO O cenário do teste foi realizado no Sistema Operacional Linux MINT 19.1. O software utilizado para rodar o código foi o python3. 3 RESULTADO O software rodou todas as configurações solicitadas, conforme se pode ver nas telas abaixo: - Inserção de código, nome, cargo, região e número de votos: - Listar votos por região: - Listar votos por candidato 7 - Listar todos os candidatos com seus dados
Compartilhar