#include<stdio.h>
#define T 10
typedef struct{
char nome[31];
int idade;
}PESSOA;
typedef struct{
PESSOA item[T];
int topo;
}PILHA;
PILHA iniciaPilha();
int main(){
FILE *arq;
PILHA p = iniciaPilha();
int opc, aux;
do{
printf("1 - cadastrar\n"
"2 - remover\n"
"3 - imprimir\n"
"4 - salvar\n"
"5 - carregar\n"
"6 - excluir arquivo\n"
"0 - sair\n");
scanf("%d",&opc);
switch(opc){
case 1:
getchar();
if(p.topo < T){
printf("nome: ");
gets(p.item[p.topo].nome);
printf("idade: ");
scanf("%d",&p.item[p.topo].idade);
p.topo++;
system("cls");
getchar();
}else{
printf("PILHA cheiA\n");
getche();
system("cls");
}
break;
case 2:
if(p.topo > 0){
p.topo--;
printf("nome: %s\nidade: %d\nremovido\n",p.item[p.topo].nome,p.item[p.topo].idade);
}else
printf("PILHA VAZIA\n");
getche();
system("cls");
break;
case 3:
if(p.topo > 0){
for(aux = p.topo -1; aux >=0; aux--)
printf("nome: %s\nidade: %d\n",p.item[aux].nome,p.item[aux].idade);
}else
printf("PILHA VAZIA\n");
getche();
system("cls");
break;
case 4:
if(p.topo >= 0){
arq = fopen("arquivos_estrutura.bin","wb");
if(arq != NULL){
for(aux =0; aux<p.topo; aux++)
if(*p.item[aux].nome)//verifica se comprimento do nome e 0
fwrite(&p.item[aux],sizeof(PESSOA),1,arq);
fclose(arq);
printf("arquivo gravado com sucesso\n");
}else
printf("problema ao abrir o arquivo!\n");
}else
printf("PILHA VAZIA\n");
getche();
system("cls");
break;
case 5:
if(p.topo < T){
arq = fopen("arquivos_estrutura.bin","rb");
if(arq != NULL){
for(p.topo =0; p.topo <T; p.topo++)
if(fread(&p.item[p.topo],sizeof(PESSOA),1,arq)!=1){
if(feof(arq))
break;
}
fclose(arq);
printf("arquivo carregado com sucesso!\n");
}else
printf("problema ao abrir o arquivo!\n");
}else
printf("PILHA cheia!\n");
getche();
system("cls");
break;
case 6:
if(remove("arquivos_estrutura.bin")==0)
printf("arquivo removido com sucesso!\n");
else
printf("erro ao remover arquivo!\n");
getche();
system("cls");
break;
case 0: break;
default: printf("erro\n");
getche();
system("cls");
}
}while( opc !=0);
}
PILHA iniciaPilha(){
int aux;
PILHA pi;
pi.topo = 0;
for(aux = 0; aux<T; aux++)
*pi.item[aux].nome = '\0';
return pi;
}
Trabalhos.:
E-mail: mvf5system@gmail.com
Blog: http://mvf5-system.blogspot.com.br/
Facebook: https://www.facebook.com/mvf5systems
0 comentários:
Postar um comentário