A maior rede de estudos do Brasil

Grátis
8 pág.
t2_comp2_et1

Pré-visualização | Página 1 de 1

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