Skip to content

Latest commit

 

History

History
181 lines (145 loc) · 6.46 KB

File metadata and controls

181 lines (145 loc) · 6.46 KB

📋 Sistema de Gerenciamento de Estoque

Badge Concluído Licença

📌 Informações do Projeto

🏫 Universidade: Universidade Federal do Piauí - Campus Senador Helvídio Nunes de Barros
🎓 Curso: Bacharelado em Sistemas de Informação
📚 Disciplina: Algoritmos e Programação I
👩‍🏫 Professor(a): Dra. Alcilene Dalília de Sousa

👥 Equipe:

  • Mayan
  • Lyan
  • Betânia
  • Allana
  • Débora

🚀 Descrição do Projeto

Sistema de gerenciamento de estoque desenvolvido em C que permite:
🛒 Cadastrar | 🔍 Buscar | ✏️ Editar | 📜 Listar produtos | 🗑️ Remover

📂 Estrutura do Projeto

projeto_estoque/
├── 📄 main.c                 # Arquivo principal
├── 📂 screenshots            # Capturas de tela
├── 📂 modules/
│   ├── 📄 funcoes_estoque.c  # Funções do estoque
│   ├── 📄 funcoes_estoque.h  # Cabeçalhos
│   ├── 📄 modulo_print.c     # Funções de exibição
│   └── 📄 modulo_print.h     # Cabeçalhos
└── 📄 README.md              # Documentação do projeto

💻 Como Compilar e Executar

🔧 Compilação e Execução

#Windows
gcc main.c modules/funcoes_estoque.c modules/modulo_print.c -o estoque.exe
.\estoque.exe

✨ Funcionalidades

  1. 📝 Cadastrar Produto

    • ✅ Verifica IDs duplicados
    • ⚠️ Limite de 100 produtos
  2. 📋 Listar Produtos

    • 🔄 Ordenado por ID
    • 📊 Exibe todos os atributos
  3. 🔍 Buscar Produto

    • 🔎 Por ID
    • 📌 Exibe detalhes completos
  4. ✏️ Editar Produto

    • 🔄 Atualiza individualmente:
      • #️⃣ ID
      • 🔤 Nome
      • 💲 Preço
      • 🧮 Quantidade
  5. 🗑️ Remover Produto

    • ⚠️ Confirmação antes de excluir
    • 🔄 Reorganiza a lista automaticamente

🧠 Visão Geral das Funções

A seguir, estão descritas as funções implementadas no projeto, com suas respectivas responsabilidades:

int cadastrarItem(int id[], char nome[][50], float preco[], int quantidade[], int total_de_produtos);
  • Cadastra um novo produto no estoque.
  • Valida duplicidade de ID e limite de itens (até 100).
  • Retorna 1 se o cadastro for bem-sucedido, ou 0 em caso de erro.
int excluirItem(int codigo[], char nome[][50], float preco[], int quantidade[], int total);
  • Remove um produto com base no ID informado.
  • Reorganiza os vetores para manter a consistência dos dados.
  • Retorna o novo total de produtos após a exclusão.
void editarItem(int id[], char nome[][50], float preco[], int quantidade[], int total_de_produtos);
  • Permite alterar um ou todos os atributos de um produto já cadastrado.
  • Menu interativo com opções para editar nome, ID, preço e quantidade.
void buscarItem(int id[], char nome_do_produto[][50], float preco[], int quantidade[], int total_de_produtos);
  • Busca um produto pelo ID e exibe suas informações detalhadas.
  • Caso o ID não seja encontrado, exibe mensagem apropriada.
void listarItens(int id[], char nome[][50], float preco[], int quantidade[], int total_de_produtos);
  • Lista todos os produtos cadastrados ordenados pelo ID.
  • Exibe os atributos principais: ID, nome, preço e quantidade.
void limparBuffer();
  • Limpa o buffer de entrada do teclado.
  • Evita problemas na leitura de strings após scanf().
void limparTela();
  • Limpa o terminal de acordo com o sistema operacional (Windows no caso).
void pequenaPausa();
  • Pausa a execução até o usuário pressionar ENTER.
  • Utilizada após operações importantes para garantir leitura das mensagens.

🖼️ Demonstração Visual

🎛️ Menu Principal

Menu do Sistema

Interface principal com todas as operações disponíveis

📝 Cadastro de Produto

Tela de cadastro Adição de dados

Formulário para registro de novos itens no estoque

📋 Listagem de Produtos

Lista de produtos

Visualização completa do inventário com ordenação

📋 Edição de Produtos

Tela de edição

Tela de edição

Tela de loading

Tela de loading

Menu de edição

Interface principal do menu editar

📋 Busca de Produto

Tela de busca

Tela de busca

Tela de loading

Tela de loading

Resultado da busca

Relatório de busca por produto

📋 Exclusão de Produto

Tela de edição

Tela de Exclusão

Tela de loading

Tela de loading

Menu de exclusão

Exclusão concluída

Listagem pós exclusão

Listagem pós exclusão

Interface principal da opção excluir

🛠️ Tecnologias Utilizadas

  • 🔢 Vetores para armazenamento
  • 📊 Estruturas para organização dos dados
  • 🔄 Algoritmos de ordenação e busca

🐛 Bugs Conhecidos

Ícone Problema Gravidade Descrição
🔢 Números em nomes ⚠️ Alto Campo "nome" aceita valores numéricos indevidamente
📛 Nomes longos ⚠️ Médio Nomes > 49 caracteres causam problemas de exibição
🖥️ Portabilidade ⚠️ Alto Funciona melhor no Windows que em outros sistemas operacionais