TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Código para Sistema de Biblioteca Escolar

Por:   •  27/10/2025  •  Trabalho acadêmico  •  4.136 Palavras (17 Páginas)  •  18 Visualizações

Página 1 de 17

unit CadastroLivros;

interface

uses

  System.SysUtils, System.Classes, Data.DB, Datasnap.DBClient;

type

  TLivro = record

    ID: Integer;

    Titulo: string;

    AutorID: Integer;

    EditoraID: Integer;

    AnoPublicacao: Integer;

    Genero: string;

    Disponivel: Boolean;

  end;

  TAutor = record

    ID: Integer;

    Nome: string;

  end;

  TEditora = record

    ID: Integer;

    Nome: string;

  end;

  TUsuario = record

    ID: Integer;

    Nome: string;

    Senha: string;

    Tipo: string; // Aluno, Professor, Funcionário, etc.

    EmprestimosBloqueados: Boolean;

  end;

  TEmprestimo = record

    ID: Integer;

    LivroID: Integer;

    UsuarioID: Integer;

    DataEmprestimo: TDateTime;

    DataDevolucao: TDateTime;

    Devolvido: Boolean;

  end;

  TCadastroLivros = class

  private

    FLivros: TClientDataSet;

    FAutores: TClientDataSet;

    FEditoras: TClientDataSet;

    FUsuarios: TClientDataSet;

    FEmprestimos: TClientDataSet;

    function CalcularMulta(DataPrevista: TDateTime): Double;

  public

    constructor Create;

    destructor Destroy; override;

    procedure AdicionarLivro(const Livro: TLivro);

    procedure AdicionarAutor(const Autor: TAutor);

    procedure AdicionarEditora(const Editora: TEditora);

    procedure AdicionarUsuario(const Usuario: TUsuario);

    procedure BloquearEmprestimos(UsuarioID: Integer);

    procedure DesbloquearEmprestimos(UsuarioID: Integer);

    procedure RemoverLivro(ID: Integer);

    function BuscarLivro(Titulo: string): TClientDataSet;

    function ListarLivros: TClientDataSet;

    function ContarLivrosDisponiveisPorTitulo(Titulo: string): Integer;

    function ContarLivrosDisponiveisPorAutor(AutorID: Integer): Integer;

    function RelatorioEmprestimosPorTitulo(Titulo: string): TClientDataSet;

    function RelatorioEmprestimosPorAutor(AutorID: Integer): TClientDataSet;

    function RelatorioEmprestimosPorData(DataInicio, DataFim: TDateTime): TClientDataSet;

    function RelatorioAcervoPorTitulo: TClientDataSet;

    function RelatorioAcervoPorAutor: TClientDataSet;

    function Login(Nome, Senha: string): Boolean;

    procedure RegistrarEmprestimo(LivroID, UsuarioID: Integer);

    function RegistrarDevolucao(EmprestimoID: Integer): Double;

  end;

implementation

constructor TCadastroLivros.Create;

begin

  FLivros := TClientDataSet.Create(nil);

  FLivros.FieldDefs.Add('ID', ftInteger);

  FLivros.FieldDefs.Add('Titulo', ftString, 100);

  FLivros.FieldDefs.Add('AutorID', ftInteger);

  FLivros.FieldDefs.Add('EditoraID', ftInteger);

  FLivros.FieldDefs.Add('AnoPublicacao', ftInteger);

  FLivros.FieldDefs.Add('Genero', ftString, 50);

  FLivros.FieldDefs.Add('Disponivel', ftBoolean);

  FLivros.CreateDataSet;

end;

destructor TCadastroLivros.Destroy;

begin

  FLivros.Free;

  FUsuarios.Free;

  FEmprestimos.Free;

  inherited;

end;

function TCadastroLivros.RelatorioAcervoPorTitulo: TClientDataSet;

begin

  Result := TClientDataSet.Create(nil);

  Result.CloneCursor(FLivros, True);

  Result.IndexFieldNames := 'Titulo';

end;

function TCadastroLivros.RelatorioAcervoPorAutor: TClientDataSet;

begin

  Result := TClientDataSet.Create(nil);

  Result.CloneCursor(FLivros, True);

  Result.IndexFieldNames := 'AutorID';

end;

end.

unit CadastroLivros;

interface

uses

  System.SysUtils, System.Classes, Data.DB, Datasnap.DBClient;

type

  TLivro = record

    ID: Integer;

    Titulo: string;

    AutorID: Integer;

    EditoraID: Integer;

    AnoPublicacao: Integer;

    Genero: string;

    Disponivel: Boolean;

  end;

  TAutor = record

    ID: Integer;

    Nome: string;

  end;

  TEditora = record

    ID: Integer;

    Nome: string;

  end;

  TUsuario = record

    ID: Integer;

    Nome: string;

    Senha: string;

    Tipo: string; // Aluno, Professor, Funcionário, etc.

    EmprestimosBloqueados: Boolean;

  end;

  TEmprestimo = record

    ID: Integer;

    LivroID: Integer;

    UsuarioID: Integer;

    DataEmprestimo: TDateTime;

    DataDevolucao: TDateTime;

    Devolvido: Boolean;

  end;

  TCadastroLivros = class

  private

    FLivros: TClientDataSet;

    FAutores: TClientDataSet;

    FEditoras: TClientDataSet;

    FUsuarios: TClientDataSet;

    FEmprestimos: TClientDataSet;

    function CalcularMulta(DataPrevista: TDateTime): Double;

  public

    constructor Create;

    destructor Destroy; override;

    procedure AdicionarLivro(const Livro: TLivro);

...

Baixar como (para membros premium)  txt (34.6 Kb)   pdf (270 Kb)   docx (22.3 Kb)  
Continuar por mais 16 páginas »
Disponível apenas no TrabalhosGratuitos.com