Escolar Documentos
Profissional Documentos
Cultura Documentos
Fila Estatica Struct
Fila Estatica Struct
h
#includestdbool.h
Exemplo de Fila Esttica usando a implementao
com tipo STRUCT.
Declarando a estrutura a ser armazenada
typedef struct{
char nome[20];
int idade;
float salario;
}FUNCIONARIO;
Declarando a fila..
#define tam_max 10
FUNCIONARIO fila[tam_max];
int inicio=0, fim=-1;
Declarando as operaes na fila
void inserir();
void remover();
void mostrarFila();
void atualizar();
void pesquisarPosicao();
void verificaFilaCheia();
void verificaFilaVazia();
bool filaCheia();
bool filaVazia();
void menu(){
int opcao;
do{
system(CLS);
printf(Opcoes do Menu - Filas Estaticasn);
printf(1_INSERIRn);
printf(2_REMOVERn);
printf(3_MOSTRAR FILAn);
printf(4_ATUALIZAR ELEMENTOn);
printf(5_PESQUISAR POSICAOn);
printf(6_VERIFICAR FILA CHEIAn);
printf(7_VERIFICAR FILA VAZIAn);
printf(0_SAIRn);
scanf(%d, &opcao);
switch(opcao){
case 1 inserir(); break;
case 2 remover(); break;
case 3 mostrarFila(); break;
case 4 atualizar(); break;
case 5 pesquisarPosicao(); break;
case 6 verificaFilaCheia(); break;
case 7 verificaFilaVazia(); break;
default opcao=0; break;
};
}while(opcao!=0);
}
Funo de Insero
void inserir(){
system(CLS);
printf(Funcao para inserir elemento na fila );
if(!filaCheia()){
fim++;
printf(Entre com o nome n);
scanf(%s, &fila[fim].nome);
printf(Entre com a idade n);
scanf(%d, &fila[fim].idade);
printf(Entre com o salario n);
scanf(%f, &fila[fim].salario);
printf(Elemento inserido com sucesso!);
}else
printf(Impossivel inserir! Fila Cheia!);
getch();
}
Remover Elemento
void remover(){
int i;
system(CLS);
if(!filaVazia()){
printf(Elemento a ser removido );
printf(Nome %s, fila[inicio].nome);
printf(Idade %d, fila[inicio].idade);
printf(Salario %f, fila[inicio].salario);
for(i=inicio; i=fim-1; i++)
fila[i] = fila[i+1];
fim--;
printf(Elemento removido com sucesso!);
}
else
printf(Impossivel remover! Fila vazia!);
getch();
}
void mostrarFila(){
int i;
system(CLS);
if(!filaVazia()){
for(i=inicio; i=fim; i++){
printf(Elemento da posicao %d n, i);
printf(Nome %s n, fila[i].nome);
printf(Idade %d n, fila[i].idade);
printf(Salario %f n, fila[i].salario);
printf(###########);
getch();
}
}else
printf(Impossivel mostrar elementos! Fila vazia);
getch();
}
void pesquisarPosicao(){
int posicao;
system(CLS);
if(!filaVazia()){
printf(Entre com a posicao a ser pesquisada! n);
scanf(%d, &posicao);
if((posicao=inicio)&&(posicao=fim)){
printf(Elemento encontrado na posicao %d, posicao);
printf(Nome %s n, fila[posicao].nome);
printf(Idade %d n, fila[posicao].idade);
printf(Salario %f n, fila[posicao].salario);
}else
printf(Nao existe elemento para esta posicao!);
}else
printf(Impossivel Pesquisar! Fila Vazia!);
}
void atualizar(){
int posicao;
system(CLS);
if(!filaVazia()){
printf(Entre com a posicao a ser atualizada! n);
scanf(%d, &posicao);
if((posicao=inicio)&&(posicao=fim)){
printf(Elemento encontrado na posicao %d, posicao);
printf(Nome %s n, fila[posicao].nome);
printf(Idade %d n, fila[posicao].idade);
printf(Salario %f n, fila[posicao].salario);
Atualizar a posio encontrada!!
printf(Atualizando Elemento n);
printf(Entre com o novo nome );
scanf(%s, &fila[posicao].nome);
printf(Entre com a nova idade );
scanf(%d, &fila[posicao].idade);
printf(Entre com o novo salario );
scanf(%f, &fila[posicao].salario);
printf(Elemento atualizado com sucesso!);
}else
printf(Nao existe elemento para esta posicao!);
}else
printf(Impossivel Atualizar! Fila Vazia!);
getch();
}
void verificaFilaCheia(){
system(CLS);
if(filaCheia())
printf(A fila esta cheia!!);
else
printf(A fila nao esta cheia!!);
getch();
}
void verificaFilaVazia(){
system(CLS);
if(filaVazia())
printf(A fila esta vazia!!);
else
printf(A fila nao esta vazia!!);
getch();
}
bool filaCheia(){
return (fim==tam_max-1);
}
bool filaVazia(){
return (fim==-1);
}
int main(){
menu();
system(PAUSE);
return 0;
}