Pages

segunda-feira, 18 de janeiro de 2021

Lista dinâmica que crie um sistema de cadastro em C++

Lista dinâmica  em C++  que crie um sistema de cadastro 

Atenção: Precisando de assessoria nos seus PROJETO entre em contato com a SGP

E-mail: ajudastrabalhosprogramacao@gmail.com

Whats: (15) 99704-0447


2.1. O sistema deve ser capaz de cadastrar, alterar e excluir clientes
2.2. O sistema deve ser capaz de cadastrar, alterar e excluir pedidos
2.3. O sistema não deve permitir a exclusão dos clientes com pedidos associados
2.4. O Sistema deve apresentar uma lista que permita selecionar o cliente e o sistema retornar a lista de pedidos do cliente
2.5. O sistema não deve permitir cadastrar dois clientes repetidos na lista de clientes  




#include <conio.h>
#include <malloc.h>
#include <cstdlib>
#include <iostream>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
using namespace std;


//==================Estrutura para o cadastro do Produto
typedef struct{
        int id;
        char nome[31];
        float preco;        
}PRODUTO;

//==================Estrutura para o cadastro da lista de Pedidos
typedef struct{
        int id, idProduto,idCliente,qtd;       
        float valorTotal;        
}LISTAPRODUTO;

//==================Estrutura para a lista de produtos rever parar tirar depois
struct listaproduto{
       LISTAPRODUTO listaproduto;
       struct listaproduto* prox;
};


//==================ESTRUTURA PARA A LISTA DE PRODUTOS
struct listap{
       PRODUTO prod;
       struct listap* prox;
};

typedef struct listap LISTAP;


//==================Estrutura para o cadastro do cliente
typedef struct{
        int id, idade;
        char nome[31], uf[2];  
        LISTAP* pp;
}CLIENTE;

//==================Estrutura para a lista de clientes
struct listcli{
       CLIENTE cli;
       struct listcli* prox;
};
typedef struct listcli LISTCLI; 
typedef struct listaproduto LISTAPRODUTOC;  

  
//==================FUNÇÕES DE MENU 

int menu();//Função para menu principal
int menuCliente();//Função para o menu Cliente

//==================FUNÇÕES PARA O CADASTRO DA LISTA DE PEDIDOS 

LISTAPRODUTOC* cria_lista_pedido();//Função para criar a lista de pedidos
LISTAPRODUTOC* cadastra_lista_pedido(LISTAPRODUTOC* p, LISTCLI* LC, int idCliente, int idProduto, LISTAP* pr);//Funçõa para cadastrar a lista de pedidos
void exibir_lista_pedido(LISTAPRODUTOC* P, LISTCLI* LC ,LISTAP* pr);//Função para exibir a lista de pedidos
LISTAPRODUTOC* alterar_lista_pedido(LISTAPRODUTOC* P, LISTCLI* LC ,LISTAP* pr);//Função para alterar a lista de pedidos
LISTAPRODUTOC* excluir_lista_pedido(LISTAPRODUTOC* P, LISTCLI* LC ,LISTAP* pr);//Função para excluir da lista de Pedidos
int verifica_lista_pedido(LISTAPRODUTOC* P, LISTCLI* LC, int idCliente);//Função para verificar na lista de pedidos se tem algum cliente vinculado


//==================FUNÇÃO PARA O CADASTRO DE PRODUTOS 

LISTAP* cria_lista_produto();//Função para criar a lista de produtos
LISTAP* cadastrar_lista_produto(LISTAP* p);//Função para o cadastro de produtos
int lista_vazia_produto(LISTAP* P);//Função para  verificar se a lista de produtos está vazia

int menu_produto(LISTAP* P);//Função que vai exibir os produtos e retonar o Id escolhido
void exibir_lista_produto(LISTAP* pdt);//Função para procurar o produto na lista
int verifica_produto_cadastrado(LISTAP* P, char produto[31]);//Função para verificar se o produto está cadastrado ou não
int verifica_lista_pedido2(LISTAPRODUTOC* P, LISTAP*pp, int idProduto);

