Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

4
ARQUITETURA DE DADOS
PortfÓlio – PROJETO INTEGRADO
ARQUITETURA DE DADOS
Goianira
2024
ALUNO
fábio ferreira cardoso
PortfÓlio – PROJETO INTEGRADO
Trabalho de portfólio apresentado como requisito parcial para a obtenção de pontos para a média semestral.
Orientador: Nome do seu Tutor(a)
Goianira
2024
SUMÁRIO
1	INTRODUÇÃO	3
2	DESENVOLVIMENTO	4
2.1	MÉTODO	4
2.2	RESULTADOS	5
3	CONCLUSÃo	9
4	REFERÊNCIAS	10
INTRODUÇÃO
Este relatório visa apresentar o projeto integrado desenvolvido para a disciplina Arquitetura de Dados, cujo objetivo foi a criação de um sistema fictício de gerenciamento de bibliotecas, desenvolvido para fins de estudo e aprendizado.
Partindo de um cenário hipotético em que, como programador recém-formado e usuário frequente de uma biblioteca de bairro, surge a necessidade de modernizar o sistema de gestão, onde o desafio proposto envolve digitalizar processos de catalogação, empréstimo e devolução de livros.
Com base neste contexto e utilizando conceitos de Programação Orientada a Objetos (POO) em Python, desenvolveu-se uma aplicação que simula a gestão de uma biblioteca. A implementação abrange funcionalidades como cadastro de livros e usuários, controle de empréstimos e devoluções, consulta a dados e geração de relatórios, proporcionando uma experiência prática e intuitiva para o usuário.
DESENVOLVIMENTO
Este projeto foi desenvolvido com base no paradigma da Programação Orientada a Objetos (POO), estruturando o sistema de gerenciamento de bibliotecas em classes que representam as entidades principais: livros, usuários e o sistema em si. A classe SistemaBiblioteca ficou responsável por centralizar as operações, enquanto as classes Livro e Usuario organizam e encapsulam os dados correspondentes. O uso de getters e setters foi implementado para proteger e validar o acesso aos atributos, garantindo a integridade dos dados e seguindo o princípio de encapsulamento.
Além disso, a modularização das funções foi uma estratégia adotada para separar responsabilidades, tornando o código mais legível, fácil de manter e testável. O projeto também seguiu boas práticas de programação, como a escolha de nomes descritivos para variáveis e métodos, documentação através de comentários, e tratamento de erros para garantir a robustez do sistema.
O desenvolvimento foi conduzido em etapas, começando pelo planejamento e implementação até chegar à fase de refinamento e testes. Durante esse processo, foi criada uma interface de usuário simples em forma de menu de console, visando facilitar o uso do sistema. Também foi implementado o tratamento de erros e exceções, como a gestão de situações em que um livro não é encontrado ou tentativas de empréstimo de livros sem cópias disponíveis, garantindo uma solução sólida, escalável e bem estruturada.
MÉTODO
Para a criação do algoritmo desta atividade foi utilizado a IDE Visual Studio Code como editor de texto e a linguagem Python para implementar a solução. Para alcançar o objetivo central planejado para o sistema de gerenciamento, foram criadas três principais classes para o sistema, e, criado um arquivo main.py usado apenas para instanciar as classes e rodar o código.
Quanto as classes principais criadas, temos: A Classe Livro, que representa cada livro do acervo da biblioteca, contendo atributos como título, autor, ano de publicação e número de cópias disponíveis. Essa classe é essencial para a catalogação dos livros e o controle de estoque para empréstimo. A Classe Usuario, que representa os usuários cadastrados na biblioteca, armazenando informações como nome, número de identificação e contato. Essa classe permite que cada usuário seja identificado de forma única dentro do sistema. E a Classe SistemaBiblioteca, que é a classe principal do sistema e atua como controlador das operações de catalogação, empréstimos e devoluções; nela, estão centralizadas as funções para gerenciar os livros e usuários, além de registrar as movimentações de empréstimos.
Cada classe faz uso de getters e setters para acessar e modificar os atributos das classes, uma escolha baseada no princípio do encapsulamento do paradigma de POO. O objetivo é proteger os dados internos das classes, permitindo que a manipulação dos atributos seja controlada e validada conforme necessário. Por exemplo, no caso do atributo ‘copias’ que armazena o número de cópias de um livro, o setter garante que apenas valores válidos (int) sejam atribuídos, evitando erros e inconsistências.
Cada funcionalidade do sistema, como realizar empréstimos, devolver livros e listar os livros disponíveis, foi modularizada em funções específicas dentro da classe SistemaBiblioteca. Essa abordagem de modularização segue uma das boas práticas de programação, que é a separação de responsabilidades, tornando o código mais legível, testável e de fácil manutenção. A modularização também facilita a reutilização de funções, uma vez que cada função foi projetada para realizar uma única tarefa. Dessa forma, se alguma lógica precisar ser alterada ou aprimorada, basta modificar a função correspondente, sem a necessidade de interferir em outros módulos.
Para tornar o projeto ainda mais robusto o tratamento de erros e exceções foi aplicado, garantindo o bom funcionamento do sistema. Sempre que uma ação pode gerar um comportamento inesperado, como tentar cadastrar um novo livro no sistema passando um número de cópias negativo ou ainda informando um valor não numérico, o sistema identifica essa ação e trata essas situações de forma apropriada. Foram usadas exceções para capturar esses erros e fornecer mensagens claras ao usuário, orientando-o sobre o que ocorreu e como corrigir. Isso melhora a experiência do usuário e previne falhas críticas durante a execução do programa.
RESULTADOS
A seguir serão compartilhadas algumas imagens com os códigos e testes realizados, de modo a expor a implementação da solução criada para o sistema de gerenciamento de bibliotecas proposto.
1. Classes principais, método construtor e seus atributos
2. Uso de getter e setter para validar valores, exemplo do número de identificação da classe Usuario onde é aceito apenas um valor inteiro positivo.
3. A classe SistemaBiblioteca modulariza as funções dentro do código, é criado um método para cada ação do sistema disponível para o usuário na interface.
4. Tratamento de erros e exceções. Exemplo ao cadastrar um livro, caso seja informado um número de cópias inválido, o sistema informa o erro para o usuário e o redireciona para o menu principal
CONCLUSÃo
Com base nas aulas de programação e conhecimentos em Phyton, fui capaz de implementar do zero uma lista encadeada que permite armazenar vários dados, conectados de uma maneira que podemos adicionar, contar e imprimir seus valores facilmente.
Quanto a lista encadeada, posso afirmar que é uma ferramenta importante para quem desenvolve software, pois, ela permite organizar dados de uma maneira mais flexível, facilitando a adição e remoção de elementos sem muita complicação. Diferente de outras formas de armazenar informações, como os arrays, a lista encadeada não exige reorganizar tudo quando algo muda, o que é muito útil em situações onde os dados estão sempre mudando.
Ao fazer essa atividade, percebi como a estrutura de dados de lista encadeada pode ser aplicada em diversos projetos, me ajudando a entender melhor como gerenciar informações de forma eficiente. Foi uma experiência muito positiva, pois me sinto mais preparado para enfrentar desafios na programação.
 
REFERÊNCIAS
PYTHON SOFTWARE FOUNDATION. Python 3.12.0 documentation. Disponível em: https://docs.python.org/3. Acesso em: 25 out. 2024.
FERREIRA, Fábio. Implementação de lista encadeada em Python. 2024. Trabalho acadêmico - Estrutura de Dados - UNOPAR, Goianira, 2024.
image1.png
image2.png
image3.png
image4.png
image5.png
image6.png
image7.png
image8.png
image9.png

Mais conteúdos dessa disciplina