Trabalho3_et1
13 pág.

Trabalho3_et1


DisciplinaComputação II156 materiais476 seguidores
Pré-visualização2 páginas
3o trabalho de Computação 2
Turma: ET1/ER1
4a e 6a de 8h às 10h
Professora: Bianca Ruivo
Data de entrega: 13/07/2011
Apresentações: 13/07/11 e 15/07/11 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 o trabalho no dia 13/07 (no horário da aula) 
no seguinte formato: um diretório com o nome T3_Tema?_Nome contendo os 
arquivos T3_?.py e Grupo_T3.txt onde ? representa o número do tema 
escolhido e Nome representa o nome do primeiro integrante do grupo. 
As apresentações dos trabalhos, obrigatórias, serão nos dias 13/07 e 
15/07 de 8h às 10h. Cada grupo terá cerca de 15 minutos para apresentar o 
trabalho. O trabalho valerá 10.00 pontos. O grupo que não apresentar o 
trabalho perderá 2.0 pontos na nota final do mesmo e o grupo que apresentar o 
trabalho poderá receber até 2.0 pontos a mais na nota final do trabalho, pontos 
estes relativos à apresentação.
Abaixo, estão listados os temas a serem escolhidos.
Tema 1 \u2013 Sistemas Lineares: 
Escreva um programa que resolva sistemas de equações lineares. O seu 
programa deverá ler as equações na forma a*w ± b*x ± c*y \u2026 = d e resolver o 
sistema, apresentando a solução do mesmo em forma de tupla.
O programa deverá verificar se o sistema linear tem o número de 
equações igual ao número de incógnitas (caso contrário, uma mensagem de 
erro deverá ser mostrada ao usuário) e se os valores dos coeficientes a, b, c, 
etc são números inteiros. Não há limite para o número de equações/incógnitas.
Faça o tratamento correto de exceções (utilizando \u201ctry/except\u201d) quando 
necessário.
Utilize o módulo \u201cnumpy\u201d para resolver o sistema linear. Este módulo pode 
ser encontrado no link http://numpy.scipy.org/ .
Exemplo do funcionamento do programa:
3*w + 4*x = 10
1*w \u2013 2*x = 3
Vetor solução: (3.2, 0.1)
Tema 2 - Biblioteca:
Escreva um programa que modele um sistema de uma biblioteca. O seu 
programa deverá ter controle sobre o cadastro de usuários/livros e empréstimos 
dos livros, conforme abaixo:
Dados para o cadastro de usuários (todos os itens são obrigatórios):
\u2022 CPF \u2013 11 caracteres (sem o hífen);
\u2022 nome completo \u2013 no máximo 20 caracteres;
\u2022 endereço \u2013 no máximo 30 caracteres;
\u2022 telefone residencial \u2013 13 caracteres (com DDD e no formato 
(xx)xxxx-xxxx);
\u2022 telefone celular \u2013 13 caracteres (com DDD e no formato (xx)xxxx-
xxxx);
\u2022 data de nascimento \u2013 10 caracteres (no formato dd/mm/yyyy);
\u2022 sexo (feminino ou masculino);
\u2022 e-mail \u2013 no máximo 30 caracteres.
Dados para o cadastro de livros (todos os itens são obrigatórios):
\u2022 nome do livro \u2013 no máximo 30 caracteres;
\u2022 identificador do livro \u2013 número inteiro positivo (gerado pelo 
programa) começando com 1 e incrementando de 1 
automaticamente;
\u2022 autor \u2013 no máximo 20 caracteres;
\u2022 editora \u2013 no máximo 10 caracteres;
\u2022 ano de publicação \u2013 4 caracteres;
\u2022 número de exemplares \u2013 no máximo 10;
\u2022 variável que representa se o livro está emprestado ou não.
Empréstimos dos livros (todos os itens são obrigatórios):
\u2022 identificador do livro;
\u2022 CPF da pessoa que pegou o livro emprestado;
\u2022 data de empréstimo do livro \u2013 10 caracteres (no formato 
dd/mm/yyyy);
\u2022 data de devolução do livro \u2013 10 caracteres (no formato dd/mm/yyyy);
Todos os dados descritos acima deverão ser armazenados no formato de 
arquivo .txt. Os dados dos livros deverão ser gravados no arquivo \u201clivros.txt\u201d, os 
dados dos usuários no arquivo \u201cusuarios.txt\u201d e os dados dos empréstimos no 
arquivo \u201cemprestimos.txt\u201d.
O seu programa deverá ter algumas telas, de acordo com a especificação 
abaixo:
\u2022 tela para cadastro de usuários;
\u2022 tela para cadastro de livros;
\u2022 tela para empréstimos dos livros;
\u2022 tela para listar CPF e nome dos usuários cadastrados e as opções 
de alterar dados cadastrais e remover usuários. Esta tela também 
deverá mostrar os livros (pelo identificador) que estão emprestados 
para cada usuário. Ao clicar no identificador do livro, os dados 
completos do mesmo deverão aparecer numa nova janela;
\u2022 tela para listar identificador, nome e autor dos livros cadastrados 
com opção de alterar ou remover dados do livro. Esta tela também 
deverá mostrar se o livro está emprestado (e para quem, mostrando 
o CPF do usuário) e a data de devolução do mesmo.
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), 
CPF;
\u2022 validar a data de nascimento digitada;
\u2022 o campo e-mail deverá conter, obrigatoriamente, o \u201c@\u201d;
\u2022 não aceitar letras nos campos ano de publicação do livro e número 
de exemplares;
\u2022 validar a data de empréstimo e a data de devolução do livro.
Tema 3 \u2013 Calculadora notação polonesa reversa:
Escreva um programa que modele uma calculadora com notação 
polonesa reversa. A calculadora deverá realizar as operações de soma, 
subtração, multiplicação e divisão.
Exemplo da notação polonesa reversa:
\u2022 3 + 5 => 3 5 + => resposta: 8
\u2022 8 \u2013 3 => 8 3 - => resposta: 5
\u2022 (1 + 7) / 2 => 1 7 + 2 / => resposta: 4
\u2022 ((0 * 2) \u2013 (2 * 2)) / (1 * 4) => 0 2 * 2 2 * - 1 4 * / => resposta: -1
\u2022 35 + 4 => 35 4 + => resposta: 39
O seu programa deverá mostrar os botões contendo os algarismos de 0 a 
9, além dos símbolos \u201c+\u201d, \u201c-\u201d, \u201c*\u201d, \u201c/\u201d e \u201c=\u201d. Além disto, deverá ter um botão para 
limpar o que foi digitado.
Faça o tratamento correto de exceções (utilizando \u201ctry/except\u201d) de forma 
não aceitar letras na expressão a ser calculada (aceitar somente os dígitos de 0 
a 9, +, -, *, /, ( e )).
Tema 4 \u2013 Sistema hoteleiro:
Escreva um programa que modele um sistema de controle de hóspedes e 
quartos de um hotel, conforme abaixo:
Dados para o cadastro de hóspedes (todos os itens são obrigatórios):
\u2022 CPF \u2013 11 caracteres (sem o hifen);
\u2022 nome completo \u2013 no máximo 20 caracteres;
\u2022 endereço \u2013 no máximo 30 caracteres;
\u2022 cidade \u2013 no máximo 30 caracteres;
\u2022 estado \u2013 2 caracteres;
\u2022 telefone residencial \u2013 13 caracteres (com DDD e no formato 
(xx)xxxx-xxxx);
\u2022 telefone celular \u2013 13 caracteres (com DDD e no formato (xx)xxxx-
xxxx);
\u2022 data de nascimento \u2013 10 caracteres (no formato dd/mm/yyyy);
\u2022 sexo (feminino ou masculino); 
\u2022 e-mail \u2013 no máximo 30 caracteres;
\u2022 data de entrada no hotel \u2013 10 caracteres (no formato dd/mm/yyyy);
\u2022 data de saída do hotel \u2013 10 caracteres (no formato dd/mm/yyyy).
Dados para o cadastro de quartos:
\u2022 número do quarto \u2013 inteiro positivo >= 100 e <= 400;
\u2022 tipo do quarto (solteiro simples, solteiro duplo, casal, triplo ou 
quádruplo);
\u2022 preço da diária;
\u2022 itens: TV, frigobar, ar condicionado \u2013 opcionais.
Controle dos quartos:
\u2022 número do quarto;
\u2022 CPFs dos ocupantes do quarto \u2013 11 caracteres (sem o hifen);
\u2022 variável que indique se o quarto está ocupado ou não.
Todos os dados descritos acima deverão ser armazenados no formato de 
arquivo .txt. Os dados dos hóspedes deverão ser gravados no arquivo 
\u201chospedes.txt\u201d, os dados dos quartos no arquivo \u201cquartos.txt\u201d e os dados dos 
controles dos hóspedes e quartos no arquivo \u201ccontroles.txt\u201d.
O seu programa deverá ter algumas telas, de acordo com a especificação 
abaixo:
\u2022 tela para cadastro de hóspedes;
\u2022 tela para cadastro de quartos;
\u2022 tela para controle dos quartos \u2013 no momento do \u201ccheck-in\u201d do 
hóspede, o programa deverá associar o número do quarto ao CPF 
do hóspede e marcar o quarto como ocupado. No momento do 
\u201ccheck-out\u201d do hóspede, o programa deverá calcular o valor total 
das diárias, apresentar este valor e marcar o quarto em questão 
como desocupado;
\u2022 tela para listar CPF e nome dos hóspedes cadastrados e a opção de 
alterar dados cadastrais dos hóspedes. Esta tela também deverá 
mostrar