Neste arquivo você verá:
- Linguagem
- Introdução
- Problemática
- Descrição
- Organização do repositório
- Listas encadeadas
- Funções em Médico
- Funções em Paciente
- Funções em tratativas
- Funções em main
-
ChatGPT: O ChatGPT é um modelo de linguagem desenvolvido pela OpenAI, projetado para interagir e responder a perguntas em linguagem natural, com base em um amplo conjunto de dados.
-
Github Copilot: O GitHub Copilot é uma ferramenta de programação baseada em inteligência artificial, desenvolvida pela GitHub e pela OpenAI. Ele fornece sugestões de código em tempo real enquanto você escreve, usando modelos de linguagem avançados para aumentar a produtividade dos desenvolvedores.
A administração de uma loja de produtos de limpeza é crucial para garantir seu funcionamento eficaz e eficiente, abrangendo a gestão dos diversos setores e dos produtos em estoque. Um sistema de gerenciamento especializado para esse tipo de estabelecimento é elaborado com o intuito de simplificar todas as operações essenciais para o bom desempenho do negócio.
Projete um sistema para gerenciamento de uma loja de produtos de limpeza. Seu sistema deve ser capaz de manipular produtos e setores.
Cada setor da loja deve ter os seguintes atributos:
- Nome;
- Descrição;
- Produtos;
Os pacientes devem ter os seguintes atributos:
- Nome;
- Marca;
- Preço;
- Quantidade em estoque.
Um menu com as seguintes opções deverá ser apresentado:
- Adicionar produto;
- Remover produto;
- Editar produto;
- Adicionar novo setor;
- Remover setor existente;
- Listar todos os setores e produtos;
- Buscar produto;
- Sair;
A opção Sair é a única que permite sair do programa. Sendo assim, após cada operaçao, o programa volta ao menu. Além disso, você deve levar em consideração O seguinte: a cada execuçao do seu programa, OS dados devem ser carregados (armazenados em um arquivo texto); cada novo médico ou paciente cadastrado deve ser inserido em ordem alfabética (para isso, você pode utilizar as funções da biblioteca padrão deC, string.h); você deve atualizar o arquivo texto para refletir o estado atual dos dados em virtude da adição ou remoção.
A organização desse repositório está disposta da seguinte forma:
📁 - GerenciamentoDePostoDeSaude
│
└─── bin
│
└─── include
│
├──produto.h
├──setor.h
├──sistema.h
│
└─── src
│
├──produto.c
├──setor.c
├──main.c
├──sistema.c
├──setores.txt
│
└───README.md
Neste projeto, o sistema de gerenciamento para óticas foi desenvolvido utilizando listas encadeadas, que possibilitam percorrer a lista em uma única direção, do início ao fim.
As listas encadeadas são compostas por nós que armazenam dados e um ponteiro para o próximo nó na sequência. Essa estrutura proporciona uma maneira eficiente de lidar com conjuntos de dados dinâmicos.
Apesar de permitirem apenas a travessia sequencial da lista, as listas encadeadas simples oferecem uma solução eficaz para diversas aplicações de gestão de dados, especialmente quando a ordem dos elementos é relevante e as operações de inserção e remoção são frequentes.
As principais vantagens apresentadas pelo uso de Listas encadeadas são:
-
Flexibilidade: Oferecem flexibilidade na inserção e remoção de elementos, uma vez que não requerem uma alocação contígua de memória.
-
Inserção e remoção eficiente: Em comparação com estruturas de dados como vetores, as listas encadeadas oferecem operações eficientes de inserção e remoção de elementos, especialmente quando se trata de operações no meio da lista.
-
Baixo custo de realocação: A inserção e remoção de elementos em uma lista encadeada não requerem realocação de memória, o que pode ser vantajoso em situações onde a quantidade de elementos na lista é desconhecida ou variável.
As principais desvantagens apresentadas pelo uso de Listas encadeadas são:
-
Acesso sequencial e menor desempenho: O acesso aos elementos de uma lista encadeada é sequencial, o que pode resultar em desempenho inferior em comparação com estruturas de dados que oferecem acesso aleatório, como arrays.
-
Consumo de memória: As listas encadeadas podem consumir mais memória do que outras estruturas de dados, devido à necessidade de armazenar ponteiros adicionais para cada elemento.
- Descrição: Essa função irá criar a lista de Setor.
void CriaSetor(ListaSetor **lista);
- Descrição: Essa função irá criar um Setor e adiciona na lista.
void NovoSetor(ListaSetor **lista);
- Descrição: Essa função pedir para o usuário informar o nome do setor que deseja remover e o remove da lista.
void RemoveSetor(ListaSetor **lista);
- Descrição: Essa função irá criar a lista para produtos.
void CriaProduto(ListaProduto **lista);
- Descrição: Essa função irá adicionar um produto no setor que o usuário informar, para o produto será informado nome, marca, preço e quantidade em estoque.
void NovoProduto(ListaSetor **lista);
- Descrição: Essa função irá remover um produto (nome informado pelo usuário) de um determinado setor (que também será informado pelo usuário).
void RemoveProduto(ListaSetor **lista);
- Descrição: Essa função irá editar informações que o usuário deseja editar de um produto, informando de qual setor é o produto.
void EditaProduto(ListaSetor **lista);
- Descrição: Essa função irá buscar as informações de um produto, informando o nome do setor que ele está e o nome de tal produto.
void BuscaProduto(ListaSetor **lista);
- Descrição: Essa função irá mostrar os dados de todos os setores disponíveis, bem como, as informações de todos os produtos que estão em determinados setores.
void MostrarDados(ListaSetor **lista);
- Descrição: Essa função irá carregar no arquivo txt(dados.txt) os dados das funções usadas durante a execução do programa.
void PassarProdutoArquivo(ListaSetor **lista,char *NomeSetor, char *nomeproduto, float preco, char *marca, int quantidade);
- Descrição: Essa função verifica se tem setores cadastrados.
int VaziaSetor(ListaSetor **lista);
- Descrição: Essa função serve para pegar os dados que esrtão na lista encadeada e jogar para o arquivo(dados.txt).
void SalvarDados(ListaSetor **lista, FILE *arquivo);
- Descrição: Essa função veririfica se há caracteres especiais no que o usuário digitar no terminal.
int verificaCaracterEspecial (char* nome);
- Descrição: Essa função veririfica se há números quando o usuário digitar em um função que só pede string's.
int Verificanum(char* nome);
- Descrição: Esta função vai unir as funções Verificanum e verificaCaracterEspecial.
int verificanome(char* nome);
- Descrição: Esta função alterar todas as letras para maiúscula.
void passarMaiuscula(char* nome);
- Descrição: Essa função veririfica se só há números (usada quando pedir quantidade de produtos).
int VerificaInt(int *nome);
- Descrição: Essa função veririfica se o usuário digitou apenas números, deve aceitar float(usada quando pedir para informar preço de produto).
int VerificaFloat(float *num);
- Descrição: Essa função vai englobar todas as outras funções, apresentando o menu principal com as funcionaldiades da loja de produtos de limpeza.
int main (void)