Ir para conteúdo
Fórum Script Brasil
  • 0

Programa em C - Cadastro de moradores


Del Piero

Pergunta

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!

cadas.png

 

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 por Del Piero
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...