Advertisement
Jvsierra

Relatorio (bugado ainda)

Oct 18th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.26 KB | None | 0 0
  1. #include <stdio.h>
  2. #include "meuconio.h"
  3. #include <string.h>
  4. #include <conio.h>
  5. #include <ctype.h>
  6. #include <stdlib.h>
  7.  
  8. struct TpData
  9. {
  10.     int dia, mes, ano; 
  11. };
  12.  
  13. struct TpPessoa
  14. {
  15.     char login[10], nome[40];
  16.     int senha, status, totPontos;
  17.     TpData Data;   
  18. };
  19.  
  20. char Menu(void)
  21. {
  22.     clrscr();
  23.    
  24.     printf("[A] - Cadastrar pessoa\n");
  25.     printf("[B] - Gerar relatorio\n");
  26.     printf("[ESC] - Sair\n");
  27.    
  28.     return toupper(getche());
  29. }
  30.  
  31. void CadPessoa(FILE *PtrArq)
  32. {
  33.     TpPessoa Reg;
  34.    
  35.     clrscr();
  36.    
  37.     PtrArq = fopen("Pessoa.dat", "ab+");
  38.    
  39.     if(PtrArq == NULL)
  40.         printf("Impossivel abrir arquivo\n");
  41.     else
  42.     {
  43.         printf("Login:\n");
  44.         fflush(stdin);
  45.         gets(Reg.login);
  46.        
  47.         while(strcmp(Reg.login, "\0") != 0)
  48.         {
  49.             printf("Nome:\n");
  50.             fflush(stdin);
  51.             gets(Reg.nome);
  52.            
  53.             printf("Senha:\n");
  54.             textcolor(0);
  55.             scanf("%d", &Reg.senha);
  56.            
  57.             textcolor(7);
  58.            
  59.             fflush(stdin);
  60.            
  61.             printf("Data (dd mm aaaa):\n");
  62.             scanf("%d %d %d", &Reg.Data.dia, &Reg.Data.mes, &Reg.Data.ano);
  63.            
  64.             Reg.totPontos = 0;
  65.             Reg.status = 1;
  66.            
  67.             fwrite(&Reg, sizeof(TpPessoa), 1, PtrArq);
  68.            
  69.             printf("\n\nPessoa cadastrada!\n\n");
  70.            
  71.             printf("Login:\n");
  72.             fflush(stdin);
  73.             gets(Reg.login);
  74.         }
  75.        
  76.     }
  77.    
  78.     fclose(PtrArq);
  79.    
  80.     getch();
  81. }
  82.  
  83. void Relatorio(FILE *PtrArq)
  84. {
  85.     TpPessoa Reg;
  86.    
  87.     clrscr();
  88.    
  89.     PtrArq = fopen("Pessoa.dat", "rb");
  90.    
  91.     if(PtrArq == NULL)
  92.         printf("Impossivel abrir arquivo\n");
  93.     else
  94.     {
  95.         while(!feof(PtrArq))
  96.         {
  97.             fread(&Reg, sizeof(TpPessoa), 1, PtrArq);
  98.            
  99.             printf("Nome: %s\n", Reg.nome);
  100.             printf("Login: %s\n", Reg.login);
  101.             printf("Senha: %d\n", Reg.senha);
  102.             printf("Status: %d\n", Reg.status);
  103.             printf("%d pontos\n", Reg.totPontos);
  104.             printf("Data: %d %d %d\n", Reg.Data.dia, Reg.Data.mes, Reg.Data.ano);
  105.             printf("\n**********\n");
  106.         }
  107.        
  108.         printf("\n\nListagem concluida\n\n");
  109.     }
  110.    
  111.     fclose(PtrArq);
  112.    
  113.     getch();
  114. }
  115.  
  116. void Executa(void)
  117. {
  118.     char Op;
  119.     FILE *ArqP;
  120.    
  121.     Op = Menu();
  122.    
  123.     while(Op != 27)
  124.     {
  125.         switch(Op)
  126.         {
  127.             case 'A':
  128.                 CadPessoa(ArqP);
  129.             break;
  130.             case 'B':
  131.                 Relatorio(ArqP);
  132.             break;
  133.             default:
  134.                 printf("Opcao invalida\n");
  135.                 getch();
  136.         }
  137.        
  138.         Op = Menu();
  139.     }
  140.    
  141.     getch();
  142. }
  143.  
  144. int main(void)
  145. {
  146.     Executa();
  147.    
  148.     return 1;
  149. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement