Skip to content

Latest commit

 

History

History
107 lines (84 loc) · 3.11 KB

Readme.md

File metadata and controls

107 lines (84 loc) · 3.11 KB

Gerenciando reservas e cancelamentos de uma sala de cinema

Intro Draft Shell

cover

Intro

O objetivo desta atividade é implementar métodos para manipular uma sala de cinema, permitindo a reserva, cancelamento e consulta de cadeiras.

  • Descrição

    • A sala de cinema é representada pela classe Sala Theater, que possui um conjunto de cadeiras, cada uma associada a um cliente ou vazia.
    • Os métodos a serem implementados permitirão reservar uma cadeira para um cliente, cancelar a reserva de uma cadeira e consultar o estado das cadeiras na sala.
    • Cada cadeira pode estar associada a um objeto Cliente Client, representando um cliente que reservou a cadeira, ou ser nula, indicando que a cadeira está vazia.
    • Os métodos fornecidos devem lidar com validações, como verificar se a cadeira existe, se está ocupada e se o cliente já está presente na sala.
  • Responsabilidades

    • A classe Sala Theater é responsável por gerenciar as operações relacionadas às cadeiras na sala de cinema.
      • Métodos a serem implementados:
        • públicos: são métodos acessados por outras classes.
          • reserve(id: string, phone: number, index: number): Reserva uma cadeira para um cliente com o ID e telefone especificados.
          • cancel(id: string): Cancela a reserva de uma cadeira para o cliente com o ID especificado.
          • getSeats(): Array<Client | null>: Retorna um array contendo o estado atual de todas as cadeiras na sala.
          • toString(): string: Retorna uma representação em string do estado atual das cadeiras na sala.
        • privados: são métodos apenas de uso interno, utilizados para auxiliar as operações da classe.
          • search(name: string): int: Procura o índice da cadeira reservada pelo cliente com o nome especificado.
          • verifyIndix(index: number): Verifica se um índice de cadeira é válido na sala.
    • A classe Client é responsável por representar os clientes que reservam cadeiras na sala de cinema.
      • A classe possui métodos para obter e definir o ID e telefone do cliente, bem como uma representação em string do cliente.

diagrama

Draft

Shell

#TEST_CASE init 1
$show
[]
#TEST_CASE init 2
$init 5
$show
[- - - - -]
#TEST_CASE init 3
$init 4
$show
[- - - -]
$end
#TEST_CASE reservas

$init 4
$reserve davi 3232 0
$reserve joao 3131 3
$show
[davi:3232 - - joao:3131]

#TEST_CASE ocupado

$reserve rute 3030 0
fail: cadeira ja esta ocupada

#TEST_CASE duplicado

$reserve davi 3234 2
fail: cliente ja esta no cinema
$end
#TEST_CASE cadeira invalida

$init 4
$reserve davi 3232 5
fail: cadeira nao existe

#TEST_CASE cancelamentos

$reserve davi 3232 0
$reserve joao 3131 3
$cancel davi
$show
[- - - joao:3131]

#TEST_CASE cancelamentos errado

$cancel rita
fail: cliente nao esta no cinema
$show
[- - - joao:3131]
$end