Ir para conteúdo
Fórum Script Brasil

nirlandia

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre nirlandia

nirlandia's Achievements

0

Reputação

  1. nirlandia

    Locadora dvd

    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
×
×
  • Criar Novo...