Ir para conteúdo

POWERED BY:

Arquivado

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

Tigger

Prova online com 40 questoes...

Recommended Posts

Tenho que desenvolver uma prova online..como forma de teste de admissao na empresa que trabalho...sendo entao ficou sobre minah responsabilidade desenvover a mesmas....dessas maneira venho a perguntar para você´s como eu faco para recuperar 40 respostas que o usuario informar....na prova.Ja tentei usar o seguinte:Request.Form para recuperar o valor de cada RadioButton que tenho no meu form...so que se eu fizer isso na pratica...sera 40 Request....ou entao faco o laco com o FOR..NEXT...para recuperar todos de vezz..Para verificar, se o usuario esta respondendo correto, eu utilizei em Media 40 IF´s..ELSE´s...ELSEIF´s...e ENDIF´s...so que a porcaria do codigo fica muito grande e complexo depois para você se localizar....Dessa maneira gostaria de saber se nao tem nenhum jeito de fazer esse comparacao sem ter que deixar o codigo complexo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho fácil e deve ter algo semelhante já, você apenas terá que criar um form e nele incluir a resposta no "<input name="" type="hidden" value="RESPOSTA">" ai você vai levar essas variaveis até a página de resposta. Facin, facin, depois você mostra tudo que ele respondeu um lugar qualquer..Eu te mando o sistema na segunda. Abraços..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu acho fácil e deve ter algo semelhante já, você apenas terá que criar um form e nele incluir a resposta no "<input name="" type="hidden" value="RESPOSTA">" ai você vai levar essas variaveis até a página de resposta.

 

Facin, facin, depois você mostra tudo que ele respondeu um lugar qualquer..

 

 

Eu te mando o sistema na segunda.

 

Abraços..

<{POST_SNAPBACK}>

NAAAOOO. Tá doido cara??? faz isso não que ele vai ser demitido na hora.

Se ele fizer isso fica muito fácil tirar 10 na prova. Basta olhar o código fonte da página. <_<

 

A solução é simples: eu imagino que você tenha um banco de dados com as respostas (se nao tiver cria um), então da mesma forma que você fez o "for" pra pegar os valores, você faz o "for" pra comparar os valores corretos recuperados do banco de dados.

 

1 - primeiro você abre a conexao

2 - guarda os valores certos em variáveis (arrays seria bom)

3 - faz um for comparando os Requests enviados com o array das respostas certas

4 - a cada resposta certa você incrementa o contador que será como o resultado final.

 

simples.

falows...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Tigger,

Abaixo segue umas das soluções possiveis.

 

Primeiramente crie um arquivo contendo as questões, nesse exemplo so usei 4 para um exemplo

PS: Preste atenção que o nome dos radios tem que estar numerados como "Quest1" "Quest2" etc..

 

Arquivo contendo o formulario, nomeie como prova.asp

<html>
<head>
<title>Prova Online</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body style="font-family:verdana;font-size:9px">
<form name="form1" method="post" action="corrigir.asp">
 1) Oque significa ASP?<br>
 <input type="radio" name="Quest1" value="1">
 Active Sound Pressure<br>
 <input type="radio" name="Quest1" value="2">
 Active Server Pages<br>
 <input type="radio" name="Quest1" value="3">
 Audio Side Pages<br>
 <br>
 2) A Qual tecnologia a linguagem ASP pertence?<br>
 <input type="radio" name="Quest2" value="1">
 Microsoft<br>
 <input type="radio" name="Quest2" value="2">
 Unix<br>
 <input type="radio" name="Quest2" value="3">
 MAC<br>
 <br>
 3) Qual função é usada para retornar o nome do dia da semana?<br>
 <input type="radio" name="Quest3" value="1">
 FormatDateTime<br>
 <input type="radio" name="Quest3" value="2">
 MonthName<br>
 <input type="radio" name="Quest3" value="3">
 WeekDayName<br>
 <br>
 4) ASP é uma linguagem:<br>
 <input type="radio" name="Quest4" value="1">
 Client Side<br>
 <input type="radio" name="Quest4" value="2">
 Server Side<br>
 <input type="radio" name="Quest4" value="3">
 Brownser Side<br>
 <input type="submit" name="Submit" value="Corrigir Prova">
</form>
</body>
</html>

 

Agora iremos pegar as informações

 

Nomeie este arquivo como corrigir.asp

ASP

[*]<%

 

[*]'Declare a array que vai guardar as respostas

 

[*]Dim Respostas(4)

 

[*]Respostas(1) = 2 'Opção correta da questão 1

 

[*]Respostas(2) = 1 'Opção correta da questão 2

 

[*]Respostas(3) = 3 'Opção correta da questão 3

 

[*]Respostas(4) = 2 'Opção correta da questão 4

 

[*]

 

[*]'Repetir 4 vezes ...

 

[*]For i=1 to 4

 

[*] 'Se o valor vindo do formulario for igual ao valor contido na array entao..

 

[*] if Fix(Request("Quest"&i)) Fix(Respostas(i)) Then

 

[*] 'Parabéns a resposta está correta.

 

[*] Response.write "Questão "&i&" está correta<br>"

 

[*] 'Senão

 

[*] Else

 

[*] 'Tenta Novamente...

 

[*] Response.write "Questão "&i&" está incorreta<br>"

 

[*] End if

 

[*]Next

 

