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 IgorExtreme
      Olá estou com problema nesta questão: "Escreva um programa que leia e armazene em um vetor os dados de 30 pessoas. Estes dados são o nome da pessoa, sua idade, e os nomes completos do pai e da mãe. A seguir, o programa deve identificar (e mostrar os índices) das pessoas que estão relacionadas por um parentesco avô-neto e irmão-irmão. No caso dos irmãos, deve ser informado ainda qual é o mais novo dos dois." O código é esse
      #include<stdio.h> #include<string.h> #define NUM 4 struct pessoa { char nome[20]; char mae[20]; char pai[20]; int idade; }; main() { struct pessoa vetorPessoas[NUM]; int i; printf("Digite os dados de %d pessoas:\n", NUM); for (i = 0; i < NUM; i++) { printf("Digite o nome da pessoa %d: ", i); fflush(stdin); gets(vetorPessoas[i].nome); printf("%s\n", vetorPessoas[i].nome); printf("Digite o nome da mae da pessoa %d: ", i); fflush(stdin); gets(vetorPessoas[i].mae); printf("%s\n", vetorPessoas[i].mae); printf("Digite o nome do pai da pessoa %d: ", i); fflush(stdin); gets(vetorPessoas[i].pai); printf("%s\n", vetorPessoas[i].pai); printf("Digite a idade da pessoa %d: ", i); fflush(stdin); scanf("%d", &vetorPessoas[i].idade); printf("%d\n", vetorPessoas[i].idade); if(!strcmp(vetorPessoas[0].pai, vetorPessoas[1].nome)){ printf("%s e avo de %s\n", vetorPessoas[1].pai, vetorPessoas[0].nome); } if(!strcmp(vetorPessoas[2].pai, vetorPessoas[3].nome)){ printf("%s e avo de %s\n", vetorPessoas[3].pai, vetorPessoas[2].nome); } } /*if(!strcmp(vetorPessoas[i].pai, vetorPessoas[i].nome)){ printf("%s e pai de %s\n", vetorPessoas[i].pai, vetorPessoas[i].pai); }*/ if(!strcmp(vetorPessoas[0].pai, vetorPessoas[1].pai)){ printf("Eles sao irmaos\n"); if(vetorPessoas[0].idade > vetorPessoas[1].idade){ printf("%s mais velho\n", vetorPessoas[0].idade); } else{ printf("%s e mais novo\n", vetorPessoas[1].idade); } } if(!strcmp(vetorPessoas[2].pai, vetorPessoas[3].pai)){ printf("Eles sao irmaos\n"); if(vetorPessoas[2].idade > vetorPessoas[3].idade){ printf("%s mais velho\n", vetorPessoas[2].idade); } else{ printf("%s e mais novo\n", vetorPessoas[3].idade); } } } O problema é que ele mostra quase tudo menos a parte se tal irmão é mais velho que o outro
    • By fernandoxwiggy
      Bom dia,
      Alguém já teve que desenvolver o CIOT da empresa E-frete em C#?
       
      Estou buscando exemplos de como fazer usando o web service deles (http://dev.efrete.com.br/Services/LogonService.asmx).
      Eu acredito que preciso chamar o "login" (depois o logout) dentro desse web service, mas ele é uma interface e não estou achando um exemplo de chamar um procedimento em um web service que seja um interface.
       
      Agradeço desde já se alguém puder ajudar.
    • By ricardo Oliv3ira
      Um cano cilíndrico de raio R1 vai ser usado para guardar outros dois canos de raio R2 e R3. Caso os dois últimos canos caibam dentro do primeiro, seu programa deve imprimir “Coube”. Caso contrário imprima “Não coube”.
      #include <stdio.h> int main(void) { float R1,R2,R3; printf("digite o 1º tamanho:"); scanf("%f",R1); printf("digite o 2º tamanho"); scanf("%f",R2); printf("digite o 3º tamanho"); scanf("%f",R3); if(R2,R3<R1){ printf("Coube"); } else(R2,R3>R1){ printf("Não Coube"); } return 0; }  
    • By Hodol
      Boa tarde, estou começando a programar e ainda não sei qual linguagem de programação eu devo iniciar. Me de uma luz, Obrigado!
    • By User386_Denilson
      e aí pessoal, blz?
       
      Vou colocar aqui minha duvida...
      Tenho um projeto em net Core 2.2, usadon mongodb. Tenho uma collection antiga (Pessoas) que o pessoal foi alimentado com muita coisa, e agora estou organizando em pessoa fisica e pessoa juridica.
      Eu faço a busca usando o filtro por id:
      public async Task<PessoaDadosCad> GetPessoaFisica(string id) { var pessoa = await passaiMongoCollection.FindAsync(pessoa => pessoa.Id == id); var data = JsonConvert.SerializeObject(await pessoa.FirstOrDefaultAsync()); PessoaDadosCad simplifiedPerson = JsonConvert.DeserializeObject<PessoaDadosCad>(data.ToString()); return simplifiedPerson; }  
      (pessoa => pessoa.Id == id) ao executar esse comando de busca, a classe vinculada é Pessoa.
      Eu queria ver com vcs se tem como não vincular uma classe no momento da busca??
      Obrigado
×

Important Information

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