URGENTE (problema com progama C)

1. URGENTE (problema com progama C)

Peterson
pet_gf

(usa Ubuntu)

Enviado em 24/04/2009 - 16:11h

Faça um algoritmo para simular a fila de atendimento a um caixa de supermercado o mesmo devera simular a fila para pagamento das mercadorias. Sabendo que cada cliente compra ate 20 produtos, utilize o algoritmo de empilhamento dos produtos para completar o ciclo de atendimento. Simular o atendimento de 10 clientes.

consegui um exemplo e fiz, mais naum ta compilando e eu naum sei como fazer pra ficar com 10 cliente e vinte produtdos. quem puder me ajudar AGRADEÇO!

#include <stdio.h>
#include <string.h>

struct supermercado
{
char nome[50];
int n1;
}*m2,*m3;

int i=0,y=0;

typedef struct supermercado fila;
void menu1(void);
void menu(void);
int insere(fila *emp, int c);
int retira(int c);
void status(int c);
void imptopo(fila *imp, int c);
void lista(fila *list, int c);
int cria(void);
int libera(void);
void show(fila *p);

int main()
{
fila produto[10];

int j=0,op;
for(i=0;i<10;i++)
{
produto[i].n1=0;
produto[i].nome[0]='{TTEXTO}';
}
i=0;

for(;;)
{
menu();
scanf("%i",&op);
system("clear");

switch(op)
{
case 0:
exit(0);
break;
case 1:
cria();
break;
case 2:
i=insere(produto,i);
break;
case 3:
i=retira(i);
break;
case 4:
status(i);
break;
case 5:
lista(produto,i-1);
break;
case 6:
imptopo(produto,i-1);
break;
case 7:
libera();
break;
default:
printf("comando (%i) desconhecido\n",op);
sleep(4);
break;
}
}
};

void menu1(void)
{
system("clear");
printf("*******************MENU*******************\n\n");
printf("1 - retira 1 dado\n");
printf("2 - retira 2 dados\n");
printf("3 - retira n dados\n");
printf("4 - retira todos os dados da fila\n");
printf("\n*****************************************\n");
printf("Digite sua opcao: ");
};

void menu(void)
{
system("clear");
printf("*******************MENU*********************\n\n");
printf("0 - sai do programa\n");
printf("1 - cria uma fila\n");
printf("2 - insere um produto na fila\n");
printf("3 - chama menu de retira\n");
printf("4 - verifica se a fila esta vazia\n");
printf("5 - lista o conteudo da fila\n");
printf("6 - imprime o ultimo elemento da fila\n");
printf("7 - libera espaco de memoria alocado\n");
printf("\n********************************************\n");
printf("Digite sua opcao: ");
};

int insere(fila *emp, int c)
{
int a;
int b=0;
for(b=0, b<3, b++){
print("Cliente: %d",b+1);
if(c<=3)
{
getchar();
for(a=c;a>=0;a--)
{
strcpy(emp[a+1].nome,emp[a].nome);
emp[a+1].n1=emp[a].n1;
}
printf("Digite o nome do produto\n");
fgets(emp[0].nome,50,stdin);
printf("Digite o valor do produto:\n");
scanf("%i",&emp[0].n1);
c++;
}
else
{
printf("A fila esta cheia!!!\n");
sleep(4);
}
return c;
}
};

int retira(int c)
{
int k,a;
if(c>0)
{
menu1();
scanf("%i",&k);
switch(k)
{
case 1:
c--;
return c;
case 2:
if(c>=2)
c=c-2;
else
{
printf("Impossivel retirar!!!\n");
sleep(3);
}
return c;
case 3:
system("clear");
printf("Digite a quantidade de produtos a ser retirados: ");
scanf("%i",&a);
if(a>c)
{
printf("\n\nImpossivel retirar!!!\n");
sleep(4);
}
else
c=c-a;
return c;
case 4:
c=0;
return c;
default:
return c;
}
}
else
{
printf("Verifique se a fila foi criada ou se ela esta vazia!!\n");
sleep(4);
}
return c;
};

void status(int c)
{
if(c==0)
printf("A fila esta vazia\n");
else
printf("A fila contem dados\n");
sleep(4);
};

void imptopo(fila *imp, int c)
{
if(c>=0)
{
printf("Ultimo produto da fila e:\n\n");
printf("Nome produto: %s\n",imp[c].nome);
printf("Valor: %i\n",imp[c].n1);
}
else
printf("Verifique se a fila foi criada ou se ela esta vazia!!\n");
sleep(4);
};

void lista(fila *list, int c)
{

int m=0;
while(m<=c)
{
printf("Nome Produto: %s\n",list[m].nome);
printf("Valor: %i\n",list[m].n1);
m++;
}
if(c==-1)
printf("Verifique se a fila foi criada ou se ela esta vazia!!\n");
sleep(4);
};

