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

Programa de Cadastro de Clientes problema com código


carlos felipe

Pergunta

Eu tava fazendo um código para um programa de clínica pediátrica. O programa cadastra, lista e exclui. Porém, quando algum cadastro é excluído, por exemplo: Se eu excluir o usuário com o código 1, ninguém poderá mais ocupar aquele código. Tentei mexer mais to apanhando quem puder ajudar eu agradeço. Vou deixar o código abaixo:

 

#include <stdio.h>
#include <stdlib.h>

//Estrutura que sera usada para realizar cadastro
struct tipo_cadastro
{

       int cod;
       char endereco[60];
       char responsavel[60];
       char sexo[60];
       int idade;
       int telefone;
       char nomepaciente[60];
       char anamnese[60];
       int vazio;

} registros[100];

//Funçoes que serao usadas
void cadastrar(int cod, int pos); // pos = posição

//Funçao para consulta
void consultar( void );

//Funçao para exibir relatorio
int relatorio( void );

//Função para verificar posição
int verifica_pos( void );

//Função para verificar codigo
int verifica_cod( int cod );

//Função para verificar posição do codigo
int verifica_pos( void );

//Função para excluir cadastro
void excluir( void );

//Começo do programa principal
int main( void )
{
    int op = 0, posicao, codaux, retorno;

    while ( op != 5 )
    {
        printf("\n\n\t\t\t\t Clinica Bebe a Bordo\n\n\n");
        printf("MENU\n\n1 - Cadastrar\n2 - Pesquisar\n3 - Excluir\n4 - Relatorio\n5 - Sair\n\nOpcao: ");
        scanf("%d",&op);
        system("cls");
        switch ( op )
        {
            case 1: // CADASTRAR
            {

                posicao=verifica_pos();

                if ( posicao != -1 )
                {

                    printf("\nEntre com o codigo de cadastro (Somente numeros): \n");
                    scanf("%d",&codaux);fflush(stdin);

                    retorno = verifica_cod( codaux );

                    if ( retorno == 1 )
                        cadastrar( codaux, posicao );
                    else
                        printf("\nCodigo já existente\n");

                }
                else
                    printf("\nNao e possivel realizar mais cadastros!\n");

                break;

            }
            case 2: // CONSULTAR
            {
                consultar();
                break;
            }
            case 3:
            {
                excluir();
                break;
            }
            case 4:
            {
                int main();
                break;
            }
            case 5:
            {
                 printf("\n Encerrando o Programa");
                 getchar();
                 break;
            }
            default :
                printf("Opcao Invalida");
                break;
        }
    }


    getchar();

    return 0;

}//Final da Main

// FUNÇAO CADASTRAR
void cadastrar( int cod, int pos )
{
    pos = verifica_pos();

    registros[pos].cod = cod;

    printf("\nNome do Paciente:\n");
    gets(registros[pos].nomepaciente);

    printf("\nIdade do Paciente:\n");
    scanf("%d",&registros[pos].idade);
    fflush(stdin);

    printf("\nSexo:\n");
    gets(registros[pos].sexo);

    printf("\nNome do Responsavel:\n");
    gets(registros[pos].responsavel);

    printf("\nEndereco:\n");
    gets(registros[pos].endereco);

    printf("\nTelefone:\n");
    scanf("%d",&registros[pos].telefone);
    fflush(stdin);

    printf("\nAnamnese:\n");
    gets(registros[pos].anamnese);

    registros[pos].vazio = 1;

    printf("\nCadastro Realizado com Sucesso!\n\n");
    getchar();

    system("cls");

} //Final da Função Cadastrar

//FUNÇÃO CONSULTAR
void consultar( void )
{
    int cont = 0, cod;

    printf("\nEntre com o codigo\n");
    scanf("%d",&cod);

    system("cls");

    while ( cont <= 100 )
    {

        if (registros[cont].cod==cod)
        {
            if (registros[cont].vazio==1)
            {

                printf("\nNome do Paciente: \n%s\n",registros[cont].nomepaciente);
                printf("\nIdade do Paciente: \n%d\n",registros[cont].idade);
                printf("\nSexo:\n%s\n",registros[cont].sexo);
                printf("\nNome do Responsavel: \n%s\n",registros[cont].responsavel);
                printf("\nEndereco: \n%s\n",registros[cont].endereco);
                printf("\nTelefone:\n%d\n",registros[cont].telefone);
                printf("\nAnamnese:\n%s\n",registros[cont].anamnese);
                printf("\n");

                system ("pause");

                system("cls");

                break;

            }
        }

        cont++;

        if ( cont > 100 )
            printf("\nCodigo não encontrado\n");

    }
}

//FUNÇÃO VERIFICA POSIÇÃO
int verifica_pos( void )
{
    int cont = 0;

    while ( cont <= 100 )
    {

        if ( registros[cont].vazio == 0 )
            return(cont);

        cont++;

    }

    return(-1);

}

//FUNÇÃO ZERAR
void zerar( void )
{
    int cont;

    for ( cont = 0; cont <= 100; cont++ )
        registros[cont].vazio = 0;
}

//FUNÇÃO VERIFICA CODIGO
int verifica_cod( int cod )
{
    int cont = 0;

    while ( cont <= 100 )
    {
        if ( registros[cont].cod == cod )
            return(0);

        cont++;
    }

    return(1);

}

//FUNÇÃO EXCLUIR
void excluir( void )
{
    int cod, cont = 0;
    char resp; // variavel para perguntar sim ou não

    printf("\nEntre com o codigo do registro que deseja excluir\n");
    scanf("%d", &cod );

    while ( cont <= 100 )
    {

        if ( registros[cont].cod == cod )
        {

            if ( registros[cont].vazio == 1 )
            {

                printf("\nNome do Paciente: \n%s\n", registros[cont].nomepaciente );
                printf("\nIdade do Paciente: \n%d\n", registros[cont].idade );
                printf("\nSexo:\n%s\n",registros[cont].sexo);
                printf("\nNome do Responsavel: \n%s\n", registros[cont].responsavel );
                printf("\nEndereco: \n%s\n", registros[cont].endereco);
                printf("\nTelefone:\n%d\n",registros[cont].telefone);
                printf("\nAnamnese:\n%s\n",registros[cont].anamnese);
                getchar();

                printf("\nDeseja realmente excluir? S/N:");
                scanf("%c",&resp);

                if ( ( resp == 'S' ) || ( resp == 's' ) )
                {
                    registros[cont].vazio=0;
                    printf("\nExclusao feita com sucesso\n");
                    break;
                }
                else
                {
                    if ( ( resp == 'N' ) || ( resp == 'n' ) )
                    {
                        printf("Exclusao cancelada!\n");
                        break;
                    }
                }

            }

        }

        cont++;

        if ( cont > 100 )
            printf("\nCodigo não encontrado\n");

    }

    system("pause");
    system("cls");

}

Editado por carlos felipe
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,3k
    • Posts
      652,4k
×
×
  • Criar Novo...