Filas
Publicado por Rafael Dutra 28/05/2005
[ Hits: 8.120 ]
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
Faixa salarial de funcionários
Nenhum comentário foi encontrado.
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









