Atenção: Precisando de assessoria nos seus PROJETO entre em contato com a SGP
E-mail: ajudastrabalhosprogramacao@gmail.com
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#define menuErro "\n\n\tOPCAO INVALIDA"
#define clienteN "\n\n\tNAO CLIENTE CADASTRADO"
#define Erro_menu "\n\n\tOpcao Invalida"
struct No{
char sexo, nome[20];
struct No *prox;
};
struct Fila{
struct No *first;
struct No *last;
struct No *item;
};
int menu();
int subMenu();
void imprimirFila(struct No *f);
struct Fila *remover(struct Fila *f);
char menuSexo();
struct Fila *atender(struct Fila *f);
void dadosNaoAtendidos(int contM, int contF);
void dadosAtendidos(int totalAted, float totalCompra, float contLanche, float contRefri, float contChocolate);
int main(){
struct Fila *f = (struct Fila *)malloc(sizeof(struct Fila));
int opc,contM=0,contF=0,totalAted=0;
float contLanche=0,contRefri=0,contChocolate=0,totalCompra=0;
f->first = f->last = f->item = NULL;
do{
system("cls");
opc = menu();
switch(opc){
case 1:{
struct No *nTemp = (struct No *)malloc(sizeof(struct No));
printf("Informe o Nome: ");
gets(nTemp->nome);
nTemp->sexo = menuSexo();
if (nTemp->sexo == 'M')
contM++;
else
contF++;
nTemp->prox = NULL;
if(f->first == NULL & f->last == NULL){
f->first = nTemp;
f->item = nTemp;
}else if(f->last == NULL){
f->first->prox = f->last = nTemp;
f->item->prox = nTemp;
}else{
f->last->prox = nTemp;
f->last = f->last->prox;
}
}break;
case 2:{
if(f->first == NULL){
system("cls");
printf(clienteN);
}else{
system("cls");
printf("\tCLIENTES NA FILA\n");
imprimirFila(f->item);
}
}break;
case 3:{
if(f->first == NULL && totalAted==0){
system("cls");
printf(clienteN);
}else{
dadosNaoAtendidos(contM,contF);
if(totalAted>0){
dadosAtendidos(totalAted,totalCompra,contLanche,contRefri,contChocolate);
}
}
}break;
case 4:{
int op,qtd=0;
if(f->first == NULL){
system("cls");
printf(clienteN);
}else{
do{
system("cls");
op = subMenu();
switch(op){
case 1:{
printf("Informe a QTD. de lanches: ");
scanf("%d",&qtd);
getchar();
contLanche+=qtd*6.00;
totalCompra+=contLanche;
}break;
case 2:{
printf("Informe a QTD. de Refrigerantes: ");
scanf("%d",&qtd);
getchar();
contRefri+=qtd*4.50;
totalCompra+=contRefri;
}break;
case 3:{
printf("Informe a QTD. de Chocolate");
scanf("%d",&qtd);
getchar();
contChocolate+=qtd*4.00;
totalCompra+=contChocolate;
}break;
case 0: {
if(f->item->sexo == 'M')
contM--;
else
contF--;
totalAted++;
f = atender(f);
break;
}
default :
printf(menuErro);
break;
}
}while(op !=0);
}
}break;
case 0:break;
default :
printf(menuErro);
break;
}
getchar();
}while(opc !=0);
return 0;
}
int menu(){
int opc;
printf("\t\tBEM VINDOS AO ATENDIMENTO DA CANTINA\n\n");
printf("1 - Entrar na Fila\n2 - Exibir Fila\n3 - Estatisticas\n4 - Atender\n0 - Sair: ");
scanf("%d",&opc);
getchar();
return opc;
}
int subMenu(){
int op;
printf("\n\n\tInforme qual produto deseja adquirir");
printf("\n1 - Lanche\n2 - Refrigerante\n3 - Chocolate\n0 - Finalizar Atendimento: ");
scanf("%d",&op);
getchar();
return op;
}
void imprimirFila(struct No *f){
if(f != NULL){
printf("Nome: %s\nSexo: %c\n\n",f->nome,f->sexo);
imprimirFila(f->prox);
}
}
struct Fila *remover(struct Fila *f){
struct Fila *fTemp = f;
struct No *nTemp = fTemp->first;
f->first = f->item = nTemp->prox;
}
char menuSexo(){
char sexo;
do{
printf("\nInforme o sexo do Cliente\nM - Masculino\nF-Feminino: ");
sexo = toupper(getchar());
if(sexo != 'M' && sexo != 'F'){
printf(Erro_menu);
getchar();
}
}while(sexo != 'M' && sexo != 'F');
return sexo;
}
struct Fila *atender(struct Fila *f){
struct Fila *fTemp = f;
struct No *nTemp = fTemp->first;
f->first = f->item = nTemp->prox;
free(nTemp);
return f;
}
void dadosNaoAtendidos(int contM, int contF){
system("cls");
printf("\tDADOS DOS CLIENTES DA FILA NAO ATENDIDOS\n");
printf("Total de Masculino: %d: ",contM);
printf("\nToal de Femenino: %d", contF);
}
void dadosAtendidos(int totalAted, float totalCompra, float contLanche, float contRefri, float contChocolate){
printf("\n\n\tDADOS DOS CLIENTES DA FILA ATENDIDOS\n");
printf("\nTotal de Clientes Atendidos: %d\nValor Total %.2f\nTotal de Lanches: %.2f"
"\nTotal de Refri: %.2f\nTotal de Chocolates: %.2f",totalAted,totalCompra,contLanche,contRefri,contChocolate);
}
Atenção: Precisando de ajuda entre em contato com a SGP e solicite uma assessoria com a melhor equipe do mercado no desenvolvimento de trabalhos acadêmicos
E-mail: ajudastrabalhosprogramacao@gmail.com
Facebook: fb.me/ajudaemTrabalhosdeprogramacao
Nenhum comentário:
Postar um comentário