Ir para conteúdo
Fórum Script Brasil

victor_santos

Membros
  • Total de itens

    10
  • Registro em

  • Última visita

Sobre victor_santos

victor_santos's Achievements

0

Reputação

  1. Galera, o negócio é o seguinte.. Tenho uma página simples em html, sem CSS, na qual faço uma busca num banco de dados MySQL e este me retorna os valores contidos no banco para os parâmetros por mim passados. Só que o resultado, ele só mostra em formato texto plano, eu pensei em fazer algo mais ou menos assim: Os resultados da busca seriam retornados no formato de links, onde quando eu clico sobre cada resultado, ele me leva para uma outra html, ou até mesmo um pop-up, onde eu possa ver todas as características do resultado da busca, foto do produto e tal. Mas eu queria que fosse uma html só,ou um pop-up só, não queria ter que criar uma página dessa pra cada produto, pois o estoque é gigante. Exemplificando: Resultados da Busca: Marca Modelo Motor Ano Peça Cor Preço Quantidade Toyota Hilux 2.2 2009 Porta Prata 400.00 3 (link) Toyota Corolla 2.0 2006 Airbag 2000.00 1 (link) e o link ser mais ou menos assim: localhost/toyota+hilux+2.2+2009+porta+prata+400+3 ou localhost/toyota+corolla+2+2006+airbag+2000+1 Ou usar como parâmetro pra criar o link só o id do produto armazenado do MySQL. Então eu já teria uma html modelo ele só trocaria as informações de acordo com o produto,não tendo que ter uma html pra cada produto. O problema é que eu só tenho a idéia, estou penando faz quase uma semana pra pensar em como fazer, postei o problema aqui pra ver se alguém me dá uma luz pra pelo menos começar a desenvolver.. Não sei se postei na seção certa também, pois não sei se isso que eu quero fazer envolve algum script em php. Desde já agradeço a ajuda de todos, Abraços, Victor.
  2. Antes de ver o seu post já tinha me tocado do porquê do ano não estar aparecendo, era burrice minha.. Acho que agora está tudo certo :) SELECT * FROM `banco` WHERE (`modelo` LIKE '%Corolla%') AND (`motor` LIKE '%2%') AND (`ano` LIKE '%2010%') ORDER BY `id` 3 Toyota Corolla 2010 2 Vidro 4 200 4 Toyota Corolla 2010 2 teto verde 4 200 Vou fazer esse negócio do phpmyadmin também, pra ter certeza que tá tudo certo! @EDIT Tudo certo no phpmyadmin David, Obrigado cara.. Agora o próximo passo é bolar um jeito mais bonitinho de mostrar o retorno da busca, deixar assim só no echo é sofrível! :P
  3. Beleza, não tá mais dando erro.. Agora o navegador só me retorna isso: SELECT * FROM `banco` WHERE (`modelo` LIKE '%Corolla%') AND (`motor` LIKE '%2%') AND (`ano` LIKE '%ano%') Duas perguntas: 1)É impressão minha ou ele não está reconhecendo o campo "ano"? 2)Não era pra ele estar mostrando o que ele achou no banco de dados com esses parâmetros??
  4. Galera, quero agradecer pela ajuda. Fiz os passos citados por vocês e o navegador me retornou essa mensagem: SELECT * FROM `banco` WHERE (`modelo` LIKE '%Toyota%') AND (`motor` LIKE '%2%') AND (`ano` LIKE '%ano%') Warning: mysql_close() expects parameter 1 to be resource, boolean given in /Users/victor/mamp/search.php on line 78 Não sei o que pode estar errado, já revisei esse código várias vezes e para fazer essa busca do banco eu vasculhei por vários tutoriais na internet e seguí todos à risca. Entrei como parâmetros para a busca: Toyota no campo modelo,2.0 no campo motor, e 2010 no campo ano. Desculpem se essa dúvida é meio idiota pra vocês, mas como estou tendo que aprender tanto PHP como a mecher no MySQL sozinho, algumas coisas eu tenho um pouco de dificuldade pra assimilar o que leio.
  5. Pessoal, estou batendo cabeça faz uns 3 dias nesses código pra fazer o módulo de busca do meu site funcionar, a princípio é coisa bem básica, porém estou passando 3 argumentos como referência da busca (modelo,motor e ano).Só para nível de informação, o programa em questão é para controle de estoque de uma loja de peças automotivas ,portanto, a passagem de mais de um parâmetro na hora da busca já agiliza o processo de achar alguma peça, tendo em vista que tem milhares no estoque. Segue o código abaixo: <?php //captura informações do formulário $modelo = $_POST['modelo']; $motor = (float)($_POST['motor']); $ano = intval($_POST['ano']); // Usa a função mysql_real_escape_string() para evitar erros no MySQL $modelo = mysql_real_escape_string($modelo); $motor = mysql_real_escape_string($motor); $ano = mysql_real_escape_string($ano); //conecta-se ao banco de dados $mysql['servidor'] = "localhost:8888"; $mysql['usuario'] = "root"; $mysql['senha'] = "root"; $mysql['banco'] = "banco"; $banco = mysql_connect($mysql['servidor'],$mysql['usuario'],$mysql['senha']); if($banco == NULL) { echo "Erro ao conectar o servidor!"; exit(); } else { $con = mysql_select_db($mysql['banco'],$banco); if(!$con) { echo "Erro ao acessar a base de dados!"; exit(); } } //monta a query de busca, inserindo o nome como parâmetro $query ="SELECT * FROM `banco` WHERE (`modelo` LIKE '%$modelo%') AND (`motor` LIKE '%$motor%') AND (`ano` LIKE '%ano%')"; //executa a query $res = mysql_query($query); while($mostra = mysql_fetch_array($res)) { $marca = $mostra['marca']; $modelo = $mostra['modelo']; $ano = $mostra['ano']; $motor = $mostra['motor']; $peca = $mostra['peca']; $corlata = $mostra['corlata']; $nportas = $mostra['nportas']; $preço = $mostra['preço']; echo "<tr>"; //exibe os resultados echo "<td> .$marca </td>"; echo "<td> .$modelo </td>"; echo "<td> .$ano </td>"; echo "<td> .$motor </td>"; echo "<td> .$peca </td>"; echo "<td> .$corlata </td>"; echo "<td> .$nportas </td>"; echo "<td> .$preço </td>"; echo "</tr>"; } //encerra a tabela //encerra a conexão mysq mysql_close($con); ?> Estou usando um formulário POST para mandar os parâmetros da busca para o search.php. O código original não era assim tão seco, desmembrei ele um pouco só pra ver se ele me mostrava alguma informação mesmo, mas não me retorna nada :/
  6. conseguí bolar o algorítmo, desculpem o incômodo. :blush:
  7. DelyToO, abaixo está o programa pronto... desculpe pela demora, mas estava com umas coisas da faculdade pra fazer :/ ainda não fiz a opção 6 do menu, mas em breve posto o programa completo.. como pode ser visto, fiz usando gravação em arquivo, achei mais fácil.. espero ter ajudado, abração #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX 100 /****ESTRUTURA CADASTRO VENDEDOR************/ struct cadastro { char nome[MAX]; unsigned int matricula; float volume_vendas; }; struct cadastro cadastro_vendedor[5]; /*********************************************/ /*******ESTRUTURA CADASTRO PRODUTO************/ struct produto { char produto[MAX]; int quantidade; float valor; char tamanho[4]; }; struct produto meiao = { "Meião", 0, 15.00 }; struct produto bermuda = { "Short", 0, 50.00 }; struct produto camiseta = { "Camiseta", 0, 100.00 }; /********************************************/ /******* ARQUIVOS *********************/ const char CADASTRO_VENDEDOR[] = "/home/victor/Desktop/vendedores.txt"; FILE *vendedor_arquivo; const char CAMISETA_ESTOQUE[] = "/home/victor/Desktop/camiseta_estoque.txt"; FILE *camiseta_estoque; const char BERMUDA_ESTOQUE[] = "/home/victor/Desktop/bermuda_estoque.txt"; FILE *bermuda_estoque; const char MEIAO_ESTOQUE[] = "/home/victor/Desktop/meiao_estoque.txt"; FILE *meiao_estoque; const char VENDAS_VENDEDOR[] = "/home/victor/Desktop/venda_vendedores.txt"; FILE *vendas_vendedores; /*********************************************************************/ char buffer[MAX]; int i=0; int produto_temp=0,meiao_temp =0,camiseta_temp =0,bermuda_temp = 0; //case 2 int opcao = 0; int meiao_total = 0,camiseta_total =0,bermuda_total =0; // case 2 int n_temp,n_vendedores = 0; int meiao_compra_temp =0 ,bermuda_compra_temp=0 ,camiseta_compra_temp=0 ,compra_total=0 ,produtos_vendidos = 0; char vendedor_temp[MAX],vendedor_compra = 0; int meiao_vendido=0,bermuda_vendida=0,camiseta_vendida=0; float salario =0,salario_temp=0; int num_vendedores=0; int main() { printf("PROGRAMA DE CONTROLE DE VENDAS E CONTROLE DE ESTOQUE.\n\n"); printf("****************** MENU *************************\n"); printf("1 - Cadastrar Vendedor\n"); printf("2 - Registar entrada de mercadoria na loja\n"); printf("3 - Registrar uma determinada venda\n"); printf("4 - Exibir estoque local\n"); printf("5 - Exibir estoque para uma determinada peça, independente do tamanho\n"); printf("6 - Exibir estoque de um determinado tamanho, independente da peça\n"); //falta fazer printf("7 - Exibir volume de vendas e salário de um determinado vendedor\n"); printf("8 - Sair\n"); printf("*************************************************\n\n"); printf("Digite um número referente a opção desejada: "); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%d",&opcao); printf("\n"); switch (opcao){ case 1: vendedor_arquivo = fopen(CADASTRO_VENDEDOR, "a+"); if (vendedor_arquivo == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } printf("********** Você solicitou a opção de cadastro de vendedor ************* \n"); printf("Digite o número de vendedores que você deseja cadastrar: \n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%d",&num_vendedores); for (i=0;i<num_vendedores;i++) { printf("Entre com o NOME e o número da MATRICULA no formato: NOME 000\n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%s %d",&cadastro_vendedor[i].nome,&cadastro_vendedor[i].matricula); fprintf(vendedor_arquivo,"%s\t%d\n",cadastro_vendedor[i].nome,cadastro_vendedor[i].matricula); } break; /**********************************************************************************************************************************/ case 2: printf("********* Você solicitou a opção de registro de entrada de mercadoria ***********\n"); printf("Entre com 1 para Meião, 2 para Bermuda e 3 para Camiseta.\n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%d",&produto_temp); if(produto_temp == 1) { meiao_estoque = fopen(MEIAO_ESTOQUE, "r+"); if (meiao_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(meiao_estoque,"%d",&meiao.quantidade); printf("\nEntre com a quantidade do produto no formato: 0\n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%d",&meiao_temp); meiao_total = meiao.quantidade + meiao_temp; meiao_estoque = fopen(MEIAO_ESTOQUE,"w+"); fprintf(meiao_estoque,"%d\n",meiao_total); } else if (produto_temp == 2) { bermuda_estoque = fopen(BERMUDA_ESTOQUE, "r+"); if (bermuda_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(bermuda_estoque,"%d",&bermuda.quantidade); printf("\nEntre com a quantidade do produto no formato: 0\n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%d",&bermuda_temp); bermuda_total = bermuda.quantidade + bermuda_temp; bermuda_estoque = fopen(BERMUDA_ESTOQUE,"w+"); fprintf(bermuda_estoque,"%d\n",bermuda_total); } else if (produto_temp == 3) { camiseta_estoque = fopen(CAMISETA_ESTOQUE, "r+"); if (camiseta_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(camiseta_estoque,"%d",&camiseta.quantidade); printf("\nEntre com a quantidade do produto no formato: 0\n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%d",&camiseta_temp); camiseta_total = camiseta.quantidade + camiseta_temp; camiseta_estoque = fopen(CAMISETA_ESTOQUE,"w+"); fprintf(camiseta_estoque,"%d\n",camiseta_total); } break; /*******************************************************************************************************************************/ case 3: printf("*********** Você solicitou a opção de registro de venda ************\n"); printf("Digite o nome do vendedor que realizou a venda: \n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%s",&vendedor_temp); vendedor_arquivo = fopen(CADASTRO_VENDEDOR,"r+"); if (vendedor_arquivo == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } for (i = 0; i < MAX; i++) { n_temp = fscanf(vendedor_arquivo,"%s %d",&cadastro_vendedor[i].nome,&cadastro_vendedor[i].matricula); if (n_temp == EOF) { break; } n_vendedores += n_temp; } n_vendedores /=2; for (i = 0; i < n_vendedores;i++) { if (strcmp(vendedor_temp,cadastro_vendedor[i].nome) == 0) { vendedor_compra = i; } } meiao_estoque = fopen(MEIAO_ESTOQUE, "r+"); if (meiao_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(meiao_estoque,"%d",&meiao.quantidade); bermuda_estoque = fopen(BERMUDA_ESTOQUE, "r+"); if (bermuda_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(bermuda_estoque,"%d",&bermuda.quantidade); camiseta_estoque = fopen(CAMISETA_ESTOQUE, "r+"); if (camiseta_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(camiseta_estoque,"%d",&camiseta.quantidade); printf("No momento temos disponível em estoque:\nMeiões\tBermudas\tCamisetas\n"); printf("%d\t%d\t\t%d\n\n",meiao.quantidade,bermuda.quantidade,camiseta.quantidade); printf("Entre com a quantidade de meiões, bermudas e camisetas vendidas no formato: 0 0 0.\n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%d %d %d",&meiao_vendido,&bermuda_vendida,&camiseta_vendida); if (meiao.quantidade <= 0 && bermuda.quantidade <=0 && camiseta.quantidade <=0) { printf("Não temos meião em estoque!\n"); printf("Não temos bermudas em estoque!\n"); printf("Não temos camisetas em estoque!\n"); meiao_total = 0; bermuda_total = 0; camiseta_total = 0; meiao_estoque = fopen(MEIAO_ESTOQUE,"w+"); //1 fprintf(meiao_estoque,"%d",meiao_total); bermuda_estoque = fopen(BERMUDA_ESTOQUE,"w+"); fprintf(bermuda_estoque,"%d",bermuda_total); camiseta_estoque = fopen(CAMISETA_ESTOQUE,"w+"); fprintf(camiseta_estoque,"%d",camiseta_total); break; } else if (meiao.quantidade > 0 && bermuda.quantidade <=0 && camiseta.quantidade <=0) { printf("Não temos bermudas em estoque!\n"); printf("Não temos camisetas em estoque!\n"); bermuda_total = 0; camiseta_total = 0; meiao_total = meiao.quantidade - meiao_vendido; meiao_estoque = fopen(MEIAO_ESTOQUE,"w+"); fprintf(meiao_estoque,"%d",meiao_total); bermuda_estoque = fopen(BERMUDA_ESTOQUE,"w+"); fprintf(bermuda_estoque,"%d",bermuda_total); //2 camiseta_estoque = fopen(CAMISETA_ESTOQUE,"w+"); fprintf(camiseta_estoque,"%d",camiseta_total); meiao_compra_temp = meiao_vendido * meiao.valor; compra_total = meiao_compra_temp; vendas_vendedores = fopen(VENDAS_VENDEDOR,"a+"); fprintf(vendas_vendedores,"%s\t%d\n",cadastro_vendedor[vendedor_compra].nome,compra_total); break; } else if (meiao.quantidade <=0 && bermuda.quantidade >0 && camiseta.quantidade <=0) { printf("Não temos meiões em estoque!\n"); printf("Não temos camisetas em estoque!\n"); meiao_total = 0; camiseta_total = 0; bermuda_total = bermuda.quantidade - bermuda_vendida; meiao_estoque = fopen(MEIAO_ESTOQUE,"w+"); fprintf(meiao_estoque,"%d",meiao_total); bermuda_estoque = fopen(BERMUDA_ESTOQUE,"w+"); fprintf(bermuda_estoque,"%d",bermuda_total); camiseta_estoque = fopen(CAMISETA_ESTOQUE,"w+"); //3 fprintf(camiseta_estoque,"%d",camiseta_total); bermuda_compra_temp = bermuda_vendida * bermuda.valor; compra_total = bermuda_compra_temp; vendas_vendedores = fopen(VENDAS_VENDEDOR,"a+"); fprintf(vendas_vendedores,"%s\t%d\n",cadastro_vendedor[vendedor_compra].nome,compra_total); break; } else if (meiao.quantidade <=0 && bermuda.quantidade<=0 && camiseta.quantidade >0) { printf("Não temos meiões em estoque!\n"); printf("Não temos bermudas em estoque!\n"); meiao_total = 0; bermuda_total = 0; camiseta_total = bermuda.quantidade - bermuda_vendida; meiao_estoque = fopen(MEIAO_ESTOQUE,"w+"); fprintf(meiao_estoque,"%d",meiao_total); bermuda_estoque = fopen(BERMUDA_ESTOQUE,"w+"); fprintf(bermuda_estoque,"%d",bermuda_total); camiseta_estoque = fopen(CAMISETA_ESTOQUE,"w+"); //4 fprintf(camiseta_estoque,"%d",camiseta_total); camiseta_compra_temp = camiseta_vendida * camiseta.valor; compra_total = camiseta_compra_temp; vendas_vendedores = fopen(VENDAS_VENDEDOR,"a+"); fprintf(vendas_vendedores,"%s\t%d\n",cadastro_vendedor[vendedor_compra].nome,compra_total); break; } else if (meiao.quantidade >0 && bermuda.quantidade >0 && camiseta.quantidade <=0) { printf("Não temos camisetas em estoque!\n"); camiseta_total = 0; meiao_total = meiao.quantidade - meiao_vendido; bermuda_total = bermuda.quantidade - bermuda_vendida; meiao_estoque = fopen(MEIAO_ESTOQUE,"w+"); fprintf(meiao_estoque,"%d",meiao_total); bermuda_estoque = fopen(BERMUDA_ESTOQUE,"w+"); fprintf(bermuda_estoque,"%d",bermuda_total); camiseta_estoque = fopen(CAMISETA_ESTOQUE,"w+"); //5 fprintf(camiseta_estoque,"%d",camiseta_total); meiao_compra_temp = meiao_vendido * meiao.valor; bermuda_compra_temp = bermuda_vendida * bermuda.valor; compra_total = meiao_compra_temp + bermuda_compra_temp; vendas_vendedores = fopen(VENDAS_VENDEDOR,"a+"); fprintf(vendas_vendedores,"%s\t%d\n",cadastro_vendedor[vendedor_compra].nome,compra_total); break; } else if (meiao.quantidade >0 && bermuda.quantidade <=0 && camiseta.quantidade >0) { printf("Não temos bermudas em estoque!\n"); bermuda_total = 0; meiao_total = meiao.quantidade - meiao_vendido; camiseta_total = camiseta.quantidade - camiseta_vendida; meiao_estoque = fopen(MEIAO_ESTOQUE,"w+"); fprintf(meiao_estoque,"%d",meiao_total); bermuda_estoque = fopen(BERMUDA_ESTOQUE,"w+"); fprintf(bermuda_estoque,"%d",bermuda_total); camiseta_estoque = fopen(CAMISETA_ESTOQUE,"w+"); //6 fprintf(camiseta_estoque,"%d",camiseta_total); meiao_compra_temp = meiao_vendido * meiao.valor; camiseta_compra_temp = camiseta_vendida * camiseta.valor; compra_total = meiao_compra_temp + camiseta_compra_temp; vendas_vendedores = fopen(VENDAS_VENDEDOR,"a+"); fprintf(vendas_vendedores,"%s\t%d\n",cadastro_vendedor[vendedor_compra].nome,compra_total); break; } else if (meiao.quantidade <=0 && bermuda.quantidade >0 && camiseta.quantidade >0) { printf("Não temos meiões em estoque!\n"); meiao_total = 0; bermuda_total = bermuda.quantidade - bermuda_vendida; camiseta_total = camiseta.quantidade - camiseta_vendida; meiao_estoque = fopen(MEIAO_ESTOQUE,"w+"); fprintf(meiao_estoque,"%d",meiao_total); bermuda_estoque = fopen(BERMUDA_ESTOQUE,"w+"); fprintf(bermuda_estoque,"%d",bermuda_total); camiseta_estoque = fopen(CAMISETA_ESTOQUE,"w+"); //7 fprintf(camiseta_estoque,"%d",camiseta_total); bermuda_compra_temp = bermuda_vendida * bermuda.valor; camiseta_compra_temp = camiseta_vendida * camiseta.valor; compra_total = bermuda_compra_temp + camiseta_compra_temp; vendas_vendedores = fopen(VENDAS_VENDEDOR,"a+"); fprintf(vendas_vendedores,"%s\t%d\n",cadastro_vendedor[vendedor_compra].nome,compra_total); break; } else if (meiao.quantidade >0 && bermuda.quantidade >0 && camiseta.quantidade >0) { meiao_total = meiao.quantidade - meiao_vendido; bermuda_total = bermuda.quantidade - bermuda_vendida; camiseta_total = camiseta.quantidade - camiseta_vendida; meiao_estoque = fopen(MEIAO_ESTOQUE,"w+"); fprintf(meiao_estoque,"%d",meiao_total); bermuda_estoque = fopen(BERMUDA_ESTOQUE,"w+"); fprintf(bermuda_estoque,"%d",bermuda_total); camiseta_estoque = fopen(CAMISETA_ESTOQUE,"w+"); //8 fprintf(camiseta_estoque,"%d",camiseta_total); meiao_compra_temp = meiao_vendido * meiao.valor; bermuda_compra_temp = bermuda_vendida * bermuda.valor; camiseta_compra_temp = meiao_compra_temp + camiseta_vendida * camiseta.valor; compra_total = bermuda_compra_temp + camiseta_compra_temp; vendas_vendedores = fopen(VENDAS_VENDEDOR,"a+"); fprintf(vendas_vendedores,"%s\t%d\n",cadastro_vendedor[vendedor_compra].nome,compra_total); break; } break; /******************************************************************************************************/ case 4: printf("********* Você solicitou a opção de exibir estoque ***********\n"); meiao_estoque = fopen(MEIAO_ESTOQUE, "r+"); if (meiao_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(meiao_estoque,"%d",&meiao.quantidade); if (meiao.quantidade == 0) { printf("Não temos meião em estoque!\n"); } bermuda_estoque = fopen(BERMUDA_ESTOQUE, "r+"); if (bermuda_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(bermuda_estoque,"%d",&bermuda.quantidade); if (bermuda.quantidade == 0) { printf("Não temos bermudas em estoque!\n"); } camiseta_estoque = fopen(CAMISETA_ESTOQUE, "r+"); if (camiseta_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(camiseta_estoque,"%d",&camiseta.quantidade); if (camiseta.quantidade == 0) { printf("Não temos camisetas em estoque!\n"); } printf("Temos em estoque:\nProduto\tQuantidade\n"); printf("Meião \t%d\n",meiao.quantidade); printf("Bermudas\t%d\n",bermuda.quantidade); printf("Camiseta\t%d\n",camiseta.quantidade); break; /*******************************************************************************************************/ case 5: printf("********* Você solicitou a opção de exibição de estoque individual de mercadoria ***********\n"); printf("Entre com 1 para Meião, 2 para Bermuda e 3 para Camiseta.\n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%d",&produto_temp); if(produto_temp == 1) { meiao_estoque = fopen(MEIAO_ESTOQUE, "r+"); if (meiao_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(meiao_estoque,"%d",&meiao.quantidade); printf("Temos em estoque:\nProduto\tQuantidade\n\n"); printf("Meião \t%d\n",meiao.quantidade); } else if (produto_temp == 2) { bermuda_estoque = fopen(BERMUDA_ESTOQUE, "r+"); if (bermuda_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(bermuda_estoque,"%d",&bermuda.quantidade); printf("Temos em estoque:\nProduto\tQuantidade\n\n"); printf("Bermudas\t%d\n",bermuda.quantidade); } else if (produto_temp == 3) { camiseta_estoque = fopen(CAMISETA_ESTOQUE, "r+"); if (camiseta_estoque == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } fscanf(camiseta_estoque,"%d",&camiseta.quantidade); printf("Temos em estoque:\nProduto\tQuantidade\n\n"); printf("Camiseta\t%d\n",camiseta.quantidade); } break; /***********************************************************************/ case 7: printf("********* Você solicitou a opção de exibição de salário e volume de vendas ***********\n"); printf("Digite o nome do vendedor que você quer saber o volume de vendas e o salário\n"); fgets(buffer,sizeof(buffer),stdin); sscanf(buffer,"%s",&vendedor_temp); vendas_vendedores = fopen(VENDAS_VENDEDOR,"r+"); if (vendas_vendedores == NULL) { printf("Erro ao abrir arquivo!\n"); exit(1); } for (i = 0; i < MAX; i++) { n_temp = fscanf(vendas_vendedores,"%s %f",&cadastro_vendedor[i].nome,&cadastro_vendedor[i].volume_vendas); if (n_temp == EOF) { break; } n_vendedores += n_temp; } n_vendedores /=2; for (i = 0; i < n_vendedores;i++) { if (strcmp(vendedor_temp,cadastro_vendedor[i].nome) == 0) { salario_temp += cadastro_vendedor[i].volume_vendas; } } salario = salario_temp * 0.8; printf("O vendedor %s tem R$%5.2f vendidos e um salário de R$%5.2f.\n",vendedor_temp,salario_temp,salario); break; /*****************************************************************************/ default:printf("Entre com uma opção válida!\n"); } return 0; }
  8. Entendí Mnemonic, obrigado por esclarescer a dúvida.. Inclusive hoje na aula meu professor explicou o porque de usar a matriz bidimensional e acabei entendendo sem problemas :D Seguinte, o código base está quase pronto, fiz o sistema de emparelhamento de jogos, o esquema de pontuação, saldo de gols, e gols pró (esses dois últimos se houver empate na pontuação e coisa e tal).. O que tá pegando agora é que não estou conseguindo pensar em algum algoritmo pra ter o segundo, terceiro e quarto colocados do grupo.. O primeiro colocado conseguí fazer sem problemas, passei à tarde toda tentando bolar algo pra ter as outras posições da chave mas não conseguí pensar em nada, se alguém puder me ajudar, fico muito agradecido, é o que falta pra terminar a base do programa.. abaixo segue o código de como está o programa no momento, abraço a todos! #include <stdio.h> #include <stdio_ext.h> #include <stdlib.h> #include <string.h> #define MAX_GRUPO 4 /*****Estrutura***********/ struct selecao { char time[100]; int pontos; int gols; int gols_total; int gols_saldo; }; struct selecao grupo_a[4]; //grupo A montado /***************************/ int main() { /*****Arvuivo*******/ const char GRUPO_A[] = "/home/victor/Desktop/grupo_a.txt"; FILE *fp; /*******************/ char jogo_copa[64][200]; //total de jogos da copa - 64 jogos com tamanho de 200 caracteres por jogo int i = 0, j = 1, h = 0; char entrada[30]; int n_temp = 0; int grupo_a_primeiro = 0,indice_primeiro = 0,indice_segundo = 0,grupo_a_segundo = 0; /********************/ printf("PROGRAMA COPA DO MUNDO 2010.\n"); fp = fopen(GRUPO_A, "r"); if (fp == NULL) exit(1); printf("Digite o nome da seleção pertencente ao GRUPO A.\n"); for (i = 0; i < MAX_GRUPO; i++) { //GRUPO A n_temp = fgets(entrada, sizeof(entrada),fp); //entrada[strlen(entrada)-1] = ''; // só pra tirar a quebra de linha da string if (n_temp == EOF) { break; } entrada[strlen(entrada)-1] = ''; strcpy(grupo_a[i].time,entrada); //n_selecao += n_temp; } printf("\n\n"); /*jogos do grupo A*/ /************MONTA A GRADE DE JOGOS DO GRUPO A*******************/ for (h = 0; h < 6; h++) // cada grupo tem 6 jogos { for (i = 0; i < 3; i++) //quantidade de jogos de modo que não repita { for (j = i + 1; j < 4; j++) //quantidade de adversários { strcpy(jogo_copa[h], grupo_a[i].time); if (strcmp(jogo_copa[h],grupo_a[j].time) != 0) //faz com que um time não jogue contra ele mesmo { strcat(jogo_copa[h], " vs "); strcat(jogo_copa[h], grupo_a[j].time); printf("jogo[%d] = %s\n", h, jogo_copa[h]); h++; } } } } /***********ENCERRA A GRADE DE JOGOS DO GRUPO A**************************/ /**********INICIA A MONTAGEM DOS PLACARES***************************/ printf("\n\tPLACAR DOS JOGOS:\n"); for (h = 0; h < 6; h++) { for (i = 0;i<3;i++) { for (j = i + 1;j < 4; j++) { printf("\n%s\n\n",jogo_copa[h]); printf("Digite o placar do jogo no formato: 0 x 0\n"); fgets(entrada,sizeof(entrada),stdin); sscanf(entrada,"%d x %d",&grupo_a[i].gols, &grupo_a[j].gols); grupo_a[i].gols_total += grupo_a[i].gols; grupo_a[j].gols_total += grupo_a[j].gols; if (grupo_a[i].gols > grupo_a[j].gols) { grupo_a[i].gols_saldo += (grupo_a[i].gols - grupo_a[j].gols); grupo_a[j].gols_saldo += (grupo_a[j].gols - grupo_a[i].gols); grupo_a[i].pontos +=3; /****VITÓRIA****/ grupo_a[j].pontos+=0; }else if ( grupo_a[i].gols == grupo_a[j].gols) { grupo_a[i].pontos+=1; grupo_a[j].pontos+=1; /****EMPATE****/ }else if (grupo_a[j].gols > grupo_a[i].gols) { grupo_a[j].gols_saldo += (grupo_a[j].gols - grupo_a[i].gols); grupo_a[i].gols_saldo += (grupo_a[i].gols - grupo_a[j].gols); grupo_a[j].pontos +=3; grupo_a[i].pontos +=0; /***DERROTA****/ } h++; } } } /************TERMINA A MONTAGEM DOS PLACARES*****************/ /************IMPRIME A TABELA DE PONTOS**********************/ printf("\n\n\tCLASSIFICAÇÃO DO GRUPO A: \n"); for (i = 0;i<4;i++) { printf("\n%s tem %d pontos.\n",grupo_a[i].time,grupo_a[i].pontos); } /*************************************************************/ /********GOLS PRÓ**************/ printf("\n\n\tGols PRÓ GRUPO A: \n"); for (i=0;i<4;i++) { printf("\n%s tem %d gols\n", grupo_a[i].time, grupo_a[i].gols_total); } /********FIM GOLS PRÓ*********************/ /******* SALDO DE GOLS***************/ printf("\n\n\tSALDO DE GOLS GRUPO A: \n"); for (i=0;i<4;i++) { printf("\n%s tem %d gols de saldo\n", grupo_a[i].time, grupo_a[i].gols_saldo); } /******FIM SALDO DE GOLS************/ /*****PRIMEIRO E SEGUNDO DO GRUPO******/ /**PRIMEIRO**/ for (i = 0; i < 4; i++) { if (grupo_a[i].pontos > grupo_a_primeiro) { grupo_a_primeiro = grupo_a[i].pontos; indice_primeiro = i; } } /**SEGUNDO**/ for (h = 0; h < 4; h++) { if (grupo_a[indice_primeiro].pontos > grupo_a[h].pontos) { segundo_temp = grupo_a[h].pontos; //essa parte do código está errada, só está aqui pra encher linguiça mesmo indice_segundo = h; } } printf("\nO PRIMEIRO COLOCADO DO GRUPO A É %s.\n", grupo_a[indice_primeiro].time); printf("\nO SEGUNDO COLOCADO DO GRUPO A É %s.\n",grupo_a[indice_segundo].time); return 0; }
  9. Obrigado Mnemonic, entendí as mudanças que você fez no código, realmente agora tá funcionando do jeito que queria, já fiz até o if pra evitar que os jogos se repitam.. Uma única coisa que não intendí foi o uso daquela matriz jogo_copa ser bidimensional [64][200]. Por que não pode ser uma matriz simples?
  10. Olá,este é meu primeiro post no fórum.. Estou querendo fazer um programa que simule a copa do mundo, ou seja, que o usuário seja capaz de montar os grupos com os times que quiser, depois dos grupos formados, que o próprio programa monte a grade de jogos de cada grupo para que o usuário possa inserir os valores dos jogos. Depois dos valores postados, o programa checa o número de pontos e o saldo de gols de cada time e assim monta a classificação para as oitavas de final e assim por diante. Comecei a fazer usando estruturas, mas como estou aprendendo ainda, acho que me perdí um pouco no meu próprio raciocínio, até agora a única coisa que conseguí fazer foi relacionar as seleções aos grupos, e imprimir os jogos (de forma errada). O que estou me perdendo é na hora de montar os jogos, criei um vetor de char de tamanho 64 (por causa dos 64 jogos da copa), usando um contador para ir adicionando os jogos na matriz, mas acaba ficando errado, como o programa abaixo: #include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_GRUPO 4 int main() { struct selecao { char *time[100]; int pontos; int gols_favor; int gols_contra; int gols_total; }; struct selecao grupo_a[4]; //grupo a montado char *jogo_copa[64] = {''}; //total de jogos da copa int i=0,j=1,h=0; char entrada[30]; // ******************************************************************** printf("PROGRAMA COPA DO MUNDO 2010.\n"); for (i = 0;i < MAX_GRUPO;i++) { //GRUPO A printf("Digite o nome da seleção pertencente ao GRUPO A.\n"); fgets(entrada,sizeof(entrada),stdin); sscanf(entrada,"%s",&grupo_a[i].time); } printf("\n\n"); for (h=0;h<7;h++) // cada grupo tem 6 jogos { for (i=0;i<3;i++) //quantidade de jogos de modo que não repita { for (j=1;j<4;j++) //quantidade de adversários { jogo_copa[h] = grupo_a[i].time; strcat(jogo_copa[h]," "); strcat(jogo_copa[h],"vs"); strcat(jogo_copa[h]," "); strcat(jogo_copa[h],grupo_a[j].time); printf("jogo[%d] = %s\n",h,jogo_copa[h]); h++; } } } return 0; } Minha lógica para montar o quadro de jogos foi a seguinte: Usei como exemplo o Grupo A da copa:África, México, Uruguai e França. grupo_a[0].time tem que jogar com: grupo_a[1].time grupo_a[2].time grupo_a[3].time grupo_a[1].time tem que jogar com: grupo_a[2].time grupo_a[3].time grupo_a[2].time tem que jogar com: grupo_a[3].time usei o contador h de 0 a 7 só pra montar os jogos do grupo a o contador i conta de 0 a 2, serve pra pegar os times da esquerda, pegando como exemplo a descrição acima e o contador j conta de 1 a 3, serve para associar os adversários dos primeiros times. o printf tá saindo assim: queria que ficasse assim: jogo [0] = grupo_a[0].time vs grupo_a[1].time; jogo [1] = grupo_a[0].time vs grupo_a[2].time; jogo [2] = grupo_a[0].time vs grupo_a[3].time; jogo [3] = grupo_a[1].time vs grupo_a[2].time; e assim por diante. Só queria ajuda na montagem da grade de jogos só, o resto eu me viro. Quero fazer esse programa justamente pra aprender a mecher com estruturas. Desculpe pelo texto longo, tentei explicar o máximo do problema para ajudar o entendimento de vocês. Obrigado.
×
×
  • Criar Novo...