Estou em Inicio > ELC117 > questgen
questgen
é um programa em c++ para gerar questionários em html
de modo iterativo. Ele interage com um programa CGI chamado questgen.cgi de modo
que este último armazena os dados enviados.
O gerador gera um arquivo fixo com nome questionario1.html. Ele pode ser personalizado através de uma folha de estilo no mesmo diretório com o nome questionario.css
As tags de estilo definidas são:
Abaixo uma típica iteração de comando com o questgen
para gerar um
questionário:
arton@cluster:~/cc/paradigmas/t3$ ./questgen Digite o titulo do questionario: >>> Formulário de Inscrição 2007 Digite o numero de questões (no mínimo 1): >>> 3 Qual o tipo da questão 1? 1. Questao Descritiva 2. Questao Sim/Não 3. Questao Alternativa >>> 1 Digite o enunciado da questão descritiva: >>> Digite seu nome completo: Qual o tipo da questão 2? 1. Questao Descritiva 2. Questao Sim/Não 3. Questao Alternativa >>> 2 Digite o enunciado da questão Sim/Não: >>> Você está ficando calvo? Qual o tipo da questão 3? 1. Questao Descritiva 2. Questao Sim/Não 3. Questao Alternativa >>> 3 Digite o enunciado da questão alternativa: >>> Qual sua faixa etária? Digite o numero de alternativas (no mínimo 2): >>> 5 Digite a descricao da alternativa 1: >>> Até 12 anos Digite a descricao da alternativa 2: >>> Entre 13 e 17 anos Digite a descricao da alternativa 3: >>> Entre 18 e 23 anos Digite a descricao da alternativa 4: >>> Entre 24 e 50 anos Digite a descricao da alternativa 5: >>> Mais de 50 anos
Você pode ver o questionario gerado acima aqui
o programa CGI trabalha basicamente com o arquivo CGImap.h do exemplo proposto para o trabalho. Este arquivo teve sua documentação inline traduzida e foram feitos mais comentários para evidenciar o funcionamento de alguns trechos de código. Uma exceção apenas foi adicionada a esta classe.
Devido a simplicidade do Servidor foram utilizadas apenas algumas funções para armazenar os dados enviados pelo formulário. Os dados são armazenados no mesmo diretório do programa no formato questdataXXXXXXXXX.csv onde XXXXXXXXXX é um número sequencial que muda a cada segundo. A função não é a prova de duplicação, mas funcionará bem na maioria dos casos. Não foi aplicado muito tempo em desenvolvê-la pois não foi considerada um fator relevante.
Após o envio do formulário podem aparecer poucas mensagens de retorno para o usuário. Ou uma mensagem de sucesso ou algumas poucas mensagens de erro exibidas como consequência do tratamento de exceções de arquivo ou de uma exceção genérica (Menos improvável:falta memória).
Durante o desenvolvimento do questgen os itens abaixo foram evidenciados:
.h.$(SRC_EXTENSION): @touch $*.cpp
stringstream s; s << 1;Em lugares em que serão necessárias muitas concatenações de dados de diferentes tipos é conveniente utilizar stringstream ao invés de string. Para obter obter uma string através da stringstream basta utilizar o métodos str()
cout << "Digite o enunciado da questão descritiva:" << endl; cout << "Enunciado: "; string enunciado; getline(cin,enunciado);
O questgen é distribuído sobre a GPL. Já se imaginou enviando questionários personalizados para todos os seus amigos? Então não espere mais! Comece agora mesmo o download e redescubra um novo mundo em que questionar não ofende!
Para compilar basta digitar make. Serão gerados 2 binários: questgen e questgen.cgi
Página atualizada em: Tue Aug 7 05:20:42 2007