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",®istros[pos].idade); fflush(stdin);
printf("\nSexo:\n"); gets(registros[pos].sexo);
printf("\nNome do Responsavel:\n"); gets(registros[pos].responsavel);
Pergunta
carlos felipe
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",®istros[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",®istros[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 felipeLink 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.