Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Программа Экзаменатор 
:(
    Опции темы
Garik1995
Дата 17.12.2014, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 15
Регистрация: 15.10.2014

Репутация: нет
Всего: нет



Final_Project.cpp
Код

//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Final_Project.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm11 *Form11;
//---------------------------------------------------------------------------
__fastcall TForm11::TForm11(TComponent* Owner)
    : TForm(Owner)
{
}
int nQuery = 0; // Всего вопросов
int nRight; // Количество правильных ответов
int Right; // правильный ответ
int Sel; // ответ, выбранный испытуемым
static int mode = 0; // 0 - начало работы программы
                     // (вывести первый вопрос)
                     // 1 - процесс тестирования
                     // 2 - тестирование завершено
// начало работы

//---------------------------------------------------------------------------

void __fastcall TForm11::FormActivate(TObject *Sender)
{
if (ParamCount() == 0) {
Label1->Caption = "В командной строке надо указать "
                  "имя файла теста";
mode = 2;
return;
}
XMLDocument1->FileName = ParamStr(1);
try
{
// открыть XML-документ
XMLDocument1->Active = True;
}
catch (EDOMParseError &e)
{
Label1->AutoSize = True;
Label1->Caption = "Ошибка доступа к файлу теста " +
                ParamStr(1) +
                "\nMessage: " + e.Message;
mode = 2;
return;
}
Form11->Info(); // вывести информацию о тесте
}
// считывает и выводит вопрос с указанным номером
int __fastcall TForm11::Qery(int i)
{

// привести форму в исходное состояние
RadioButton1->Visible = False;
RadioButton2->Visible = False;
RadioButton3->Visible = False;
RadioButton4->Checked = True;
Button1->Enabled = False;
// настроить интерфейс на работу с узлом qw
_di_IXMLNode gw = XMLDocument1->
                   DocumentElement->ChildNodes->
                      Nodes[WideString("qw")];
if (i > qw->ChildNodes->Count -1) {
   return -1;
};
nQuery++; //количество вопросов

/* Узел q - это вопрос.
   Параметр text узла q - это текст вопроса
   дети узла q - это альтернативные ответы */
   _di_IXMLNode q = gw->ChildNodes->Nodes[i];

 /* Атрибут Text узла qw - это текст вопроса,
    атрибут right - номер правильного ответа */

// вопрос
Label1->AutoSize = false;
Label1->Width = ClientWidth -20;
Label1->Height = 150;
Label1->Caption = q->GetAttribute(WideString("text"));
Label1->AutoSize = true;

Right = StrToInt( q->GetAttribute(WideString("right")));

// узел "q" состоит из нескольких узлов "a"
// (альтернативных ответов)
_di_IXMLNode a;
int j = 0; // номер узла "a"
while ( j < q->ChildNodes->Count )
    {
      a = q->ChildNodes ->Nodes[j];
      switch (j) {
      case 0: RadioButton1->Caption = a->Text;
              RadioButton1->Top = Label1->Top +
                                  Label1->Height + 10;
              RadioButton1->Visible = True; break;
      case 1: RadioButton2->Caption = a->Text;
              RadioButton2->Top = RadioButton1->Top +
                            RadioButton1->Height + 10;
              RadioButton2->Visible = True; break;
      case 2: RadioButton3->Caption = a->Text;
              RadioButton3->Top = RadioButton2->Top +
                             RadioButton2->Height + 10;
              RadioButton3->Visible = True; break;
      }
       j++;
     
      }

     return 0;
     }
  // информация о тесте
  void __fastcall TForm11::Info();
  {
   Form11->Caption = XMLDocument1->DocumentElement->
                ChildNodes->Nodes[WideString("head")]->Text;
    Label1->Caption = XMLDocument1->DocumentElement->
              ChildNodes->Nodes[WideString("description")]->Text;
              }
  // щелчок на кнопке ОК                           

void __fastcall TForm11::Button1Click(TObject *Sender)
{
 static int i = 0; // номер вопроса
 int r;            // результат вывода вопроса:
                   // -1 - вопросов больше нет
switch ( mode) {
    
case 0:
        r = Qery(i++);
        mode = 1;
        break;
        

      case 1:
             // проверим, правильный ли ответ выбрал
             // испытуемый
             if (Sel == Right) nRight++;
             // вывести следующий вопрос
             r = Qery(i++);
             if (r == -1)
             {
             // результат тестирования
             Result();
             Button1->Enabled = true;
             mode = 2;                 
             }               
             break;

  case 2: Form11->Close();  // завершить работу программы        
}    
}

// вывести результат тестирования
void __fastcall TForm1::Result()
{
int i = 0;
int score;
_di_IXMLNode ls;  // интерфейс доступа к узлу levels
_di_IXMLNode l;   // интерфейс доступа к узлу level

// считываем последовательно узлы level и сравниваем
// значение параметра score с количеством правильных
// ответов
ls = XMLDocument1->DocumentElement->
             ChildNodes->Nodes[WideString("levels")];
while ( i < ls->ChildNodes->Count)
{
l = ls->ChildNodes->Nodes[i];
score = StrToInt( l->
              GetAttribute[WideString("score")));

    if (nRight >= score) break;
    i++; 

}             
AnsiString mes;
mes.printf("Экзамен закончен\n"
           "Всего вопросов: %i\n"
           "Правильных ответов: %i\n",
           nQuery,nRight);

mes = mes + l->GetAttribute(WideString("text"));
Label1->Width = Form11->ClientWidth - 20;
Label1->Caption = mes;
}
// пользователь выбрал первый ответ 
void __fastcall TForm11::RadioButton1Click(TObject *Sender)
{
 Sel = 1;
 Button1->Enabled = True;    
}

//пользователь выбрал второй ответ
void __fastcall TForm11::RadioButton2Click(TObject *Sender)
{
 Sel = 2;
 Button1->Enabled = True;    
}
//пользователь выбрал третий ответ

void __fastcall TForm11::RadioButton3Click(TObject *Sender)
{
 Sel = 3;
 Button1->Enabled = True;    
}
//---------------------------------------------------------------------------

Final_Project.h
Код

//---------------------------------------------------------------------------

#ifndef Final_ProjectH
#define Final_ProjectH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <msxmldom.hpp>
#include <XMLDoc.hpp>
#include <xmldom.hpp>
#include <XMLIntf.hpp>
//---------------------------------------------------------------------------
class TForm11 : public TForm
{
__published:    // IDE-managed Components
    TLabel *Label1;
    TRadioButton *RadioButton1;
    TRadioButton *RadioButton2;
    TRadioButton *RadioButton3;
    TRadioButton *RadioButton4;
    TXMLDocument *XMLDocument1;
    TButton *Button1;
    void __fastcall FormActivate(TObject *Sender);
    void __fastcall Button1Click(TObject *Sender);
    void __fastcall RadioButton1Click(TObject *Sender);
    void __fastcall RadioButton2Click(TObject *Sender);
    void __fastcall RadioButton3Click(TObject *Sender);

private:


    // User declarations
public:

__fastcall TForm11 Info(); // User declarations
__fastcall TForm11(TComponent* Owner);


};
//---------------------------------------------------------------------------
extern PACKAGE TForm11 *Form11;
//---------------------------------------------------------------------------
#endif


[C++ Error] Final_Project.cpp(55): E2316 '_fastcall TForm11::Qery(int)' is not a member of 'TForm11'
[C++ Error] Final_Project.cpp(116): E2333 Class member '_fastcall TForm11::Info()' declared outside its class
[C++ Error] Final_Project.cpp(116): E2316 '_fastcall TForm11::Info()' is not a member of 'TForm11'
[C++ Error] Final_Project.cpp(117): E2040 Declaration terminated incorrectly

Проблема в том, что я пытаюсь описать функцию,но не помогает. Подскажите что нужно прописать.
PM MAIL   Вверх
Vasya
Дата 19.12.2014, 06:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 5.7.2003

Репутация: нет
Всего: нет



В классе TForm11 не объявлен прототип функции
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0831 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.