Ir para conteúdo
Fórum Script Brasil
  • 0

Locadora dvd


nirlandia

Pergunta

Bom dia, estou estudando python gostando muito, porem o professor me deu uma projeto para fazer de uma locadora de dvd.

Descric~ao
Aqui est~ao as descric~oes das classes envolvidas no sistema. Item oferece uma
interface, na forma de uma classe abstrata, representando qualquer item na
colec~ao da locadora. Esta interface e fornecida. Um item sempre possui um
ttulo, um g^enero, e um identicador inteiro unico, chamado de \barcode".
A qualquer tempo, um item pode estar disponvel ou alugado. Se estiver alugado,
deve haver uma data de retorno. AbstractItem e uma implementac~ao
parcial da interface de um itemi, e tambem e fornecida para voc^e. Devem ser
implementadas tr^es subclasses concretas de DVD: DVD, Game, e NewReleaseDVD,
descritos com mairoes detalhes, abaixo.
1
A classe Customer representa um cliente da vdeo locadora. Esta classe
esta parcialmente implementada. Um cliente possui uma lista de itens alugados
e um balanco devido a locadora. Alugar um item atualiza o objeto
Item correspondente, incrementa o balanco do cliente pelo custo do aluguel
e adiciona o item a lista do cliente.
Retornar um item atualiza o estado do item e o remove da lista do cliente.
Alem disso, quaisquer taxas por atraso s~ao adicionadas ao balanco do cliente.
Voc^e deve terminar a implementac~ao da classe Customer e implementar duas
subclasses, ClubMember e PremierMember, descritos com mairores detalhes,
abaixo. Uma VideoStore possui uma lista de items e uma lista de clientes.
Esta classe e fornecida para voc^e. há metodos para adicionar items e para
adicionar clientes. E possvel procurar um cliente por nome, e procurar itens
de acordo com algum criterio arbitrario, implementando a interface Search-
Condition. N~ao e necessario fazer nada com esta classe. Ela e fornecida para
dar algum contexto de como as outras classes que est~ao sendo implementadas
devem ser usadas. A classe abstrata SearchCondition representa um
predicado de busca adaptavel. Possui apenas um metodo:
de f matches ( s e l f , item ) :
que retorna verdadeiro se o item dado satisfaz o criterio de busca, e falso
caso contrario. Por exemplo, uma condic~ao de busca com casamento exato
do g^enero de um item, poderia ser escrita como:
c l a s s GenreSearch ( Sear chCondi t ion ) :
i n i t ( s e l f , genr e ) :
s e l f . g e n r e = genre
matches ( s e l f , item ) :
r e turn s e l f . g e n r e == item . getGenre ( )
A classe abstrata (parecido com uma interface do java) SearchCondition
e a classe de exemplo GenreSearch s~ao fornecidas. Voc^e deve implementar
uma classe adicional TitleKeywordSearch que implementa a classe abstrata
SearchCondition. há tambem um tipo Status Exception que estende a
classe Exception. Esta classe e fornecida. Varios metodos s~ao especicados
para levantar uma StatusException sob certas condic~oes. Para levantar uma
excec~ao, deve-se construir um novo objeto de excec~ao. há um argumento
opcional do tipo string que e a mensagem que deve aparecer como parte do
2
stack trace, se a excec~ao ocorrer; isto e util para debugging e estas mensagens
podem ser conguradas a gosto. Por exemplo, o metodo setRented de um
Item incluira normalmente um teste, como descrito abaixo:
i f ( s e l f . i sRent ed ( ) ) :
r a i s e StatusExc ept ion (" Item i s a l r e ady r ent ed ")
Neste trabalho, n~ao e necessario capturar as excec~oes. Tudo o que e
preciso e constru-las e levanta-las (ou simplesmente deixa-las propagaremse,
como no exemplo do metodo rentItem, que já esta implementado na classe
Customer).

estou tentando implementar o metodo: bringBackItem, mas não estou conseguindo.

Retorna um item que este cliente atualmente alugou e atualiza
# O saldo se uma taxa ou crédito atrasado for devido. Se o item puder ser
# Devolvido com sucesso, este método atualiza o status do item e remove
# Da lista de itens deste cliente. Se o cliente não tiver
# O item alugado, uma StatusException é lançada.
# @param barcode
# Identificador para o item a ser devolvido
# @param hoje
# A data em que o item está sendo retornado
# @throws StatusException
# Se este cliente não tiver dado o item alugado

###def bringBackItem(self, barcode, today):
  # for item in self.__itemsOut:
    #  if barcode == item.getBarcode():
         # TODO

 

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...