t2_comp2_et1
8 pág.

t2_comp2_et1


DisciplinaComputação II156 materiais476 seguidores
Pré-visualização1 página
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 \u2013 Sistema de Enquete:
Escreva um programa que simule um sistema de enquete (votação). O 
programa deverá possuir as seguintes opções:
\u2022 possibilitar o cadastro de uma nova enquete (com uma pergunta e 
opções de resposta);
\u2022 possibilitar ao usuário escolher qual enquete deseja responder;
\u2022 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:
\u25aa descrição da pergunta;
\u25aa 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:
\u25aa escolha da enquete a ser respondida;
\u25aa escolha da opção de resposta (somente uma opção deverá ser 
escolhida).
3) Tela de visualização dos votos:
\u25aa 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 \u2013 Agenda de contatos:
Escreva um programa que modele uma agenda de contatos. O seu 
programa deverá ter as seguintes opções:
\u2022 adição/alteração/exclusão de um contato;
\u2022 listagem dos contatos em ordem alfabética de nome;
\u2022 Campos para cada contato:
\u25e6 nome (máximo de 30 caracteres);
\u25e6 endereço (máximo de 50 caracteres);
\u25e6 telefone residencial (máximo de 13 caracteres, com DDD);
\u25e6 telefone celular (máximo de 13 caracteres, com DDD);
\u25e6 data de nascimento \u2013 10 caracteres (no formato dd/mm/yyyy);
\u25e6 sexo (feminino ou masculino);
\u25e6 e-mail \u2013 no máximo 30 caracteres.
O seu programa deverá fazer o tratamento correto de exceções (utilizando 
\u201ctry/except\u201d e \u201craise\u201d) de forma a:
\u2022 não aceitar letras nos campos de telefone (residencial e celular) e 
data de nascimento;
\u2022 validar a data de nascimento digitada \u2013 não aceitar datas do tipo 
\u201c31/02/2010\u201d; 
\u2022 o campo e-mail deverá conter, obrigatoriamente, o \u201c@\u201d;
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 \u2013 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:
\u2022 tela para adicionar alunos, com os seguintes campos:
\u25e6 nome (máximo de 30 caracteres);
\u25e6 número de registro (máximo de 9 caracteres).
\u2022 tela para registrar presença dos alunos nas aulas \u2013 alunos terão 
presença, ausência ou atraso. Deve-se registrar, também, a data 
das aulas;
\u2022 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;
\u2022 tela para salvar as notas/presenças dos alunos em arquivo .txt;
\u2022 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 
\u201ctry/except\u201d e \u201craise\u201d) de forma a:
\u2022 não aceitar letras nos campos número de registro e notas dos 
alunos;
\u2022 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 \u2013 Navegação pelo sistema:
Escreva um programa que realize as seguintes operações:
\u2022 o usuário poderá escolher um diretório do sistema; 
\u2022 o usuário poderá escolher um tipo de arquivo (.txt, .doc, .xls, .pdf, 
\u2026) e o sistema deverá mostrar os arquivos do tipo escolhido 
contidos no diretório escolhido;
\u2022 o usuário poderá visualizar o conteúdo de um arquivo .txt escolhido;
\u2022 o usuário poderá criar um novo arquivo .txt e definir seu conteúdo;
\u2022 o usuário poderá remover um arquivo escolhido.
Faça o tratamento correto de exceções (utilizando \u201ctry/except\u201d) de forma a
verificar se o diretório informado existe.
Para trabalhar com o diretório e arquivos utilize os módulos \u201cos\u201d e 
\u201cos.path\u201d.
Tema 5 \u2013 Gráficos:
\u2022 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:
\u2022 - campo para inserção do número de funções escolhidas e das funções em 
si;
\u2022 - salvar o gráfico resultante (no formato png);
\u2022
\u2022 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). 
\u2022 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 \u201ctry/except\u201d) 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