[*]%>

 

Este foi um exemplo simples, agora altera conforme suas necessidades

Espero ter ajudado.

 

Abraços :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara na boafaz tudo dinamicocoloca as perguntas e as respostas no bd lista as questoes e depois compara a resposta com o que ta no db como foi dito...não faz nada na mao pois em qualquer mudança você terá um trabalhao se for alterar manualmente...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, como o mario falou faça tudo pelo BD é menos trabalho pra qualquer modifcação, alem disso, use um FOR EACH pra pegar TODAS as resposta, com apenas TRÊS linhas, você consegue fazer um request em For Each e pegar as 40 questões =)Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

faz um loop pegando os valors com o For each xxx in request.formai você faz as verificacoes necessarias pq ele pega tudo de um form, submit, tudo, se for radiobutton o nome do radion você pega pelo request.Form.key(xxx), e o valor dele pelo request.Form.item(xxx)Tipo se o nome do banco for igual ou tiver alguma semelhaça com os nomes dos campos você mata o problema de pegar cada itens com um mid qualquerexemplo, se no campo tiver strQuestao1, e tiver no form optQuestao1, so fazer um mid e ja era.AbraçosRogério

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, como o mario falou faça tudo pelo BD é menos trabalho pra qualquer modifcação, alem disso, use um FOR EACH pra pegar TODAS as resposta, com apenas TRÊS linhas, você consegue fazer um request em For Each e pegar as 40 questões =)

 

Abração

<{POST_SNAPBACK}>

Alguem poderia me ajudar a desenvolver o FOR...EACH para que eu posso pegar todos os 40 valores.... :huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Perfeito, como o mario falou faça tudo pelo BD é menos trabalho pra qualquer modifcação, alem disso, use um FOR EACH pra pegar TODAS as resposta, com apenas TRÊS linhas, você consegue fazer um request em For Each e pegar as 40 questões =)

 

Abração

<{POST_SNAPBACK}>

Alguem poderia me ajudar a desenvolver o FOR...EACH para que eu posso pegar todos os 40 valores.... :huh:

<{POST_SNAPBACK}>

è como nosso amigo falo:

 

ASP

[*]For each var in request.form

 

[*]

 

[*]........

 

[*]

 

[*]next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera..você´s iram me chamar de "burro"...sinceramente, nao sei como iniciar uma condicao com esse FOR..EACH...tentei fazer algumas coisinhas aqui...mais nao deu certo...a minha logica..nao funciounou...perfeitamente.foi mal.ae galera.;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Burro não!!!!!!!! você está aprendendo, e ninguem aqui sabe tudo!Posta como você fez sua logica talvez você pode ter chegado perto!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pô cara..ta meio punk aqui hoj!!!nao to com a minima disposicao...acho que estoi de TPM hehehe :P http://forum.imasters.com.br/public/style_emoticons/default/grin.gif http://forum.imasters.com.br/public/style_emoticons/default/grin.gif ..

 

mais falando serio...segue o que tentei fazer..

 

ASP

[*]

 

[*]FOR EACH I In ( Request.Form("Quest"&I) )

 

[*] ResponsE.Write(Request.Form("Quest")) 

 

[*]next

 

[*]

 

[*]

Compartilhar este post


Link para o post
Compartilhar em outros sites

mais ou menos assimFOR EACH Item In Request.Form Response.Write(Request.Form(Item)) next

Compartilhar este post


Link para o post
Compartilhar em outros sites

fiz uma pesquisa e achei isso que você postou ae mario...mais o que e esse ta de "item" porq se eu coloco no ASP ele fica com cor diferente???

Compartilhar este post


Link para o post
Compartilhar em outros sites

é só o nome da variável. Voce pode alterar pra qualquer outra coisa.

Como foi falado antes pode colocar "I" , pode colocar "varTeste"

 

FOR EACH varTeste In Request.FormResponse.Write(Request.Form(varTeste))next

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu quiser atribuir valores para cada respostas certa...tentei fazer dessa forma mais nao deu certo..

ASP

[*]

 

[*]<%

 

[*]Set Cnn Server.CreateObject("ADODB.Connection")

 

[*]

 

[*]Cnn.open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\\treinamento\prova\dados.mdb"

 

[*]

 

[*]SQL "SELECT * FROM RESPOSTAS"

 

[*] SET RS Cnn.execute(SQL)

 

[*]

 

[*]  FOR EACH Item In Request.Form

 

[*] IF Item = (RS("RE_RESPOSTA"&Item)) THEN

 

[*]  Response.Write("certo")

 

[*] ELSE

 

[*] Response.Write("errado")

 

[*] END IF

 

[*]NEXT

 

[*]%>

 

[*]

Compartilhar este post


Link para o post
Compartilhar em outros sites

ai você tem que definir como será sua comparacao com a resposta certa...isso recuperará tudo que for passado mas não basta para o que você quer...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ASP

[*]FOR EACH Item In Request.Form

 

[*]

 

[*]Consult RS("RE_RESPOSTA")

 

[*]

 

[*]IF Consult(Item) = Item THEN

 

[*]

 

[*]  Response.Write("certo")

 

[*]

 

[*] ELSE

 

[*]

 

[*] Response.Write("errado")

 

[*]

 

[*] END IF

 

[*]

 

[*]NEXT

Acho que poderia ser assim!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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