Advertisement
MarceloSousa

Untitled

Nov 29th, 2013
312
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.89 KB | None | 0 0
  1. #include <stdio.h>
  2. #include "cadastro_carros.h"
  3. #include "arquivos.h"
  4.  
  5. void carro_inclui(void) {
  6.      FILE * p;
  7.      tcarro reg_carro;
  8.  
  9.      printf("\nCadastro de novo carro\n");
  10.  
  11.      p = (FILE *) abre_arquivo("carro.dat");
  12.      if (p == NULL)
  13.          mensagem("Erro ao criar/abrir arquivo carro.dat");
  14.      else {
  15.          setbuf(stdin, NULL);
  16.          printf("\nNome do carro: ");
  17.          gets(reg_carro.nome);
  18.          setbuf(stdin, NULL);
  19.          printf("\nMarca do carro: ");
  20.          gets(reg_carro.marca);
  21.          setbuf(stdin, NULL);
  22.          printf("\nValor da locacao: ");
  23.          scanf("%f", &reg_carro.valor);
  24.  
  25.  
  26.  
  27.  
  28.          fseek(p, 0, SEEK_END);
  29.          reg_carro.id = 1 + ftell(p) / sizeof(tcarro);
  30.          fseek(p, 0, SEEK_END);
  31.          reg_carro.flag = 0;
  32.          fseek(p, 0L, SEEK_END);
  33.          fwrite(&reg_carro, sizeof(tcarro), 1, p);
  34.          fclose(p);
  35.          mensagem("Dados gravados");
  36.      }
  37. }
  38.  
  39. void carro_altera(void) {
  40.     FILE *p;
  41.     tcarro reg_carro;
  42.     short int confirmacao, id,menu,valid_id=0;
  43.  
  44.     mensagem_menu("ALTERAÇÃO\n\n");
  45.     deseja_listar();
  46.     clrscr();
  47.     id=id_invalido();
  48.     printf("\t\t\t\tREGISTRO\n");
  49.     consulta_id(id);
  50.  
  51. //    printf("Deseja Alterar Esse Registro? (1) SIM / (2) NÃO: ");
  52.   //  scanf("%i",&confirmacao);
  53.     clrscr();
  54.  
  55.         p = fopen ("carro.dat","rb+");
  56.             if (p == NULL)
  57.              mensagem("Erro ao criar/abrir arquivo carro.dat");
  58.  
  59.             fseek(p, (id-1) * sizeof(tcarro), SEEK_SET);
  60.             fread(&reg_carro, sizeof(tcarro), 1, p);
  61.  
  62.  
  63.         mensagem_menu("ALTERAÇÃO\n\n");
  64.  
  65.  
  66.         do{
  67.         printf("Digite a Opção Desejada");
  68.         printf("ID3: %i\n",reg_carro.id);
  69.         printf("\n(1)Alterar Nome\n(2)Alterar Marca\n(3)Alterar Valor \n(4)Alteração Completa\n(0)Voltar ao Menu Principal\nOpção: ");
  70.         printf("ID4: %i\n",reg_carro.id);
  71.         scanf("%i",&menu);
  72.         if(menu<0||menu>4)
  73.             mensagem("Opção Inválida!");
  74.         clrscr();}while(menu<0||menu>4);
  75.  
  76.         printf("ID2: %i\n",reg_carro.id);
  77.  
  78.  
  79.         switch(menu){
  80.  
  81.  
  82.           case 1: {printf("Digite o Novo Nome do Carro: ");scanf("%s",&reg_carro.nome);mensagem("Registro Alterado com Sucesso!");break;}
  83.           case 2: {printf("Digite a Nova Marca do Carro: ");scanf("%s",&reg_carro.marca);mensagem("Registro Alterado com Sucesso!");break;}
  84.           case 3: {printf("Digite o Novo Valor do Carro: ");scanf("%f",&reg_carro.valor);mensagem("Registro Alterado com Sucesso!");break;}
  85.           case 4: {printf("Digite o Novo Nome do Carro: ");scanf("%s",&reg_carro.nome);
  86.                    printf("\nDigite a Nova Marca do Carro: ");scanf("%s",&reg_carro.marca);
  87.                    printf("\nDigite o Novo Valor do Carro: ");scanf("%f",&reg_carro.valor);mensagem("Registro Alterado com Sucesso!");break;}
  88.           case 0: cliente_altera();break;
  89.           default: printf("Opção Inválida!");}
  90.  
  91.  
  92.  
  93.  
  94.             fseek(p,(id-1)*sizeof(tcarro), SEEK_SET);
  95.             fwrite(&reg_carro, sizeof(tcarro), 1, p);
  96.  
  97.             fclose(p);
  98.   }
  99.  
  100. void carro_exclui(void) {
  101.     FILE * p;
  102.     tcarro reg_carro;
  103.     short int id,confirmacao;
  104.  
  105.     mensagem_menu("EXCLUSÃO\n\n");
  106.     deseja_listar();
  107.     clrscr();
  108.  
  109.     printf("Digite O Codigo do carro Desejado: ");
  110.     scanf("%i",&id);
  111.  
  112.     consulta_id(id);
  113.  
  114.     printf("\n\nDeseja Excluir esse Registro(1-Sim/2-Nao): ");
  115.     scanf("%i",&confirmacao);
  116.  
  117.  
  118.  
  119.     switch (confirmacao){
  120.       case 2: menu_cadastro_carros(); break;
  121.  
  122.       case 1: {
  123.  
  124.         p = fopen("carro.dat","rb+");
  125.              if (p == NULL)
  126.                  mensagem("Erro ao criar/abrir arquivo carro.dat");
  127.  
  128.  
  129.           fseek(p,(id-1)*sizeof(tcarro),SEEK_SET);
  130.           reg_carro.flag = 1;
  131.           fwrite(&reg_carro,sizeof(tcarro),1,p);
  132.           fclose(p);
  133.           mensagem("Registro Excluido com Sucesso!");break;}}
  134.  
  135.     getch();}
  136.  
  137. void carro_consulta(void) {
  138.     tcarro reg_carro;
  139.     int id;
  140.  
  141.     printf("Digite O Codigo do carro Desejado: ");
  142.     scanf("%i",&id);
  143.  
  144.     consulta_id(id);
  145.  
  146.    getch();}
  147.  
  148. void carro_lista(void) {
  149.      FILE * p;
  150.      tcarro reg_carro;
  151.  
  152.      printf("\nListagem de todos os carros cadastrados\n");
  153.  
  154.      p = (FILE *) abre_arquivo("carro.dat");
  155.      if (p == NULL)
  156.          mensagem("Erro ao criar/abrir arquivo carro.dat");
  157.      else {
  158.          while (!feof(p)) {
  159.                fread(&reg_carro, sizeof(tcarro), 1, p);
  160.                if (!feof(p)){
  161.                     if(reg_carro.flag==0)
  162.                    printf("\n%5d %-30s %-20s %10.2f %i", reg_carro.id, reg_carro.nome, reg_carro.marca, reg_carro.valor,reg_carro.flag);}
  163.          }
  164.          fclose(p);
  165.          mensagem("Fim da listagem");
  166.      }
  167. }
  168.  
  169. short int id_invalido (void){
  170.     short int verifica_id,valid_id=0, id=0;
  171.     tcarro reg_carro;
  172.     FILE *p;
  173.  
  174.     p=fopen("carro.dat","rb");
  175.          if (p == NULL)
  176.          mensagem("Erro ao criar/abrir arquivo carro.dat");
  177.  
  178.  
  179.     do {
  180.         printf("Digite O Codigo do carro Desejado: ");
  181.         scanf("%i",&id);
  182.  
  183.         fseek(p, 0, SEEK_END);
  184.         verifica_id = ftell(p)/sizeof(tcarro);
  185.         if (id > verifica_id || id< 1)
  186.             valid_id= 1;
  187.         else
  188.             valid_id= 0;
  189.  
  190.         if(valid_id!=0)
  191.             mensagem("ID Invalido");
  192.  
  193.         clrscr();}while (valid_id!=0);
  194.         fclose(p);
  195.     return id;}
  196.  
  197. void consulta_id(short int id){
  198.     FILE *p;
  199.     tcarro reg_carro;
  200.  
  201.     p=fopen("carro.dat","rb");
  202.  
  203.     fseek(p,(id-1)*sizeof(tcarro),SEEK_SET);
  204.     fread(&reg_carro,sizeof(tcarro),1,p);
  205.  
  206.     printf("\n%5d %-30s %-20s %10.2f\n", reg_carro.id, reg_carro.nome, reg_carro.marca, reg_carro.valor);
  207.     getch();
  208.     fclose(p);}
  209.  
  210. void deseja_listar(void){
  211. short int verifica;
  212.  printf("Deseja listar os Carros? (1) Sim / (2) Não: ");
  213.         scanf("%i",&verifica);
  214.         if(verifica==1){
  215.         carro_lista();}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement