Ir ao conteúdo

Problema com struct, função e for


chrislix

Posts recomendados

Postado

Galera tenho o seguinte parte do codigo


typedef struct venda
{
int item;
int qtd;
float valor;
float vlrtotal;
int stats;

}venda;

typedef struct cliente
{
int posi;
int status;
int qtditem;
float vlrttcomp;
venda itens[100];

}cliente;


fexa(int a, cliente *vet)
{
int i, j, b, cont = 0;
float c= 0;
printf("%d", a);
for(i=0; i<a; i++)
{
b = ((vet[i].qtditem) + 1);
for(j=0; j<b; j++)
{
c = ((vet[j].vlrttcomp) +c);

}

if(vet[i].status== 1)
{

cont++;
}
}
printf("O Valor o fechamento de hoje:%.2f\n", c);

if(cont!=0)
{
printf(" Clientes que nao pagaram: %d\n\n", cont);
}
}


o topico nao esta completo aqui, se quiser posso porta-lo.

eu quero que o laço da função faça a conta de quantos itens foram vendidos para cada cliente, e me de o resultado de quanto foi vendido no final do dia.

e no if ali, é assim status 0 = cliente nao ativo, 1 = ativo porém que nao pago ainda, 2 cliente que ja acerto a conta, nessa hora quero tambem que o comando me fale quantos clientes faltam pagar a conta.

eu nao consigo que o código faça isso e nao sei como resolver, ja reescrevi o codigo umas 10x e nao consegui solucionar, alguem poderia me ajudar por favor???

Postado

o codigo todo é assim


#include<stdio.h>
#include<stdlib.h>

typedef struct venda
{
int item;
int qtd;
float valor;
float vlrtotal;
int stats;

}venda;

typedef struct cliente
{
int posi;
char nome[30];
int status;
int qtditem;
float vlrttcomp;
venda itens[100];

}cliente;

void menu()
{
printf("\n\n########################################################\n");
printf("# #\n");
printf("# Bem Vindo; #\n");
printf("# Por Favor Escolha a Opcao que deseja selecionar: #\n");
printf("# 1 - Solicitar codgo do cliente; #\n");
printf("# 2 - Vender; #\n");
printf("# 3 - Remover Item de venda; #\n");
printf("# 4 - Fechar conta de um cliente #\n");
printf("# 5 - Fechar caixa do dia; #\n");
printf("# 0 - Sair; #\n");
printf("# #\n");
printf("########################################################\n");
}


compra(int x, cliente *vet)
{
int a, b, i;
float c;


printf("Favor inserir o numero do item vendido:\n");
scanf("%d", &a);
printf("Favor inserir o valor do item:\n");
scanf("%f", &c);
printf("Quantidade:\n");
scanf("%d", &;

i = vet[x].qtditem +1;
vet[x].itens[i].item = a;
vet[x].itens[i].qtd = b;
vet[x].itens[i].valor = c;
vet[x].itens[i].vlrtotal = (c* ;
vet[x].qtditem = vet[x].qtditem +1;
vet[x].itens[i].stats = 1;
i++;
}


mostraritem(int a, cliente *vet)
{
int i, j;

j= vet[a].qtditem+ 1;
for(i=0; i<j+1; i++)
{
if(vet[a].itens[i].stats ==1)
{
printf("Posicao: %d\n", i);
printf("Item: %d\n", vet[a].itens[i].item);
printf("Quantidade: %d\n", vet[a].itens[i].qtd);
printf("Valor por unidade: %.2f\n", vet[a].itens[i].valor);
printf("Valor total: %.2f\n", vet[a].itens[i].vlrtotal);
printf("##########################################\n\n");
}
}
}


remover(int a, int b, cliente *vet)
{
vet[a].itens[b].stats = 2;
printf("o seguinte item foi removido com sucesso:");
printf("Posicao: %d\n", ;
printf("Item: %d\n", vet[a].itens[b].item);
printf("Quantidade: %d\n", vet[a].itens[b].qtd);
printf("Valor por unidade: %.2f\n", vet[a].itens[b].valor);
printf("Valor total: %.2f\n", vet[a].itens[b].vlrtotal);
}


conta(int a, cliente *vet)
{
int i, j, x;
float b = 0;
j = vet[a].qtditem +1;
if(vet[a].status !=2)
{
for(i=0; i<j; i++)
{
if(vet[a].itens[i].stats !=2)
{
b = b + vet[a].itens[i].vlrtotal;
}
}
printf("O cliente %d \nValor da conta: %.2f\n\n", a, ;
printf("Encerar conta desse cliente?\n");
printf("1 - sim\n");
printf("2 - nao\n");
scanf("%d", &x);
if(x>0 && x<3)
{
if(x== 1)
{
vet[a].status= 2;
}
}
else
{
printf("Opcao invalida");
}
}
else
{
printf("\n\n A Conta desse cliente ja foi encerrada;\n\n\n");
}

}


fexa(int a, cliente *vet)
{
int i, j, b, cont = 0;
float c= 0;
printf("%d", a);
for(i=0; i<a; i++)
{
b = ((vet[i].qtditem) + 1);
for(j=0; j<b; j++)
{
c = ((vet[j].vlrttcomp) +c);

}

if(vet[i].status== 1)
{

cont++;
}
}
printf("O Valor o fechamento de hoje:%.2f\n", c);

if(cont!=0)
{
printf(" Clientes que nao pagaram: %d\n\n", cont);
}
}


int main(void)
{
int a;
cliente vet[100];
char nm;
int x, z, i;
int posiAt= -1;
int qtscli = 0;

do{
menu();
scanf("%d",&a);
if(a<0 || a>6)
{
printf("Opcao invalida, digite uma opcao correta ou saia do programa\n");
}
else
{
switch(a)
{
case 1:
for(i=0; i<qtscli; i++)
{
vet[i].status = 0;
vet[i].qtditem = 0;
if(vet[i].status== 0)
{
vet[i].status= 1;
}
}
printf("\n Numero do cliente %d:\n\n", i);
qtscli++;

break;

case 2:
printf("Informe o numero de identificacao do cliente:");
scanf("%d", &x);
compra(x, vet);
break;

case 3:
printf("Insira o cliente que deseja alterar suas compras:\n");
scanf("%d", &z);
mostraritem(z, vet);
printf("Informe o item a ser removido:\n\n");
scanf("%d", &x);
remover(z, x, vet);
break;

case 4:
printf("Favor inserir o codgo do cliente que encerrara as compras\n");
scanf("%d", &x);
conta(x, vet);
break;

case 5:
printf("O Fechamento do caixa de hoje:\n");
z = qtscli;
fexa(z, vet);
break;

}
}
}while(a!= 0);

return 0;
}

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!