Jump to content
Fórum Script Brasil
  • 0

Programa de Cadastro de Clientes problema com código


carlos felipe
 Share

Question

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");

}

Edited by carlos felipe
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.9k
    • Total Posts
      646.8k
×
×
  • Create New...