Del Piero Postado Janeiro 11, 2016 Denunciar Share Postado Janeiro 11, 2016 (editado) Bem , boa tarde, achei um código antigo meu bastante util para quem esta aprendendo a programar em C. Cadastro de moradores v.3.0! Download: Cadastro morador 3.0 #include <stdio.h> #include <stdlib.h> #define MAX_NUM_MORADOR 100 #define SOLTEIRO 0 #define MAX_STRING 50 /* Criador: Eduardo Dantas E-mail: dantasleld@gmail.com Data: 17/08/2012 */ struct Endereco{ char CIDADE[MAX_STRING]; char BAIRRO[MAX_STRING]; int CEP; char RUA[MAX_STRING]; int NUM; }; struct DataNascimento{ short dia; short mes; short ano; }; struct Morador{ char NOME[MAX_STRING]; int ESTCIVIL; struct DataNascimento NASC; char LOCALNASC[MAX_STRING]; int RG; int FONE; struct Endereco END; char EMPRESA[MAX_STRING]; char FUNCAO[MAX_STRING]; }; int numMoradores = 0; struct Morador CADASTRO[MAX_NUM_MORADOR]; int main() { int op; int vetor[MAX_NUM_MORADOR]; void ExibirTodosCadastro(); void ReceberCadastro(); void PesquisaPorPosicao(); void AlterarPorPosicao(); void ExcluirTudo(struct Morador cadastro[]); void ExcluirPorPosicao(struct Morador cadastro[]); void SalvarTXT(); printf("\t# Bem vindo ao cadastro de moradores 3.0 ! #\n"); printf("\t\t %c Escolha uma opcao:\n",4); printf("\t\t%c 1 - Criar Cadastro\n",16); printf("\t\t%c 2 - Ler todos os cadastros\n",16); printf("\t\t%c 3 - Pesquisar cadastro por posicao\n",16); printf("\t\t%c 4 - Alterar cadastro por posicao\n",16); printf("\t\t%c 5 - Excluir todos os cadastros\n",16); printf("\t\t%c 6 - Excluir cadastro por posicao\n",16); printf("\t\t%c 7 - Salvar dados em documento de texto\n",16); scanf("%i",&op); switch (op){ case 1: ReceberCadastro(CADASTRO); break; case 2: ExibirTodosCadastro(); break; case 3: PesquisaPorPosicao(); break; case 4: AlterarPorPosicao(); break; case 5: ExcluirTudo(CADASTRO); break; case 6: ExcluirPorPosicao(CADASTRO); break; case 7: SalvarTXT(); break; default: printf("Comando invalido!\n"); system("pause"); exit(0); } system("pause"); return 0; } void SalvarTXT(){ void limparBuffer(); int main(); char txt[MAX_STRING]; FILE *arq;// = fopen("Cadastro de Moradores.txt","w"); if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("(Nao esqueca de por .txt no final)\n"); printf("Digite o nome do arquivo para salvar:"); limparBuffer(); char c; int x = 0; do { c = getchar(); txt[x] = c; ++x; } while ( c != '\n'); txt[x-1] = '\0'; arq = fopen(txt,"w"); printf("Salvando arquivo %s ...\n",txt); for(int i = 0; i < numMoradores; ++i){ fprintf(arq,"\n\tMorador %i:\n",i+1); if (CADASTRO[i].NOME[0] == '\0'){ fprintf(arq,"Cadastro %i vazio!\n",i+1); continue; } fprintf(arq,"Nome:%s",CADASTRO[i].NOME); if (CADASTRO[i].ESTCIVIL == SOLTEIRO) fprintf(arq,"Estado Civil:Solteiro\n"); else fprintf(arq,"Estado Civil:Casado\n"); fprintf(arq,"Data de Nascimento:%i/%i/%i\n",CADASTRO[i].NASC.dia,CADASTRO[i].NASC.mes,CADASTRO[i].NASC.ano); fprintf(arq,"Local de Nascimento:%s",CADASTRO[i].LOCALNASC); fprintf(arq,"RG:%i\n",CADASTRO[i].RG); fprintf(arq,"Telefone:%i\n",CADASTRO[i].FONE); fprintf(arq,"Endereco:\n"); fprintf(arq,"Rua:%s",CADASTRO[i].END.RUA); fprintf(arq,"Numero:%i\n",CADASTRO[i].END.NUM); fprintf(arq,"CEP:%i\n",CADASTRO[i].END.CEP); fprintf(arq,"Bairro:%s",CADASTRO[i].END.BAIRRO); fprintf(arq,"Cidade:%s",CADASTRO[i].END.CIDADE); fprintf(arq,"Empresa:%s",CADASTRO[i].EMPRESA); fprintf(arq,"Funcao:%s",CADASTRO[i].FUNCAO); } fclose(arq); printf("\n\t Arquivo Salvo com sucesso!\n"); system("pause"); system("cls"); main(); } void ExcluirPorPosicao(struct Morador cadastro[]){ int i = 0; char op; void limparBuffer(); if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("Tem certeza que deseja excluir todos os cadastros?s/n\n"); limparBuffer(); scanf("%c",&op); if(op != 's'){ printf("Voce cancelou a exclusao de todos os cadastros."); system("pause"); system("cls"); main(); } printf("Digite a localizacao(1 a %i:",numMoradores); scanf("%i",&i); --i; if(i < 0 || i > numMoradores){ printf("Valor invalido!\n"); system("pause"); system("cls"); main(); } for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].NOME[x] = '\0'; cadastro[i].ESTCIVIL = 0; cadastro[i].NASC.dia = 0; cadastro[i].NASC.mes = 0; cadastro[i].NASC.ano = 0; for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].LOCALNASC[x] = '\0'; cadastro[i].RG = 0; cadastro[i].FONE = 0; for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].END.RUA[x] = '\0'; cadastro[i].END.NUM = 0; cadastro[i].END.CEP = 0; for(int x = 0 ; x < MAX_STRING ; ++x){ cadastro[i].END.BAIRRO[x] = '\0'; cadastro[i].END.CIDADE[x] = '\0'; cadastro[i].EMPRESA[x] = '\0'; cadastro[i].FUNCAO[x] = '\0'; } printf("\t\tCadastro excluido com sucesso!\n"); system("pause"); system("cls"); main(); } void ExcluirTudo(struct Morador cadastro[]){ void limparBuffer(); int main(); char op; if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("Tem certeza que deseja excluir todos os cadastros?s/n\n"); limparBuffer(); scanf("%c",&op); if(op != 's'){ printf("Voce cancelou a exclusao de todos os cadastros."); system("pause"); system("cls"); main(); } for(int i = 0; i < numMoradores; ++i){ for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].NOME[x] = '\0'; cadastro[i].ESTCIVIL = 0; cadastro[i].NASC.dia = 0; cadastro[i].NASC.mes = 0; cadastro[i].NASC.ano = 0; for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].LOCALNASC[x] = '\0'; cadastro[i].RG = 0; cadastro[i].FONE = 0; for(int x = 0 ; x < MAX_STRING ; ++x) cadastro[i].END.RUA[x] = '\0'; cadastro[i].END.NUM = 0; cadastro[i].END.CEP = 0; for(int x = 0 ; x < MAX_STRING ; ++x){ cadastro[i].END.BAIRRO[x] = '\0'; cadastro[i].END.CIDADE[x] = '\0'; cadastro[i].EMPRESA[x] = '\0'; cadastro[i].FUNCAO[x] = '\0'; } } numMoradores = 0; printf("\t\tCadastro excluido com sucesso!\n"); system("pause"); system("cls"); main(); } void AlterarPorPosicao(){ void limparBuffer(); int i = 0; if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("Digite a localizacao(1 a %i:",numMoradores); scanf("%i",&i); --i; if(i < 0 || i > numMoradores){ printf("Valor invalido!\n"); system("pause"); system("cls"); main(); } limparBuffer(); printf("\t# Iniciar processo de alteracao de cadastro #\n",numMoradores); printf("Nome:"); fgets(CADASTRO[i].NOME,MAX_STRING,stdin); printf("(0-Solteiro 1-Casado)Estado Civil:"); scanf("%i",&CADASTRO[i].ESTCIVIL); limparBuffer(); printf("Data de Nascimento:\n"); printf("Dia:"); scanf("%i",&CADASTRO[i].NASC.dia); printf("Mes:"); scanf("%i",&CADASTRO[i].NASC.mes); printf("Ano:"); scanf("%i",&CADASTRO[i].NASC.ano); limparBuffer(); printf("Local de Nascimento:"); fgets(CADASTRO[i].LOCALNASC,MAX_STRING,stdin); printf("RG:"); scanf("%i",&CADASTRO[i].RG); printf("Telefone:"); scanf("%i",&CADASTRO[i].FONE); printf("Endereco:\n"); limparBuffer(); printf("Cidade:"); fgets(CADASTRO[i].END.CIDADE,MAX_STRING,stdin); limparBuffer(); printf("Bairro:"); fgets(CADASTRO[i].END.BAIRRO,MAX_STRING,stdin); limparBuffer(); printf("CEP:"); scanf("%i",&CADASTRO[i].END.CEP); limparBuffer(); printf("Rua:"); fgets(CADASTRO[i].END.RUA,MAX_STRING,stdin); limparBuffer(); printf("Numero:"); scanf("%i",&CADASTRO[i].END.NUM); limparBuffer(); printf("Empresa:"); fgets(CADASTRO[i].EMPRESA,MAX_STRING,stdin); limparBuffer(); printf("Funcao:"); fgets(CADASTRO[i].FUNCAO,MAX_STRING,stdin); limparBuffer(); system("cls"); printf("\t\tCadastro alterado com sucesso!\n"); system("pause"); system("cls"); main(); } void PesquisaPorPosicao(){ int i = 0; if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } printf("Digite a localizacao(1 a %i:",numMoradores); scanf("%i",&i); --i; if(i < 0 || i > numMoradores){ printf("Valor invalido!\n"); system("pause"); system("cls"); main(); } if (CADASTRO[i].NOME[0] == '\0'){ printf("Cadastro vazio!\n"); system("pause"); system("cls"); main(); } printf("Nome:%s",CADASTRO[i].NOME); if (CADASTRO[i].ESTCIVIL == SOLTEIRO) printf("Estado Civil:Solteiro\n"); else printf("Estado Civil:Casado\n"); printf("Data de Nascimento:%i/%i/%i\n",CADASTRO[i].NASC.dia,CADASTRO[i].NASC.mes,CADASTRO[i].NASC.ano); printf("Local de Nascimento:%s",CADASTRO[i].LOCALNASC); printf("RG:%i\n",CADASTRO[i].RG); printf("Telefone:%i\n",CADASTRO[i].FONE); printf("Endereco:\n"); printf("Rua:%s",CADASTRO[i].END.RUA); printf("Numero:%i\n",CADASTRO[i].END.NUM); printf("CEP:%i\n",CADASTRO[i].END.CEP); printf("Bairro:%s",CADASTRO[i].END.BAIRRO); printf("Cidade:%s",CADASTRO[i].END.CIDADE); printf("Empresa:%s",CADASTRO[i].EMPRESA); printf("Funcao:%s",CADASTRO[i].FUNCAO); system("pause"); system("cls"); main(); } void ExibirTodosCadastro(){ if (numMoradores == 0){ printf("Nao existe cadastro!\n"); system("pause"); system("cls"); main(); } for(int i = 0; i < numMoradores; ++i){ printf("\n\t%c Morador %i:\n",16,i+1); if (CADASTRO[i].NOME[0] == '\0'){ printf("Cadastro %i vazio!\n",i+1); continue; } printf("Nome:%s",CADASTRO[i].NOME); if (CADASTRO[i].ESTCIVIL == SOLTEIRO) printf("Estado Civil:Solteiro\n"); else printf("Estado Civil:Casado\n"); printf("Data de Nascimento:%i/%i/%i\n",CADASTRO[i].NASC.dia,CADASTRO[i].NASC.mes,CADASTRO[i].NASC.ano); printf("Local de Nascimento:%s",CADASTRO[i].LOCALNASC); printf("RG:%i\n",CADASTRO[i].RG); printf("Telefone:%i\n",CADASTRO[i].FONE); printf("Endereco:\n"); printf("Rua:%s",CADASTRO[i].END.RUA); printf("Numero:%i\n",CADASTRO[i].END.NUM); printf("CEP:%i\n",CADASTRO[i].END.CEP); printf("Bairro:%s",CADASTRO[i].END.BAIRRO); printf("Cidade:%s",CADASTRO[i].END.CIDADE); printf("Empresa:%s",CADASTRO[i].EMPRESA); printf("Funcao:%s",CADASTRO[i].FUNCAO); } system("pause"); system("cls"); main(); } void ReceberCadastro(struct Morador cadastro[]){ void limparBuffer(); int main(); if (numMoradores > 0){ printf("Ja existe cadastro!"); system("pause"); system("cls"); main(); } printf("Quantos moradores voce deseja cadastrar?"); scanf("%i",&numMoradores); if (numMoradores > MAX_NUM_MORADOR){ printf("Por favor, digite um valor positivo ate 100."); exit(0); } system("cls"); limparBuffer(); for(int i = 0;i < numMoradores;++i){ printf("\t# Iniciar processo de cadastro de %i moradores #\n",numMoradores); printf("\n# Cadastrando o %i morador #\n",i+1); printf("Nome:"); fgets(cadastro[i].NOME,MAX_STRING,stdin); printf("(0-Solteiro 1-Casado)Estado Civil:"); scanf("%i",&cadastro[i].ESTCIVIL); limparBuffer(); printf("Data de Nascimento:\n"); printf("Dia:"); scanf("%i",&cadastro[i].NASC.dia); printf("Mes:"); scanf("%i",&cadastro[i].NASC.mes); printf("Ano:"); scanf("%i",&cadastro[i].NASC.ano); limparBuffer(); printf("Local de Nascimento:"); fgets(cadastro[i].LOCALNASC,MAX_STRING,stdin); printf("RG:"); scanf("%i",&cadastro[i].RG); printf("Telefone:"); scanf("%i",&cadastro[i].FONE); printf("Endereco:\n"); limparBuffer(); printf("Cidade:"); fgets(cadastro[i].END.CIDADE,MAX_STRING,stdin); limparBuffer(); printf("Bairro:"); fgets(cadastro[i].END.BAIRRO,MAX_STRING,stdin); limparBuffer(); printf("CEP:"); scanf("%i",&cadastro[i].END.CEP); limparBuffer(); printf("Rua:"); fgets(cadastro[i].END.RUA,MAX_STRING,stdin); limparBuffer(); printf("Numero:"); scanf("%i",&cadastro[i].END.NUM); limparBuffer(); printf("Empresa:"); fgets(cadastro[i].EMPRESA,MAX_STRING,stdin); limparBuffer(); printf("Funcao:"); fgets(cadastro[i].FUNCAO,MAX_STRING,stdin); limparBuffer(); system("cls"); } printf("\t\tCadastro salvo com sucesso!\n"); system("pause"); system("cls"); main(); } void limparBuffer(){ char c; while((c = getchar())!= '\n'&& c!= EOF); } Editado Janeiro 11, 2016 por Del Piero Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Del Piero
Bem , boa tarde, achei um código antigo meu bastante util para quem esta aprendendo a programar em C.
Cadastro de moradores v.3.0!
Download: Cadastro morador 3.0
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.