Ir ao conteúdo
  • Cadastre-se

Gutypower

Membros Juniores
  • Total de itens

    1
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Bom dia, estou com um problema em meu codigo, Nesse projeto, iremos armazenar registro de vendas diário de um supermercado em uma ABB. Cada registro de compras tem os seguintes dados: - Data da venda: adotaremos o formato aaaa/mm/dd. Esta maneira facilita a comparação de datas. Você poderá armazenar como string (vetor de caracteres) ou inteiro com 8 dígitos (20190301 para 1º de março de 2019). - cpf do vendedor - lista de itens: deverá ser uma lista encadeada de palavras. ex: leite -> pao -> doce. Cada item é apenas uma palavra (sem acentos, sem espaço). Regras: - Os registro de vendas serão indexados pela data. Isto é, a data da venda será a chave. - Estamos considerando que todas as vendas do dia estão armazenadas em um único registro. Desta forma, considere sua árvore não terá chaves/datas repetidas. Na vida real, consideraríamos data+hora como chave e permitiríamos repetições. - A lista de item pode ser implementada como desejar (isto é, escolha seu método de inserção - no início, meio ou fim), desde que seja uma lista encadeada. Eu não consigo registrar mais de duas venda que ele da erro, queria saber se alguém consegue me ajudar. Até ai já agradeço.<3TestesTrabalho2.txt #include <stdio.h> #include <stdlib.h> #include <string.h> struct produto{ char p[20]; struct produto *prox; }; struct noVenda { int data; char cpf[14]; // char produto[20]; struct produto prod; struct produto *inicio; struct noVenda *esq , *dir , * pai; }; typedef struct noVenda *noVenda; typedef struct produto *produto; //Contagem de nos int numero_nos ( noVenda raiz) { if ( (raiz) == NULL ) return 0; return numero_nos (raiz-> esq ) + numero_nos (raiz-> dir ) + 1; } //Valor Minimo noVenda minimo ( noVenda raiz ) { if ( raiz== NULL || raiz-> esq == NULL ) return raiz; return minimo (raiz-> esq); } //Ancestral da direita noVenda ancestral_a_direita ( noVenda raiz) { if (raiz == NULL ) return NULL ; if (raiz->pai == NULL || raiz->pai->esq == raiz) return raiz-> pai ; else return ancestral_a_direita (raiz-> pai); } //Sucessor noVenda sucessor ( noVenda raiz) { if (raiz-> dir != NULL ) return minimo (raiz->dir); else return ancestral_a_direita (raiz); } void criaProduto(produto *inicio){ produto novoProd; // char auxproduto[20]; produto aux = NULL; printf("Nome do produto:"); scanf("%s",&novoProd->p); fflush(stdin); // strcpy (novoProd->prod.p,auxproduto); if((*inicio) == NULL){ (*inicio) = novoProd; printf("%s", (*inicio)->p); getch() ; }else{ aux = (*inicio); while(aux->prox != NULL){ aux = aux->prox; } aux->prox= novoProd; printf("%s", (*inicio)->p); } } void percorreProduto(produto *inicio){ produto aux = NULL; aux =(*inicio); while(aux!=NULL){ printf("%s", aux->p); aux = aux->prox; } } //inserir noVenda inserir ( noVenda *raiz , int datav ) { noVenda novo ; char auxcpf[14]; // char auxproduto[20]; if ((*raiz) == NULL ) { novo = (noVenda) malloc (sizeof(struct noVenda)); novo -> esq = NULL; novo ->dir = NULL ; // novo ->produto = NULL; novo -> data = datav ; novo -> inicio = NULL ; printf("CPF do Vendedor:"); scanf("%s",&auxcpf); fflush(stdin); strcpy (novo->cpf,auxcpf); criaProduto(&(novo)->inicio); // printf("Nome do produto:"); // scanf("%s",&auxproduto); // fflush(stdin); // strcpy (novo->produto->produto,auxproduto); return novo ; } if ( datav < (*raiz) -> data ){ (*raiz) -> esq = inserir (&(*raiz)->esq , datav ); (*raiz)->esq->pai=(*raiz); } else{ (*raiz) -> dir = inserir (&(*raiz) ->dir , datav ); (*raiz)->dir->pai=(*raiz); } return (*raiz ); } void buscaInsere ( noVenda *raiz, int datav) { if ( (*raiz)== NULL || datav == (*raiz)->data ) criaProduto(&(*raiz)->inicio); if ( datav < (*raiz)-> data ) buscaInsere (&(*raiz)->esq, datav ); else buscaInsere (&(*raiz)->dir , datav ); } noVenda buscar ( noVenda *raiz, int datav) { if ( (*raiz)== NULL || datav == (*raiz)->data ) return (*raiz ); if ( datav < (*raiz)-> data ) return buscar (&(*raiz)->esq, datav ); else return buscar (&(*raiz)->dir , datav ); } noVenda minimoi( noVenda raiz ) { while ( raiz != NULL && raiz -> esq != NULL ) raiz = raiz -> esq ; return raiz; } int main(int argc, char *argv[]) { noVenda raiz = NULL; noVenda b; noVenda s; noVenda u; noVenda r; int t; int datav; int opca; while(opca != 5){ system("cls"); printf("----------Menu----------\n\n"); printf("1-Registar Venda\n"); printf("2-Consultar Venda\n"); printf("3-Mostrar Vendas\n"); printf("4-Sair\n\n"); printf("Digite opcao:"); scanf("%d",&opca); fflush(stdin); system("cls"); if(opca==1){ printf("Digite data da venda:"); scanf("%d",&datav); fflush(stdin); system("cls"); b=buscar(&raiz, datav); if(b==NULL){ printf("**********Novo Registro**********\n\n"); printf("Data da Venda:"); printf("%d\n",datav); raiz=inserir(&raiz, datav); system("cls"); printf("Registro inserido\n"); printf("%s", raiz->inicio->p); }else{ printf("Registro ja existe\n"); buscaInsere(&raiz, datav); printf("Produto inserido\n"); // percorreProduto(&(b)->inicio); //printf("Data de Registro ja existe"); system("cls"); } getchar(); system("cls"); } if(opca==2){ printf("Digite data da consulta:"); scanf("%d",&datav); fflush(stdin); system("cls"); b=buscar(&raiz, datav); if(b!=NULL){ printf("------------------------------\n"); printf("Data:"); printf("%d\n",b->data); printf("CPF do vendedor:"); printf("%s\n",b->cpf); printf("Nome do produto:"); printf("%s\n",b->prod.p); s=sucessor(b); if(s!=NULL){ printf("------------------------------\n"); printf("Data:"); printf("%d\n",s->data); printf("CPF do vendedor:"); printf("%s\n",s->cpf); printf("Nome do produto:"); // printf("%s\n",s->produto); s=sucessor(s); if(s!=NULL){ printf("------------------------------\n"); printf("Data:"); printf("%d\n",s->data); printf("CPF do vendedor:"); printf("%s\n",s->cpf); printf("Nome do produto:"); // printf("%s\n",s->produto); printf("------------------------------"); } } getch(); }else{ printf("Registro nao existe"); getch(); } } if(opca==3){ t= numero_nos(raiz); s=minimo(raiz); do{ if(s!=NULL){ printf("------------------------------\n"); printf("Data:"); printf("%d\n",s->data); printf("CPF do vendedor:"); printf("%s\n",s->cpf); printf("Nome do produto:"); // printf("%s\n",s->produto); printf("------------------------------\n"); t--; s=sucessor(s); }else{ printf("Nao existem registros"); } }while(t!=0); getch(); } } return 0; }

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda_a_Ler_Resistores_e_Capacitores-capa-3d-newsletter.jpg

ebook grátis "Aprenda a ler resistores e capacitores", de Gabriel Torres

GRÁTIS! BAIXE AGORA MESMO!