Informática, perguntado por luizeferreira145, 4 meses atrás

Faça um programa em Python 3 que, Solicite:
O nome do Filme a ser exibido no Cinema; O nome da Sala e a sua lotação; a Classificação Indicativa / Faixa Etária do filme; E para um número indeterminado de pessoas: leia a idade de cada uma, sendo que a idade 0 (zero) indica o fim da leitura e não deve ser considerada - caso o limite da sala seja atingido, o leitura dos dados de pessoas derá ser encerrado e relatório com os dados abaixo impresso na tela. A seguir imprima e calcule:

* O nome do Filme, sala em que será exibido e o seu tamanho e a classificação etária do mesmo;
* O número de pessoas e o percentual de ocupação da mesma; não deve exceder o tamanho/capacidade da sala;
* O nome de cada pessoa com a sua idade e a informação se atende a faixa etária do filme;
* A idade média do grupo; A menor idade e a maior idade.
* O código deverá ser modularizado e feito utilizando o recurso de funções para as funcionalidades acima.

Soluções para a tarefa

Respondido por ljmicheleto
2

Resposta:

#O nome do Filme a ser exibido no Cinema; O nome da Sala e a sua lotação; a Classificação Indicativa / Faixa Etária do filme; E para um número indeterminado de pessoas: leia a idade de cada uma, sendo que a idade 0 (zero) indica o fim da leitura e não deve ser considerada - caso o limite da sala seja atingido, o leitura dos dados de pessoas derá ser encerrado e relatório com os dados abaixo impresso na tela. A seguir imprima e calcule:

#* O nome do Filme, sala em que será exibido e o seu tamanho e a classificação etária do mesmo;

#* O número de pessoas e o percentual de ocupação da mesma; não deve exceder o tamanho/capacidade da sala;

#* O nome de cada pessoa com a sua idade e a informação se atende a faixa etária do filme;

#* A idade média do grupo; A menor idade e a maior idade.

#* O código deverá ser modularizado e feito utilizando o recurso de funções para as funcionalidades acima.

class Filme:

   def __init__(self, nome: str, classificacao: int):

       self.nome = nome

       self.classificacao = classificacao

   def cadastrar():

       print("_____ Cadastrar Filme _____")

       nome = input("Digite o nome do filme: ")

       classificacao = input("Digite a faixa etária: ")

       print("_____ *************** _____")

       return Filme(nome, int(classificacao))

class Pessoa:

   def __init__(self, nome: str, idade: int):

       self.nome = nome

       self.idade = idade

   def cadastrar_pessoas(c: int):

       idade = -1

       pessoas = []

       print("_____ Cadastrar Pessoas _____")

       for _ in range(c):

           nome = input("Digite o nome: ")

           idade = input("Digite a idade: ")

           if idade != 0:

               pessoas.append(Pessoa(nome, int(idade)))

           else:

               break

       print("_____ *************** _____")

       return pessoas

class Sala:

   def __init__(self, nome_sala: str, capacidade: int):

       self.nome = nome_sala

       self.capacidade = capacidade

   def cadastrar():

       print("_____ Cadastrar Sala _____")

       nome = input("Digite o nome: ")

       capacidade = input("Digite a capacidade: ")

       print("_____ *************** _____")

       return Sala(nome, int(capacidade))

class Cinema:

   def __init__(self, salas: [Sala], filmes: [Filme], pessoas: [Pessoa]):

       self.salas = salas

       self.filmes = filmes

       self.pessoas = pessoas

   #* O nome do Filme, sala em que será exibido e o seu tamanho e a classificação etária do mesmo;

   def print_a(self, indx_filme = 0, indx_sala = 0):

       print(f"O nome do filme é: {self.filmes[indx_filme].nome}, sala: {self.salas[indx_sala].nome}, capacidade: {self.salas[indx_sala].capacidade} pessoas, classificação: {self.filmes[indx_filme].classificacao} anos.")

   #* O número de pessoas e o percentual de ocupação da mesma; não deve exceder o tamanho/capacidade da sala;    

   def print_b(self, indx_sala = 0):

       qtd_pessoas = len(self.pessoas)

       perc_ocup = round((qtd_pessoas/self.salas[indx_sala].capacidade) * 100, 2)      

       print(f"Quantidade de pessoas: {qtd_pessoas}, percentual de ocupação: {perc_ocup}%")

   #* O nome de cada pessoa com a sua idade e a informação se atende a faixa etária do filme;

   def print_c(self, indx_filme = 0):    

       for p in self.pessoas:

           if p.idade >= self.filmes[indx_filme].classificacao:

               print(f"{p.nome} está dentro da faixa etária.")

           else:

               print(f"{p.nome} está fora da faixa etária.")

   #* A idade média do grupo; A menor idade e a maior idade.

   def print_d(self):

       idades = [p.idade for p in self.pessoas]

       media = round(sum(idades)/len(idades), 1)

       menor_idade = min(idades)

       maior_idade = max(idades)

       print(f"A média das idades é: {media}, a menor idade é: {menor_idade}, a maior idade é {maior_idade}.")

   def exibir_relatorio(self, indx_filme = 0, indx_sala = 0):

       self.print_a()

       self.print_b()

       self.print_c()

       self.print_d()

def teste_cinema():

   filme = Filme.cadastrar()

   sala = Sala.cadastrar()

   pessoas = Pessoa.cadastrar_pessoas(sala.capacidade)

   cinema = Cinema([sala], [filme], pessoas)

   cinema.exibir_relatorio()

def main():

   teste_cinema()

if __name__ == "__main__":

   main()

Explicação:

Salvar no arquivo cinema.py

Perguntas interessantes