Ir ao conteúdo

Posts recomendados

Postado

Estou tentando fazer uma parte do meu programa, que é a SOMA DE VALOR TOTAL de um pedido.

o ''total" sempre fica dando 0, porém tenho que fazer com que ele some todos os itens pedidos e dê o valor total ao cliente para que ele possa efetuar o pagamento.

fiz um 'for' dentro de outro, para tentar varrer as variaveis e achar as que sao iguais usando o 'if', para adicionar o valor, mas nao vai.

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
#define tam 50

struct Pizza{
	char NomePizza[30];
	char IngredientePizza[50];
	int ValorPizza;
	int CodigoPizza;
}cadastropizza[tam];

struct Pedido{
	char PedidoCliente[30];
	int PedidoCodigo;
	char PedidoEndereco[100];
}cadastropedido[tam];

int main (){
	
	//--------------------------------------PRINCIPAIS---------------------------------------------------------------------------
	char login1[10],logadm[10]="adm123",logfuncionario[10]="func",endfuncionario,endadm; //Variaveis Base Do Programa
	char TelaAdm, TelaFunc, end1a, end2a, end3a, end4a, end5a, end1f, end2f, end3f;		//Controle De Painel Principal
	//--------------------------------------SECUNDARIO---------------------------------------------------------------------------
	int ContADM=1,ContFunc=1 , ContCadastro=1,ContSabores=1,ContBebida=1,CadastroNumero=1;
	char TelaCadastroADM,TelaEstoqueADM,TelaControleDeVendas,TelaClienteADM,VerificadorPedido,TelaCadastroCliente;
	char TelaCadastroSabor,TelaCadastroBebida,TelaCadastroFuncionario,endEstoqueADM,endseeEstoque,endaddEstoque,TelaCadastroMateriaPrima,
	FeedbackNome[50],FeedbackElogio[200],CadastroNome[50],CadastroEndereco[200],CadastroCPF[12],maisproduto;
	int total = 0;
	char a;
		
	int p = 0,b = 0,f = 0,m = 0,c = 0,pd = 0,e = 0,produto = 0;
	int i = 0,j = 0; //Variavel Padrão
	
//ignorar as variaveis, pois picotei o programa para ser mais fácil a visualização do problema @@@@@@@@@@@@@@@@@@@@@@@

	do{
								system("cls");
								printf("CADASTRO DE NOVO SABOR DE PIZZA!\n");
								printf("Faca Com Amor E Carinho!\n\n");
								
								printf("Nome Da Pizza:");
								scanf("\n%[^\n]s",&cadastropizza[p].NomePizza);
								
								printf("\nIngredientes Da Pizza:");
								scanf("\n%[^\n]s",&cadastropizza[p].IngredientePizza);
								
								printf("\nValor Da Pizza: R$");
								scanf("%d",&cadastropizza[p].ValorPizza);
								
								printf("\nCodigo Da Pizza:");
								scanf("\n%[^\n]s",&cadastropizza[p].CodigoPizza);
								
							
								
							    p++;
								printf("\nDeseja Cadastrar Mais Um Sabor? (s/n)");
								scanf(" %c",&TelaCadastroSabor);
								
							}while(TelaCadastroSabor!='n');

do{	
						system("cls");								

						produto=0;
						total = 0;
						do{
							system("cls");				
							printf("PEDIDOS\n");
							
							printf("\nNome Cliente:");
							scanf("\n%[^\n]s",&cadastropedido[pd].PedidoCliente);
							do{
								printf("\nCodigo Dos Produtos:");
								scanf("%d",&cadastropedido[produto].PedidoCodigo);
								printf("\nMais Produtos?(s/n)");
								scanf(" %c",&maisproduto);
								produto++;
								
							}while(maisproduto!='n');
							
							printf("\nEndereco Do Cliente(caso, comer no local = 0):");
							scanf("\n%[^\n]s",&cadastropedido[pd].PedidoEndereco);
							
							printf("\n\n\nNome Do Cliente:%s \nProdutos Pedidos:%d \nEndereco:%s",cadastropedido[pd].PedidoCliente,cadastropedido[pd].PedidoCodigo,cadastropedido[pd].PedidoEndereco);
							
							pd++;
							printf("\n\nFinalizar Pedido? (s/n)");
							scanf(" %c",&VerificadorPedido);
						}while(VerificadorPedido!='s');
						
						//funcaopedido
						for(i=0;i<produto;i++){
							for(j=0;j<tam;j++){
								if(cadastropedido[i].PedidoCodigo == cadastropizza[j].CodigoPizza){
									total = total + cadastropizza[j].ValorPizza;
								
								}
							}
						}
						
						printf("\n\nTOTAL: %d",total);
						printf("\nDeseja Fazer Outro Pedido? (s/n)");
						scanf(" %c",&end1f);
					}while(end1f!='n');
  return 0;
}

 

