Jump to content
sudden

[Código] Mercado digital

Recommended Posts

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");
}

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By Nwband
      programar um determinado programa pf
       
      Preciso de um programa em C que seja capaz de ler uma frase com ate 100 caracteres e imprimi-la, conseguir identificar quantas letras maiusculas e minusculas tem na frase e escreve-la ao contrario
    • By Auface
      Pessoal estou iniciando na programaçaoem C e tenho este trabalho para fazer.
       
      Ajudem por favor , programação em C, e não tenho a minima ideia de como fazer, o enunciado é em inglês e está, neste link, é o exercício B(building a field).
      http://maratona.ime.usp.br/hist/2018/resultados18/contest_onesided.pdf
      Por enquanto eu fiz isso, mas não tenho certeza se começo assim.eu acho também que tenho que fazer este exercício a partir de um arquivo e lendo ele, mas também n sei como fazer.
       
      #include <stdio.h> int main() {     float x1,y1,x2,y2;     printf("Ponto 1: \n");     scanf("%f %f",&x1,&y1);     printf("Pont 2: \n");     scanf("%f %f",&x2,&y2);     printf("%.4f\n",(sqrt(pow(x2-x1,2)+pow(y2-y1,2))));     return 0; }
    • By eduardobraz
      Corrigir dois erros:
       
      entrada:
      10 4
      -93 -86 49 -62 -90 -63 40 72 11 67
       
      Saída
      NAO
      6
      5
      4
      2
      1
       
      Mais com esse está assim
      NAO
      1
      3
      4
      5
       
       
      #include <stdio.h>
      int main(){
          int n, k, i, j, cont, vetor[1000], aux, po;
          while (1){
              
              scanf("%d %d", &n, &k);
              
              if(n <= 1000 && n >= 0 && k <= 1000 && k >= 0){
                  
                  break;
                  
              }
          }
          for(i = 0; i < n; i++){
              
              scanf("%d", &vetor);
              
          }
          for(i = 0; i < n; i++){
          
              if(vetor <= 0){
                  cont++;
              }
          }
          if(cont >= k){
              printf("NAO\n");
              for(i=1; i<n; i++){
                  if (vetor <= 0){
                      aux = vetor;
                      po=i;                 
                      printf("%d\n", po);
                  }
              }
          }
          else{
              printf("SIM\n");
          }
      }
    • By soaresgusta
      Boa tarde, exercício pede a seguinte questão:

      Faça um programa que leia um valor x qualquer e calcule:
      Y = ( x+1)+(x+2)+(x+3)+(x+4)+(x+5)+...(x+100).

      Eu não estou conseguindo criar uma função Y na linguagem que some de 1 a 100.

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

      int main ()
      {
      int Y=0, x, i=1;

      for (i=1;i<=100;i++);
      {
      Y= (x+i);
      printf("Digite um numero inteiro qualquer: \n");
      scanf ("%d", x);

      printf("Y = %d \n", Y);
      i++;

      }
      return (0);
      }

      Pela lógica, i varia de 1 a 100, mas quando eu executo o programa ele não soma. Alguém pode me ajudar?
    • By Leonard123456789
      fazer um programa  que pede ao usuário que entre com os valores de 0 a 10. Não pode ser maior que 10 e nem menor que 0 é não pode ter números repetidos e nem iguais
       
      var v,cont,igual:inteiro inicio cont <- 0 enquanto (cont <= 5) faca escreva("Digite os valores de 0 a 5: ") leia(v) se (v >5) entao escreval("Número errado!") fimse cont <- cont + 1 fimenquanto fimalgoritmo  
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.