//===================================FUNÇÕES PARA O CADASTRO DO CLIENTE 
LISTCLI* cria_lista_cliente();//Função para  cria lista de clientes 
LISTCLI* cadastra_lista_cliente(LISTCLI* LC);//Função para  cadastro de clientes
int lista_vazia_cliente(LISTCLI* LC);//Função para verificar se a lista de clientes está vazia
int subMenu(LISTCLI* CL);//Função que vai retonar o id do cliente escolhido detalhado
int subMenu2(LISTCLI* CL);//função que vai retornar os dados simples do cliente
void exibir_lista_cliente(LISTCLI* LC);//Função que vai exibir a lista de todos os clientes cadastrados
LISTCLI* remover_lista_cliente(LISTCLI* C, int op);//função que vai remover o cliente da lista
LISTCLI* alterar_lista_cliente(LISTCLI* C, int op);//função que vai alterar o cliente da lista
void procurar_lista_cliente(LISTCLI* lc);//função que vai procurar o cliente na lista
int verifica_cliente_cadastrado(LISTCLI* LC, char nome[31]);//função que vai verificar se o cliente já está cadastrado na lista


//==================VARAIVEIS NECESSÁRIAS 

//==================INICIO DAS FUNÇÕES 

//==================FUNÇÕES PARA A LISTA DE PEDIDOS 
//Função para criar a lista de pedidos
LISTAPRODUTOC* cria_lista_pedido(){
return NULL;
}

//==================Função para cadastrar a lista de pedidos
/*
A função para cadastrar a lista de pedidos vai receber os dados do cliente e do produto. A função irá realizar uma alocação na memoria para o cadastro da lista

*/
LISTAPRODUTOC* cadastra_lista_pedido(LISTAPRODUTOC* p, LISTCLI* LC, int idCliente, int idProd,LISTAP* pr){
    LISTAPRODUTOC* lp;
LISTCLI* pp;//vai receber os dados da lista de clientes
    LISTAP* p2;//vai receber os dados da lista de produtos
int aux=0, certo=1;
float valor;//para calcular o valor do produto mais a quantidade 
idLista++;//vai gerar um novo ID na lista sempre que tiver um novo cadastro
do{//Aqui vai verificar se o produto está na lista de pedidos ou não
certo=1;//vai inicializar o certo com 1 se o certo for 0 por que o produto está na lista se for 1 não está na lista e sai do laço de repetição
for(lp = p; lp!= NULL; lp= lp->prox){  //vai rodar a lista de pedidos
if(lp->listaproduto.idCliente == idCliente){//se encontrar o id do cliente é por que o cliente tem uma lista de pedidos
if(lp->listaproduto.idProduto == idProd){//se encontrar o produto na lista do cliente 
cout<<"Este produto já consta na lista"<<endl;//motsra uma mensagem de erro 
getche();
certo=0;//a variavel certo fica com valor 0 para poder repetir o laço mais uma vez
idProd = menu_produto(pr);//chama a função para escolher outro produto
}else{
certo=1;//caso o cliente tenha uma lista de pedido mas não tenha o produto o certo fica com valor de 1 para sair do laço
}
}    
}
}while(certo ==0);//vai rodar até o valor for diferente de 0

   LISTAPRODUTOC* novo=(LISTAPRODUTOC*) malloc(sizeof(LISTAPRODUTOC));//Vai criar um espaço novo
    
    
    //Vai realizar uma verificação na lista de produtos para saber se tem o id informado
    for(p2 = pr; p2!= NULL; p2= p2->prox){       
    if(p2->prod.id==idProd){ //quando encontrar o produto informado na lista de produtos      
        novo->listaproduto.idProduto = p2->prod.id;//vai cadastrar o id do produto na lista
        valor = p2->prod.preco;//e receber o valor do produto             
        }
    }

Atenção: Precisando de ajuda entre em contato com a SGP e solicite uma assessoria com melhor equipe do mercado no desenvolvimento de trabalhos acadêmicos

E-mail: ajudastrabalhosprogramacao@gmail.com

Facebook: fb.me/ajudaemTrabalhosdeprogramacao

0 comentários:

Postar um comentário

 
Copyright © 2023 2m Assessoria Academica todos os direitos reservados.
Contato para trabalhos: assessoria.academica2m@gmail.com - WhatsApp: (15) 98115 - 0680