Jump to content
Fórum Script Brasil
  • 0

Programa em C - Cadastro de moradores


Del Piero
 Share

Question

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: [email protected]
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);
    }

 

Edited by Del Piero
Link to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.8k
    • Total Posts
      646.6k
×
×
  • Create New...