Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include "meuconio.h"
- #include <string.h>
- #include <conio.h>
- #include <ctype.h>
- #include <stdlib.h>
- struct TpData
- {
- int dia, mes, ano;
- };
- struct TpPessoa
- {
- char login[10], nome[40];
- int senha, status, totPontos;
- TpData Data;
- };
- char Menu(void)
- {
- clrscr();
- printf("[A] - Cadastrar pessoa\n");
- printf("[B] - Gerar relatorio\n");
- printf("[ESC] - Sair\n");
- return toupper(getche());
- }
- void CadPessoa(FILE *PtrArq)
- {
- TpPessoa Reg;
- clrscr();
- PtrArq = fopen("Pessoa.dat", "ab+");
- if(PtrArq == NULL)
- printf("Impossivel abrir arquivo\n");
- else
- {
- printf("Login:\n");
- fflush(stdin);
- gets(Reg.login);
- while(strcmp(Reg.login, "\0") != 0)
- {
- printf("Nome:\n");
- fflush(stdin);
- gets(Reg.nome);
- printf("Senha:\n");
- textcolor(0);
- scanf("%d", &Reg.senha);
- textcolor(7);
- fflush(stdin);
- printf("Data (dd mm aaaa):\n");
- scanf("%d %d %d", &Reg.Data.dia, &Reg.Data.mes, &Reg.Data.ano);
- Reg.totPontos = 0;
- Reg.status = 1;
- fwrite(&Reg, sizeof(TpPessoa), 1, PtrArq);
- printf("\n\nPessoa cadastrada!\n\n");
- printf("Login:\n");
- fflush(stdin);
- gets(Reg.login);
- }
- }
- fclose(PtrArq);
- getch();
- }
- void Relatorio(FILE *PtrArq)
- {
- TpPessoa Reg;
- clrscr();
- PtrArq = fopen("Pessoa.dat", "rb");
- if(PtrArq == NULL)
- printf("Impossivel abrir arquivo\n");
- else
- {
- while(!feof(PtrArq))
- {
- fread(&Reg, sizeof(TpPessoa), 1, PtrArq);
- printf("Nome: %s\n", Reg.nome);
- printf("Login: %s\n", Reg.login);
- printf("Senha: %d\n", Reg.senha);
- printf("Status: %d\n", Reg.status);
- printf("%d pontos\n", Reg.totPontos);
- printf("Data: %d %d %d\n", Reg.Data.dia, Reg.Data.mes, Reg.Data.ano);
- printf("\n**********\n");
- }
- printf("\n\nListagem concluida\n\n");
- }
- fclose(PtrArq);
- getch();
- }
- void Executa(void)
- {
- char Op;
- FILE *ArqP;
- Op = Menu();
- while(Op != 27)
- {
- switch(Op)
- {
- case 'A':
- CadPessoa(ArqP);
- break;
- case 'B':
- Relatorio(ArqP);
- break;
- default:
- printf("Opcao invalida\n");
- getch();
- }
- Op = Menu();
- }
- getch();
- }
- int main(void)
- {
- Executa();
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement