🏫 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
Sistema de gerenciamento de estoque desenvolvido em C que permite:
🛒 Cadastrar | 🔍 Buscar | ✏️ Editar | 📜 Listar produtos | 🗑️ Remover
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
#Windows
gcc main.c modules/funcoes_estoque.c modules/modulo_print.c -o estoque.exe
.\estoque.exe-
📝 Cadastrar Produto
- ✅ Verifica IDs duplicados
⚠️ Limite de 100 produtos
-
📋 Listar Produtos
- 🔄 Ordenado por ID
- 📊 Exibe todos os atributos
-
🔍 Buscar Produto
- 🔎 Por ID
- 📌 Exibe detalhes completos
-
✏️ Editar Produto
- 🔄 Atualiza individualmente:
- #️⃣ ID
- 🔤 Nome
- 💲 Preço
- 🧮 Quantidade
- 🔄 Atualiza individualmente:
-
🗑️ Remover Produto
⚠️ Confirmação antes de excluir- 🔄 Reorganiza a lista automaticamente
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.
Interface principal com todas as operações disponíveis
Formulário para registro de novos itens no estoque
Visualização completa do inventário com ordenação
Tela de edição
Tela de loading
Interface principal do menu editar
Tela de busca
Tela de loading
Relatório de busca por produto
Tela de Exclusão
Tela de loading
Exclusão concluída
Listagem pós exclusão
Interface principal da opção excluir
- 🔢 Vetores para armazenamento
- 📊 Estruturas para organização dos dados
- 🔄 Algoritmos de ordenação e busca
| Ícone | Problema | Gravidade | Descrição |
|---|---|---|---|
| 🔢 | Números em nomes | Campo "nome" aceita valores numéricos indevidamente | |
| 📛 | Nomes longos | Nomes > 49 caracteres causam problemas de exibição | |
| 🖥️ | Portabilidade | Funciona melhor no Windows que em outros sistemas operacionais |