-
Postagens
4 -
Registro em
-
Última visita
Tipo de Conteúdo
Fóruns
Treinamentos
Notícias
Artigos
Contribuindo
Profissões
Materiais de estudo
Pesquisa
Downloads
Loja
Eventos
Blogs
Galeria
Posts postados por Brenda Nunes
-
-
Em 10/05/2022 em 19:52, Pimptech disse:
Olá, Brenda. Tudo bem ?
Bom, pelo que eu entendi, você quer pesquisar seu bolo pelo código, certo ?
Como não especificou qual tipo de código então entendo que ele é somente string, ainda mais pelo tipo que você colocou na struct. Portanto só tem uma maneira de fazer isso que é iterar pelo seu vetor de bolos.
Bolo_t bolos[quantidadeMaximaBolo];
Tem várias maneiras de fazer isso. Eu faria uma inicialização do vetor de Bolo_t. Assim vc poderia iterar e checar essa opção.
Ou você pode manter desse jeito ai mesmo e só checar se o .nome é vazio. E para isso você pode adicionar a header. <string.h>, fica mais fácil de mexer nas strings com as funções respectivas.Eu fiz algumas modificações no seu código. mas no geral seria isso. Primeiro limpo o nomebolo para buscar por ele, depois comparo com as funções de string para ver se não tá vazio ou é 0. Depois faço um loop-for para iterar pelo seu vector de Bolo_t. O nome sendo igual ao digitado eu paro o loop-for e mostro o resultado.
//cleaning nomedobolo nomedobolo[0] = '\0'; do { // bolos[posicaoBolo].nome printf("Digite o nome/codigo do bolo %s caso nao queira mais bolos digite 0: ", nomedobolo); scanf(" %s[^\n]", nomedobolo); if(strcmp(nomedobolo, "0") == 0 || strlen(nomedobolo) <= 0){ printf("skipping. %s", nomedobolo); break; } for(int o=0;o<quantidadeMaximaBolo;o++){ if(strcmp(bolos[o].nome, nomedobolo)){ printf("\n-------Encontrado-------\nSeu bolo.. foi encontrado. posição %i. %s \n\n", o, bolos[o].nome); //bolos[0].nome e etc... break; } } } while (1);
Caso alguma coisa não tenha ficado clara só falar. Abs!ola eu ainda estou confuso com o que você disse comecei a mexer com c++ agora e estou fazendo este código oq tenho que fazer é no final onde diz "digite o codigo do bolo" tenha que realmente digitar o código dito na primeira parte e não seja em ordem igual esta agora
outra coisa eu não consigo fazer com que apareça os nomes dos bolos selecionados no final do código como exemplo
"pedido
codigo:1
valor: 20
bolos pedidos : laranja, chocolate, cafe
"
-
Oi eu precisava mostrar os nomes dos bolos pedidos no final sabe como posso fazer isso ?
Obrigado pela ajuda
-
#include <stdio.h>
#include <stdlib.h>#define limparTela system("cls")
typedef struct {
int codigo;
char nome [100];
char ingrediente[100];
double valor;
} Bolo_t;typedef struct {
int codigo;
int codigoBolos[100];
double valorTotal;
} Pedido_t;int main() {
const int quantidadeMaximaBolo = 100;int posicaoBolo = 0;
int posicaoBoloPedido = 0;
int codigoBolo = 0;
char nomedobolo [100] ;Bolo_t bolos[quantidadeMaximaBolo];
Pedido_t pedido;
char opcao = ' ';
do {
limparTela;
printf("MENU \n");
printf("[ 1 ] - Cadastrar Bolo \n");
printf("[ 2 ] - Fazer pedido \n");
printf("[ 0 ] - Sair \n");
printf("> ");
scanf(" %c", &opcao);switch (opcao) {
case '1':
limparTela;
printf("NOVO BOLO \n");
printf("Nome do bolo: ");
scanf(" %[^\n]s", nomedobolo);
printf("digite o codigo do bolo: ");
scanf(" %[^\n]s", bolos[posicaoBolo].nome);
printf("Valor: R$ ");
scanf(" %lf", &bolos[posicaoBolo].valor);
bolos[posicaoBolo].codigo = posicaoBolo + 1;
posicaoBolo += 1;
break;case '2':
limparTela;
if (posicaoBolo == 0) {
printf("Nao tem bolo cadastrado \n");if (getchar() == '\n') {
getchar();
}break;
}
do {
printf("Digite o nome/codigo do bolo %s caso nao queira mais bolos digite 0", nomedobolo, bolos[posicaoBolo].nome );
scanf(" %i", &codigoBolo);if (codigoBolo > 0 && codigoBolo <= posicaoBolo) {
pedido.codigoBolos[posicaoBoloPedido] = codigoBolo;
pedido.valorTotal += bolos[codigoBolo - 1].valor;
posicaoBoloPedido += 1;
}
} while (codigoBolo != 0 && posicaoBoloPedido < 100);
pedido.codigo = 1;
break;
}
} while (opcao != '0');limparTela;
printf("--------------------------------------------- \n");
printf("PEDIDO \n");
printf("Codigo: %i \n", pedido.codigo);
printf(" Valor: R$ %.2f \n", pedido.valorTotal);
printf("--------------------------------------------- \n");return 0;
}
Ola ainda preciso de ajuda pfv
em C/C++
Postado
olá eu tenho este código que é para um trabalho e minha professora disse para eu add uma
função
vetor ou matriz
sobre a matriz ou vetor eu tenho que fazer com que no final do código onde diz "o bolo pedido foi" apareça todos os nomes dos bolos pedidos
#include <stdio.h>
#include <stdlib.h>
#define limparTela system("cls")
void nomedubolo ();
typedef struct {
int codigo;
char nome [10];
char ingrediente[10];
double valor;
} Bolo_t;
typedef struct {
int codigo;
int codigoBolos[10];
double valorTotal;
} Pedido_t;
int main() {
const int quantidadeMaximaBolo = 10;
int posicaoBolo = 0;
int posicaoBoloPedido = 0;
int codigoBolo = 0;
char nomedobolo [5] [100] ;
Bolo_t bolos[quantidadeMaximaBolo];
Pedido_t pedido;
char opcao = ' ';
do {
limparTela;
printf("MENU \n");
printf("[ 1 ] - Cadastrar Bolo \n");
printf("[ 2 ] - Fazer pedido \n");
printf("[ 0 ] - Sair \n");
printf("> ");
scanf(" %c", &opcao);
switch (opcao) {
case '1':
{
limparTela;
printf("NOVO BOLO \n");
printf("Nome do bolo: ");
scanf(" %[^\n]s",nomedobolo);
printf("digite o codigo do bolo: ");
scanf(" %[^\n]s", bolos[posicaoBolo].nome);
printf("Valor: R$ ");
scanf(" %lf", &bolos[posicaoBolo].valor);
bolos[posicaoBolo].codigo = posicaoBolo + 1;
posicaoBolo += 1;
break;
}
case '2':
limparTela;
if (posicaoBolo == 0) {
printf("Nao tem bolo cadastrado \n");
if (getchar() == '\n') {
getchar();
}
break;
}
do {
printf("Digite o codigo do bolo e caso nao queira mais bolos digite 0:", nomedobolo, bolos[posicaoBolo].nome );
scanf(" %i", &codigoBolo);
if (codigoBolo > 0 && codigoBolo <= posicaoBolo) {
pedido.codigoBolos[posicaoBoloPedido] = codigoBolo;
pedido.valorTotal += bolos[codigoBolo - 1].valor;
posicaoBoloPedido += 1;
}
} while (codigoBolo != 0 && posicaoBoloPedido < 10);
pedido.codigo = 1;
break;
}
} while (opcao != '0');
limparTela;
printf("--------------------------------------------- \n");
printf(" PEDIDO \n");
printf(" Codigo: %i \n", pedido.codigo);
printf(" Valor: R$ %.2f \n", pedido.valorTotal);
printf(" o bolo pedido foi: %s \n ", nomedobolo);
printf("--------------------------------------------- \n");
return 0;
}