#include #include #include #define MAXPROD 50 // Antiga declaracao de vetores independentes // char Produto[MAXPROD][30]; // int CodProd[MAXPROD]; // double Preco [MAXPROD]; // Criacao de um registro unico typedef struct { int CodProd; char Produto[30]; double Preco; } t_prod; // Declaracao do Vetor de Produtos t_prod Tabela[MAXPROD]; char nomprod[30]; int codp; double pr; int continua=1; int total=0; int opcao; int achei; int i; // SUB-ROTINAS // INSERE void insere(void) { printf("1 - Inserir dados\n"); printf("\n"); printf("Digite o codigo do produto: "); scanf("%d",&codp); printf("Digite o nome do produto : "); fflush(stdin); gets(nomprod); printf("Digite o preco do produto : "); scanf("%lf",&pr); if (total == MAXPROD) { printf("> Maximo de produtos alcancado!\n"); } else { strupr(nomprod); strcpy(Tabela[total].Produto,nomprod); Tabela[total].CodProd=codp; Tabela[total].Preco=pr; total++; } printf("> Adicionado\n"); printf("\n"); system("pause"); } // LISTAR void listar(void) { printf("2 - Listar dados\n"); printf("\n"); for (i=0; i < total; i++) { printf("* Item : [%d]\n",i); printf(" Codigo : %d\n", Tabela[i].CodProd); printf(" Produto: %s\n", Tabela[i].Produto); printf(" Preco : %.2lf\n",Tabela[i].Preco); } system("pause"); } // CONSULTAR void consultar(void) { printf("3 - Consultar dados\n"); printf("\n"); printf("Digite o nome do produto procurado: "); fflush(stdin); gets(nomprod); achei=0; strupr(nomprod); for (i=0; i < total; i++) { if (strstr(Tabela[i].Produto,nomprod) != 0) { printf("* Item : [%d]\n",i); printf("Codigo : %d\n", Tabela[i].CodProd); printf("Produto: %s\n", Tabela[i].Produto); printf("Preco : %.2lf\n",Tabela[i].Preco); achei=1; } } if (!achei) printf("> Produto nao encontrado!\n"); printf("\n"); system("pause"); } // SALVAR void salvar(void) { FILE *Arq; printf("4 - Salvar dados\n"); printf("\n"); Arq=fopen("Dados.txt","wt"); if (Arq == NULL) printf (">> ERRO NO SALVAMENTO DO ARQUIVO!\n"); else { for (i=0; i < total; i++) { printf("* Item : [%d]\n",i); fprintf(Arq,"%d\n", Tabela[i].CodProd); fprintf(Arq,"%s\n", Tabela[i].Produto); fprintf(Arq,"%.2lf\n",Tabela[i].Preco); } fprintf(Arq,"-1"); printf(">> Arquivo Salvo!\n"); fclose(Arq); } printf("\n"); system("pause"); } // LER void ler(void) { FILE *Arq; int i; printf("5 - Ler dados\n"); printf("\n"); Arq=fopen("Dados.txt","rt"); if (Arq == NULL) printf (">> ERRO NA LEITURA DO ARQUIVO!\n"); else { total=0; while (!feof(Arq)) { fscanf(Arq,"%d ",&Tabela[total].CodProd); if (Tabela[total].CodProd==-1) break; fgets(Tabela[total].Produto,30,Arq); // Se tiver um '\n' na descricao do produto, remove for (i=0; i < strlen(Tabela[total].Produto); i++) if (Tabela[total].Produto[i]=='\n') Tabela[total].Produto[i]=' '; fscanf(Arq,"%lf ",&(Tabela[total].Preco)); printf("* Item Lido: [%d]\n",total); total++; } printf(">> Arquivo Lido!\n"); fclose(Arq); } printf("\n"); system("pause"); } // // MAIN // void main(void) { /* Menu da Aplicacao */ while (continua) { system("cls"); printf(">> Controle de Produtos <<\n"); printf("\n"); printf("Menu:\n"); printf("1 - Inserir dados\n"); printf("2 - Listar dados\n"); printf("3 - Consultar dados\n"); printf("4 - Salvar dados\n"); printf("5 - Ler dados\n"); printf("0 - Sair do programa\n"); printf("Digite sua opcao: "); scanf ("%d",&opcao); printf("\n"); switch(opcao) { case 1: insere(); break; case 2: listar(); break; case 3: consultar(); break; case 4: salvar(); break; case 5: ler(); break; case 0: printf("Deseja mesmo sair (0=Nao,1=Sim)? "); scanf("%d",&opcao); if (opcao == 1) continua=0; break; default: printf ("> Opcao invalida!\n"); system("pause"); break; } } printf("\n"); system("PAUSE"); // return 0; }