int cria(void)
{
m3=(fila *) calloc(10,sizeof (fila));
system("clear");
printf("Foi alocado um espaco em memoria para outra fila\n");
sleep(4);
return 0;
};

int libera(void)
{
free(m3);
system("clear");
printf("Foi liberado da memoria o espaco de m3\n");
sleep(4);
return 0;
};

void show(fila *p)
{
int c;
for(c=0;c<i;c++)
{
printf("%s\n",p->nome);
printf("%i\n",p->n1);
p++;
sleep(4);
}
};



  


2. Tenta compilar isso :

André
andrezc

(usa Debian)

Enviado em 24/04/2009 - 20:02h

#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <iostream>

float soma (float a,float b);
float subt (float a,float b);
float multi (float a,float b);
float divide (float a,float b);
float raiz(float a);
int main (){
system("title Calculadora");
system("color F1");
float a, b;
int opc;
char string[0];
printf ("\n |DIGITE A OPCAO DESEJADA:");
printf (" \n |--------------------|\n |[1] Somar |\n |[2] Subtrair |\n |[3] Multplicar |\n |[4] Dividir |\n |[5] Raiz Quadrada |\n |[6] Sair |\n");
printf (" |--------------------|\n");
printf (" |Opcao: ");
scanf ("%d",&opc);
while (opc != 6)
switch (opc)
{
case 1:
printf (" |Digite o PRIMEIRO numero: ");
scanf ("%f",&a);
printf (" |Digite o SEGUNDO numero: ");
scanf ("%f",&b);
printf (" |RESULTADO: %2.0f \n\n",soma (a,b));
printf (" ||>>PRESSIONE ENTER PARA CONTINUAR<<||\n\n\n");
getche ();
system ("CLS");
return main ();
break;
case 2:
printf (" |Digite o PRIMEIRO numero: ");
scanf ("%f",&a);
printf (" |Digite o SEGUNDO numero: ");
scanf ("%f",&b);
printf (" |RESULTADO: %2.0f \n\n", subt (a,b));
printf (" ||>>PRESSIONE ENTER PARA CONTINUAR<<||\n\n\n");
getche ();
system ("CLS");
return main ();
break;
case 3:
printf (" |Digite o PRIMEIRO numero: ");
scanf ("%f",&a);
printf (" |Digite o SEGUNDO numero: ");
scanf ("%f",&b);
printf (" |RESULTADO: %2.0f \n\n",multi (a,b));
printf (" ||>>PRESSIONE ENTER PARA CONTINUAR<<||\n\n\n");
getche ();
system ("CLS");
return main ();
break;
case 4:
printf (" |Digite o PRIMEIRO numero: ");
scanf ("%f",&a);
printf (" |Digite o SEGUNDO numero: ");
scanf ("%f",&b);
printf (" RESULTADO: %2.0f \n\n",divide (a,b));
printf (" ||>>PRESSIONE ENTER PARA CONTINUAR<<||\n\n\n");
getche ();
system ("CLS");
return main ();
case 5: printf (" |Digite o numero: ");
scanf ("%f",&a);
printf (" |A RAIZ QUADRADA E: %f \n\n",raiz (a));
printf (" ||>>PRESSIONE ENTER PARA CONTINUAR<<||\n\n\n");
getche ();
system ("CLS");
return main ();
break;
default:
printf(" |OPCAO INVALIDA! |\n\n");
printf(" ||>>PRESSIONE ENTER PARA CONTINUAR<<||\n\n\n");
getche ();
gets (string);


system("CLS");
printf ("\n |DIGITE A OPCAO DESEJADA:");
printf (" \n |--------------------|\n |[1] Somar |\n |[2] Subtrair |\n |[3] Multplicar |\n |[4] Dividir |\n |[5] Raiz Quadrada |\n |[6] Sair |\n");
printf (" |--------------------|\n");
printf (" |Opcao: ");
scanf ("%d",&opc);
}
return(0);
}
float soma (float a,float b)
{
return (a+b);

}

float subt (float a,float b)
{
return (a-b);

}

float multi (float a,float b)
{
return (a*b);

}

float divide (float a,float b)
{
return (a/b);


}
float raiz (float a)
{
return (sqrt(a));
}



3. trabalho faculdade em

wander
dedrano_RC

(usa Ubuntu)

Enviado em 06/06/2011 - 12:15h

oi eu to cursando o segundo periodo de rede de computadores o professor passou um trabalho
usando vertor e matriz 5 supermercados e 10 produtos
feito em linguagem dev c++ tem como voce me ajuda pois eu
ainda não consico fazer um programa um grande abraço
vou deixar o meu email ja estou cadastrado no site






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts