terça-feira, 19 de junho de 2012

19.06.2012 - SQL

create table usuarios (
id int not null primary key,
nome varchar(20) not null unique,
senha varchar(20) not null,
cpf varchar(11) not null unique
);

create table concursos (
id int not null primary key,
nr int not null unique,
data date not null unique,
n1 int,
n2 int,
n3 int,
n4 int,
n5 int
);

create table apostas (
id int not null primary key,
id_usuario int not null references usuarios(id),
id_concurso int not null references concursos(id), 
n1 int not null,
n2 int not null,
n3 int not null,
n4 int not null,
n5 int not null,
n6 int,
n7 int
);

19.06.2012 - JSP de exemplo

Gerador de Resultados Tabajara

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Gerador de Resultados Tabajara</title>
   </head>
   <body>
      <h1>Gerador de Resultados Tabajara</h1>

      <form id="f1" name="f1" action="GeradorResultadosTabajara.jsp" method="post">
         Quantidade: <br />
         <input type="text" id="qtde" name="qtde" value="10" />
         <input type="submit" id="btn_submit" name="btn_submit" value="Gerar" />
      </form>
   </body>

   <%
      String qtde = request.getParameter("qtde");
      if (qtde != null) {
         // Gerando os números sorteados...         
         java.util.Random r = new java.util.Random();
         int[] nrsSorteados = new int[6];
         int qtdNrsGerados = 0;
         while (qtdNrsGerados < nrsSorteados.length) {
            int nr = r.nextInt(60) + 1;
            boolean jaJogou = false;
            for (int i=0; i<qtdNrsGerados; i++) {                  
               if (nr == nrsSorteados[i]) {
                  jaJogou = true;
                  break;
               }
            }
            if (!jaJogou) {
               nrsSorteados[qtdNrsGerados] = nr;
               qtdNrsGerados++;
            }
         }
         out.print("Números sorteados: ");
         java.util.Arrays.sort(nrsSorteados);
         for (int i = 0; i < nrsSorteados.length; i++) {
            out.print(nrsSorteados[i] + ";");
         }
         out.println("<hr />");
         
         // Gerando as apostas...
         out.println("Apostas geradas: <br />");
         out.println("<hr />");
         int qtdApostas = Integer.parseInt(qtde);
         for (int x = 0; x < qtdApostas; x++) {
            int qtdNrsApostados = r.nextInt(10) + 6;
            int[] nrsApostados = new int[qtdNrsApostados];
            qtdNrsGerados = 0;
            while (qtdNrsGerados < qtdNrsApostados) {
               int nr = r.nextInt(60) + 1;
               boolean jaJogou = false;
               for (int i=0; i<qtdNrsGerados; i++) {                  
                  if (nr == nrsApostados[i]) {
                     jaJogou = true;
                     break;
                  }
               }
               if (!jaJogou) {
                  nrsApostados[qtdNrsGerados] = nr;
                  qtdNrsGerados++;
               }
            }
            out.print("Aposta [" + (x + 1) + "]  " + qtdNrsApostados + " números: ");
            java.util.Arrays.sort(nrsApostados);
            for (int i = 0; i < qtdNrsApostados; i++) {
               out.print(nrsApostados[i] + ";");
            }                  

            int qtdAcertos = 0;
            for (int a=0; a<nrsSorteados.length; a++) {
               for (int b=0; b<nrsApostados.length; b++) {
                  if (nrsSorteados[a] == nrsApostados[b]) {
                     qtdAcertos++;
                     continue;
                  }
               }
            }            
            if (qtdAcertos == 6) {
               out.print("<br />     ====> SENA <==== ");
            }
            if (qtdAcertos == 5) {
               out.print("<br />     ====> QUINA <==== ");
            }            
            if (qtdAcertos == 4) {
               out.print("<br />     ====> QUADRA <==== ");
            }
            out.println("<br />");
         }
         out.println("<hr />");
      }
   %>
</html>

19.06.2012 - ter - 17a. semana

