Ir ao conteúdo
  • Cadastre-se

Geraldojunio23

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

2
  1. Galera beleza, to precisando de ajuda na elaboração de um trabalho. Meu projeto e um programa de cadastro de produtos, estou fazendo o registro dos mesmos em pilhas, preciso criar uma opção que faça busca destes produtos na pilha, por exemplo buscar pelo codigo do produto e ele exibir o registro completo do produto, criei uma opçaõ de ver a pilha completa mas tambem preciso da opção de busca pois é exigida no projeto. Alem disso esta tendo erros para salvar os dados em um arquivo txt, o programa roda normalmente mas sempre da que o arquivo não foi encontrado mesmo ja sendo criado e adicionado na mesma pasta. Se alguém puder solucionar este problemas para mim eu ficaria muito grato! #include <iostream> #include <string.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <locale.h> using namespace std; typedef struct cadastro { char produto[30]; int codigo; int quant; char valor; struct cadastro *estoque; } cadastro; cadastro *lista, *topo = NULL; int i=0; int n; FILE *arquivo; void inserir() { printf ("\n\n Quantos produtos deseja cadastrar?: "); scanf ("%d",&n); for (i=0; i<n; i++) { lista=(cadastro *) malloc (2*sizeof(cadastro)); fflush(stdin); printf("\n\n Produto: "); gets(lista->produto); printf(" Codigo: "); scanf("%d",&lista->codigo); printf(" Quantidade: "); scanf("%d",&lista->quant); printf(" Valor: R$"); scanf("%f",&lista->valor); lista->estoque=NULL; if(topo==NULL) //pilha vazia? { topo=lista; } else { lista->estoque=topo; topo=lista; } } } void imprimir () { cadastro *tmp; tmp=topo; if (tmp==NULL) //aqui ele testa p/ saber se a pilha está vazia { printf ("\n\n PILHA VAZIA! INSIRA UM DADO E TENTE NOVAMENTE.\n"); } else { while (tmp!=NULL) { printf("\n\n Produto: %s\n", tmp->produto); printf(" Codigo: %d\n",tmp->codigo); printf(" Quantidade: %d\n",tmp->quant); printf(" Valor: R$%0.2f\n\n",tmp->valor); tmp=tmp->estoque; } } } void deletar () { char alerta; cadastro *del; del = topo; if (topo == NULL) { printf ("\n\n Pilha vazia!\n"); } else { printf("\n\n Tem certeza que deseja excluir pilha? (S/N): "); scanf("%c",&alerta); //tolower if (alerta=='s') { topo = topo -> estoque; free(del); printf("\n Pilha apagada! \n"); } if (alerta=='n') { printf("\n Pilha apagada! \n"); } if (alerta!='s' && alerta!='n') { printf("\n\n Opcao invalida\n"); } } } void buscar() { // ????? } void backup () { FILE *arquivo; cadastro *tmp; tmp = topo; arquivo=fopen("estoque.txt","wb"); if(arquivo==NULL) {printf("\n Erro na abertura do arquivo \n"); }else{ if(tmp==NULL) {printf("\n Erro ao salvar pois a pilha esta vazia \n"); } while (tmp!=NULL) { fprintf(arquivo,"\n\n Produto: %s \n",tmp->produto); fprintf(arquivo," Codigo: %d \n",tmp->codigo); fprintf(arquivo," Quantidade: %d \n",tmp->quant); fprintf(arquivo," Valor: %f ",tmp->valor); tmp=tmp->estoque; } fclose(arquivo); printf("\n\n ARQUIVO SALVO COM SUCESSO!\n"); } } int main () { char op_menu=0, op_menu_interno=0; do {//Menu printf("\n\t____________________\n\n\tREGISTRO DE PRODUTOS\n\t____________________\n\n\n"); printf("\t1 - Cadastro\n"); printf("\t2 - Ver cadastros\n"); printf("\t3 - Excluir cadastro\n"); printf("\t4 - Buscar produto\n"); printf("\t5 - Copiar (Backup)\n"); printf("\t6 - Sair\n\n"); printf("\tInforme a opcao desejada: "); scanf("%d",&op_menu ); op_menu=tolower(op_menu); fflush(stdin); switch(op_menu) { case 1 : fflush(stdin); system("cls"); //limpa a tela inserir(); printf("\n"); do { printf(" 0 - Menu principal: "); scanf("%s",&op_menu_interno); } while (op_menu_interno!='0'); system("cls"); break; fflush(stdin); case 2: system("cls"); imprimir(); printf("\n"); do { printf(" 0 - Menu principal: "); scanf("%s",&op_menu_interno); } while (op_menu_interno!='0'); system("cls"); break; case 3: fflush(stdin); system("cls"); deletar(); printf("\n"); do { printf(" 0 - Menu principal: "); scanf("%s",&op_menu_interno); } while (op_menu_interno!='0'); system("cls"); break; case 4: // buscar case 5: fflush(stdin); system("cls"); backup(); printf("\n"); do { printf(" 0 - Menu principal: "); scanf("%s",&op_menu_interno); } while (op_menu_interno!='0'); system("cls"); break; case 6: system("cls"); printf("\n"); printf("Finalizando programa..."); printf("\n"); exit(0); break; default: system("cls"); printf("Codigo invalido! Digite novamente"); break; } } while (op_menu!=7); return (0); }
  2. Olá pessoal Estou cursando engenharia de controle e automação e estou com grandes dificuldades em aprender algoritmos ainda mais no ensino remoto. Tenho que elaborar um projeto na linguagem c++ com as devidas características exigidas na imagem, pensei em fazer um programa de controle de estoque ou de cadastro de pessoas. Se alguém puder me ajudar me me dando dicas de como poderia elaborar ou criando uma base para que ei possa fazer a implar os dados e dar seguimento iria me salvar literalmente!!!, Agradeço.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!