Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ana Paula dos Santos

Cálculo de votos no php

Recommended Posts

Pessoal, sou estudante e preciso montar um cálculo de apuração de votos em php; o exercício sugere a utilização de "vetor" para resolução, mas eu não estou conseguindo criar um raciocínio para montar o php do exercício. Usando os dados parciais da eleição de 2018 para presidente, montei o seguinte html:

 

html>
<head>
</head>
<body>
<h1><center>Eleições para Presidente<center></h1>
<br>
<form method="POST" action="">

<table align='center' border=1 width=300 height=100>
    <tr>
    <td align='center'>ESCOLHA SEU CANDITATO A PRESIDÊNCIA DO PAÍS:</td>
    </tr>
    <tr>
    <td><form>
        <input type="radio" name="candidato" value="1"> Bolsonaro - PSC<br><br>
        <input type="radio" name="candidato" value="2"> Haddad - PT<br><br>
        <input type="radio" name="candidato" value="3"> Boulos - PSOL<br><br>
        <input type="radio" name="candidato" value="4"> Daciolo - PATRIOTA<br><br>
        <input type="radio" name="candidato" value="5"> Amoêdo - NOVO<br><br>
        <input type="radio" name="candidato" value="6"> Geraldo Alckimin - PSDB<br><br>
        <input type="radio" name="candidato" value="7"> Marina Silva - REDE<br><br>
        <input type="radio" name="candidato" value="8"> Votar BRANCO<br><br>
        <input type="radio" name="candidato" value="9"> Votar NULO<br><br>
    </td></form>
    </tr>
</table><br>
        
    <center>
        <input type="submit" value="Votar" name="votar">
        <input type="submit" value="Calcular Votos" name="total">
    </center>

 

Alguém consegue me ajudar com o desenvolvimento da apuração de votos para chegar nos seguintes resultados:

 

- Total de votos;

- Total de votos brancos e nulos;

- O candidato mais votado;

- O candidato menos votado; e

- A porcentagem de voto para cada candidato.

 

Obs.: Em todas as minhas pesquisas observei que esse tipo de trabalho é realizado com banco de dados, porém, como o exercício é meramente acadêmico, se for possível fazê-lo sem banco de dados, é melhor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Ana, se pessoas em máquinas diferentes irão votar, é necessário banco de dados para armazenas e calcular as respostas.

 

Tem até um bom exemplo aqui.

 

Caso seja apenas para utilizar na sua máquina e para você testar, terá que trabalhar bastante com Arrays. E vejo mais dificuldades fazer sem banco de dados.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi Marcos, obrigada pela sua atenção!

 

Eu acompanhei a execução desse modelo que você me direcionou, mas fiquei um pouco confusa porque ainda sou iniciante e não aprendi muita coisa, mas a ideia é justamente usar "arrays" para treinar o conhecimento... o projeto é de estudante e eu vou colocar banco de dados mais pra frente (porque ainda não aprendi também).

 

Mas eu não estou conseguindo evoluir a sequência lógica de usar "arrays" e por isso estou pedindo ajuda... Será que você tem uma ideia para me passar?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

até tem como mas vai exigir maior conhecimento seu do que fazer um banco rapido.

 

Tabelas

Presidentes

presidenteId

presidenteName

 

Eleitores(Se tiver)

eleitorId

eleitorName

 

Votos

votosId

eleitorId

presidenteId

 

Somente isso já resolve sua vida

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Ana,

 

montei um pequeno exemplo usando $_SESSION.

 

Não é a melhor maneira de fazer isto, pois é de forma estruturada. O melhor é fazer com banco e OO, sem dúvida alguma.

 

Se entender a  lógica, conseguirá completar para fazer o que precisa:

Spoiler

<html>

<head>
  <title>Eleições para Presidente</title>
</head>

<body>
<h1><center>Eleições para Presidente<center></h1>
<br>

<form method="POST" action="">