Gerador de Apostas Tabajara

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <title>Gerador de Apostas Tabajara</title>
   </head>
   <body>
      <h1>Gerador de Apostas Tabajara</h1>

      <form id="f1" name="f1" action="GeradorApostasTabajara.jsp" method="post">
         Quantidade: <br />
         <input type="text" id="qtde" name="qtde" value="10" />
         <input type="submit" id="btn_submit" name="btn_submit" value="Gerar" />
      </form>
   </body>

   <%
      String qtde = request.getParameter("qtde");
      if (qtde != null) {
         StringBuilder sb = new StringBuilder();
         out.println("<br />");
         out.println("Apostas geradas: <br />");
         out.println("<hr />");
         java.util.Random r = new java.util.Random();
         int qtdApostas = Integer.parseInt(qtde);
         for (int x = 0; x < qtdApostas; x++) {
            int qtdNrsApostados = r.nextInt(10) + 6;
            int[] nrsApostados = new int[qtdNrsApostados];
            int qtdNrsGerados = 0;
            while (qtdNrsGerados < qtdNrsApostados) {
               int nr = r.nextInt(60) + 1;
               boolean jaJogou = false;
               for (int i=0; i<qtdNrsGerados; i++) {                  
                  if (nr == nrsApostados[i]) {
                     jaJogou = true;
                     break;
                  }
               }
               if (!jaJogou) {
                  nrsApostados[qtdNrsGerados] = nr;
                  qtdNrsGerados++;
               }
            }
            out.print("Aposta [" + (x + 1) + "]  " + qtdNrsApostados + " números: ");
            java.util.Arrays.sort(nrsApostados);
            for (int i = 0; i < qtdNrsApostados; i++) {
               out.print(nrsApostados[i] + ";");
            }
            
            // Criando o SQL...
            sb.append("<br />   insert into APOSTAS (id, id_usuario, id_concurso, ");
            for (int i = 0; i < qtdNrsApostados; i++) {
               sb.append("n" + (i+1));
               if (i < qtdNrsApostados-1)
                  sb.append(",");
            }
            sb.append(") values (" + (x+1) + ", 1, 1, ");
            for (int i = 0; i < qtdNrsApostados; i++) {
               sb.append(nrsApostados[i]);
               if (i < qtdNrsApostados-1)
                  sb.append(",");
            }
            sb.append(");"); 
            
            out.println("<br />");
         }
         out.println("<hr />");
         out.println(sb.toString());
      }
   %>
</html>

domingo, 10 de junho de 2012

12.06.2012 - ter - 16a. semana

Trabalho final da disciplina - distribuição:

AQUILES FLORES CARVALHO   Quina
CARLOS LUIZ BARBOSA RIBEIRO   Megasena
GUILHERME FRANCESCHINI MALUF   Lotomania
JOSUE HENNEMANN VERGARA DE SOUZA   Duplasena
KELLEN SCHRODER DEVIT   Lotofacil
LUCAS BUENO MENDES   Lotomania
NELSON GUERREIRO ALVES   Lotogol
PIETRO TONON SCHAFF   Megasena
RODRIGO DA SILVA MARTINS    Loteca

terça-feira, 5 de junho de 2012

05.06.2012 - ter - 15a. semana

Trabalho final da disciplina
  • Criar um sistema de apostas on-line para os jogos da Loteria Federal.
  • Jogos possíveis:
    • megasena
    • quina
    • duplasena 
    • lotofacil
    • lotogol
    • loteca
    • lotomania
Requisitos:
1) Interpretar as regras do seu jogo e aplicá-las de forma a criar um sistema que permita o usuário realizar apostas e saber se ganhou.

2) Sugestão mínima de JSPs (podem haver outros e os abaixo podem ser alterados):

[Usuário]
    - Login.jsp (para autenticar o usuário)
    - Usuario.jsp (para permitir ao internauta realizar um cadastro de usuário)
    - Menu.jsp (para fazer os links com os outros .jsp)
    - Aposta.jsp (para o usuário criar sua própria aposta)
    - Resultados.jsp (para o usuário verificar os resultados históricos)

[Administrativa]
    - Jogo.jsp (para cadastrar um novo jogo)
    - GerarResultados.jsp (gerar os números vencedores)
    - ResultadosAdmin.jsp (apresenta o resultado financeiro dos jogos)

3) Cada jogo feito deverá computar o valor correspondente para a distribuição dos prêmios.
4) Não poderá haver mais do que 1 jogo ativo por vez.
5) As apostas somente poderão ser feitas no jogo ativo.
6) Prever funcionalidade para gerar apostas aleatórias para preenchimento em lote.
7) Prever acumulação de resultados para o próximo jogo, caso não tenha vencedor.
8) <Espaço para outras regras>



Dicas sobre Tag Libs

1) Como passar objetos como parâmetros: