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
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
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 a 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