Postado
3 horas atrás, pierre chaul disse:

@Luís Roberto C. da Silva é a do struct de cadastropizza

Não tinha percebido.

adicionado 4 minutos depois

Olhe esse trecho:

for(i=0;i<produto;i++){
	for(j=0;j<tam;j++){
		if(cadastropedido[i].PedidoCodigo == cadastropizza[j].CodigoPizza){
			total = total + cadastropizza[j].ValorPizza;
		}
	}
}

Você não pode comparar o código do pedido com o código da pizza.

adicionado 7 minutos depois

Esse seu código está confuso, se eu fosse você refazia do zero, com melhores nomes para as variáveis.

adicionado 8 minutos depois

Porque em um pedido pode ter várias pizzas, então teria que ser um vetor.

Postado

Aqui um exemplo parcial de como poderia ser feito:

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

#define limparTela system("clear")  // No Windows mude para "cls"

typedef struct {
    int codigo;
    char nome[100];
    char ingrediente[100];
    double valor;
} Pizza_t;

typedef struct {
    int codigo;
    int codigoPizzas[100];
    double valorTotal;
} Pedido_t;

int main() {
    const int quantidadeMaximaPizza = 100;  // Quantidade máxima de tipos de piza

    int posicaoPizza = 0;                   // Posição de inserção de novas pizzas
    int posicaoPizzaPedido = 0;             // Posição de inserção no vetor de códigos do pedido
    int codigoPizza = 0;                    // Código para cadastrar o pedido

    Pizza_t pizzas[quantidadeMaximaPizza];  // Vetor com os tipos de pizza

    Pedido_t pedido;                        // Pedido

    char opcao = ' ';                       // Opção do menu principal

    do {
        limparTela;
        printf("MENU \n");
        printf("[ 1 ] - Cadastrar Pizza \n");
        printf("[ 2 ] - Fazer pedido \n");
        printf("[ 0 ] - Sair \n");
        printf("> ");
        scanf(" %c", &opcao);

        switch (opcao) {
            case '1':   // Cadastrar pizza
                limparTela;
                printf("NOVA PIZZA \n");
                printf("Nome: ");
                scanf(" %[^\n]s", pizzas[posicaoPizza].nome);
                printf("Ingrediente: ");
                scanf(" %[^\n]s", pizzas[posicaoPizza].ingrediente);
                printf("Valor: R$ ");
                scanf(" %lf", &pizzas[posicaoPizza].valor);

                pizzas[posicaoPizza].codigo = posicaoPizza + 1;     // Código sequencial a partir de 1
                posicaoPizza += 1;
                break;

            case '2':   // Fazer pedido
                limparTela;
                if (posicaoPizza == 0) {
                    printf("Não tem pizza no catálogo! \n");

                    if (getchar() == '\n') {
                        getchar();
                    }

                    break;
                }

                printf("NOVO PEDIDO \n");

                // Fica pedindo o código da pizza para adicionar no pedido
                do {
                    printf("Código da pizza [ 1 - %i / [0] - Fim ]: ", posicaoPizza);
                    scanf(" %i", &codigoPizza);

                    if (codigoPizza > 0 && codigoPizza <= posicaoPizza) {
                        pedido.codigoPizzas[posicaoPizzaPedido] = codigoPizza;
                        pedido.valorTotal += pizzas[codigoPizza - 1].valor;
                        posicaoPizzaPedido += 1;
                    }
                } while (codigoPizza != 0 && posicaoPizzaPedido < 100);
                
                pedido.codigo = 1;
                break;
        }
    } while (opcao != '0');

    limparTela;
    printf("--------------------------------------------- \n");
    printf("PEDIDO \n");
    printf("Código: %i \n", pedido.codigo);
    printf(" Valor: R$ %.2f \n", pedido.valorTotal);
    printf("--------------------------------------------- \n");

    return 0;
}

 

  • Curtir 1
  • Obrigado 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!