<table align='center' border=1 width=300 height=100>
    <tr>
    <td align='center'>ESCOLHA SEU CANDITATO A PRESIDÊNCIA DO PAÍS:</td>
    </tr>
    <tr>
    <td><form>
        <input type="radio" name="candidato" value="1"> Bolsonaro<br><br>
        <input type="radio" name="candidato" value="2"> Haddad<br><br>
        <input type="radio" name="candidato" value="3"> Marina<br><br>
    </td></form>
    </tr>
</table><br>

    <center>
        <input type="submit" value="Votar" name="votar">
        <input type="submit" value="Limpar Votos" name="limpar">
    </center>
</form>

<?php

  if (isset($_POST['votar'])){ // se existir o POST

    session_start(); // inicia a sessão

    $_SESSION['cont_votos'] += 1; // contador para os votos

    $voto = $_POST['candidato']; // recebe o valor do post

    switch ($voto) { // verifica pra quem foi o voto
      case 1:
        $_SESSION['bolsonaro'] += 1; // atribui sempre +1 quando é votado
        break;
      case 2:
        $_SESSION['haddad'] += 1;
        break;
      case 3:
        $_SESSION['marina'] += 1;
        break;
    }

    // imprime os valores, não é a melhor maneira de fazer isto, é apenas para exemplo
    
    echo "<br><br>";
    echo "<table align='center' border=1 width=300 height=100>";
      echo "<tr><td><h2>Resultado das eleições!</h2></td></tr>";
      echo "<tr>";
        echo "<td>Total de Votos:" . $_SESSION['cont_votos'] . "<br></td>";
      echo "</tr>";
      echo "<tr>";
        echo "<td>Bolsonaro tem: " . $_SESSION['bolsonaro'] . " votos! <br></td>";
      echo "</tr>";
      echo "<tr>";
        echo "<td>Haddad tem: " . $_SESSION['haddad'] . " votos! <br></td>";
      echo "</tr>";
      echo "<tr>";
        echo "<td>Marina tem: " . $_SESSION['marina'] . " votos! <br></td>";
      echo "</tr>";
      echo "<tr>";
        echo "<td>Candidato mais votado tem: " . max($_SESSION['haddad'], $_SESSION['bolsonaro'], $_SESSION['marina']) . " votos!<br></td>"; // max seleciona o maior valor
      echo "</tr>";
      echo "<tr>";
        echo "<td>Candidato menos votado tem: " . min($_SESSION['haddad'], $_SESSION['bolsonaro'], $_SESSION['marina']) . " votos!<br></td>"; // min seleciona o menor valor
      echo "</tr>";
    echo "</table>";
  }

  if (isset($_POST['limpar'])){ // se existir limpar os votos
    session_start();
    session_destroy(); // mata todas as sessões
  }

?>

</body>
</html>

 

 

Se tiver alguma dúvida, só perguntar.

 

Teste e retorne aqui pra nós, até!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Poderias usar um TXT para gravar os votos, linha por linha, após isto joga o conteúdo deste em um array, aí é só trabalhar com este.

 

Total de votos: count(array)

 

Votos em Bolsonaro ou outro: array_count_values(array) (retorna um array usando os valores do parâmetro como chaves e as qtds de votos como valores)

 

Usarás min(array) e max(array) para achar o menos votado e o mais votado.

 

É só uma sugestão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, o exemplo do Marcosmarcolin deu certo. 

 

Marcos, consegui entender sim a dinâmica do seu código, só estou tentando pensar como posso fazer com que nos primeiros votos não apresentem erros na tela. Após todos os candidatos terem recebido votação os erros param de aparecer...

 

Obrigada!!

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 06/12/2018 at 20:45, Ana Paula dos Santos disse:

Pessoal, o exemplo do Marcosmarcolin deu certo. 

 

Marcos, consegui entender sim a dinâmica do seu código, só estou tentando pensar como posso fazer com que nos primeiros votos não apresentem erros na tela. Após todos os candidatos terem recebido votação os erros param de aparecer...

 

