Filas
Publicado por Rafael Dutra 28/05/2005
[ Hits: 7.980 ]
Homepage: www.du3x.com
Esse é um programinha que fiz para o meu curso, é um progrma de filas, a pessoa insere o trabalho a ser impresso e pode colocar mais quatro pra ficar na fila, tem muita bobagem junto no programa mas espero que gostem.
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
// Registro
struct str_fila
{
char impressao[20];
struct str_fila *prox;
};
typedef struct str_fila fila;
fila *inicio, *fim, *primeiro, *ultimo, *aux;
/* ----------------------------------- */
// Inicio de programa
int main ()
{
int opcao,x, mos, t=1; //t é contador
char impressao [20];
printf("\n\n\t\t\t ************************************************ \n");
printf("\t\t\t ************************************************ \n\n");
printf ("\t\t\t PROGRAMA PARA CONTROLE DE IMPRESSÃO \n");
printf ("\t\t\t Programador Rafael Dutra \n");
printf ("\t\t\t Versão: Talvez a 0.78 \n");
printf ("\t\t\t Feito em Slackware 10.0 \n");
printf ("\t\t\t Free, Powerful and safe! \n");
printf ("\t\t\t Kernel 2.4.26 \n");
printf ("\t\t\t KDE 3.4.0 \n\n");
printf("\t\t\t ************************************************ \n");
printf("\t\t\t**************************************************\n\n");
while (opcao!=5)
{
printf("\n\t\t\tTrabalho sendo usado");
if(inicio==NULL)
{
printf("\t[ Nenhum trabalho no momento ]\n");
}
else
{
printf("\t>>>> :: %s :: <<<<\n",inicio);
}
printf("\n\t\tStatus da fila da impressão\n");
printf("\t\tTrabalhos na fila de impressão");
if(inicio==NULL)
{
printf("\t[ Nenhum trabalho na fila de espera ]\n");
}
else
{
mos=mostrar();
if(mos==1)
{
printf("\t[ Nada no momento ]\n");
}
else
{
for(aux=inicio->prox;aux!=NULL;aux=aux->prox)
{
printf("\t[ %s ]\n\t\t\t\t\t",aux->impressao);
}
}
}
printf("\nEscolha uma das opções abaixo\n");
printf("1 - Inserir trabalho para imprimir\n");
printf("2 - Remover um trabalho da fila\n");
printf("3 - Chamar logotipo\n");
printf("4 - Sobre o autor\n");
printf("5 - Sair\n");
printf("Digite sua opcao:");
scanf ("%d",&opcao);
if (opcao==1)
{
mos=mostrar ();
if (t<=5) //t == contador
{
printf("Digite o trabalho a ser impresso:");
scanf ("%s", &impressao);
enqueue (impressao);
t++;
x=1;
}
else
{
printf("\n\t\t\t\t >>> [ A lista de impressão está cheia ] <<<\n");
}
}
if (opcao==2)
{
dequeue ();
t--;
x=1;
}
if (opcao==3)
{
logotipo();
}
if (opcao==4)
{
about();
}
if (opcao==5)
{
printf ("\t\tVoce optou por sair do programa\n");
x=0;
}
}
}
/* ----------------------------------- */
dequeue()
{
int retorno=0;
fila *aux;
if(inicio==NULL)
{
printf("\nFila vazia\n");
}
else
{
retorno=inicio->impressao;
aux=inicio;
inicio=inicio->prox;
free(aux);
}
return;
}
/* ----------------------------------- */
enqueue(char impressao[]) //inserir
{
ultimo=malloc(sizeof(fila));
strcpy (ultimo->impressao,impressao);
ultimo->prox=NULL;
if(inicio==NULL)
{
inicio=ultimo;
fim=ultimo;
}
else
{
fim->prox=ultimo;
fim=ultimo;
}
}
/* ----------------------------------- */
mostrar()
{
int t=0;
for(aux=inicio;aux!=NULL;aux=aux->prox)
{
t ++;
}
return t;
}
/* ----------------------------------- */
logotipo ()
{
printf("\t\t\t ************************************************ \n");
printf("\t\t\t ************************************************ \n\n");
printf ("\t\t\t PROGRAMA PARA CONTROLE DE IMPRESSÃO \n");
printf ("\t\t\t Programador Rafael Dutra \n");
printf ("\t\t\t Versão: Talvez a 0.78 \n");
printf ("\t\t\t Feito em Slackware 10.0 \n");
printf ("\t\t\t Free, Powerful and safe! \n");
printf ("\t\t\t Kernel 2.4.26 \n");
printf ("\t\t\t KDE 3.4.0 \n\n");
printf("\t\t\t ************************************************ \n");
printf("\t\t\t**************************************************\n\n");
}
/* ----------------------------------- */
about ()
{
printf ("\t\t\t E-mail: raffaeldutra@gmail.com\n");
printf ("\t\t\t Usuário no site vivaolinux: Law\n");
printf ("\t\t\t Linux User #376.904\n\n\n");
}
// Fim de Programa
Agenda eletronica com banco de dados em arquivo texto
Busca do código do produto-Vetores----
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Secure boot, artigo interessante, nada técnico. (4)
E aí? O Warsaw já está funcionando no Debian 13? [RESOLVIDO] (14)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)









