Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- struct data{
- int dia;
- int mes;
- int ano;
- };
- typedef struct data data;
- struct endereco{
- char rua[100];
- char cidade[30];
- char estado[30];
- int numero;
- };
- typedef struct endereco endereco;
- struct cliente{
- int cpf;
- int telefone;
- char nome[100];
- struct endereco;
- struct data;
- struct cliente *ant;
- struct cliente *prox;
- };
- typedef struct cliente cliente;
- struct produto{
- int codigo;
- char descricao;
- int quant_est;
- double preco_und;
- struct produto *ante;
- struct produto *proxi;
- };
- typedef struct produto produto;
- struct venda {
- int qtd_compra;
- struct cliente;
- struct produto;
- struct venda *antes;
- struct venda *proxim;
- };
- typedef struct venda venda;
- cliente *inicializar_cliente(int x){
- cliente *novo =(cliente*) malloc(sizeof(cliente));
- novo->cpf = x;
- printf("digite o nome do cliente: ");
- gets(novo->nome);
- printf("digite o telefone do cliente: ");
- scanf("%d", &novo->telefone);
- printf("digite a data de aniversario do cliente dd/mm/aaaa: ");
- scanf("%d/%d/%d", &novo->data->dia, &novo->data->mes, &novo->data->ano);
- printf("digitar o estado do cliente: ");
- gets(novo->endereco->estado);
- printf("digitar a cidade do cliente: ");
- gets(novo->endereco->cidade);
- printf("digitar a rua do cliente: ");
- gets(novo->endereco->rua);
- printf("digitar o numero do cliente: ");
- gets(novo->endereco->numero);
- novo->prox = NULL;
- novo->ant = NULL;
- return novo;
- }
- produto *inicializar_produto(int x){
- produto *novo =(produto*) malloc(sizeof(produto));
- novo->codigo = x;
- printf("digite a descricao do produto: ");
- gets(novo->descricao);
- printf("digite a quantidade de estoque: ");
- scanf("%d", &novo->quant_est);
- printf("digite o preco da unidade: ");
- scanf("%lf", novo->preco_und);
- novo->proxi = NULL;
- novo->ante = NULL;
- return novo;
- }
- void inclusao_cliente(cliente *lista, int cpf){
- int z = 0;
- if(lista->prox == NULL){
- cliente *novo = inicializar(cpf);
- lista->prox = novo;
- novo->ant = lista;
- }
- else {
- cliente *aux = lista;
- while(aux->prox != NULL){
- if(aux->cpf == cpf){
- z = 1;
- }
- aux = aux->prox;
- }
- if(z == 0){
- cliente *novo = inicializar_cliente(x);
- aux->prox = novo;
- novo->ant = aux;
- }
- }
- }
- void alteracao_cliente(cliente *lista, int cpf){
- int z = 0;
- cliente *aux= lista;
- while(aux->prox != NULL){
- if(aux->cpf == cpf){
- inicializar_cliente(cpf);
- z = 1
- }
- aux = aux->prox;
- }
- if(z == 0)
- printf("cliente nao encontrado\n");
- }
- void consulta_cliente(cliente *lista, int cpf){
- int z = 0;
- cliente *aux= lista;
- while(aux->prox != NULL){
- if(aux->cpf == cpf){
- printf("cpf: %d\n", aux->cpf);
- printf("nome: %s\n", aux->nome);
- printf("telefone: %d\n", aux->telefone);
- printf("estado: %s\n", aux->endereco->estado);
- printf("cidade: %s\n", aux->endereco->cidade);
- printf("rua: %s\n", aux->endereco->rua);
- printf("numero: %d\n", aux->endereco->numero);
- z = 1
- }
- aux = aux->prox;
- }
- if(z == 0)
- printf("cliente nao encontrado\n");
- }
- void deletar_cliente(cliente *lista, int cpf){
- }
- void inclusao_produto(produto *lista, int codigo){
- int z = 0;
- if(lista->proxi == NULL){
- produto *novo = inicializar_produto(codigo);
- lista->proxi = novo;
- novo->ante = lista;
- }
- else {
- produto *aux = lista;
- while(aux->proxi != NULL){
- if(aux->cpf == cpf){
- z = 1;
- }
- aux = aux->prox;
- }
- if(z == 0){
- produto *novo = inicializar_produto(codigo);
- aux->proxi = novo;
- novo->ante = aux;
- }
- }
- }
- void alteracao_produto(produto *lista, int codigo){
- int z = 0;
- produto *aux= lista;
- while(aux->proxi != NULL){
- if(aux->codigo == codigo){
- inicializar_produto(codigo);
- z = 1
- }
- aux = aux->proxi;
- }
- if(z == 0)
- printf("cliente nao encontrado\n");
- }
- void consulta_produto(produto *lista, int codigo){
- int z = 0;
- produto *aux= lista;
- while(aux->proxi != NULL){
- if(aux->cpf == cpf){
- printf("codigo: %d\n", aux->codigo);
- printf("descricao: %s\n", aux->descricao);
- printf("quantidade em estoque: %d\n", aux->quant_est);
- printf("preco unitario: %lf\n", aux->preco_und);
- z = 1
- }
- aux = aux->proxi;
- }
- if(z == 0)
- printf("cliente nao encontrado\n");
- }
- void deletar_produto(produto *lista, int codigo){
- }
- void inclusao_venda(venda *lista, int codigo, int cpf){
- venda* venda;
- venda = (venda*) malloc(sizeof(venda));
- venda->cliente->cpf = NULL;
- venda->produto->codigo = NULL;
- if(*lista == NULL){
- venda->ant = NULL;
- venda->prox = NULL;
- }
- else{}
- }
- void alteracao_venda(venda *lista, int codigo, int cpf){
- }
- void consulta_venda(venda *lista, int codigo, int cpf){
- }
- void deletar_venda(venda *lista, int codigo, int cpf){
- }
- int main (){
- int x, y, cp, cod;
- do{
- printf("1.Cliente\n2.Produto\n3.Vendas");
- scanf("%d",&x);
- switch(x){
- case 1:
- printf("1.Adicionar\n2.Alterar\n3.Consultar\n4.Deletar\n");
- scanf("%d", &y);
- switch(y){
- case 1:
- printf("digite o cpf do cliente: ");
- scanf("%d", &cp);
- inclusao_cliente(&cliente, cp);
- break;
- case 2:
- printf("digite o cpf do cliente: ");
- scanf("%d", &cp);
- alteracao_cliente(&cliente, cp);
- break;
- case 3:
- printf("digite o cpf do cliente: ");
- scanf("%d", &cp);
- consulta_cliente(&cliente, cp);
- break;
- case 4:
- printf("digite o cpf do cliente: ");
- scanf("%d", &cp);
- deletar_cliente(&cliente, cp);
- break;
- default:
- printf("valor invalido, tente novamente\n");
- }
- case 2:
- printf("1.Adicionar\n2.Alterar\n3.Consultar\n4.Deletar\n");
- scanf("%d", &y);
- switch(y){
- case 1:
- printf("digite o codigo do produto: ");
- scanf("%d", &cod);
- inclusao_cliente(&produto, cod);
- break;
- case 2:
- printf("digite o codigo do produto: ");
- scanf("%d", &cod);
- alteracao_produto(&produto, cod);
- break;
- case 3:
- printf("digite o codigo do produto: ");
- scanf("%d", &cod);
- consulta_produto(&produto, cod);
- break;
- case 4:
- printf("digite o codigo do produto: ");
- scanf("%d", &cod);
- deletar_produto(&produto, cod);
- break;
- default:
- printf("valor invalido, tente novamente\n");
- case 3:
- printf("1.Adicionar\n2.Alterar\n3.Consultar\n4.Deletar\n");
- scanf("%d", &y);
- switch(y){
- case 1:
- printf("digite o codigo do produto e o cpf do cliente: ");
- scanf("%d %d", &cod, &cp);
- inclusao_venda(&venda, cod, cp);
- break;
- case 2:
- printf("digite o codigo do produto e o cpf do cliente: ");
- scanf("%d %d", &cod, &cp);
- alteracao_venda(&venda, cod, cp);
- break;
- case 3:
- printf("digite o codigo do produto e o cpf do cliente: ");
- scanf("%d", &cod, &cp);
- consulta_venda(&venda, cod, cp);
- break;
- case 4:
- printf("digite o codigo do produto e o cpf do cliente: ");
- scanf("%d %d", &cod, &cp);
- deletar_produto(&produto, cod, cp);
- break;
- default:
- printf("valor invalido, tente novamente\n");
- }
- default:
- printf("valor invalid, tente novamente\n");
- }
- }
- }while (x!= 0);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement