jcramalho

Módulo pubATP.py

Nov 16th, 2021
569
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.27 KB | None | 0 0
  1. # Módulo de implementação da BD de publicações
  2. # 2021-11-16
  3. # by jcr
  4. # --------------------------------------------
  5. # Modelo de dados:
  6. #   1. A base de dados será uma lista de registos bibliográficos;
  7. #   2. Cada registo terá os seguintes campos: chave de citação (string identificadora
  8. # e que será única, diferente em todos os registos), título (string), autores (lista de autor),
  9. # ano de publicação (inteiro), local (conferência ou título do livro ou revista);
  10. #   3. Um autor será um tuplo constituído por: identificador (string única), nome (string).
  11. # ----------------------------------------------------------------------------------------------
  12. #
  13. # (C)reate: funções de criação dos vários componentes estruturais do modelo
  14. #
  15. def criarRegisto(c, t, la, a, l):
  16.     return {
  17.         'chaveCit': c,
  18.         'titulo': t,
  19.         'autores': la,
  20.         'ano': a,
  21.         'local': l
  22.     }
  23.    
  24. def criarAutor(id, n):
  25.     return (id, n)
  26.    
  27. def criarBD():
  28.     return []
  29.  
  30. def inserirReg(bd, reg):
  31.     bd.append(reg)
  32.     return bd
  33.  
  34. # (R)etrieve: recuperar/listar/consultar
  35. #
  36. #def listar(bd):
  37.     # ...
  38.    
  39. def consultar(bd, chave):
  40.     encontrado = False
  41.     i = 0
  42.     while (not encontrado) and (i < len(bd)):
  43.         if bd[i]['chaveCit'] == chave:
  44.             encontrado = True
  45.         i = i + 1
  46.     if encontrado:
  47.         mostrarReg(bd[i-1])
  48.     else:
  49.         print("ERRO: chave de citação inexistente na BD!")
  50.  
  51. def mostrarAutores(lista):
  52.     print("Lista de Autores:")
  53.     for (id,n) in lista:
  54.         print("\tId: ", id, " - ", n)
  55.  
  56. def mostrarReg(reg):
  57.     print("Chave de citação: ", reg['chaveCit'])
  58.     print("Título: ", reg['titulo'])
  59.     mostrarAutores(reg['autores'])
  60.     print("Ano de publicação: ", reg['ano'])
  61.     print("Local: ", reg['local'])
  62.  
  63. #
  64. # (U)pdate: alteração/edição de um registo
  65. #
  66. # def editar(bd, chave, ???):
  67.     # ...
  68.  
  69. #
  70. # (D)elete: remoção de um registo
  71. #
  72. # def remover(bd, chave):
  73.     # ...
  74.  
  75. #
  76. # Criar um índice de publicações ordenado por título: chave, título
  77. #
  78. # def criarInd(bd):
  79.     # ...
  80.  
  81. #
  82. # Store: guardar a BD em ficheiro
  83. #
  84. # def guardarBD(bd, fnome):
  85.     # ...
  86.  
  87. #
  88. # Restore/Load: carregar a BD de um ficheiro
  89. #
  90. # def carregarBD(fnome):
  91.     # ...
Advertisement
Add Comment
Please, Sign In to add comment