Olá alguém que esteja lendo isso, tem dias que eu não consigo rodar esse algoritmo certo, não sei mais o que eu faço, nao sou nenhum desenvolvedor nem nada, tô no 1 semestre
#include <stdio.h>
#include <stdlib.h>
//Inicio Structs
struct telefones{
char numfixo[15];
char celular[16];
};
struct clientes{
double cpf;
int codcliente;
struct telefones t;
char nome[30];
char sexo;
};
struct produtos{
char nomeprod[20];
int codigoproduto;
float valor;
char modelo [10];
};
struct carrinhos{
struct clientes cliente[5];
struct produtos produto[5];
int quantidade;
float subtotal;
float desconto; // porcentagem
float total;
};
struct modelos{
char marca [20];
char modelo [20];
};
/////Fim Structs
//Inicio Fun��o
void cadastrarCliente(struct clientes cliente[50], int cont);
void mostrarCliente(struct clientes cliente[50]);
void mostraMenuPrincipal();
void mostrarProduto(struct produtos produto[50]);
void cadastrarProduto(struct produtos produto[50],int contp);
void efetuarCompra(struct carrinhos carrinho[50],struct clientes cliente[3],struct produtos produto[10]);
void ordenarCliente(struct clientes cliente[50]);
// Inicio Main
void main(int argc, char *argv[]) {
int resposta,contp=0,cont=0,voltar=0; //cont e o contador do cliente, contp e do produto.
struct produtos produto[50];
struct clientes cliente[50];
struct carrinhos carrinho[50];
struct modelos modelo[50];
////////////inicio declarando structs para ele ter oque mostrar////////////////////////////////////
///////////////////Ira direcionar o usuario no menu ///////////////////////
do{
mostraMenuPrincipal();
scanf("%d", &resposta);
switch(resposta)
{
case 1:
cadastrarCliente(cliente, cont);
cont=cont+1; //agora a proxima vez que for cadastrar um cliente, o indice vai ser um apos o anterior.
system("pause");
break;
case 2:
cadastrarProduto(produto,contp);
contp=contp+1;
system("pause");
break;
case 3:
mostrarCliente(cliente);
system("pause");
break;
case 4:
mostrarProduto(produto);
system("pause");
break;
case 5:
efetuarCompra(carrinho,cliente,produto);
system("pause");
break;
case 6:
ordenarCliente(cliente);
contp=contp+1;
break;
default:
exit(0);
}
}while(1);
}
////////////////////////print menu ///////////////////////////////////////////
void mostraMenuPrincipal(){
system("cls");
printf("==========================================================\n");
printf("1 - CADASTRAR CLIENTE\n");
printf("2 - CADASTRAR PRODUTO\n");
printf("3 - LISTA DE CLIENTES\n");
printf("4 - LISTA DE PRODUTOS\n");
printf("5 - EFETUAR VENDA\n");
printf("0 - SAIR DO MERCADO DIGITAL\n");
printf("==========================================================\n");
printf("Digite sua opcao: ");
}
////////////////////////print cadastrar cliente ///////////////////////////////////////////
void cadastrarCliente(struct clientes cliente[50],int cont){
system("cls");
printf("=======================================================\n");
printf("-----------------CADASTRAR CLIENTE: %d-----------------\n", cont+1);
printf("=======================================================\n\n\n");
printf("AVISO! Digite o CPF da forma original com ponto e tra�os\n\n");
printf("CPF: "); fflush(stdin); //limpa o buffer
scanf("%f",&cliente[cont].cpf);
printf("NUM FIXO: "); fflush(stdin);
scanf("%d", &cliente[cont].t.numfixo);
printf("CELULAR: "); fflush(stdin);
scanf("%d", &cliente[cont].t.celular);
printf("NOME: "); fflush(stdin);
gets(cliente[cont].nome);
printf("DATA NASCIMENTO: "); fflush(stdin);
cliente[cont].codcliente=cliente[cont].cpf/100000;
printf("\n==========================================================\n");
printf("O CODIGO DO CLIENTE GERADO E: %d",&cliente[cont].codcliente);
printf("\n");
//Printa o cliente que foi cadastrado
printf("\nCPF: %d",cliente[cont].cpf);
printf("\nNUM FIXO: %d",cliente[cont].t.numfixo);
printf("\nCELULAR: %d",cliente[cont].t.celular);
printf("\nNOME: %s",cliente[cont].nome);
printf("\n=================================================\n");
}
////////////////////////print listar cliente ///////////////////////////////////////////
void mostrarCliente(struct clientes cliente[50]){
int repet=0;
printf("================================================\n");
printf("----------------- LISTAR CLIENTE -----------------\n");
printf("================================================\n");
for(repet=0;repet<=2;repet++){
printf("\nCPF: %d",cliente[repet].cpf);
printf("\nNUM FIXO: %d",cliente[repet].t.numfixo);
printf("\nCELULAR: %d",cliente[repet].t.celular);
printf("\nNOME: %s",cliente[repet].nome);
printf("\nCODIGO DO CLIENTE: %d\n",cliente[repet].codcliente);
}
}
////////////////////////print cadastrar produto ///////////////////////////////////////////
void cadastrarProduto(struct produtos produto[50],int contp){
printf("=================================================\n");
printf("-----------------CADASTRAR PRODUTO: %d-----------------\n", contp+1);
printf("=================================================\n");
printf("CODIGO DO PRODUTO: \n");
scanf("%d",&produto[contp].codigoproduto);
printf("\nNOME DO PRODUTO: ");
fflush(stdin);
gets(produto[contp].nomeprod);
printf("\nMARCA: ");
(stdin);
printf("\nMODELO: ");
fflush(stdin);
printf("\nVALOR: ");
fflush(stdin);
scanf("%f",&produto[contp].valor);
//agora printar produto
printf("\nCODIGO DO PRODUTO: %d\n",produto[contp].codigoproduto);
printf("\nNOME DO PRODUTO: %ss\n",produto[contp].nomeprod);
printf("\nVALOR DO PRODUTO: R$ %0.2f\n",produto[contp].valor);
printf("\nMODELO DO PRODUTO: %s", produto[contp].modelo);
}
////////////////////////print listar produtos ///////////////////////////////////////////
void mostrarProduto(struct produtos produto[50]){
int repet;
printf("================================================\n");
printf("----------------- LISTAR PRODUTO -----------------\n");
printf("================================================\n");
for(repet=0;repet<=9;repet++){
printf("\n\nCODIGO DO PRODUTO: %d",produto[repet].codigoproduto);
printf("\nNOME DO PRODUTO: %s",produto[repet].nomeprod);543;
printf("\nVALOR DO PRODUTO: R$ %0.2f\n\n",produto[repet].valor);
}
}
//pode ser de haja erro na compra
void efetuarCompra(struct carrinhos carrinho[50],struct clientes cliente[3],struct produtos produto[10]){
int buscacliente,x;
int buscaprod,buscaprod2,buscaprod3;
int quantidade,quantidade2,quantidade3;
float total,total2,total3;
float totalum,todototal,cupom,desc;
float fimtotal;
mostrarCliente(cliente);
printf("\n\nDigite o codigo do cliente: ");
scanf("%d",&buscacliente);
for(x=0;x<=50;x++){
int y;
if(cliente[x].codcliente==buscacliente){
y=1;
}
if(y==1){
buscacliente=x;
y=51;
}
}
system("cls");
mostrarProduto(produto);
printf("\ncarrinho do cliente %s",cliente[buscacliente].nome);
printf("\ndigite o codigo do produto 1: ");
scanf("%d",&buscaprod);
for(x=0;x<=50;x++){
int y;
if(produto[x].codigoproduto==buscaprod){
y=1;
}
if(y==1){
buscaprod=x;
y=51;
}
}
printf("\ndigite a quantidade: ");
scanf("%d",&quantidade);
total = quantidade * produto[buscaprod].valor;
//REPETICAO/////////////////////
printf("\ndigite o codigo do produto 2: ");
scanf("%d",&buscaprod);
for(x=0;x<=50;x++){
int y;
if(produto[x].codigoproduto==buscaprod){
y=1;
}
if(y==1){
buscaprod=x;
y=51;
}
}
printf("\ndigite a quantidade: ");
scanf("%d",&quantidade);
total2 = quantidade * produto[buscaprod].valor;
//REPETICAO/////////////////////
printf("\ndigite o codigo do produto 3: ");
scanf("%d",&buscaprod);
for(x=0;x<=50;x++){
int y;
if(produto[x].codigoproduto==buscaprod){
y=1;
}
if(y==1){
buscaprod=x;
y=51;
}
}
printf("\ndigite a quantidade: ");
scanf("%d",&quantidade);
total3 = quantidade * produto[buscaprod].valor;
//system("pause");
printf("digite o cupom de desconto: ");
scanf("%f", &cupom);
todototal = total + total2 + total3;
desc = todototal * (cupom / 100);
fimtotal = todototal - desc;
printf("Total: R$ %0.2f\n", todototal);
printf("Valor do Desconto: R$ %0.2f\n", desc);
printf("Valor total e R$ %0.2f\n", fimtotal);
system("pause");
}
void ordenarCliente(struct clientes cliente[50]){
int i,b;
int codigotemp,cpftemp,fixotemp,celulartemp,datanasctemp;
char nometemp;
printf("Organizando lista...\n");
for(i=0;i<=3;i++){
for(b=0;b<=3;b++){
if(cliente[b].codcliente>cliente[b+1].codcliente){
//valores para variaveis temporarias
printf("transferindo valores para variaveis temporarias...\n");
codigotemp=cliente[b].codcliente;
fixotemp=cliente[b].t.numfixo;
celulartemp=cliente[b].t.celular;
//strcpy(nometemp , cliente[b].nome);
nometemp=cliente[b].nome;
cpftemp=cliente[b].cpf;
printf("variaveis temporarias transferidas.\n");
//fim da transferencia de valores para variaveis temporarias
//fazer os valores de indice b receber o valor do indice da struct do indice seguinte
printf("cliente %d recebendo valores do cliente... %d\n",b,b+1);
cliente[b].codcliente=cliente[b+1].codcliente;
strcpy(cliente[b].nome , cliente[b+1].nome);
cliente[b].cpf=cliente[b+1].cpf;
printf("cliente %d recebeu valores do cliente %d\n",b,b+1);
//fim da transferencia de valores do segundo para o primeiro indice
//inicio dE transferencia de valores do primeiro indice para o segundo indice
printf("cliente %d recebendo valores das variaveis temporarias...\n",b+1);
cliente[b+1].codcliente=codigotemp;
printf("recebeu codigo do cliente.\n");
//cliente[b+1].nome=nometemp;
strcpy(cliente[b+1].nome,nometemp);
//sprintf(cliente[b+1].nome,nometemp);
printf("recebeu nome\n");
cliente[b+1].cpf=cpftemp;
printf("recebeu cpf\n");
printf("cliente %d recebeu valores das variaveis temporarias\n",b+1);
printf("---- ---- ---- ---- ");
}
}
}
printf("Operacao concluida.\n");
}