Obrigada!!

 

Olá Ana, qual o erro que mostra?

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por violin101
      Caros amigos, saudações.
       
      Por favor, poderiam me ajudar.

      Estou com a seguinte dúvida:
      --> como faço para para implementar o input código do produto, para quando o usuário digitar o ID o sistema espera de 1s a 2s, sem ter que pressionar a tecla ENTER.

      exemplo:
      código   ----   descrição
           1       -----   produto_A
       
      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.
       
      Humildemente peço desculpa por postar uma dúvida que tenho.

      Preciso salvar no MySql, os seguinte Registro:

      1 - Principal
      ====> minha dúvida começa aqui
      ==========> como faço para o Sistema Contar Automaticamente o que estiver despois do 1.____?
      1.01 - Matriz
      1.01.0001 - Estoque
      1.01.0002 - Oficina
      etc

      2 - Secundário
      2.01 - Loja_1
      2.01.0001 - Caixa
      2.01.0002 - Recepção
      etc
       
      Resumindo seria como se fosse um Cadastro de PLANO de CONTAS CONTÁBEIL.

      Grato,


      Cesar









       
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a orientação dos amigos.

      Preciso fazer um Relatório onde o usuário pode Gerar uma Lista com prazo para vencimento de: 15 / 20/ 30 dias da data atual.

      Tem como montar uma SQL para o sistema fazer uma busca no MySql por período ou dias próximo ao vencimento ?

      Tentei fazer assim, mas o SQL me traz tudo:
      $query = "SELECT faturamento.*, DATE_ADD(faturamento.dataVencimento, INTERVAL 30 DAY), fornecedor.* FROM faturamento INNER JOIN fornecedor ON fornecedor.idfornecedor = faturamento.id_fornecedor WHERE faturamento.statusFatur = 1 ORDER BY faturamento.idFaturamento $ordenar ";  
      Grato,
       
      Cesar
       
       
       
       
    • Por violin101
      Caros amigos, saudações
       
      Por favor, me perdoa em recorrer a orientação dos amigos, tenho uma dúvida.
       
      Gostaria de uma rotina onde o Sistema possa acusar para o usuário antes dos 30 dias, grifar na Tabela o aviso de vencimento próximo, por exemplo:
       
      Data Atual: 15/11/2024
                                           Vencimento
      Fornecedor.....................Data.....................Valor
      Fornecedor_1...........01/12/2024..........R$ 120,00 <== grifar a linha de Laranja
      Fornecedor_1...........01/01/2025..........R$ 130,00
      Fornecedor_2...........15/12/2024..........R$ 200,00 <== grifar a linha de Amarelo
      Fornecedor_2...........15/01/2025..........R$ 230,00
      Fornecedor_3...........20/12/2024..........R$ 150,00
       
      Alguém tem alguma dica ou leitura sobre este assunto ?

      Grato,
       
      Cesar
    • Por violin101
      Caros amigos, saudações.

      Por favor, me perdoa em recorrer a ajuda dos amigos, mas preciso entender uma processo que não estou conseguindo sucesso.

      Como mencionado no Título estou escrevendo um Sistema Web para Gerenciamento de Empresa.
       
      Minha dúvida, que preciso muito entender:
      - preciso agora escrever a Rotina para Emissão de NFe e essa parte não estou conseguindo.
       
      tenho assistido alguns vídeos e leituras, mas não estou conseguindo sucesso, já fiz toda as importações das LIB da NFePhp conforme orientação.

      Preciso de ajuda.

      Algum dos amigos tem conhecimento de algum passo-a-passo explicando a criação dessa rotina ?

      tenho visto alguns vídeos com LARAVEL, mas quando tento utilizar e converter para PHP+Codeiginter, dá uma fila de erros que não entendo, mesmo informando as lib necessárias.

      Alguns do amigo tem algum vídeo, leitura explicando essa parte ?

      Grato,

      Cesar.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.