USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic .Net
Voltar
Autor Assunto:  Gostaria de Idéias para uma análise
JERB RS
PELOTAS
RS - BRASIL
ENUNCIADA !
Postada em 24/07/2006 08:26 hs         
Bom dia a todos os colegas. Estou aqui, buscando dicas e idéias para difundir com as minhas em relação a um sistema que estou trabalhando, o qual é direcionado para a correção de provas de concursos em geral... pegando como foco, um concurso que tem 45 questões objetivas, eu gostaria de "ouvir" dicas e idéias dos colegas para processamento de correção de resultados. Existe uma tabela chamada GABARITOS, onde eu armazeno o resultado das 45 questões, vamos imaginar Q1=A, Q2=C, Q3=D...Q45=E e possuo a tabela com os dados do candidato (Inscrição, Controle da prova, etc e as respostas dos mesmos. O concurso pode ser feito em 1 dia, 2 ou 3 dias... logo, terei N gabaritos com as respostas e N provas feitas por cada candidato. Os concursos, as vezes chegam em 35000 candidatos... isto multiplicado por 3 se forem 3 dias e 45 questões por dia... eu queria uma idéia de como processar estas informações, se criar vetores dinamicos seria a saida pois preciso confrontar cada questão do candidato com cada questão do gabarito. Tipo, gabarito 1, prova 1 do candidato X.... se Q1 do gabarito 1 = Q1 do candidato X, Acertos=Acertos+1 ou Erros=Erros+1.... e assim por diante... para depois poder efetuar os cálculos para cada candidato... o que me sugerem ? por favor, enviem suas idéias. É importante eu realizar este processo com a melhor performance possível. Estou trabalhando com Access 2003 mas usando ADO, e já tenho script para Postgres também. Creio que o banco não seja problema... aguardo respostas.
   
Martini
Pontos: 2843 Pontos: 2843
PAROBÉ
RS - BRASIL
ENUNCIADA !
Postada em 25/07/2006 13:12 hs         
é uma forma de fazer!!!
 
create table #Gabarito
 (
  idGabarito integer,
  idProva integer,
  resposta01 char(1),
  resposta02 char(1),
  resposta03 char(1),
  resposta04 char(1),
  resposta05 char(1)
 )
create table #Prova
 (
  idProva integer,
  NomeProva varchar(30)
 )

create table #RespostaCandidato
 (
  idCandidato integer,
  idProva integer,
  resposta01 char(1),
  resposta02 char(1),
  resposta03 char(1),
  resposta04 char(1),
  resposta05 char(1)  
 )
set nocount on
insert into #Prova (idProva, NomeProva) values (1, 'PROVA 01')
insert into #Gabarito (idGabarito, idProva, resposta01, resposta02, resposta03, resposta04, resposta05) values (1, 1, 'A', 'B', 'C', 'D', 'E')
insert into #RespostaCandidato (idCandidato, idProva, resposta01, resposta02, resposta03, resposta04, resposta05) values (1, 1, 'A', 'B', 'C', 'D', 'E')
insert into #RespostaCandidato (idCandidato, idProva, resposta01, resposta02, resposta03, resposta04, resposta05) values (2, 1, 'A', 'C', 'D', 'D', 'E')
insert into #RespostaCandidato (idCandidato, idProva, resposta01, resposta02, resposta03, resposta04, resposta05) values (3, 1, 'A', 'C', 'C', 'D', 'E')
select
 idProva,
 NomeProva,
 idCandidato,
 (acertou01 + acertou02 + acertou03 + acertou04 + acertou05) TotalAcertos
From
(
select
 #Prova.idProva,
 #Prova.NomeProva,
 #RespostaCandidato.idCandidato,
 Case
  when #RespostaCandidato.resposta01 = #Gabarito.resposta01 then 1
  else 0
 End acertou01,
 Case
  when #RespostaCandidato.resposta02 = #Gabarito.resposta02 then 1
  else 0
 End acertou02,
 Case
  when #RespostaCandidato.resposta03 = #Gabarito.resposta03 then 1
  else 0
 End acertou03,
 Case
  when #RespostaCandidato.resposta04 = #Gabarito.resposta04 then 1
  else 0
 End acertou04,
 Case
  when #RespostaCandidato.resposta05 = #Gabarito.resposta05 then 1
  else 0
 End acertou05
from #RespostaCandidato
Inner Join #Prova on #Prova.idProva = #RespostaCandidato.idProva
Inner Join #Gabarito on #Gabarito.idProva = #Prova.idProva
)a
drop table #RespostaCandidato
drop table #Prova
drop table #Gabarito
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página