Ir ao conteúdo
  • Cadastre-se

XNandaX

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

  1. XNandaX

    Busca

    Essa é uma busca exaustiva onde sua função é percorrer um registro até o fim. O que acontece é que você está lendo uma linha do arquivo e perguntando "enquanto não for final de arquivo e telefone IGUAL reg.destinarario, leia mais um registro" se telefone for IGUAL reg.destinatario, retorna a posição o registro. Com isso se o primeiro registro que você leu não tiver um telefone IGUAL ao reg.destinatario, ele nunca irá entrar nesse laço! O certo é você caminhar o registro perguntando "enquanto não for final de arquivo e telefone DIFERENTE de reg.destinarario, leia mais um registro" que ai o programa vai percorrer o arquivo inteiro e só vai sair se encontrar o telefone IGUAL ao reg.destinatario int BuscaMsg(FILE*arq, int tel) { TpMensagem reg; rewind(arq); fread(®,sizeof(TpMensagem),1,arq); while(!feof(arq) && tel!=reg.destinatario) //O erro está aqui nessa comparação, precisa ser diferente ou colocar uma negação !(tel==reg.destinatario) fread(®,sizeof(TpMensagem),1,arq); if(tel==reg.destinatario) return ftell(arq)-sizeof(TpMensagem); else return -1; }
  2. XNandaX

    Switch em C

    goto é muita gabiarra e não é recomendado fazer isso, pelo menos foi o que sempre me ensinaram... Ao invés disso use um do while que fica bem melhor com base no código acima: do { printf("\n 1 - Opcao 1 ");.....printf("\n 7 - Sair do Programa ");printf("\n\n Escolha uma opcao: ");escolha=getch(); switch (escolha){case '1':case:'2':...} }while(escolha!='7'); E ao invés de pegar os números 1 ao 7 com os códigos da tabela ASCII, pode colocá-los dessa forma entre apóstrofos que a variável vai pegar os números como se fossem caracteres, mas ainda assim é tipo int.
  3. Tinha feito um exercício bem parecido com esse no meu 1º ano da faculdade =P Segue o código: #include <stdio.h>#include <conio.h>#include <locale.h>#define TF 10 //Quantidade de pessoas que irão votar (só modificar aqui)int main(){ setlocale (LC_ALL, "Portuguese"); int cont=0, chapa, total_chapa1=0, total_chapa2=0,total_chapa3=0,total_chapanulo=0, total_chapabranco=0; float porc_chapa1, porc_chapa2, porc_chapa3; while(cont<TF) { printf("Informe o número da chapa: "); scanf("%d",&chapa); if(chapa==0) total_chapanulo++; if(chapa==1) total_chapa1++; if(chapa==2) total_chapa2++; if(chapa==3) total_chapa3++; if(chapa==' ') total_chapabranco++; cont++; } porc_chapa1=(float)total_chapa1/(total_chapanulo+total_chapa1+total_chapa2+total_chapa3+total_chapabranco)*100; porc_chapa2=(float)total_chapa2/(total_chapanulo+total_chapa1+total_chapa2+total_chapa3+total_chapabranco)*100; porc_chapa3=(float)total_chapa3/(total_chapanulo+total_chapa1+total_chapa2+total_chapa3+total_chapabranco)*100; if(porc_chapa1>50) printf("\nA chapa 1 é vencedora no primeiro turno!"); else if (porc_chapa2>50) printf("\nA chapa 2 é vencedora no primeiro turno!"); else if(porc_chapa3>50) printf("\nA chapa 3 é vencedora no primeiro turno!"); else printf("\nA chapa deverá concorrer ao segundo turno!"); printf("\nTotal de votos da chapa 1: %d",total_chapa1); printf("\nTotal de votos da chapa 2: %d",total_chapa2); printf("\nTotal de votos da chapa 3: %d",total_chapa3); printf("\nTotal de votos brancos: %d",total_chapabranco); printf("\nTotal de votos nulos: %d",total_chapanulo); printf("\n%.2f%%\n",porc_chapa1); printf("%.2f%%\n",porc_chapa2); printf("%.2f%%\n",porc_chapa3); getch();} Só não tem a porcentagem de nulos e brancos, mas com base nesse código da pra fazer tranquilo
  4. Módulo é a mesma coisa que função em C. Estou com problema na hora exibir os contatos da pessoa que está logada que está no módulo RelatorioContatos() Exemplo: Começando o programa apenas com usuários registrados, logando pela primeira vez e inserindo pela primeira vez: Se eu logar com a maria e adicionar joao e marcos, ao exibir o relatório irão aparecê-los...até ai ok. Deslogando e logando com o joao, se eu adicionar a maria e o marcos nos seus contatos e exibir, estes não aparecem... Ai se eu volto a logar na maria e adicionar outro contato pra ela, na hora de exibir este também não aparece, só os que eu tinha adicionado antes, no caso joao e marcos. Verificando o arquivo gerado AGENDA.DAT as relações usuários-contato estão gravadas corretamente, logo o problema está mesmo em exibir. A ideia é exibir apenas os contatos que o usuário logado inseriu na sua agenda. Maria adiciona João, Marcos e José. Precisa aparecer no relatório João, Marcos e José. João adiciona Maria, Bia e Carlos. Precisa aparecer no relatório Maria, Bia e Carlos. Segue o código completo agora: #include <stdio.h>#include <conio2.h>#include <ctype.h>#include <stdlib.h>#include <string.h>#include <Windows.h>#include <time.h>#include <locale.h> struct TpUsuarios{ char login[10], senha[10], nome[30], email[30], fone[15], dia[3], mes[3]; int status;}; struct TpAgenda{ char identificadordono[10], identificadorcolega[10];}; int Executa();void InserirContato(FILE *ArqUsuarios,FILE *ArqAgenda,char auxlogindono[10]);void RelatorioContatos(FILE *ArqUsuarios,FILE *ArqAgenda,char auxlogindono[10]); //Declarações int BuscaRegistroLogin(FILE *ArqUsuarios, char auxlogin[10]) //Verificar se login existe{ TpUsuarios RegU; rewind(ArqUsuarios); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); while(!feof(ArqUsuarios) && !(stricmp(auxlogin,RegU.login)==0 || stricmp(auxlogin,RegU.email)==0 || stricmp(auxlogin,RegU.fone)==0)) fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); if(stricmp(auxlogin,RegU.login)==0 || stricmp(auxlogin,RegU.email)==0 || stricmp(auxlogin,RegU.fone)==0) return (ftell(ArqUsuarios)/sizeof(TpUsuarios))-1; else return -1;} int BuscaRegistroSenha(FILE *ArqUsuarios, char auxsenha[10]) //Verificar se login existe{ TpUsuarios RegU; rewind(ArqUsuarios); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); while(!feof(ArqUsuarios) && stricmp(auxsenha,RegU.senha)!=0) fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); if(stricmp(auxsenha,RegU.senha)==0) return (ftell(ArqUsuarios)/sizeof(TpUsuarios))-1; else return -1;} int VerificaLoginSenha(FILE *ArqUsuarios, char auxlogin[10], char auxsenha[10]) //Verificar se senha existe{ int i=0; TpUsuarios RegU; rewind(ArqUsuarios); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); while(i<!feof(ArqUsuarios) && !(stricmp(RegU.login,auxlogin)==0 || stricmp(RegU.email,auxlogin)==0 || stricmp(RegU.fone,auxlogin)==0)) fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); if((RegU.login || RegU.email || RegU.fone) && stricmp(RegU.senha,auxsenha)==0) return i; else return -1;} int Menu1(){ system("cls"); textcolor(10); gotoxy(30,1);printf("### SISTEMA CELULAR ###\n"); textcolor(15); printf("\n1-Login"); printf("\n2-Registro"); printf("\n\n[ESC]-Sair"); int opcao1=getch();} int Menu3(){ system("cls"); printf("### MENU ###\n"); printf("\n1-Inserir Contato"); printf("\n2-Atualizar Contato"); printf("\n3-Buscar Contato"); printf("\n4-Excluir Contato"); printf("\n5-Limpar Dados"); printf("\n6-Relatório"); int opcao3=getch();} void Login(FILE *ArqUsuarios, FILE *ArqAgenda){ TpUsuarios RegU; int poslogin, posloginsenha, opcao2, opcao3, opcao4; char auxlogindono[10], auxsenhadono[10]; ArqUsuarios=fopen("USUARIOS.DAT","rb+"); system("cls"); printf("### LOGIN DE USUÁRIO ###\n"); printf("\nDigite o login: ");fflush(stdin);gets(auxlogindono); if(strcmp(auxlogindono,"\0")!=0) { poslogin=BuscaRegistroLogin(ArqUsuarios,auxlogindono); fseek(ArqUsuarios,poslogin*sizeof(TpUsuarios),0); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); printf("\nUsuário: %s",RegU.nome); printf("\n\nDigite a senha: ");fflush(stdin);gets(auxsenhadono); while(strcmp(auxlogindono,"\0")!=0) { posloginsenha=VerificaLoginSenha(ArqUsuarios,auxlogindono,auxsenhadono); if(posloginsenha!=-1) { printf("\nLogado com sucesso!"); Sleep(1500); do { system("cls"); printf("### MENU ###\n"); printf("\n1-Agenda"); printf("\n2-Mensagens"); printf("\n3-Aniversariantes do Mês"); printf("\n4-Relatório"); printf("\n\n[ESC]-Deslogar"); int opcao2=getch(); switch(opcao2) { case '1': opcao3=Menu3(); switch(opcao3) { case '1': InserirContato(ArqUsuarios,ArqAgenda,auxlogindono); break; case '2': /*AtualizarContato(ArqUsuarios,ArqAgenda,auxlogindono); break; case '3': ConsultarContato(ArqUsuarios,ArqAgenda,auxlogindono); break; case '4': ExcluirContatoLogico(ArqUsuarios,ArqAgenda,auxlogindono); break; case '5': ExcluirContatoFisico(ArqUsuarios,ArqAgenda,auxlogindono); break;*/ case '6': RelatorioContatos(ArqUsuarios,ArqAgenda,auxlogindono); break; } break; case 27: system("cls"); printf("\n\nDeslogado!"); Sleep(1500); Executa(); break; } }while(opcao2!=27); } else { printf("\nSenha incorreta!"); Sleep(2000); } system("cls"); printf("### LOGIN DE USUÁRIO ###\n"); printf("\nDigite a senha novamente: ");fflush(stdin);gets(auxsenhadono); } } Executa(); fclose(ArqUsuarios);} void RegistroUsuarios(FILE *ArqUsuarios){ TpUsuarios RegU; int poslogin; char auxlogin[10], auxsenha[10]; ArqUsuarios=fopen("USUARIOS.DAT","ab+"); system("cls");printf("### CADASTRO DE USUÁRIO ###\n");printf("\nDigite um login: ");fflush(stdin);gets(auxlogin); if(strcmp(auxlogin,"\0")!=0){ poslogin=BuscaRegistroLogin(ArqUsuarios,auxlogin);if(poslogin!=-1){ printf("\nJá existe um registro com esse login cadastrado!\n"); Sleep(2000);} else { strcpy(RegU.login,auxlogin); printf("\nDigite o nome: ");fflush(stdin);gets(RegU.nome); printf("\nDigite o e-mail: ");fflush(stdin);gets(RegU.email);printf("\nDigite o telefone: ");fflush(stdin);gets(RegU.fone);printf("\nDigite o dia do aniversário: ");fflush(stdin);gets(RegU.dia);printf("\nDigite o mês do aniversário: ");fflush(stdin);gets(RegU.mes);printf("\nDigite uma senha: ");fflush(stdin);gets(RegU.senha);RegU.status=1; fwrite(&RegU,sizeof(TpUsuarios),1,ArqUsuarios);printf("\nRegistrado com sucesso!\n"); Sleep(1500);} } fclose(ArqUsuarios);} void RelatorioUsuarios(FILE *ArqUsuarios){ TpUsuarios RegU; ArqUsuarios=fopen("USUARIOS.DAT","rb"); system("cls"); printf("### RELATÓRIO DE USUÁRIOS ###\n"); printf("\nLogin \t Nome \t E-mail \t Telefone \t Dia \t Mês \t Senha\n"); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); while(!feof(ArqUsuarios)) { printf("%s \t %s \t %s \t %s \t\t %s \t %s \t %s\n", RegU.login, RegU.nome, RegU.email, RegU.fone, RegU.dia, RegU.mes, RegU.senha); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); } getch(); fclose(ArqUsuarios);} void InserirContato(FILE *ArqUsuarios, FILE *ArqAgenda, char auxlogindono[10]) //Aqui é onde faço a inserção dos contatos na agenda{ TpUsuarios RegU; TpAgenda RegA; int poslogincol; char auxlogincol[10]; ArqUsuarios=fopen("USUARIOS.DAT","rb"); ArqAgenda=fopen("AGENDA.DAT","ab+"); system("cls"); rewind(ArqAgenda); printf("### INSERIR CONTATOS ###\n"); printf("\nDigite o login: ");fflush(stdin);gets(auxlogincol); if(strcmp(auxlogincol,"\0")!=0) { poslogincol=BuscaRegistroLogin(ArqUsuarios,auxlogincol); if(poslogincol!=-1) { fseek(ArqUsuarios,poslogincol*sizeof(TpUsuarios),0); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); printf("Nome:%s",RegU.nome); printf("\nDia e mês do aniversário:%s/%s",RegU.dia,RegU.mes); printf("\nE-mail: ",RegU.email); printf("\nTelefone:%s",RegU.fone); printf("\n\nDeseja inserir este contato(S/N)?"); if(toupper(getche())=='S') { strcpy(RegA.identificadordono,auxlogindono); strcpy(RegA.identificadorcolega,auxlogincol); fwrite(&RegA,sizeof(TpAgenda),1,ArqAgenda); printf("\n\nContato inserido com sucesso!"); Sleep(2000); } } } fclose(ArqAgenda); fclose(ArqUsuarios);} void RelatorioContatos(FILE *ArqUsuarios, FILE *ArqAgenda, char auxlogindono[10]) //Exibição dos contatos{ TpUsuarios RegU; TpAgenda RegA; bool achou; ArqUsuarios=fopen("USUARIOS.DAT","rb"); ArqAgenda=fopen("AGENDA.DAT","rb"); system("cls"); printf("### RELATÓRIO DE CONTATOS ###\n"); printf("\nNome \t DataNasc \t E-mail \t Telefone \t Status"); rewind(ArqAgenda);fread(&RegA,sizeof(TpAgenda),1,ArqAgenda); while(!feof(ArqAgenda) && strcmp(RegA.identificadordono,auxlogindono)==0) { achou=false; rewind(ArqUsuarios);fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); while(!feof(ArqUsuarios) && achou==false) { if(strcmp(RegA.identificadorcolega,RegU.login)==0) { printf("\n%s \t %s/%s \t\t %s \t %s \t\t %d",RegU.nome, RegU.dia, RegU.mes, RegU.email, RegU.fone, RegU.status); achou=true; } fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); } fread(&RegA,sizeof(TpAgenda),1,ArqAgenda); } getch(); fclose(ArqAgenda); fclose(ArqUsuarios);} int Executa(){ FILE *ArqUsuarios; FILE *ArqAgenda; int opcao1; do { opcao1=Menu1(); switch(opcao1) { case '1': Login(ArqUsuarios,ArqAgenda); break; case '2': RegistroUsuarios(ArqUsuarios); break; case '3': RelatorioUsuarios(ArqUsuarios); break; } }while(opcao1!=27);} int main(){ setlocale(LC_ALL,"Portuguese"); Executa();}
  5. Boa noite pessoal! Este é um trabalho da faculdade onde preciso simular um celular em arquivo binário. Precisa de login, registro de usuários, envio e recebimento de mensagens, agenda de contatos com todas as manutenções, e várias outras validações. O problema é o seguinte: Primeiro faço o registo de alguns usuários: maria, joão, carlos, bia e josé com seus respectivos dados e senha. Todos os usuários com seus dados ficam no arquivo "USUARIOS.DAT" e as relações usuário-contato precisam ficar em apenas um arquivo que no caso nomeei de "AGENDA.DAT" onde utilizo duas variáveis RegA.identificadordono (login do usuário) e RegA.identificadorcolega(login do contato) para saber quem é o contato de quem e que servirão como filtragem. Até ai tudo correto, o problema vem agora: Faço o login com a maria e insiro por exemplo o joão, carlos e josé. Na hora de exibir aparece os três lá certinho, mas quando eu deslogo e entro com outro usuário, exemplo o joão e insiro um contato pra ele, na hora de exibir o relatório, este não aparece nada, mas lá no arquivo AGENDA.DAT foi gravado corretamente. Depois eu entro de novo com a maria e tento inserir outro contato, exemplo bia e vou exibir, só aparece o joão, carlos e josé, mas no arquivo AGENDA.DAT a bia está lá. Acredito que seja algum problema com endereçamento de ponteiro, como se o contato de um usuário ficasse por cima do outro na exibição...já fiz de tudo mas não consigo fazer essa filtragem, preciso de uma luz =( Segue abaixo o meu código, o problema está no módulo RelatorioContatos(). struct TpUsuarios{ char login[10], senha[10], nome[30], email[30], fone[15], dia[3], mes[3]; int status;}; struct TpAgenda{ char identificadordono[10], identificadorcolega[10];}; int Executa();void InserirContato(FILE *ArqUsuarios,FILE *ArqAgenda,char auxlogindono[10]);void RelatorioContatos(FILE *ArqUsuarios,FILE *ArqAgenda,char auxlogindono[10]); //Declarações int BuscaRegistroLogin(FILE *ArqUsuarios, char auxlogin[10]) //Verificar se login existe{TpUsuarios RegU;rewind(ArqUsuarios);fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); while(!feof(ArqUsuarios) && !(stricmp(auxlogin,RegU.login)==0 || stricmp(auxlogin,RegU.email)==0 || stricmp(auxlogin,RegU.fone)==0)) fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios);if(stricmp(auxlogin,RegU.login)==0 || stricmp(auxlogin,RegU.email)==0 || stricmp(auxlogin,RegU.fone)==0) return (ftell(ArqUsuarios)/sizeof(TpUsuarios))-1;else return -1;} int BuscaRegistroSenha(FILE *ArqUsuarios, char auxsenha[10]) //Verificar se login existe{TpUsuarios RegU;rewind(ArqUsuarios);fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); while(!feof(ArqUsuarios) && stricmp(auxsenha,RegU.senha)!=0) fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios);if(stricmp(auxsenha,RegU.senha)==0) return (ftell(ArqUsuarios)/sizeof(TpUsuarios))-1;else return -1;} int VerificaLoginSenha(FILE *ArqUsuarios, char auxlogin[10], char auxsenha[10]) //Verificar se senha existe{ int i=0; TpUsuarios RegU; rewind(ArqUsuarios); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); while(i<!feof(ArqUsuarios) && !(stricmp(RegU.login,auxlogin)==0 || stricmp(RegU.email,auxlogin)==0 || stricmp(RegU.fone,auxlogin)==0)) fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); if((RegU.login || RegU.email || RegU.fone) && stricmp(RegU.senha,auxsenha)==0) return i; else return -1;} int Menu1(){ system("cls"); Relogio(); textcolor(10); gotoxy(30,1);printf("### SISTEMA CELULAR ###\n"); textcolor(15); printf("\n1-Login"); printf("\n2-Registro"); printf("\n\n[ESC]-Sair"); int opcao1=getch();} int Menu3(){ system("cls"); printf("### MENU ###\n"); printf("\n1-Inserir Contato"); printf("\n2-Atualizar Contato"); printf("\n3-Buscar Contato"); printf("\n4-Excluir Contato"); printf("\n5-Limpar Dados"); printf("\n6-Relatório"); int opcao3=getch();} void Login(FILE *ArqUsuarios, FILE *ArqAgenda, FILE *ArqMsg){ TpUsuarios RegU; int poslogin, posloginsenha, opcao2, opcao3, opcao4; char auxlogindono[10], auxsenhadono[10]; ArqUsuarios=fopen("USUARIOS.DAT","rb+"); system("cls"); printf("### LOGIN DE USUÁRIO ###\n"); printf("\nDigite o login: ");fflush(stdin);gets(auxlogindono); if(strcmp(auxlogindono,"\0")!=0) { poslogin=BuscaRegistroLogin(ArqUsuarios,auxlogindono); fseek(ArqUsuarios,poslogin*sizeof(TpUsuarios),0); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); printf("\nUsuário: %s",RegU.nome); printf("\n\nDigite a senha: ");fflush(stdin);gets(auxsenhadono); while(strcmp(auxlogindono,"\0")!=0) { posloginsenha=VerificaLoginSenha(ArqUsuarios,auxlogindono,auxsenhadono); if(posloginsenha!=-1) { printf("\nLogado com sucesso!"); Sleep(1500); do { system("cls"); printf("### MENU ###\n"); printf("\n1-Agenda"); printf("\n2-Mensagens"); printf("\n3-Aniversariantes do Mês"); printf("\n4-Relatório"); printf("\n\n[ESC]-Deslogar"); int opcao2=getch(); switch(opcao2) { case '1': opcao3=Menu3(); switch(opcao3) { case '1': InserirContato(ArqUsuarios,ArqAgenda,auxlogindono); break; case '2': /*AtualizarContato(ArqUsuarios,ArqAgenda,auxlogindono); break; case '3': ConsultarContato(ArqUsuarios,ArqAgenda,auxlogindono); break; case '4': ExcluirContatoLogico(ArqUsuarios,ArqAgenda,auxlogindono); break; case '5': ExcluirContatoFisico(ArqUsuarios,ArqAgenda,auxlogindono); break;*/ case '6': RelatorioContatos(ArqUsuarios,ArqAgenda,auxlogindono); break; } break; case 27: system("cls"); printf("\n\nDeslogado!"); Sleep(1500); Executa(); break; } }while(opcao2!=27); } else { printf("\nSenha incorreta!"); Sleep(2000); } system("cls"); printf("### LOGIN DE USUÁRIO ###\n"); printf("\nDigite a senha novamente: ");fflush(stdin);gets(auxsenhadono); } } Executa(); fclose(ArqUsuarios);} void InserirContato(FILE *ArqUsuarios, FILE *ArqAgenda, char auxlogindono[10]) //Aqui é onde faço a inserção dos contatos na agenda{ TpUsuarios RegU; TpAgenda RegA; int poslogincol; char auxlogincol[10]; ArqUsuarios=fopen("USUARIOS.DAT","rb"); ArqAgenda=fopen("AGENDA.DAT","ab+"); system("cls"); rewind(ArqAgenda); printf("### INSERIR CONTATOS ###\n"); printf("\nDigite o login: ");fflush(stdin);gets(auxlogincol); if(strcmp(auxlogincol,"\0")!=0) { poslogincol=BuscaRegistroLogin(ArqUsuarios,auxlogincol); if(poslogincol!=-1) { fseek(ArqUsuarios,poslogincol*sizeof(TpUsuarios),0); fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); printf("Nome:%s",RegU.nome); printf("\nDia e mês do aniversário:%s/%s",RegU.dia,RegU.mes); printf("\nE-mail: ",RegU.email); printf("\nTelefone:%s",RegU.fone); printf("\n\nDeseja inserir este contato(S/N)?"); if(toupper(getche())=='S') { strcpy(RegA.identificadordono,auxlogindono); strcpy(RegA.identificadorcolega,auxlogincol); fwrite(&RegA,sizeof(TpAgenda),1,ArqAgenda); printf("\n\nContato inserido com sucesso!"); Sleep(2000); } } } fclose(ArqAgenda); fclose(ArqUsuarios);} void RelatorioContatos(FILE *ArqUsuarios, FILE *ArqAgenda, char auxlogindono[10]) //Exibição dos contatos{ TpUsuarios RegU; TpAgenda RegA; bool achou; ArqUsuarios=fopen("USUARIOS.DAT","rb"); ArqAgenda=fopen("AGENDA.DAT","rb"); system("cls"); printf("### RELATÓRIO DE CONTATOS ###\n"); printf("\nNome \t DataNasc \t E-mail \t Telefone \t Status"); rewind(ArqAgenda);fread(&RegA,sizeof(TpAgenda),1,ArqAgenda); while(!feof(ArqAgenda) && strcmp(RegA.identificadordono,auxlogindono)==0) { achou=false; rewind(ArqUsuarios);fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); while(!feof(ArqUsuarios) && achou==false) { if(strcmp(RegA.identificadorcolega,RegU.login)==0) { printf("\n%s \t %s/%s \t\t %s \t %s \t\t %d",RegU.nome, RegU.dia, RegU.mes, RegU.email, RegU.fone, RegU.status); achou=true; } fread(&RegU,sizeof(TpUsuarios),1,ArqUsuarios); } fread(&RegA,sizeof(TpAgenda),1,ArqAgenda); } getch(); fclose(ArqAgenda); fclose(ArqUsuarios);} int Executa(){ FILE *ArqUsuarios; FILE *ArqAgenda; FILE *ArqMsg; int opcao1; do { opcao1=Menu1(); switch(opcao1) { case '1': Login(ArqUsuarios,ArqAgenda,ArqMsg); break; case '2': RegistroUsuarios(ArqUsuarios); break; case '3': RelatorioUsuarios(ArqUsuarios); break; } }while(opcao1!=27);} int main(){ setlocale(LC_ALL,"Portuguese"); Executa();}

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!