00001 #include "Questionario.h"
00005 Questionario::Questionario (string id) : m_id(id) {}
00006
00007 Questionario::~Questionario() {
00008 Questoes::iterator i;
00009 for (i=questoes.begin(); i!=questoes.end(); i++) {
00010 delete *i;
00011 }
00012 }
00013
00019 void Questionario::setTitulo ( string new_var ) {
00020 m_titulo = new_var;
00021 }
00022
00028 string Questionario::getTitulo ( ) {
00029 return m_titulo;
00030 }
00031
00037 void Questionario::setId ( string new_var ) {
00038 m_id = new_var;
00039 }
00040
00046 string Questionario::getId ( ) {
00047 return m_id;
00048 }
00049
00053 void Questionario::saveToHtml (string arquivo ) {
00054 fstream htmlFile;
00055
00056 htmlFile.open(arquivo.c_str(), fstream::out);
00057 if (htmlFile.fail()) {
00058 throw string("Não foi possÃvel criar " + arquivo);
00059 }
00060 htmlFile << "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">";
00061 htmlFile << "<html><head>";
00062 htmlFile << "<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">";
00063 htmlFile << "<LINK REL=\"stylesheet\" TYPE=\"text/css\" HREF=\"questionario.css\">";
00064 htmlFile << "<title>" << m_titulo << "</title></head><body>";
00065 htmlFile << "<h1>"<< m_titulo <<"</h1>";
00066 htmlFile << "<Form method=\"POST\" ACTION=\"cgi-bin/questgen.cgi\">";
00067 htmlFile << "<input type=\"hidden\" name=\"quest.count\" value=\""<< questoes.size() <<"\">";
00068 Questoes::iterator i;
00069 for (i=questoes.begin(); i!=questoes.end(); i++) {
00070 htmlFile << "<div class=\"questao\">";
00071 htmlFile << (**i).getHtml();
00072 htmlFile << "</div>";
00073 }
00074 htmlFile << "<input type=\"submit\" name=\"submit\" >";
00075 htmlFile << "</form>";
00076 htmlFile << "</body></html>";
00077 htmlFile.close();
00078 }
00079
00083 void Questionario::lerDados ( ) {
00084 int n=0;
00085
00086 cout << "Digite o titulo do questionario: " << endl;
00087 cout << ">>> ";
00088 getline(cin,m_titulo);
00089
00090 cout << "Digite o numero de questões (no mÃnimo 1): " << endl;
00091 cout << ">>> ";
00092 cin >> n;
00093 cin.ignore();
00094 while (n<1) {
00095 cout << "Valor inválido. No mÃnimo uma." << endl;
00096 cout << ">>> ";
00097 cin >> n;
00098 cin.ignore();
00099 }
00100
00101 int i;
00102 for (i=1; i<=n; i++) {
00103 Questao *q;
00104 int tipo = 0;
00105 cout << "Qual o tipo da questão " << i << "?" << endl;
00106 cout << "1. Questao Descritiva " << endl;
00107 cout << "2. Questao Sim/Não " << endl;
00108 cout << "3. Questao Alternativa " << endl;
00109 cout << ">>> ";
00110 cin >> tipo;
00111 cin.ignore();
00112 while ((tipo<1) || (tipo>3)) {
00113 cout << "Valor inválido. " << endl;
00114 cout << ">>> ";
00115 cin >> tipo;
00116 cin.ignore();
00117 }
00118 switch (tipo) {
00119 case Q_DESCRITIVA:
00120 q = new QuestaoDescritiva(i);
00121 break;
00122 case Q_SIMNAO:
00123 q = new QuestaoSimNao(i);
00124 break;
00125 case Q_ALTERNATIVA:
00126 q = new QuestaoAlternativa(i);
00127 break;
00128 default:
00129 continue;
00130 }
00131 q->lerDados();
00132 questoes.push_back(q);
00133 cout << endl;
00134 }
00135 }
00136
00137
00138
00139