Baixe o app para aproveitar ainda mais
Prévia do material em texto
2o trabalho de Computação 2 Turma: ET1/ER1 Professora: Bianca Ruivo Data de entrega: 30/11/2011 de 8h às 10h Os temas relativos ao trabalho estão descritos abaixo. Cada grupo (de, no máximo, 5 alunos) deverá escolher um tema e desenvolver um programa orientado a objetos (obrigatoriamente) e utilizando o módulo Tkinter do Python (e, também, outros módulos quando necessário) para implementar o tema escolhido. Como há mais grupos que temas, o mesmo tema poderá ser usado por mais de 1 grupo. No entanto, cada tema deverá ser escolhido no mínimo 1 vez e no máximo 2 vezes. Cada grupo deverá entregar/apresentar o trabalho no dia 30/11 (no horário da aula) no seguinte formato: um diretório com o nome T2_Tema? _Nome contendo os arquivos T2_?.py e Grupo_T2_ET1.txt onde ? representa o número do tema escolhido e Nome representa o nome do primeiro integrante do grupo. O grupo que não apresentar o trabalho no dia marcado perderá 1.0 ponto no valor total do trabalho. Utilize a seguinte estrutura para montar o trabalho: from Tkinter import * class Janela: def __init__(self,inst_Tk): # definicoes de botoes, frames, etc def metodo1(self): # definicao do metodo1, com algum evento ... # programa principal raiz = Tk() Janela(raiz) raiz.mainloop() Abaixo, estão listados os temas a serem escolhidos. Tema 1 – Sistema de Enquete: Escreva um programa que simule um sistema de enquete (votação). O programa deverá possuir as seguintes opções: • possibilitar o cadastro de uma nova enquete (com uma pergunta e opções de resposta); • possibilitar ao usuário escolher qual enquete deseja responder; • calcular o percentual de votos para cada opção de resposta e o total de votos contabilizados. Telas do programa: 1) Tela cadastro da pergunta: ▪ descrição da pergunta; ▪ opções de resposta (pode-se perguntar ao usuário quantas respostas deverão ser mostradas e, posteriormente, pedir a digitação de todas). 2) Tela de votação: ▪ escolha da enquete a ser respondida; ▪ escolha da opção de resposta (somente uma opção deverá ser escolhida). 3) Tela de visualização dos votos: ▪ visualização do número total de votos e, também, do percentual de votos (até o momento) para cada opção de resposta. Obs1: Utilize arquivos em Python para armazenar os dados das enquetes. Obs2: Faça o tratamento correto de exceções quando for necessário (por ex., aceitar somente números no momento do cadastramento das opções de resposta para uma enquete). Exemplo de enquete: Qual o melhor time do RJ? a) Vasco b) Botafogo c) Fluminense d) Flamengo Total de votos contabilizados até o momento: 3 Percentual de escolha para Vasco: 0.33 % (1 voto) Percentual de escolha para Botafogo: 0.33 % (1 voto) Percentual de escolha para Fluminense: 0.33 % (1 voto) Percentual de escolha para Flamengo: 0 % (0 votos) Tema 2 – Agenda de contatos: Escreva um programa que modele uma agenda de contatos. O seu programa deverá ter as seguintes opções: • adição/alteração/exclusão de um contato; • listagem dos contatos em ordem alfabética de nome; • Campos para cada contato: ◦ nome (máximo de 30 caracteres); ◦ endereço (máximo de 50 caracteres); ◦ telefone residencial (máximo de 13 caracteres, com DDD); ◦ telefone celular (máximo de 13 caracteres, com DDD); ◦ data de nascimento – 10 caracteres (no formato dd/mm/yyyy); ◦ sexo (feminino ou masculino); ◦ e-mail – no máximo 30 caracteres. O seu programa deverá fazer o tratamento correto de exceções (utilizando “try/except” e “raise”) de forma a: • não aceitar letras nos campos de telefone (residencial e celular) e data de nascimento; • validar a data de nascimento digitada – não aceitar datas do tipo “31/02/2010”; • o campo e-mail deverá conter, obrigatoriamente, o “@”; Utilize arquivos em Python para armazenar os dados dos contatos. Se preferir, utilize, também, o módulo pickle. Telas do programa: 1) Adição de um contato; 2) Alteração de um contato; 3) Exclusão de um contato; 4) Listagem de todos os contatos em ordem alfabética; 5) Listagem dos dados de um contato selecionado. Tema 3 – Sistema de controle de turmas: Escreva um programa que auxilie o professor no controle de turmas de um curso. O seu programa deverá ter as seguintes opções: • tela para adicionar alunos, com os seguintes campos: ◦ nome (máximo de 30 caracteres); ◦ número de registro (máximo de 9 caracteres). • tela para registrar presença dos alunos nas aulas – alunos terão presença, ausência ou atraso. Deve-se registrar, também, a data das aulas; • tela para registrar as notas dos alunos nas provas ou ausência e realizar o cálculo da média final (leve em consideração que o aluno fará 2 provas e a média terá que ser >= 7.0 para que ele seja aprovado. Caso ele falte uma prova, poderá ser realizada a prova de 2a chamada.). Além disso, o sistema deverá informar a percentagem de alunos aprovados/reprovados; • tela para salvar as notas/presenças dos alunos em arquivo .txt; • tela para carregar as notas/presenças dos alunos de um arquivo .txt; O seu programa deverá fazer o tratamento correto de exceções (utilizando “try/except” e “raise”) de forma a: • não aceitar letras nos campos número de registro e notas dos alunos; • validar a data da aula (não aceitar datas tipo 31/02/2011). Utilize o conceito de arquivos em Python para armazenar os dados dos alunos. Se preferir, utilize o módulo pickle também. Tema 4 – Navegação pelo sistema: Escreva um programa que realize as seguintes operações: • o usuário poderá escolher um diretório do sistema; • o usuário poderá escolher um tipo de arquivo (.txt, .doc, .xls, .pdf, …) e o sistema deverá mostrar os arquivos do tipo escolhido contidos no diretório escolhido; • o usuário poderá visualizar o conteúdo de um arquivo .txt escolhido; • o usuário poderá criar um novo arquivo .txt e definir seu conteúdo; • o usuário poderá remover um arquivo escolhido. Faça o tratamento correto de exceções (utilizando “try/except”) de forma a verificar se o diretório informado existe. Para trabalhar com o diretório e arquivos utilize os módulos “os” e “os.path”. Tema 5 – Gráficos: • Escreva um programa para desenhar funções de x de acordo com uma entrada fornecida pelo usuário. O programa deverá conter as seguintes opções: • - campo para inserção do número de funções escolhidas e das funções em si; • - salvar o gráfico resultante (no formato png); • • O usuário poderá escolher desenhar 1, 2 ou 4 funções (o programa deverá dividir a tela em partes, fazendo subplots conforme escolha do usuário). • O usuário deverá poder escrever as fórmulas em notação Python usando funções disponibilizadas pelo módulo math. Exemplo: sqrt(x) + x**2 Faça o tratamento de exceções (utilizando “try/except”) conforme necessário. Utilize o módulo matplotlib (mostrado em sala de aula) para desenhar os gráficos). Este módulo pode ser baixado no endereço http://matplotlib.sourceforge.net
Compartilhar