SHARE
TWEET

Untitled

a guest Mar 26th, 2020 64 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. menu = '''
  2.  
  3. Menu
  4.  
  5.    0- Finalizar.
  6.    1- Cadastrar sala na lista.
  7.    2- Listar salas cadastradas.
  8.    3- Alterar a numeração de alguma sala.
  9.    4- Excluir uma sala da lista.
  10.    5- Relatório de sala por andar.
  11.  
  12. Escolha: '''
  13.  
  14. menu_alteracao = '''
  15.  
  16.           Menu Alteração
  17.    1- Sala.
  18.    2- Capacidade da Sala.
  19.    3- Quantidade de Computadores.
  20.  
  21. Escolha: '''
  22.  
  23. listaDeSalas = []
  24. listaDeAndares = []
  25. listaDeCapacidades = []
  26. listaDeQtdeComps = []
  27.  
  28. listaDeSalas = []
  29. listaDeAndares = []
  30. listaDeCapacidades = []
  31. listaDeQtdeComps = []
  32.  
  33.  
  34. def cabecalho():
  35.     lista_cabecalho = [
  36.         " ",
  37.         "\nCadastro de Sala",
  38.         "\nListar das Salas Cadastradas",
  39.         "\nAlterar Salas ",
  40.         "\nExcluir Salas",
  41.         "\nRelatório de Salas por andar"
  42.     ]
  43.     print(lista_cabecalho[int(escolha)])
  44.  
  45.  
  46. def sala_validada():
  47.     while True:
  48.         sala = str(input("Digite a sala: "))
  49.  
  50.         print('A sala de numero {}, Esta no andar {}.'.format(
  51.             sala, cria_andar(sala)))
  52.  
  53.         if sala in listaDeSalas:
  54.             input("\n Esta Sala já consta no cadastro.[Enter]")
  55.         else:
  56.             return sala
  57.  
  58.  
  59. def cria_andar(sala):
  60.  
  61.     try:
  62.         sala_int = int(sala)
  63.         andar = sala[:2] if sala_int > 1000 else sala[0]
  64.     except Exception:
  65.         andar = sala[0]
  66.  
  67.     return andar
  68.  
  69.  
  70. def andar_valido(x = -1):
  71.     return cria_andar(listaDeSalas[x])
  72.  
  73.  
  74. def validar_capacidade_da_sala():
  75.     qtde_maxima = 40
  76.     qtde_minima = 0
  77.     while True:
  78.         try:
  79.             qtde = int(input("Digite a Capacidade da Sala: "))
  80.             if qtde >= qtde_minima and qtde <= qtde_maxima:
  81.                 return qtde
  82.             input("\n A capacidade deve estar entre 0 e 40.[Enter]")
  83.         except:
  84.             input("\n A capacidade deve ser um numeral.[Enter]")
  85.  
  86.  
  87. def validar_qtde_computadores():
  88.     qtde_minima = 0
  89.     while True:
  90.         try:
  91.             qtde = int(input("Digite a quantidade de computadores na sala: "))
  92.             if qtde >= qtde_minima:
  93.                 return qtde
  94.             input("\n A quantidade deve ser maior ou igual a 0.[Enter]")
  95.         except:
  96.             input("\n A quantidade deve ser um numeral.[Enter]")
  97.  
  98. # Cadastro 1
  99.  
  100.  
  101. def cadastrar_dados_sala():
  102.     cabecalho()
  103.     listaDeSalas.append(sala_validada())
  104.     listaDeAndares.append(andar_valido())
  105.     listaDeCapacidades.append(validar_capacidade_da_sala())
  106.     listaDeQtdeComps.append(validar_qtde_computadores())
  107.  
  108. # Relatório de Salas Cadastradas 2
  109.  
  110.  
  111. def relatorio_salas():
  112.     cabecalho()
  113.  
  114.     print("    sala - andar - capacidade pessoas - qtde computadores")
  115.     print("    _____________________________________________________")
  116.     for ind, sala in enumerate(listaDeSalas):
  117.         print("    {0}{1}{2}{3}"
  118.               .format(
  119.                   str(sala).ljust(7),
  120.                   str(listaDeAndares[ind]).ljust(8),
  121.                   str(listaDeCapacidades[ind]).center(21),
  122.                   str(listaDeQtdeComps[ind]).center(18)
  123.               )
  124.               )
  125.     input(' [Enter] Continua...')
  126.  
  127.  
  128. def escolhe_sala():
  129.     relatorio_salas()
  130.     sala = input("Escolha uma sala para Alterar: ")
  131.     if sala in listaDeSalas:
  132.         return listaDeSalas.index(sala)
  133.     input('...Erro. Sala não consta no adastro. [Enter]')
  134.     return escolhe_sala()
  135.  
  136.  
  137. def altera_conforme(ind, opcao):
  138.     if opcao == '1':
  139.         listaDeSalas[ind] = sala_validada()
  140.         listaDeAndares[ind] = andar_valido(ind)
  141.     elif opcao == '2':
  142.         listaDeCapacidades[ind] = validar_capacidade_da_sala()
  143.     else:
  144.         listaDeQtdeComps[ind] = validar_qtde_computadores()
  145.  
  146.  
  147. def escolhe_que_alterar():
  148.     escolha = input(menu_alteracao)
  149.     if escolha in ('1', '2', '3', '4'):
  150.         return escolha
  151.     input('...Opção não existe no menu. [Enter]')
  152.     return escolhe_que_alterar()
  153.  
  154.  
  155. # Alterar a numeração da sala 3
  156.  
  157. def alterar_dados_sala():
  158.     cabecalho()
  159.     altera_conforme(escolhe_sala(), escolhe_que_alterar())
  160.    
  161.  
  162. # Excluir sala - 4
  163.  
  164. def excluir_sala():
  165.     cabecalho()
  166.     relatorio_salas()
  167.     salaDigitada = input('Digite o número da sala a ser excluida: ')
  168.     if salaDigitada in listaDeSalas:
  169.         ind = listaDeSalas.index(salaDigitada)
  170.         listaDeSalas      .remove(salaDigitada)
  171.         listaDeAndares    .pop(ind)
  172.         listaDeCapacidades.pop(ind)
  173.         listaDeQtdeComps  .pop(ind)
  174.         input("... Sala Removida da Lista. [Enter] ....")
  175.     else:
  176.         input("... Sala não consta na lista. [Enter] ...")
  177.  
  178.  
  179. def imprime_so_andares(lista_andares_cadastrados):
  180.     print('Andares Cadastrados')
  181.     print('-------------------')
  182.     lista_andares_cadastrados.sort()
  183.     for andar in lista_andares_cadastrados:
  184.         print(' '*5, andar)
  185.  
  186.  
  187. def andares_cadastrados():
  188.     lista_andares_cadastrados = []
  189.  
  190.     def identifica_os_andares():
  191.         for andar in listaDeAndares:
  192.             if andar not in lista_andares_cadastrados:
  193.                 lista_andares_cadastrados.append(andar)
  194.     identifica_os_andares()
  195.     imprime_so_andares(lista_andares_cadastrados)
  196.  
  197.  
  198. def escolha_andar():
  199.     andares_cadastrados()
  200.     return input('Escolha o andar: ')
  201.  
  202.  
  203. def salas_do_andar(andar):
  204.     print(' '*8, 'Salas do', andar, ':')
  205.     print(' '*8, '------------')
  206.     for ind, sala in enumerate(listaDeSalas):
  207.         if listaDeAndares[ind] == andar:
  208.             print(' '*8, sala)
  209.            
  210.  
  211. # Opção 5
  212.  
  213. def relatorio_por_andar():
  214.     cabecalho()
  215.     salas_do_andar(escolha_andar())
  216.     input(' [Enter] Continua...')
  217.  
  218. # Programa Pricipal
  219.  
  220. escolha = 0
  221. while True:
  222.     escolha = input(menu)
  223.     if escolha == '0':
  224.         break
  225.     elif escolha == '1':
  226.         cadastrar_dados_sala()
  227.     elif escolha == '2':
  228.         relatorio_salas()
  229.     elif escolha == '3':
  230.         alterar_dados_sala()
  231.     elif escolha == '4':
  232.         excluir_sala()
  233.     elif escolha == '5':
  234.         relatorio_por_andar()
  235.     else:
  236.         input("\n\n Opção Inválida! [Enter]")
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top