Gabriel_Duarte

Untitled

Dec 4th, 2013
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.94 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. typedef struct
  5. {
  6.     int codigo;
  7.     char nome[20];
  8.     char marca[20];
  9.     float preco;
  10.     int qtd_estoque;
  11.     char nome_vendedor[50];
  12.     char telefone[16];
  13. }Produtos;
  14.  
  15. void cadastrar_produto(Produtos *cadastroAtual, int *ContCadastroValido)
  16. {
  17.     FILE *WArquivo;
  18.     WArquivo = fopen("Arquivo.txt", "a");
  19.     if(WArquivo == NULL)
  20.     {
  21.         printf("Erro ao ler Arquivo\n");
  22.         exit(-1);
  23.     }
  24.    
  25.     printf("---- Cadastro de Produtos ----\n");
  26.     fflush(stdin);
  27.    
  28.     printf("Digite o codigo do produto: ");
  29.     scanf("%d", &cadastroAtual->codigo);
  30.     fprintf(WArquivo, "%d|", cadastroAtual->codigo);
  31.    
  32.     fflush(stdin);
  33.     printf("Digite o nome do Produto: ");
  34.     gets(cadastroAtual->nome);
  35.     fprintf(WArquivo, "%s|", cadastroAtual->nome);
  36.    
  37.     fflush(stdin);
  38.     printf("Digite a marca do Produto: ");
  39.     gets(cadastroAtual->marca);
  40.     fprintf(WArquivo, "%s|", cadastroAtual->marca);
  41.    
  42.     fflush(stdin);
  43.     printf("Digite o preco do Produto: ");
  44.     scanf("%f", &cadastroAtual->preco);
  45.     fprintf(WArquivo, "%.2f|", cadastroAtual->preco);
  46.    
  47.     fflush(stdin);
  48.     printf("Digite a quantidade em estoque: ");
  49.     scanf("%d", &cadastroAtual->qtd_estoque);
  50.     fprintf(WArquivo, "%d|", cadastroAtual->qtd_estoque);
  51.    
  52.     fflush(stdin);
  53.     printf("Digite o nome do vendedor: ");
  54.     gets(cadastroAtual->nome_vendedor);
  55.     fprintf(WArquivo, "%s|", cadastroAtual->nome_vendedor);
  56.    
  57.     fflush(stdin);
  58.     printf("Digite o telefone do vendedor - formato +55 12-1234-1234: ");
  59.     gets(cadastroAtual->telefone);
  60.     fprintf(WArquivo, "%s|\n", cadastroAtual->telefone);
  61.    
  62.     fclose(WArquivo);
  63. }
  64.  
  65. int main()
  66. {
  67.     Produtos Dados[10];
  68.     Produtos *pontDados = NULL;
  69.     int ContCadastroValido=0;
  70.     int *pontCadastroValido=0;
  71.     pontCadastroValido = &ContCadastroValido;
  72.     pontDados = &Dados[ContCadastroValido];
  73.     char strdados[150];
  74.     char *pontstrdados;
  75.     FILE *Arquivo;
  76.     int create;
  77.     if((Arquivo = fopen("Arquivo.txt", "r")) == NULL)
  78.     {
  79.        
  80.         printf("----- O Arquivo de dados nao existe - Digite '9'para cria-lo -----\n\n");
  81.         scanf("%d", &create);
  82.         if(create == 9)
  83.         {
  84.             Arquivo = fopen("Arquivo.txt", "w");
  85.             fprintf(Arquivo, "12|nome|teste|12.2|1|teste|212121"); //Inserindo um dado manual com isso nao precisaria do teste que foi feito
  86.             printf("Arquivo criado com sucesso\n\n\n");
  87.             system("pause");
  88.             fclose(Arquivo); // Fechando
  89.         }
  90.     }
  91.     /*Aqui poderia fazer um teste para ver se acabou de criar o arquivo, se acabou é pq não tem nada dentro
  92.     O ideal era criar o arquivo só na hora que alguem inserisse algo dentro dele*/
  93.     if(create != 9)
  94.     {
  95.     Arquivo = fopen("Arquivo.txt", "r"); // Abrindo para poder ler
  96.     while(!feof(Arquivo))
  97.     {
  98.         fgets(strdados, 150, Arquivo);
  99.         pontstrdados = strtok(strdados, "|");
  100.         int x=1;
  101.         int z=0;
  102.  
  103.         for(x = 1; x < 8; x++)
  104.         {
  105.             switch(x)
  106.             {
  107.                 case 1:
  108.                     Dados[z].codigo = atoi(pontstrdados);
  109.                     break;
  110.                 case 2:
  111.                     strcpy(Dados[z].nome, pontstrdados);
  112.                     break;
  113.                 case 3:
  114.                     strcpy(Dados[z].marca, pontstrdados);
  115.                     break;
  116.                 case 4:
  117.                     Dados[z].preco = atof(pontstrdados);
  118.                     break;
  119.                 case 5:
  120.                     Dados[z].qtd_estoque = atoi(pontstrdados);
  121.                     break;
  122.                 case 6:
  123.                     strcpy(Dados[z].nome_vendedor, pontstrdados);
  124.                     break;
  125.                 case 7:
  126.                     strcpy(Dados[z].telefone, pontstrdados);
  127.                     break; 
  128.             }
  129.             pontstrdados = strtok(NULL, "|");
  130.         }
  131.         z++;
  132.     }
  133.     fclose(Arquivo);
  134.     } //Fechando o teste
  135.    
  136.     int op=0;
  137.     printf("1: Adicionar novo produto\n");
  138.     printf("2: Editar produto\n");
  139.     printf("3: Listar infomacoes de todos os produtos(filtrando por nome/marca)\n");
  140.     printf("4: Aumentar preco dos produtos\n");
  141.     printf("5: Gerar relatorio - quantidade inferior a 10\n");
  142.     printf("6: Listar vendedores\n");
  143.     printf("7: Listar vendedores(filtrando por marca)\n");
  144.     scanf("%d", &op);
  145.     switch(op){
  146.     case 1:
  147.     cadastrar_produto(pontDados, pontCadastroValido);
  148.     break;
  149.     case 2:
  150.     break;
  151.     case 3:
  152.     break;
  153.     case 4:
  154.     break;
  155.     case 5:
  156.     break;
  157.     case 6:
  158.     break;
  159.     }
  160. system("pause");
  161. return 0;
  162. }
Advertisement
Add Comment
Please, Sign In to add comment