Ir ao conteúdo
  • Cadastre-se

excluir registro


yhhik

Posts recomendados

estou fazendo um programa que cadastra,consulta,autera e exclui em registro,porém estou com problemas no excluir.o programa localiza o registro

mas so exclui o ultimo.tenho que copiar os registros seguintes para a posição anterior mas como faço isso?

 #include<stdio.h>
#include<conio.h>




struct dados{
char nome[40],sexo;
int idade, matri,cpf;
};

struct dados funcionario[1000];

main(){
int i=0,ii,cont,op,l,aux,resp,alt;

while(op!=5){
printf("\n\n1-Cadastrar");
printf("\n2-consultar");
printf("\n3-Alterar");
printf("\n4-Excluir");
printf("\n5-sair");
scanf("%d",&op);

switch(op){

case 1://--------------------aqui cadastra-----------------------
cont=1;
while(cont!=0){
i++ ;
ii=i;
system("cls");
printf("funcionario:%d\n",i);
printf("Nome:");
fflush(stdin);
gets(funcionario[i].nome);
printf("CPF:");
scanf("%d",&funcionario[i].cpf);
do{
printf("Digite o sexo do funcionario: ");
funcionario[i].sexo=toupper(getche());
if ((funcionario[i].sexo != 'F') && (funcionario[i].sexo != 'M'))
printf("\n\n\t Sexo invalido. Digite F para Feminino ou M para Masculino.\n");
}while ((funcionario[i].sexo != 'F') && (funcionario[i].sexo != 'M'));
printf("\nMatricula:");
scanf("%d",&funcionario[i].matri);
printf("Idade:");
scanf("%d",&funcionario[i].idade);
printf("\nDeseja cadastrar outro funcionario?(0-nao,1-sim)");
scanf("%d",&cont);
system("cls");
}// Fim While
break;
case 2://---------------------------aqui consulta----------------------------------
cont=1;
while( cont!=0){
printf("Codigo do funcionario:\n");
scanf("%d",&l);

aux=0;
for(i=1;i<=ii;i++){
if(i==l){
aux=1;
printf("\n\n Dados do %d funcionario.\n\n", i);
printf("\n A matricula do funcionario e: %d", funcionario[i].matri);
printf("\n O nome do funcionario e: %s",funcionario[i].nome);
printf("\n O sexo do funcionario e: %c",funcionario[i].sexo);
printf("\n A idade do funcionario e: %d",funcionario[i].idade);
i=ii;
}
if(aux==0)
printf("Numero nao incontrado!");
}
i--;
printf("\nDeseja consultar outro funcionario?(0-nao,1-sim)");
scanf("%d",&cont);
system("cls");

}

break;
case 3://----------------------------------aqui autera----------------------------------
cont=1;
while( cont!=0){
printf("Codigo do funcionario:\n");
scanf("%d",&l);

for(i=1;i<=ii;i++){
aux=0;
if(i==l){
aux=1;
printf("\n\n Dados do %d funcionario.\n\n", i);
printf("\n A matricula do funcionario e: %d", funcionario[i].matri);
printf("\n O nome do funcionario e: %s",funcionario[i].nome);
printf("\n O sexo do funcionario e: %c",funcionario[i].sexo);
printf("\n A idade do funcionario e: %d",funcionario[i].idade);
i=ii;
}
if(aux==0)
printf("Numero nao incontrado!");

}
i--;
if(aux==1){
printf("\nDeseja alterar dados funcionario?(0-nao,1-sim)");
scanf("%d",&resp);
if(resp==1){
printf("_________________________________________________________\n");
printf("Digite 1.Nome, 2.Sexo, 3.Idade: ");
scanf("%d",&alt);
switch(alt){
case 1:
printf("Digite novo nome:");
fflush(stdin);
gets(funcionario[i].nome);
break;
case 2:
do{
printf("Digite novo sexo do funcionario: ");
funcionario[i].sexo=toupper(getche());
if ((funcionario[i].sexo != 'F') && (funcionario[i].sexo != 'M'))
printf("\n\n\t Sexo invalido. Digite F para Feminino ou M para Masculino.\n");
}while ((funcionario[i].sexo != 'F') && (funcionario[i].sexo != 'M'));
break;
case 3:
printf("Idade:");
scanf("%d",&funcionario[i].idade);
break;
}
}
}
printf("\nDeseja consultar outro funcionario?(0-nao,1-sim)");
scanf("%d",&cont);
system("cls");
}
break;
case 4://----------------------------aqui exclui----------------------------
printf("Codigo do funcionario:");
scanf("%d",&l);
aux=0;
for(i=1;i<=ii;i++){//localiza registro a ser excluido
if(i==l){
aux=1;
printf("\n\n Dados do %d funcionario.\n\n", i);
printf("\n A matricula do funcionario e: %d", funcionario[i].matri);
printf("\n O nome do funcionario e: %s",funcionario[i].nome);
printf("\n O sexo do funcionario e: %c",funcionario[i].sexo);
printf("\n A idade do funcionario e: %d",funcionario[i].idade);
i=ii;
}
if(aux==0)//caso numero nao cadastrado
printf("Numero nao incontrado!");
}
i--;

printf("\nDeseja exluir? 0-nao,1-sim)");
scanf("%d",&resp);//confirma a exclusao
if(resp==1){

funcionario[i].matri=0;
strcpy (funcionario[i].nome,"");
funcionario[i].sexo=0;
funcionario[i].idade=0;

i--;

}
system("cls");
break;
}//fim switch
}//fim while
}


Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!