Статья затрат
|
Сумма
|
Основная заработная плата разработчика, руб
|
700293,6
|
Дополнительная заработная плата разработчика, руб.
|
350146,8
|
Отчисления от основной и дополнительной заработной платы,
руб.
|
367 654,1
|
Затраты на оплату труда разработчика, руб.
|
1418 094,5
|
Стоимость машино-часа, руб.
|
2105,5
|
Машинное время ЭВМ, ч.
|
460,4
|
Затраты машинного времени, руб.
|
969 372
|
Затраты на изготовление эталонного экземпляра, руб.
|
119 373
|
Накладные расходы
|
1253419,5
|
Затраты на технологию, руб.
|
0
|
Затраты на материалы
|
160500
|
Программная себестоимость
|
2506839,5
|
Полная себестоимость
|
3920 759
|
В ходе проведения расчетов были выяснены основные показатели, такие как
полная себестоимость, составляющая 3920 759 рублей и общая трудоемкость
разработки - 101 человеко-день. Анализируя данные показатели, очевидно, что
итоговая полная себестоимость является оптимальной.
6. Сведения об охране труда. защита от ионизирующих излучений
в производственной среде оператора ЭВМ
6.1 Общие сведения
Ионизирующим излучением называется любое излучение, прямо или косвенно
вызывающее ионизацию среды (образование заряженных атомов или молекул - ионов).
Ионизирующими свойствами обладают космические лучи, природными
источниками ионизирующих излучений на земле являются естественно распределенные
на ней радиоактивные вещества. Искусственными источниками ионизирующих
излучений являются ядерные реакторы, ускорители заряженных частиц,
рентгеновские установки, искусственные радиоактивные изотопы.
Ионизирующее излучение бывает электромагнитным (фотонным) и
корпускулярным.
К электромагнитному излучению относятся гамма-излучение и рентгеновское
излучение.
Корпускулярное излучение представляет собой поток частиц с массой покоя
отличной от нуля (альфа- и бета- частицы, протоны, нейтроны и др.).
Контакт человека с ионизирующими излучениями представляет серьезную
опасность для человека. Опасность этого облучения зависит как от величины
поглощенной энергии излучения, так и от пространственного распределения
поглощенной энергии в организме человека.
Радиационная опасность зависит от вида излучения (коэффициент качества
излучения). Тяжелые заряженные частицы и нейтроны более опасны, чем
рентгеновское и гамма-излучение.
В результате воздействия ионизирующих излучений на организм человека в
тканях могут происходить сложные физические, химические и биологические
процессы. Ионизирующие излучения вызывают ионизацию молекул и атомов вещества,
в результате чего молекулы и клетки ткани разрушаются.
Известно, что 2/3 общего состава ткани человека составляют вода и углерод.
Вода под воздействием излучения расщепляется на водород Н и гидроксильную
группу ОН, которые либо непосредственно, либо через цепь вторичных превращений
образуют продукты с высокой химической активностью: гидратный окисел НО2 и
перекись водорода Н2О2. Эти соединения взаимодействуют с молекулами
органического вещества ткани, окисляя и разрушая его.
В результате воздействия ионизирующих излучений нарушается нормальное
течение биологических процессов и обмен веществ в организме. В зависимости от
величины поглощенной дозы излучения и от индивидуальных особенностей организма
вызванные изменения могут быть обратимыми и необратимыми. При небольших дозах
пораженная ткань восстанавливает свою функциональную деятельность. Большие дозы
при длительном воздействии могут вызвать необратимое поражение отдельных
органов или всего организма (лучевое заболевание).
Степень опасности поражения зависит также от скорости выведения
радиоактивного вещества из организма. Не задерживающиеся на длительное время
быстро обращающиеся в организме вещества (вода, натрий, хлор и др.) и вещества,
не усваиваемые организмом, а также не образующие соединений, входящих в состав
тканей (аргон, ксенон, криптон и др.), поэтому они менее опасны.
Некоторые радиоактивные вещества почти не выводятся из организма и
накапливаются в нем, при этом одни из них (ниобий, рутений и др.) равномерно
распределяются в организме, другие сосредотачиваются в определенных органах
(лантан, актиний, торий - в печени, стронций, уран, радий - в костной ткани),
приводя их к быстрому повреждению.
6.2 Система защиты от ионизирующего излучения
Основные санитарные правила обеспечения радиационной безопасности
(ОСП-2002)содержат требования и нормы радиационной безопасности, применительно
к конкретным видам работ, проводимым при воздействии ионизирующих излучений.
Они регламентируют размещение учреждений, участков и установок, предназначенных
для работы с источниками ионизирующих излучений; организацию работ; порядок
получения, учета, хранения и перевозки источников излучения; правила работы с
закрытыми источниками излучения и с радиоактивными веществами в открытом виде;
устройство вентиляции, пылегазоочистки, отопления, водоснабжения и канализации;
требования к сбору, удалению, обезвреживанию радиоактивных отходов, а также
дезактивации помещений и оборудования, меры индивидуальной защиты и личной
гигиены, локализации аварийных ситуаций и ликвидации последствий аварий,
вопросы радиационного контроля.
ГОСТ 12.4.120 "Система стандартов безопасности труда. Средства
коллективной защиты от ионизирующих излучений. Общие технические
требования"дана классификация указанных средств в зависимости от их
назначения, способы защиты, конструктивному исполнению и другим признакам.
Разработаны основные санитарные правила работы с радиоактивными
веществами и другими источниками ионизирующих излучений, где содержатся
требования и нормы радиационной безопасности применительно к конкретным видам
работ, производимым при воздействии ионизирующих излучений.
При защите от внешнего облучения, возникающего при работе с закрытыми
источниками излучения, основные усилия должны быть направлены на предупреждение
пере облучения персонала путём увеличение расстояния между оператором и
источником, сокращение продолжительности работы в поле излучения, экранирования
источника излучения.
Закрытыми называются источники ионизирующего излучений, устройство
которых исключает попадание радиоактивных веществ в окружающую среду.
Защита от внутреннего излучения требует исключения непосредственного
контакта с радиоактивными веществами в открытом виде и предотвращение попадания
их в воздух рабочей зоны.
Под внутренним облучением понимают воздействие на организм ионизирующих
излучений радиоактивных веществ, находящихся внутри организма.
Все работы с открытыми источниками подразделяются на три класса.
Установленные основными санитарными правилами классы работ в зависимости от
группы радиационной опасности радионуклида и фактической его активности на
рабочем месте.
При работе с радиоактивными веществами большое значение имеют средства
индивидуальной защиты, правила личной гигиены и организация дозиметрического
контроля.
Все вышеуказанные излучения присутствуют во время работы пользователя на
ПК.
Результаты всех видов радиационного контроля должны регистрироваться и
храниться в течение 30 лет [19].
Заключение
В процессе проектирования и разработки приложения была детально изучена
предметная область организации учебного процесса и использования в нем
технических средств обучения. Также, были исследованы используемые компоненты и
их свойства, методы решения поставленной задачи, её программная реализация,
разработан алгоритм, функциональная модель, диаграмма потоков данных,
спроектирована и нормализована информационная база данных. Результатом является
отлаженное и готовое к эксплуатации приложение «Обучающий блок по дисциплине
«Базы данных и системы управления базами данных», содержащее все планируемые
функции и возможности, такие как:
- динамическая автоматизация процесса обучения;
- построение графиков и динамики уровня знаний пользователя,
вывод подробной статистики;
- система тестирования, где будут комплексно проверяться
уровень знаний пользователя по данной дисциплине;
- административный режим, где будет происходить управление
ресурсами приложения.
Спроектированная программа имеет ряд преимуществ перед своими аналогами,
наиболее существенными среди них являются:
- красочные и создающие уникальный дизайн, элементы интерфейса;
- организация прохождения тестов по запросам, где процесс
тестирования проходит не в стандартной форме, а с использованием различных
графических элементов;
- ведение подробной статистики пользователя, построение
динамики уровня знаний;
- реализация пользовательского и административного режимов;
- динамичная организация процесса обучения, красочное и удобное
оформление лекций.
Разработанная программа является интуитивно понятной и не лишена логики.
Для возможности работы в ней, пользователь не должен проходить какое-либо
специализированное обучение и обладать специфическими навыками. Кроме того,
возможность потери данных минимальна, так как в приложении учтен человеческий
фактор и реализовано лингвистическое обеспечение высокого уровня. Это
характеризует повышенную надежность данного ПС.
Обучающий блок может получить широкое распространение в учебных
заведениях, где осуществляется обучение специальностям, требующих изучение
дисциплины «Базы данных и системы управления базами данных».
Перечень условных обозначений и сокращений
АИС - Автоматизированная Информационная Система.
БД - База Данных.
ОП - Обучающая Программа.
ПС - Программное средство.
СУБД - Система Управления Базами Данных.
ТБД - Таблица Базы Данных.
ТСО - Технические Средства Обучения.
ЭВМ - Электронная Вычислительная Машина.
ЭВП - Электронный Видеопроектор.(ActiveX Data Objects) - интерфейс
системного уровня с дополнительным прикладным уровнем.(Borland Database Engine)
- 32-битный движок баз данных под Microsoft Windows для доступа к базам данных
из Borland Delphi, C++ Builder, IntraBuilder, Paradox for Windows и Visual
dBASE for Windows.
DML (Data Manipulation Language) - язык управления (манипулирования)
данными.
DQL (Doctrine Query Language) - язык построения запросов (выборка
данных).
GUI (Graphical User Interface) - графический интерфейс
пользователя. Разновидность интерфейса, где элементы, представленные
пользователю на
дисплее, исполнены в виде графических изображений.(Microsoft Foundation
Class) - библиотека на языке C++, разработанная Microsoft и призванная
облегчить разработку GUI-приложений.(Object Windows Library) - библиотека
классов, разработанная фирмой Borland для создания оконных приложений на языках
С и Pascal.(Structured Query Language) - язык структурированных запросов.
Универсальный компьютерный язык, применяемый для создания, модификации и
управления данными в реляционных базах данных.(Visual Component Library) -
объектно-ориентированная библиотека для разработки программного обеспечения,
разработанная компанией Borland.
Список использованных источников
1. Семушина Л.Г. Содержание и технологии обучения в
средних специальных учебных заведениях : Учеб. пособие для преп. учреждений
сред. проф. образования. / Л.Г. Семушина, Н.Г. Ярошенко. - М.; Мастерство,
2001. - 272 с
2. Минич О.А. Информационные технологии в образовании. /
О.А. Минич. - Минск: Красико-Принт, 2008. - 176с. - (Педагогическая
мастерская).
. Технологии оценки качества обучения. / В.А.
Красильникова // Приложение № 10 к журналу «Профессиональное образование» -
Москва, 2003.
. Институт международных программ российского
университета дружбы народов [Электронный ресурс] : Технологии создания
электронных обучающих средств - 2011.
. Конструирование программ и языки программирования :
курс лекций / С.Я. Гоначрова-Грабовская [и др.] ; под ред. С.Я.
Гоначаровой-Грабовской. - Минск : БГУ, 2007.
. Черемных С.В. Моделирование и анализ систем.
IDEF-технологии: практикум / С.В. Черемных, И.О. Семенов, В.С. Ручкин. - М.:
Финансы и статистика, 2005. - 192 с.
. Маклаков,С.В. BPwin и ERwin. CASE - средства
разработки информационных систем. / С.В. Маклаков - М.: ДИАЛОГ - МИФИ, 2007.
. Марков А.С. Базы данных. Введение в теорию и
методологию: Учебник. / А.С. Марков, К. Ю. Лисовский. - М.: Финансы и
статистика, 2004. - 512 с.
. Горелов А. Эффективная работа с СУБД . / А. Горелов,
Р. Ахаян, С. Макашарипов. - СПб.: Питер, 2000. - 704 с.
. Малыхина, М.П. Базы данных: основы, проектирование,
использование. / М.П. Малыхина. - СПб.: БХВ - Петербург, 2004. - 512 с.
11. Основы алгоритмизации и программирования в среде C++Builder : учеб.-метод. Пособие / сост. В.К. Абрамович [и др.]
; под общ. ред. Р.П. Пшекова. - Минск : БГУ, 2006.
12. Архангельский А.Я. Программирование в Borland C++Builder. / А.Я.
Архангельский - М.: «издательство БИНОМ», 2003. - 1152 с.
. Глушков С.В. «Программирование в среде Borland C++Builder 6». / С.В.
Глушков, В.Н. Зорянский. - М.: ООО Издательство «Премьера», 2003.
. Прата С. Язык программирования С++. Лекции и
упражнения. Учебник: Пер. с англ. / С.Прата. - СПб.: ООО «ДиаСофтЮП», 2003. -
1104 с.
. Пахомов Б.И. С/С++ и Borland C++Builder 6 для
начинающих. / Б.И. Пахомов. - СПб.: Издательство «БХВ-Петербург», 2006. - 640
с.
. «Вычислительные системы, сети и телекоммуникации» :
Учебник / А.П. Пятибаров [и др.] ; под ред. проф. А.П. Пятибратова. - М.:
Финансы и статистика, 2004 г.
. Методические рекомендациями по планированию, учету и
калькулированию себестоимости научно-технической продукции. - Утв. Приказом
председателя Государственного комитета по науке и технологиям Республики
Беларусь № 156 от 31.08.1998, рег. № 8/1117 от 11.10.1999.
. Крум Э.В. «Экономика предприятия» учебное пособие. /
Э. В. Крум, Т.В. Елецких. - 2-е изд., Минск: Выш.шк., 2010-304 с.
. Михнюк Т.Ф. Охрана труда: учеб пособие для студентов
учреждений, обеспечивающих получение высшего образования по специальностям в
области радиоэлектроники и информатики. / Т.Ф. Михнюк. - Минск: ИВЦ Минфина,
2007. - 294.
Приложение А
Декомпозиция общей функциональной модели
Рисунок А.1 - Декомпозиция общей функциональной модели
Приложение Б
Диаграмма потоков данных
Рисунок Б.1 - Диаграмма потоков данных
Приложение В
Схема базы данных
Рисунок В.1 - Схема базы данных
Приложение Г
Текст программы «Обучающий блок по дисциплине «Базы данных и системы
управления базами данных»
Текст модуля Unit1.cpp
#include <vcl.h>
#pragma hdrstop
//форма регистрации и авторизации
#include "Unit1.h"
#include <Registry.hpp> //подключение библиотеки необходимой для работы
программы с реестром
#include "Unit2.h"
#include "Unit3.h"
#include "Unit13.h"
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX" // подключениt библиотеки ShockwaveFlash
#pragma resource "*.dfm"*Form1; *Reg1=new TRegistry; //
переменная для выполнения действий над ресстром
TRegistry *Reg2=new TRegistry;*Reg3=new TRegistry; //
регистрацияi;
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{->OpenKey("BlockDB\\Users",0); //Параметр «Users» хранит количество пользователей(Reg1->ValueExists("Number")) //Проверяем, есть ли такой параметр
{->RootKey=HKEY_CURRENT_USER;->OpenKeyReadOnly("BlockDB\\Users");=Reg2->ReadInteger("Number");2->CloseKey();
delete Reg2;
} // если такой параметр есть, то происходит считывание его значения
Else
//если данный параметр отсутствует, то происходит его создание
{
Reg2->RootKey=HKEY_CURRENT_USER;
Reg2->OpenKey("BlockDB\\Users",true);
Reg2->WriteInteger("Number",i);
i=Reg2->ReadInteger("Number");
Reg2->CloseKey();
delete Reg2;
}->CloseKey();Reg1;
}__fastcall TForm1::Timer1Timer(TObject *Sender) //Действия, выполняемые через определенный интервал времени
{->GotoFrame(250); // Перейти на 250 кадр
анимации->Play(); //воспроизведение Flash-анимации
}__fastcall TForm1::Button1Click(TObject *Sender)
{->Enabled = false;->Movie =
ExtractFilePath(Application->ExeName) + "Flash/Reg_v3.swf"; //загрузка ролика->Play();->Enabled = true;->Visible =
false;->Visible = false;->Enabled = true;->Visible =
false;->Visible = false;->Visible = true;
}__fastcall TForm1::Timer2Timer(TObject *Sender)
{->GotoFrame(75); // Перейти на 250 кадр
анимации->Play();
}__fastcall TForm1::Timer3Timer(TObject *Sender)
{->Visible = true;->Visible = true;->Enabled =
false;
}__fastcall TForm1::Timer4Timer(TObject *Sender)
{->Visible = true;->Visible = true;->Enabled =
false;
}__fastcall TForm1::Timer5Timer(TObject *Sender)
{->Visible = true;->Enabled = false;
}__fastcall TForm1::Edit1Change(TObject *Sender) //Активация кнопки
в случае, если значения введены
{(Edit1->Text != "" && Edit2->Text !=
"")->Visible = true;->Visible = false;
}__fastcall TForm1::Edit2Change(TObject *Sender)
{(Edit1->Text != "" && Edit2->Text !=
"")->Visible = true;->Visible = false;
}__fastcall TForm1::Button2Click(TObject *Sender) //действия, выполняемые при авторизации
{username = (Edit1->Text);pass =
(Edit2->Text);k,m;(Edit1->Text=="" ||
Edit2->Text=="") (0,"Нельзя оставлять поля пустыми", "Ошибка", MB_OK);
else
{(k=0;k!=i+1;k++)
{*Reg4=new
TRegistry;->RootKey=HKEY_CURRENT_USER;->OpenKeyReadOnly("BlockDB\\Users");str;=Reg4->ReadString("User_"+IntToStr(k));
if (username == str)
{
AnsiString passr, status;
passr=Reg4->ReadString("Password_"+IntToStr(k));=Reg4->ReadString("Status_"+IntToStr(k));
Reg4->CloseKey();
delete Reg4;(passr == pass)
{
MessageBox(0,"Успешная авторизация!","Успех!",MB_OK);
Edit1->Text = "";
Edit2->Text = "";(status ==
"Admin")->Button4->Visible = true;->Enabled =
false;->Enabled = false;->Enabled = false;->Enabled =
false;->Enabled = false;->Stop();->Label1->Caption =
(username);->Hide();->Show();
break;
}
{
MessageBox(0,"Неверный
пароль!","Ошибка",MB_OK);
Edit2->Text = "";
}
}
else if(k==i)
{
MessageBox(0,"Неверное имя пользователя!","Ошибка",MB_OK);
Edit1->Text = "";
Edit2->Text = "";
}
}
}
}
//---------------------------------------------------------------------------
void
__fastcall TForm1::Button3Click(TObject *Sender)
//действия, выполняемые при авторизации
{->ADOQuery1 -> Active = false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM Пользователи");->ADOQuery1 -> Active = true;user =
(Edit3->Text);password =
(Edit4->Text);l=0;kolvo=0;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(user == (Form3->ADOQuery1->Fields->FieldByName("Логин")->Value))
{ (0,"Пользователь
с таким логином уже зарегистрирован. Введите другое имя.",
"Ошибка", MB_OK);
Edit3->Text = "";
Edit4->Text = "";
l=1;
}
Form3->ADOQuery1->Next();
}++;kolvous = (kolvo);->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("INSERT
INTO Пользователи (IDПользователя,
Логин)");->ADOQuery1->SQL->Add(" VALUES ("+ kolvous
+", '"+ user
+"')");->ADOQuery1->ExecSQL();=i+1;->RootKey=HKEY_CURRENT_USER;->OpenKey("BlockDB\\Users",true);->WriteInteger("Number",i);->WriteString(("User_"+IntToStr(i)),(user));->WriteString(("Password_"+IntToStr(i)),(password));->WriteString(("Status_"+IntToStr(i)),"User");3->CloseKey();
MessageBox(0,"Ваша регистрация произошла успешно.","Успешная
регистрация",MB_OK);
Edit3->Text = "";->Text =
"";->Visible = false;->Visible = false;->Enabled =
false;->Movie = ExtractFilePath(Application->ExeName) + "Flash/Autoriz_v6.swf";->Play();->Enabled
= true;->Enabled = true;->Enabled = true;->Visible = false;
}
}__fastcall TForm1::Edit3Change(TObject *Sender)
{(Edit3->Text != "" && Edit4->Text !=
"")->Visible = true;->Visible = false;
}__fastcall TForm1::Edit4Change(TObject *Sender)
{(Edit3->Text != "" && Edit4->Text !=
"")->Visible = true;->Visible = false;
}__fastcall TForm1::Button4Click(TObject *Sender)
{->Enabled = false;->Visible = false;->Visible =
false;->Enabled = false;->Movie = ExtractFilePath(Application->ExeName)
+ "Flash/Autoriz_v6.swf";->Play();->Enabled = true;->Enabled
= true;->Enabled = true;->Visible = false;
}__fastcall TForm1::FormCreate(TObject *Sender)
{->Movie = ExtractFilePath(Application->ExeName) +
"Flash/Autoriz_v6.swf";->Play();->Enabled = true;
}__fastcall TForm1::Timer6Timer(TObject *Sender)
{->Position = ProgressBar1->Position +
15;(ProgressBar1->Position == 100)
{->Visible = false;->Enabled = false;
}
}
Текст модуля Unit2.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
#include "Unit1.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit8.h"
#include "Unit10.h"
#include "Unit14.h"
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource "*.dfm"*Form2;
__fastcall TForm2::TForm2(TComponent* Owner)
: TForm(Owner)
{
}__fastcall TForm2::Button5Click(TObject *Sender)
{>Terminate();
}__fastcall TForm2::Button1Click(TObject *Sender)
{->Hide();->Show();
}__fastcall TForm2::Button2Click(TObject *Sender)
{->Hide();->Show();
}__fastcall TForm2::Button4Click(TObject *Sender)
{->Hide();->Show();
}__fastcall TForm2::Button3Click(TObject *Sender)
{->Hide();->Show();
}__fastcall TForm2::FormShow(TObject *Sender)
{->Movie = ExtractFilePath(Application->ExeName) +
"Flash/MainTitle.swf";->Play();dayweek;CurrentDate = Date();Day =
DayOfWeek(Date());(Day == 1) dayweek = "Воскресенье";(Day == 2)
dayweek = "Понедельник";(Day == 3) dayweek = "Вторник";(Day
== 4) dayweek = "Среда";(Day == 5) dayweek = "Четверг";(Day
== 6) dayweek = "Пятница";(Day == 7) dayweek =
"Суббота";->Caption = ("Сегодня "+dayweek+",
\n"+CurrentDate);
}__fastcall TForm2::Timer1Timer(TObject *Sender)
{->Caption=Time().FormatString("hh:mm:ss");->Interval=1000;
}
Текст модуля Unit3.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit3.h"
#include "Unit4.h"
#include "Unit7.h"
#include "Unit9.h"
#include "Unit1.h"
#include "Unit10.h"
#include "Unit12.h"
#include "Unit13.h"
#include "Unit14.h"
#include "Unit15.h"
#include "Unit16.h"
#pragma package(smart_init)
#pragma link "AcroPDFLib_OCX"
#pragma link "SHDocVw_OCX"
#pragma resource "*.dfm"*Form3;
__fastcall TForm3::TForm3(TComponent* Owner)
: TForm(Owner)
{
}__fastcall TForm3::TreeView1Click(TObject *Sender)
{text = TreeView1->Selected->Text;->Caption =
(text);(TreeView1->Selected->Level==0 ||
TreeView1->Selected->Level==1){-> Active =
false;->SQL->Clear();->SQL->Add("SELECT Главы.НаименованиеГлавы, Темы.НаименованиеТемы, Главы.ИмяФайла, Темы.ИмяФайла FROM Главы, Темы");-> Active =
true;->First();(!ADOQuery1->Eof)
{->Fields[0];(ADOQuery1->Fields->FieldByName("НаименованиеГлавы")->Value ==
(Label1->Caption)) {->Caption =
(DirectoryListBox1->Directory+"\\Lessons\\"+ADOQuery1->Fields->FieldByName("Главы.ИмяФайла")->Value);->Navigate(StringToOleStr(Label2->Caption));
}if (ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value ==
(Label1->Caption)) {->Caption =
(DirectoryListBox1->Directory+"\\Lessons\\"+ADOQuery1->Fields->FieldByName("Темы.ИмяФайла")->Value);->Navigate(StringToOleStr(Label2->Caption));
}->Next();
}
}(TreeView1->Selected->Level==2 ||
TreeView1->Selected->Level==3){-> Active =
false;->SQL->Clear();->SQL->Add("SELECT Подтемы.НаименованиеПодтемы, Пункт.НаименованиеПункта, Подтемы.ИмяФайла, Пункт.ИмяФайла FROM Подтемы, Пункт");-> Active =
true;->First();(!ADOQuery1->Eof)
{->Fields[0];(ADOQuery1->Fields->FieldByName("НаименованиеПодтемы")->Value ==
(Label1->Caption)) {->Caption =
(DirectoryListBox1->Directory+"\\Lessons\\"+ADOQuery1->Fields->FieldByName("Подтемы.ИмяФайла")->Value);->Navigate(StringToOleStr(Label2->Caption));
}if (ADOQuery1->Fields->FieldByName("НаименованиеПункта")->Value ==
(Label1->Caption)) {->Caption =
(DirectoryListBox1->Directory+"\\Lessons\\"+ADOQuery1->Fields->FieldByName("Пункт.ИмяФайла")->Value);->Navigate(StringToOleStr(Label2->Caption));
}->Next();
}
}
}__fastcall TForm3::FormShow(TObject *Sender)
{
// построение 1 уровня-> Active =
false;->SQL->Clear();->SQL->Add("SELECT * FROM Главы");-> Active =
true;->First();(!ADOQuery1->Eof) {->Items->Add(NULL,ADOQuery1->Fields->FieldByName("НаименованиеГлавы")->Value);->Next();}
// построение 2 уровняn=TreeView1->Items->Count;i=0;
n--;(i<=n){(TreeView1->Items->Item[i]->Level==0){-> Active =
false;->SQL->Clear();->SQL->Add("SELECT НаименованиеТемы FROM Темы,Главы WHERE НаименованиеГлавы='"+TreeView1->Items->Item[i]->Text+"'
and главы.IDГлавы=Темы.IDГлавы");-> Active =
true;->First();(!ADOQuery1->Eof) {*Node1 =
TreeView1->Items->Item[i];->Items->AddChild(Node1,ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value);++;->Next();}}++;}
//построение 3 уровня=TreeView1->Items->Count;=0;
n--;(i<=n){(TreeView1->Items->Item[i]->Level==1){-> Active =
false;->SQL->Clear();->SQL->Add("SELECT НаименованиеПодтемы FROM Темы,Подтемы WHERE НаименованиеТемы='"+TreeView1->Items->Item[i]->Text+"'
and Подтемы.IDТемы=Темы.IDТемы");-> Active =
true;->First();(!ADOQuery1->Eof) {*Node1 =
TreeView1->Items->Item[i];->Items->AddChild(Node1,ADOQuery1->Fields->FieldByName("НаименованиеПодтемы")->Value);++;->Next();}}++;}
//построение 4 уровня=TreeView1->Items->Count;=0;
n--;(i<=n){(TreeView1->Items->Item[i]->Level==2){-> Active =
false;->SQL->Clear();->SQL->Add("SELECT НаименованиеПункта FROM Пункт,Подтемы WHERE НаименованиеПодтемы='"+TreeView1->Items->Item[i]->Text+"'
and Пункт.IDПодтемы=Подтемы.IDПодтемы");-> Active =
true;->First();(!ADOQuery1->Eof) {*Node1 =
TreeView1->Items->Item[i];->Items->AddChild(Node1,ADOQuery1->Fields->FieldByName("НаименованиеПункта")->Value);++;->Next();}}++;}
}
//---------------------------------------------------------------------------__fastcall
TForm3::FormClose(TObject *Sender, TCloseAction &Action)
{>Terminate();
}
Текст модуля Unit4.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit4.h"
#include "Unit3.h"
#include "Unit6.h"
#include "Unit7.h"
#include "Unit2.h"
#include "Unit11.h"
#include "Unit14.h"
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource "*.dfm"*Form4;viX0,viY0;fMove;tr =
"True";fls = "False";block1=0, block2=0, block3=0;blk1,
blk2, blk3;sel=0, ins=0;result=0;verno=0;neverno=0;svodka=0;__fastcall
TForm4::TForm4(TComponent* Owner)
: TForm(Owner)
{
}__fastcall TForm4::Image1MouseDown(TObject *Sender,Button,
TShiftState Shift, int X, int Y)
{(Button != mbLeft) return;= X;= Y;= true;
((TControl *)Sender)->BringToFront();
}__fastcall TForm4::Image1MouseMove(TObject *Sender,
TShiftState Shift,X, int Y)
{(fMove)
{
((TImage *)Sender)->(
((TImage *)Sender)->Left + X - viX0,
((TImage *)Sender)->Top + Y - viY0,
((TImage *)Sender)->Width,
((TImage *)Sender)->Height);
}(((TImage *) Sender)->Top < 255)
((TImage *) Sender)->Top = 255;(((TImage *)
Sender)->Left <1)
((TImage *) Sender)->Left = 0;(((TImage *) Sender)->Top
> 530)
((TImage *) Sender)->Top = 530;(((TImage *)
Sender)->Left >1196)
((TImage *) Sender)->Left = 1196;
}__fastcall TForm4::Image1MouseUp(TObject *Sender,
TMouseButton Button,Shift, int X, int Y)
{= false;(((TImage *)Sender)->Top > (Bevel1->Top)
&& ((TImage *)Sender)->Top < (Bevel1->Top)+20 &&
((TImage *)Sender)->Left > (Bevel1->Left) && ((TImage
*)Sender)->Left < (Bevel1->Left)+20){
((TImage *)Sender)->Left = Bevel1->Left;
((TImage *)Sender)->Top = Bevel1->Top;
}(((TImage *)Sender)->Top > (Bevel2->Top) &&
((TImage *)Sender)->Top < (Bevel2->Top)+20 && ((TImage
*)Sender)->Left > (Bevel2->Left) && ((TImage
*)Sender)->Left < (Bevel2->Left)+20){
((TImage *)Sender)->Left = Bevel2->Left;
((TImage *)Sender)->Top = Bevel2->Top;
}(((TImage *)Sender)->Top > (Bevel3->Top) &&
((TImage *)Sender)->Top < (Bevel3->Top)+20 && ((TImage
*)Sender)->Left > (Bevel3->Left) && ((TImage
*)Sender)->Left < (Bevel3->Left)+20){
((TImage *)Sender)->Left = Bevel3->Left;
((TImage *)Sender)->Top = Bevel3->Top;
}(((TImage *)Sender)->Left == Bevel1->Left) block1 =
((TImage *)Sender)->Tag;(((TImage *)Sender)->Left == Bevel2->Left)
block2 = ((TImage *)Sender)->Tag;(((TImage *)Sender)->Left ==
Bevel3->Left) block3 = ((TImage *)Sender)->Tag;
}
//---------------------------------------------------------------------------__fastcall
TForm4::FormClose(TObject *Sender, TCloseAction &Action)
{>Terminate();
}
//---------------------------------------------------------------------------__fastcall
TForm4::FormCreate(TObject *Sender)
{
/* BorderStyle = bsNone;= 0;=
0;=Screen->Width;=Screen->Height; */=true; // для того, чтобы убрать
мерцание Image при движении
}
//---------------------------------------------------------------------------__fastcall
TForm4::Button5Click(TObject *Sender)
{=svodka+1;->Caption = "";="";
blk2=""; blk3="";(Image1->Left != Bevel1->Left
&& Image4->Left != Bevel1->Left && Image3->Left !=
Bevel1->Left && Image2->Left != Bevel1->Left)=
0;(Image6->Left != Bevel2->Left && Image9->Left !=
Bevel2->Left && Image10->Left != Bevel2->Left)= 0;(Image5->Left
!= Bevel3->Left && Image11->Left != Bevel3->Left)= 0;(block1 ==
1) blk1 = "INSERT";(block1 == 2) blk1 = "DELETE";(block1 ==
3) blk1 = "UPDATE";(block1 == 4) blk1 = "SELECT";(block2 ==
5) blk2 = "INTO";(block2 == 6) blk2 = "SET";(block2 == 7)
blk2 = "FROM";(block3 == 8) blk3 = "VALUES";(block3 == 9)
blk3 = "WHERE";(ins == 1)->Caption = (blk1+"
"+blk2+" "+Edit1->Text+" "+blk3+"
"+Edit2->Text);(sel == 1) {->Caption = (blk1+"
"+Edit1->Text+" "+blk2+"
"+Edit2->Text);(Bevel3->Visible == true)->Caption = (blk1+"
"+Edit1->Text+" "+blk2+" "+Edit2->Text+"
"+blk3+" "+Edit3->Text);
}->Top = 496;->Left = 20;->Top = 496;->Left =
164;->Top = 496;->Left = 308;->Top = 496;->Left = 452;->Top =
496;->Left = 596;->Top = 496;->Left = 740;->Top = 496;->Left =
884;->Top = 496;->Left = 1028;->Top = 496;->Left = 1172;str =
(Label4->Caption);(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value
== str) {= result+1;= verno+1;(svodka == 1) {->Label21->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image1->Visible
= true;
}(svodka == 2) {->Label22->Caption = Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image2->Visible
= true;
}(svodka == 3) {->Label23->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image3->Visible
= true;
}(svodka == 4) {->Label24->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image4->Visible
= true;
}(svodka == 5) {->Label25->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image5->Visible
= true;
}(svodka == 6) {->Label26->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image6->Visible
= true;
}(svodka == 7) {->Label27->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image7->Visible
= true;
}(svodka == 8) {->Label28->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image8->Visible
= true;
}(svodka == 9) {->Label29->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image9->Visible
= true;
}(svodka == 10) {->Label30->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image10->Visible
= true;
}
}{= StringReplace(str,",",",
",TReplaceFlags()<< rfReplaceAll); // подставляет пробел после
запятой= StringReplace(str,"("," (",TReplaceFlags()<<
rfReplaceAll);= StringReplace(str,"S (","S
(",TReplaceFlags()<< rfReplaceAll);->Caption =
str;(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value
== str) {= result+1;= verno+1;(svodka == 1) {->Label21->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image1->Visible
= true;
}(svodka == 2) {->Label22->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image2->Visible
= true;
}(svodka == 3) {->Label23->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image3->Visible
= true;
}(svodka == 4) {->Label24->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image4->Visible
= true;
}(svodka == 5) {->Label25->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image5->Visible
= true;
}(svodka == 6) {->Label26->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image6->Visible
= true;
}(svodka == 7) {->Label27->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image7->Visible
= true;
}(svodka == 8) {->Label28->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image8->Visible
= true;
}(svodka == 9) {->Label29->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image9->Visible
= true;
}(svodka == 10) {->Label30->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Image10->Visible
= true;
}
}{= neverno+1;(svodka == 1) Form11->Label21->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;(svodka
== 2) Form11->Label22->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;(svodka
== 3) Form11->Label23->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;(svodka
== 4) Form11->Label24->Caption = Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;(svodka
== 5) Form11->Label25->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;(svodka
== 6) Form11->Label26->Caption = Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;(svodka
== 7) Form11->Label27->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;(svodka
== 8) Form11->Label28->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;(svodka
== 9) Form11->Label29->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;(svodka
== 10) Form11->Label30->Caption =
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;
}
}= 0;=0;->ADOQuery1->Next();title;=
Form3->ADOQuery1->Fields->FieldByName("Вопрос")->Value;cols
= title.Length();(cols > 70) {(int k=93;k!=70;k--)
{(title[k] == ' ') {.Insert ("\n",k+1);;
}
}->Caption = (title);
}->Caption =
Form3->ADOQuery1->Fields->FieldByName("Вопрос")->Value;
->Caption =
Form3->ADOQuery1->Fields->FieldByName("ГлавноеУсловие")->Value;(!(TBlobField*)Form3->ADOQuery1->FieldByName("Приложение")->IsNull)
{(!Image13->Visible)->Visible=true;* strm= new
TMemoryStream;*ptJpg=new TJPEGImage;
((TGraphicField*)
Form3->ADOQuery1->FieldByName("Приложение"))->SaveToStream(strm);>Seek(0,0);(*(Word*)strm->Memory==0xD8FF)->Picture->Graphic=ptJpg;->Picture->Graphic->LoadFromStream(strm);
//
Image13->Canvas->Rectangle(0,0,Image13->Width,Image13->Height);strm;ptJpg;
}->Visible = false; ->Visible = false;->Visible =
false;->Visible =
false;(Form3->ADOQuery1->Fields->FieldByName("SELECT")->Value
== tr ||->ADOQuery1->Fields->FieldByName("DELETE")->Value
== tr) {= 1;->Bevel1->Visible = true;->Bevel1->Left =
15;->Bevel1->Top = 302;->Bevel2->Visible =
true;->Edit1->Visible = true;->Edit2->Visible =
true;(Form3->ADOQuery1->Fields->FieldByName("WHERE")->Value
== tr) {->Bevel3->Visible = true;->Edit3->Visible =
true;->Edit1->Left = 168;->Edit1->Top = 311;->Edit1->Width =
301;->Bevel2->Left = 483;->Bevel2->Top = 302;->Edit2->Left =
637;->Edit2->Top = 311;->Edit2->Width = 164;->Bevel3->Left =
814;->Bevel3->Top = 302;->Edit3->Left = 969;->Edit3->Top =
311;->Edit3->Width = 353;
}{->Edit3->Visible = false;->Bevel3->Visible =
false;->Edit1->Left = 168;->Edit1->Top = 311;->Edit1->Width =
641;->Bevel2->Left = 823;->Bevel2->Top = 302;->Edit2->Left =
979;->Edit2->Top = 311;->Edit2->Width = 342;
}
}(Form3->ADOQuery1->Fields->FieldByName("INSERT")->Value
== tr) {= 1;->Bevel1->Visible = true;->Bevel1->Left =
15;->Bevel1->Top = 302;->Bevel2->Visible =
true;->Bevel2->Left = 167;->Bevel2->Top = 302;->Bevel3->Visible
= true;->Bevel3->Left = 662;->Bevel3->Top =
302;->Edit1->Visible = true;->Edit1->Left = 320;->Edit1->Top
= 311;->Edit1->Width = 329;->Edit2->Visible =
true;->Edit2->Left = 815;->Edit2->Top = 311;->Edit2->Width =
506;
}(Form3->ADOQuery1->Fields->FieldByName("UPDATE")->Value
== tr) {->Bevel1->Visible = true;->Bevel1->Left =
15;->Bevel1->Top = 302;->Bevel2->Visible =
true;->Edit1->Visible = true;->Edit2->Visible =
true;(Form3->ADOQuery1->Fields->FieldByName("WHERE")->Value
== tr) {->Bevel3->Visible = true;->Edit3->Visible =
true;->Edit1->Left = 168;->Edit1->Top = 311;->Edit1->Width =
161;->Bevel2->Left = 344;->Bevel2->Top = 302;->Edit2->Left =
500;->Edit2->Top = 311;->Edit2->Width = 349;->Bevel3->Left =
863;->Bevel3->Top = 302;->Edit3->Left = 1017;->Edit3->Top =
311;->Edit3->Width = 304;
}{->Edit3->Visible = false;->Bevel3->Visible =
false;->Edit1->Left = 169;->Edit1->Top = 311;->Edit1->Width =
344;->Bevel2->Left = 528;->Bevel2->Top = 302;->Edit2->Left =
683;->Edit2->Top = 311;->Edit2->Width = 639;
}
}->Text = "";->Text = "";->Text
= "";(Form3->ADOQuery1->Eof) {->Enabled = false;usernmb;res
= (result);ntest =
Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value;->ADOQuery1->Active
= false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM Пользователи");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("Логин")->Value
== Form2->Label1->Caption)= (Form3->ADOQuery1->Fields->FieldByName("IDПользователя")->Value);->ADOQuery1->Next();
}->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("INSERT
INTO СтатистикаЗапросТеста (IDПользователя, IDЗапросТеста,
Оценка)");->ADOQuery1->SQL->Add(" VALUES ("+ usernmb
+", "+ ntest +", "+ res
+")");->ADOQuery1->ExecSQL();->Label16->Caption =
(Form2->Label1->Caption);->Label17->Caption =
(verno);->Label18->Caption = (neverno);(verno >= 9)->Label19->Caption
= "Отлично";(verno == 7 || verno == 8)->Label19->Caption =
"Хорошо";(verno == 5 || verno == 6)->Label19->Caption =
"Средне";(verno == 4)->Label19->Caption = "Ниже
среднего";(verno <= 3)->Label19->Caption =
"Плохо";->Label20->Caption = (result);->Show();
}
}
__fastcall TForm4::Button2Click(TObject *Sender)
{->Hide();->Show();
}__fastcall TForm4::FormShow(TObject *Sender)
{->Enabled = true;->ADOQuery1->Fields[0];title;=
Form3->ADOQuery1->Fields->FieldByName("Вопрос")->Value;cols
= title.Length();(cols > 70) {(int k=93;k!=70;k--)
{(title[k] == ' ') {.Insert ("\n",k+1);;
}
}->Caption = (title);
}->Caption =
Form3->ADOQuery1->Fields->FieldByName("Вопрос")->Value;->Caption
=
Form3->ADOQuery1->Fields->FieldByName("ГлавноеУсловие")->Value;(!(TBlobField*)Form3->ADOQuery1->FieldByName("Приложение")->IsNull)
{(!Image13->Visible)->Visible=true;* strm= new
TMemoryStream;*ptJpg=new TJPEGImage;
((TGraphicField*)
Form3->ADOQuery1->FieldByName("Приложение"))->SaveToStream(strm);>Seek(0,0);(*(Word*)strm->Memory==0xD8FF)->Picture->Graphic=ptJpg;->Picture->Graphic->LoadFromStream(strm);
// Image13->Canvas->Rectangle(0,0,Image13->Width,Image13->Height);strm;ptJpg;
}->Visible =
false;(Form3->ADOQuery1->Fields->FieldByName("SELECT")->Value
== tr ||->ADOQuery1->Fields->FieldByName("DELETE")->Value
== tr) {=1;->Bevel1->Visible = true;->Bevel1->Left =
15;->Bevel1->Top = 302;->Bevel2->Visible =
true;->Edit1->Visible = true;->Edit2->Visible =
true;(Form3->ADOQuery1->Fields->FieldByName("WHERE")->Value
== tr) {->Bevel3->Visible = true;->Edit3->Visible =
true;->Edit1->Left = 168;->Edit1->Top = 311;->Edit1->Width =
301;->Bevel2->Left = 483;->Bevel2->Top = 302;->Edit2->Left =
637;->Edit2->Top = 311;->Edit2->Width = 164;->Bevel3->Left =
814;->Bevel3->Top = 302;->Edit3->Left = 969;->Edit3->Top =
311;->Edit3->Width = 353;
}{->Edit3->Visible = false;->Bevel3->Visible =
false;->Edit1->Left = 168;->Edit1->Top = 311;->Edit1->Width =
641;->Bevel2->Left = 823;->Bevel2->Top = 302;->Edit2->Left =
979;->Edit2->Top = 311;->Edit2->Width = 342;
}
}(Form3->ADOQuery1->Fields->FieldByName("INSERT")->Value
== tr) {= 1;->Bevel1->Visible = true;->Bevel1->Left =
15;->Bevel1->Top = 302;->Bevel2->Visible =
true;->Bevel2->Left = 167;->Bevel2->Top =
302;->Bevel3->Visible = true;->Bevel3->Left =
662;->Bevel3->Top = 302;->Edit1->Visible = true;->Edit1->Left
= 320;->Edit1->Top = 311;->Edit1->Width =
329;->Edit2->Visible = true;->Edit2->Left = 815;->Edit2->Top
= 311;->Edit2->Width = 506;
}(Form3->ADOQuery1->Fields->FieldByName("UPDATE")->Value
== tr) {=1;->Bevel1->Visible = true;->Bevel1->Left =
15;->Bevel1->Top = 302;->Bevel2->Visible = true;->Edit1->Visible
= true;->Edit2->Visible =
true;(Form3->ADOQuery1->Fields->FieldByName("WHERE")->Value
== tr) {->Bevel3->Visible = true;->Edit3->Visible =
true;->Edit1->Left = 168;->Edit1->Top = 311;->Edit1->Width =
161;->Bevel2->Left = 344;->Bevel2->Top = 302;->Edit2->Left =
500;->Edit2->Top = 311;->Edit2->Width = 349;->Bevel3->Left =
863;->Bevel3->Top = 302;->Edit3->Left = 1017;->Edit3->Top =
311;->Edit3->Width = 304;
}{->Edit3->Visible = false;->Bevel3->Visible =
false;->Edit1->Left = 169;->Edit1->Top = 311;->Edit1->Width =
344;->Bevel2->Left = 528;->Bevel2->Top = 302;->Edit2->Left =
683;->Edit2->Top = 311;->Edit2->Width = 639;
}
}
}__fastcall TForm4::Timer1Timer(TObject *Sender)
{->Position = ProgressBar1->Position +
1;(ProgressBar1->Position == 100)
{->Enabled = false;
}
}__fastcall TForm4::Image13Click(TObject *Sender)
{->Image1->Picture = Image13->Picture;->Show();
}
Текст модуля Unit5.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit5.h"
#include "Unit4.h"
#include "Unit2.h"
#include "Unit6.h"
#pragma package(smart_init)
#pragma resource "*.dfm"*Form5;
__fastcall TForm5::TForm5(TComponent* Owner)
: TForm(Owner)
{
}__fastcall TForm5::Button2Click(TObject *Sender)
{->Label1->Caption = 1;->Hide();->Show();
}__fastcall TForm5::Button1Click(TObject *Sender)
{->Label1->Caption = 0;->Hide();->Show();
}
Текст модуля Unit6.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit6.h"
#include "Unit5.h"
#include "Unit4.h"
#include "Unit3.h"
#include "Unit7.h"
#pragma package(smart_init)
#pragma resource "*.dfm"6 *Form6;
AnsiString tru = "True"; //Для хранения одного из
вариантов значения логического поля БД
AnsiString flse = "False"; //Для хранения одного из
вариантов значения логического поля БД
AnsiString numb; //Для
хранения ID выбранного теста
//---------------------------------------------------------------------------
__fastcall TForm6::TForm6(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------__fastcall
TForm6::FormShow(TObject *Sender)
{(Label1->Caption == "0")
{->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
НаименованиеТемы, СтандартТест FROM Темы");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("СтандартТест")->Value
==
tru)->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value);->ADOQuery1->Next();
}
}(Label1->Caption == "1")
{->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
НаименованиеТемы, ЗапросТест FROM Темы");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("ЗапросТест")->Value
== tru)->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value);3->ADOQuery1->Next();
}
} // Вывод тем, на которые есть ЗапросТесты в ComboBox1;
}__fastcall TForm6::Button1Click(TObject *Sender)
{
if (ComboBox1->Text == "")
MessageBox(0,"Вы не выбрали тему для тестирования!","Внимание",
MB_OK + MB_ICONWARNING);
else {
AnsiString theme = (ComboBox1->Text); //Сохраняем название выбранной темы
int kolth=0; //Служит
для хранения кол-ва тестов на выбранную тему
Form3->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();(Label1->Caption ==
"0")->ADOQuery1->SQL->Add("SELECT
СтандартТест.IDСтандартТеста, Темы.НаименованиеТемы, СтандартТест.НазваниеТеста
FROM Темы, СтандартТест WHERE Темы.IDТемы =
СтандартТест.IDТемы");(Label1->Caption ==
"1")->ADOQuery1->SQL->Add("SELECT ЗапросТест.IDЗапросТеста,
Темы.НаименованиеТемы, ЗапросТест.НазваниеТеста FROM Темы, ЗапросТест WHERE
Темы.IDТемы = ЗапросТест.IDТемы");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value
== theme)++;
Form3->ADOQuery1->Next();
} //считываем кол-во тестов, которые имеются на выбранную тему
if (kolth > 1) { //Операции, которые
выполняются если тестов более одного
AnsiString ds = "Вы
выбрали тему: «"+theme+"».\nВ базе хранится несколько вариантов
тестов по данной теме.\nСейчас
программа случайным путем выберет один из них.\nУДАЧИ!";
MessageBox(0,ds.c_str(),"Уведомление",
MB_OK + MB_ICONQUESTION); //Вывод итогов выбора
Form3->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value
==
theme)->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);->ADOQuery1->Next();
}();numbtest = 0+rand()%kolth;numbt =
(numbtest);->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value
== (ListBox1->Items->Strings[numbt])) {(Label1->Caption ==
"0")= (Form3->ADOQuery1->Fields->FieldByName("IDСтандартТеста")->Value);(Label1->Caption
== "1")=
(Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value);
}->ADOQuery1->Next();
}
}if (kolth == 1) { ds =
"Вы выбрали тему: «"+theme+"».\nУДАЧИ!";
MessageBox(0,ds.c_str(),"Уведомление",
MB_OK + MB_ICONQUESTION); //Вывод итогов выбора
Form3->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();(Label1->Caption ==
"0")->ADOQuery1->SQL->Add("SELECT IDСтандартТеста,
Темы.НаименованиеТемы, СтандартТест.НазваниеТеста FROM Темы, СтандартТест WHERE
Темы.IDТемы = СтандартТест.IDТемы And Темы.НаименованиеТемы = '"+ theme +
"'");(Label1->Caption ==
"1")->ADOQuery1->SQL->Add("SELECT
ЗапросТест.IDЗапросТеста, Темы.НаименованиеТемы, ЗапросТест.НазваниеТеста FROM
Темы, ЗапросТест WHERE Темы.IDТемы = ЗапросТест.IDТемы And
Темы.НаименованиеТемы = '"+ theme +
"'");->ADOQuery1->Active = true;(Label1->Caption ==
"0")=
(Form3->ADOQuery1->Fields->FieldByName("IDСтандартТеста")->Value);(Label1->Caption
== "1")=
(Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value);
}->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();(Label1->Caption ==
"0")->ADOQuery1->SQL->Add("SELECT * FROM
СтандартТестВопросы WHERE IDСтандартТеста = "+ numb +
"");(Label1->Caption == "1")->ADOQuery1->SQL->Add("SELECT
* FROM ЗапросТестВопросы WHERE IDЗапросТеста = "+ numb +
"");->ADOQuery1->Active =
true;->Items->Clear();->Items->Clear();->Hide();(Label1->Caption
== "0")->Show();(Label1->Caption == "1")->Show();
}
}
Текст модуля Unit7.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit7.h"
#include "Unit3.h"
#include "Unit6.h"
#pragma package(smart_init)
#pragma resource
"*.dfm"*Form7;standresult;resultstand=0;__fastcall
TForm7::TForm7(TComponent* Owner)
: TForm(Owner)
{
}__fastcall TForm7::FormShow(TObject *Sender)
{->ADOQuery1->Fields[0];title;=
Form3->ADOQuery1->Fields->FieldByName("Вопрос")->Value;->Caption
= (title);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("Вариант1")->Value);->Caption
= (Form3->ADOQuery1->Fields->FieldByName("Вариант2")->Value);->Caption
= (Form3->ADOQuery1->Fields->FieldByName("Вариант3")->Value);->Caption
=
(Form3->ADOQuery1->Fields->FieldByName("Вариант4")->Value);->Caption
=
(Form3->ADOQuery1->Fields->FieldByName("Вариант5")->Value);->Caption
=
(Form3->ADOQuery1->Fields->FieldByName("Вариант6")->Value);
}__fastcall TForm7::Button2Click(TObject *Sender)
{->Hide();->Show();
}__fastcall TForm7::RadioButton1Click(TObject *Sender)
{(RadioButton1->Checked) standresult =
(RadioButton1->Caption);
}__fastcall TForm7::RadioButton2Click(TObject *Sender)
{(RadioButton2->Checked) standresult =
(RadioButton2->Caption);
}__fastcall TForm7::RadioButton3Click(TObject *Sender)
{(RadioButton3->Checked) standresult =
(RadioButton3->Caption);
}__fastcall TForm7::RadioButton4Click(TObject *Sender)
{(RadioButton4->Checked) standresult =
(RadioButton4->Caption);
}__fastcall TForm7::RadioButton5Click(TObject *Sender)
{(RadioButton5->Checked) standresult =
(RadioButton5->Caption);
}__fastcall TForm7::RadioButton6Click(TObject *Sender)
{(RadioButton6->Checked) standresult = (RadioButton6->Caption);
}__fastcall TForm7::Button1Click(TObject *Sender)
{(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value
== standresult)= resultstand + 1;->ADOQuery1->Next();title;=
Form3->ADOQuery1->Fields->FieldByName("Вопрос")->Value;->Caption
= (title);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("Вариант1")->Value);->Caption
=
(Form3->ADOQuery1->Fields->FieldByName("Вариант2")->Value);->Caption
= (Form3->ADOQuery1->Fields->FieldByName("Вариант3")->Value);->Caption
= (Form3->ADOQuery1->Fields->FieldByName("Вариант4")->Value);->Caption
=
(Form3->ADOQuery1->Fields->FieldByName("Вариант5")->Value);->Caption
=
(Form3->ADOQuery1->Fields->FieldByName("Вариант6")->Value);(Form3->ADOQuery1->Eof)
{("Тест окончен");
}
}__fastcall TForm7::Button3Click(TObject *Sender)
{->ADOQuery1->Next();
}
Текст модуля Unit8.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit8.h"
#include "Unit9.h"
#include "Unit12.h"
#include "Unit13.h"
#include "Unit15.h"
#include "Unit16.h"
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource "*.dfm"*Form8;
__fastcall TForm8::TForm8(TComponent* Owner)
: TForm(Owner)
{
}__fastcall TForm8::Button1Click(TObject *Sender)
{->Show();
}__fastcall TForm8::Button3Click(TObject *Sender)
{->Hide();->Show();
}__fastcall TForm8::Button6Click(TObject *Sender)
{->Show();
}__fastcall TForm8::Button2Click(TObject *Sender)
{->Show();
}__fastcall TForm8::Button4Click(TObject *Sender)
{->Show();
}__fastcall TForm8::FormShow(TObject *Sender)
{->Movie = ExtractFilePath(Application->ExeName) +
"Flash/Admin_title.swf";->Play();
}
Текст программы Unit9.cpp
#include <vcl.h>
#pragma hdrstop
#include "Unit9.h"
#include "Unit8.h"
#include "Unit3.h"
#pragma package(smart_init)
#pragma link "ShockwaveFlashObjects_OCX"
#pragma resource
"*.dfm"*Form9;nmbrtz;nmbrthm;kolv=0;
__fastcall TForm9::TForm9(TComponent* Owner)
: TForm(Owner)
{= true;
}
//---------------------------------------------------------------------------__fastcall
TForm9::FormShow(TObject *Sender)
}
}__fastcall TForm9::Button1Click(TObject *Sender)
{numbtestz=0; //номер нового ЗапросТестаnumbthm=0; //для хранения ID
выбранной темы
bool sovpd=0;->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDЗапросТеста, НазваниеТеста FROM ЗапросТест");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Edit1->Text ==
Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value) {= 1;(0,"Тест с таким именем уже существует.","Будьте внимательны!", MB_OK +MB_TOPMOST+ MB_ICONWARNING);->Text =
"";
}->ADOQuery1->Next();
}(sovpd == 0)
{->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];++;->ADOQuery1->Next();
}++;->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDТемы, НаименованиеТемы FROM Темы");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value ==
ComboBox1->Text)= (Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value);->ADOQuery1->Next();
}= (numbtestz);= (numbthm);->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("INSERT
INTO ЗапросТест (IDЗапросТеста, IDТемы, НазваниеТеста) VALUES ("+ nmbrtz
+", "+ nmbrthm +", '"+ Edit1->Text
+"')");->ADOQuery1->ExecSQL();->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("UPDATE
Темы SET Темы.ЗапросТест = True WHERE Темы.IDТемы = "+ nmbrthm
+"");->ADOQuery1->ExecSQL();->Enabled = false;->Enabled =
false;->Enabled = false;->Visible = false;->Visible = true;->Visible
= true;->Visible = true;->Visible =
false;->GotoFrame(1);->Play();->Top = 225;->Enabled =
true;->Enabled = true;->Enabled = true;->Enabled = true;->Enabled =
true;->Enabled = true;
}
}
//---------------------------------------------------------------------------__fastcall
TForm9::Button2Click(TObject *Sender)
{numbtestzv=0; //номер нового ЗапросВопросаinsert, select, delet, update, from, where;->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDЗапросВопроса FROM ЗапросТестВопросы");->ADOQuery1->Active
= true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];++;->ADOQuery1->Next();
}++;(CheckBox1->Checked) insert = "True"; else
insert = "False";(CheckBox2->Checked) select = "True";
else select = "False";(CheckBox3->Checked) delet =
"True"; else delet = "False";(CheckBox4->Checked) update
= "True"; else update = "False";(CheckBox5->Checked)
where = "True"; else where = "False";nmbrzprsvp =
(numbtestzv);question = (Edit2->Text);uslovie = (Edit4->Text);qv=0,
usl=0, otv=0, op=0, cenvopr=0;
if (uslovie == "")(0,"Вы не указали главное условие.
Пожалуйста, заполните необходимые поля.","Будьте внимательны!",
MB_OK +MB_TOPMOST+ MB_ICONWARNING);
else= 1;(question == "")(0,"Вы не задали
вопрос. Пожалуйста, заполните необходимые
поля.","Будьте внимательны!", MB_OK +MB_TOPMOST+
MB_ICONWARNING);
else= 1;(Edit3->Text == "")
MessageBox(0,"Вы не указали верный ответ. Пожалуйста, заполните
необходимые поля.","Будьте внимательны!", MB_OK +MB_TOPMOST+
MB_ICONWARNING);
else= 1;(Edit5->Text == "")
MessageBox(0,"Вы не указали цену вопроса. Пожалуйста, заполните
необходимые поля.","Будьте внимательны!", MB_OK +MB_TOPMOST+
MB_ICONWARNING);
else= 1;(insert == "False" && select ==
"False" && delet == "False" && update ==
"False")
MessageBox(0,"Вы не указали операторы, используемые в запросе.
Пожалуйста, заполните необходимые поля.","Будьте внимательны!",
MB_OK +MB_TOPMOST+ MB_ICONWARNING);
else= 1;(qv == 1 && otv == 1 && cenvopr == 1
&& op == 1 && usl == 1)
{= kolv+1;->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("INSERT
INTO ЗапросТестВопросы (IDЗапросВопроса, IDТемы, IDЗапросТеста, Вопрос, ВерныйОтвет, ЦенаВопроса, ГлавноеУсловие)");->ADOQuery1->SQL->Add("
VALUES ("+ nmbrzprsvp +", "+ nmbrthm +", "+ nmbrtz
+", '"+ Edit2->Text +"', '"+ Edit3->Text +"',
'"+ Edit5->Text +"', '"+ Edit4->Text
+"')");->ADOQuery1->ExecSQL();->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("UPDATE
ЗапросТестВопросы SET ЗапросТестВопросы.INSERT = "+ insert
+", ЗапросТестВопросы.SELECT = "+ select
+", ЗапросТестВопросы.DELETE = "+ delet
+", ЗапросТестВопросы.UPDATE = "+ update
+", ЗапросТестВопросы.WHERE = "+ where
+" WHERE ЗапросТестВопросы.IDЗапросВопроса = "+ nmbrzprsvp
+"");->ADOQuery1->ExecSQL();(Image6->Visible == true)
{->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM ЗапросТестВопросы");->ADOQuery1->Active
= true;->ADOQuery1->Last();->ADOQuery1->Edit();* strm = new
TMemoryStream();->Picture->Graphic->SaveToStream(strm);
((TGraphicField*) Form3->ADOQuery1->FieldByName("Приложение"))->LoadFromStream(strm);strm;->ADOQuery1->Post();
}->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
ВерныйОтвет, ЦенаВопроса FROM ЗапросТестВопросы WHERE IDЗапросВопроса = "+ nmbrzprsvp
+"");->ADOQuery1->Active = true;(kolv == 1) {->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);
}(kolv == 2) {->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);
}(kolv == 3) {->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);
}(kolv == 4) {->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);
}(kolv == 5) {->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);
}(kolv == 6) {->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);
}(kolv == 7) {->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);
}(kolv == 8) {->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);
}(kolv == 9) {->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption = (Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);
}(kolv == 10)
{->Caption = (Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value);->Caption =
(Form3->ADOQuery1->Fields->FieldByName("ЦенаВопроса")->Value);d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,maxball;=Label34->Caption.ToDouble();=Label35->Caption.ToDouble();=Label36->Caption.ToDouble();=Label37->Caption.ToDouble();=Label38->Caption.ToDouble();=Label39->Caption.ToDouble();=Label40->Caption.ToDouble();=Label41->Caption.ToDouble();=Label42->Caption.ToDouble();=Label43->Caption.ToDouble();=
d1+d2+d3+d4+d5+d6+d7+d8+d9+d10;->Caption = (maxball);
//
Label32->Visible = true;->Visible = true;33->Visible = true; //вывод максимальной оценки за тест
Button4->Visible
= true;->Visible = true;->Enabled = false;->Enabled =
false;->Enabled = false;->Enabled = false;->Enabled =
false;->Enabled = false;->Visible = true;->Text =
"";->Visible = false;->Visible = true;->Visible = false;
}->Text =
"";->Text = "";->Text = ""; ->Checked =
false;->Checked = false;->Checked = false;->Checked =
false;->Checked = false;
//Image6->Picture->Assign(0);->Visible
= false;
}
}__fastcall
TForm9::CheckBox1Click(TObject *Sender)
{(CheckBox1->Checked)
{(CheckBox2->Checked
|| CheckBox3->Checked || CheckBox4->Checked)
{->Checked = false;(0,"Нельзя
использовать несколько операторов одного и того же типа в одном
вопросе.","Будьте внимательны!", MB_OK +MB_TOPMOST+
MB_ICONWARNING);
}
}
}__fastcall
TForm9::CheckBox2Click(TObject *Sender)
{(CheckBox2->Checked)
{(CheckBox1->Checked
|| CheckBox3->Checked || CheckBox4->Checked)
{->Checked =
false;(0,"Нельзя использовать несколько операторов одного и того же типа в
одном вопросе.","Будьте внимательны!", MB_OK +MB_TOPMOST+
MB_ICONWARNING);
}
}
}__fastcall
TForm9::CheckBox3Click(TObject *Sender)
{(CheckBox3->Checked)
{(CheckBox1->Checked
|| CheckBox2->Checked || CheckBox4->Checked)
{->Checked =
false;(0,"Нельзя использовать несколько операторов одного и того же типа в
одном вопросе.","Будьте внимательны!", MB_OK +MB_TOPMOST+
MB_ICONWARNING);
}
}
}__fastcall
TForm9::CheckBox4Click(TObject *Sender)
{(CheckBox4->Checked)
{(CheckBox1->Checked
|| CheckBox2->Checked || CheckBox3->Checked)
{->Checked =
false;(0,"Нельзя использовать несколько операторов одного и того же типа в
одном вопросе.","Будьте внимательны!", MB_OK +MB_TOPMOST+
MB_ICONWARNING);
}
}
}__fastcall
TForm9::ComboBox1Change(TObject *Sender)
{(ComboBox1->Text
!= "" && Edit1->Text != "")->Visible = true;
}__fastcall
TForm9::Edit1Change(TObject *Sender)
{(ComboBox1->Text
!= "" && Edit1->Text != "")->Visible =
true;->Visible = false;
}__fastcall
TForm9::Button3Click(TObject *Sender)
{(OpenPictureDialog1->Execute());
{CurrentFile=OpenPictureDialog1->FileName;->Picture->LoadFromFile(CurrentFile);->Visible
= true;
}
}__fastcall
TForm9::Button4Click(TObject *Sender)
{= 0;->Visible
= false;->Enabled = true;->Text = "";->Enabled =
true;->Enabled = true;->Visible = true;->Visible = false;->Visible
= false;->Visible = false;->Visible = true;->Visible =
true;->GotoFrame(1);->Play();->Top = 99;->Text =
"";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Visible = false;->Visible = false;->Visible =
false;->Visible = false;
}__fastcall
TForm9::Button5Click(TObject *Sender)
{= 0;->Visible
= false;->Enabled = true;->Text = "";->Enabled =
true;->Enabled = true;->Visible = true;->Visible = false;->Visible
= false;->Visible = false;->Visible = true;->Visible =
true;->GotoFrame(1);->Play();->Top = 99;->Text = "";->Caption
= "-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Caption =
"-";->Caption = "-";->Visible = false;->Visible =
false;->Visible = false;->Visible = false;->Close();
}__fastcall
TForm9::FormClose(TObject *Sender, TCloseAction &Action)
{->Clear();
}
Текст программы Unit10.cpp
#include
<vcl.h>
#pragma hdrstop
#include
"Unit10.h"
#include
"Unit3.h"
#include
"Unit2.h"
#pragma
package(smart_init)
#pragma resource
"*.dfm"*Form10;k=0;ocenk;name;IDUser;IDTest;
__fastcall
TForm10::TForm10(TComponent* Owner)
: TForm(Owner)
{
}__fastcall
TForm10::Button1Click(TObject *Sender)
{=0;->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM ЗапросТест");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value
== ComboBox1->Text)=
Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value;->ADOQuery1->Next();
}->Series[0]->Clear();->Caption
= ComboBox1->Text;->Text = "";->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM СтатистикаЗапросТеста WHERE IDПользователя = "+ IDUser +" And
IDЗапросТеста = "+ IDTest +"");3->ADOQuery1->Active = true;
int count=0; // для проверки
количества прохождения одного теста
Form3->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{++;->ADOQuery1->Next();
}(count > 1)
{->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];++;=
Form3->ADOQuery1->Fields->FieldByName("Оценка")->Value;=
"Попытка_"+IntToStr(k);->Series[0]->Add(ocenk,name);->ADOQuery1->Next();
}->Caption =
(k);
}
else {
// MessageBox(0,"Выводимая
по умолчанию динамика не доступна (тест, выводимый по умолчанию пройден один
раз). Выберите другой пройденный Вами тест.","Внимание!",MB_OK);
Label4->Caption = "1";
Label5->Caption = "Выбранный тест пройден лишь один раз!";
}
}
//---------------------------------------------------------------------------__fastcall
TForm10::FormShow(TObject *Sender)
{->Caption =
(Form2->Label1->Caption);(Form2->Button4->Visible ==
true)->Caption = "Администратор";(Form2->Button4->Visible ==
false)->Caption = "Пользователь";->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM Пользователи");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("Логин")->Value
== Label2->Caption)=
Form3->ADOQuery1->Fields->FieldByName("IDПользователя")->Value;->ADOQuery1->Next();
}r=0;->ADOQuery1->Active
= false;->ADOQuery1->SQL->Clear();3->ADOQuery1->SQL->Add("SELECT
Пользователи.IDПользователя, СтатистикаЗапросТеста.IDЗапросТеста,
ЗапросТест.НазваниеТеста");
Form3->ADOQuery1->SQL->Add("FROM Пользователи INNER
JOIN (ЗапросТест INNER JOIN
СтатистикаЗапросТеста ON ");
Form3->ADOQuery1->SQL->Add("ЗапросТест.IDЗапросТеста =
СтатистикаЗапросТеста.IDЗапросТеста) ON ");
Form3->ADOQuery1->SQL->Add("Пользователи.IDПользователя =
СтатистикаЗапросТеста.IDПользователя ");
Form3->ADOQuery1->SQL->Add("WHERE (((Пользователи.IDПользователя)="+
IDUser +"))");
Form3->ADOQuery1->Active
= true;->ADOQuery1->First();->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value); //Запись в ComboBox1 первого названия теста->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(ComboBox1->Items->Strings[r] !=
Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value)
{->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);++;
} //проверка на повторение,
если название теста повторяется и уже занесено в ComboBox, то
добавление повторных значений исключается
Form3->ADOQuery1->Next();
}->ADOQuery1->First();FirstName
=
Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value;->Caption
= (FirstName);->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM ЗапросТест");->ADOQuery1->Active = true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value
== ComboBox1->Items->Strings[0])= Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value;->ADOQuery1->Next();
}->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM СтатистикаЗапросТеста WHERE IDПользователя = "+ IDUser +" And
IDЗапросТеста = "+ IDTest +"");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof) {->ADOQuery1->Fields[0];++;=
Form3->ADOQuery1->Fields->FieldByName("Оценка")->Value;=
"Попытка_"+IntToStr(k);->Series[0]->Add(ocenk,name);->ADOQuery1->Next();
}->Caption =
(k);
}
Текст программы Unit11.cpp
#include
<vcl.h>
#pragma hdrstop
#include
"Unit11.h"
#include
"Unit4.h"
#pragma
package(smart_init)
#pragma resource
"*.dfm"*Form11;
__fastcall
TForm11::TForm11(TComponent* Owner)
: TForm(Owner)
{
}__fastcall
TForm11::FormShow(TObject *Sender)
{->Movie =
ExtractFilePath(Application->ExeName) + "Flash/Result_title.swf";->Play();
}
Текст программы Unit12.cpp
#include
<vcl.h>
#pragma hdrstop
#include
"Unit12.h"
#include
"Unit8.h"
#include
"Unit3.h"
#pragma
package(smart_init)
#pragma resource
"*.dfm"*Form12;
__fastcall
TForm12::TForm12(TComponent* Owner)
: TForm(Owner)
{
}__fastcall
TForm12::FormShow(TObject *Sender)
{->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
НазваниеТеста FROM ЗапросТест");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof) {->ADOQuery1->Fields[0];->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);->ADOQuery1->Next();
}
}__fastcall
TForm12::Button2Click(TObject *Sender)
{
if(Application->MessageBox("Выйти действительно хотите удалить данный тест?
Вместе с ним удалятся и все относящиеся к нему вопросы. Изменения будет
невозможно отменить.","Внимание!", MB_YESNO
+ MB_ICONQUESTION)==IDYES) {
Form3->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM ЗапросТест");->ADOQuery1->Active =
true;cef;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value
== ComboBox1->Text)= Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value;->ADOQuery1->Next();
}cefk=0;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value
== cef)= cefk+1;->ADOQuery1->Next();
}(cefk > 1)
{->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM Темы");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Edit();(Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value
== cef)->ADOQuery1->Fields->FieldByName("ЗапросТест")->Value
= "False";->ADOQuery1->Next();
}
}->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("DELETE
* FROM ЗапросТест WHERE НазваниеТеста = '"+ ComboBox1->Text
+"'");3->ADOQuery1->ExecSQL();
// удаление теста и всех подчиненных ему вопросов
Form3->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDЗапросТеста FROM ЗапросТест");->ADOQuery1->Active =
true;n=1;->ADOQuery1->First();(!Form3->ADOQuery1->Eof) {->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value=n;++;->ADOQuery1->Next();
}->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDЗапросВопроса FROM ЗапросТестВопросы");->ADOQuery1->Active =
true;=1;->ADOQuery1->First();(!Form3->ADOQuery1->Eof) {->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("IDЗапросВопроса")->Value=n;++;->ADOQuery1->Next();
}->Text =
"";->Items->Clear();->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
НазваниеТеста FROM ЗапросТест");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);->ADOQuery1->Next();
}
}
}__fastcall
TForm12::Button3Click(TObject *Sender)
{->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("ГлавноеУсловие")->Value=Edit3->Text;->ADOQuery1->Post();->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("Вопрос")->Value=Edit1->Text;->ADOQuery1->Post();->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("INSERT")->Value=ComboBox2->Text;->ADOQuery1->Post();->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("SELECT")->Value=ComboBox3->Text;->ADOQuery1->Post();->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("DELETE")->Value=ComboBox4->Text;->ADOQuery1->Post();->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("UPDATE")->Value=ComboBox5->Text;->ADOQuery1->Post();->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("WHERE")->Value=ComboBox6->Text;->ADOQuery1->Post();->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value=Edit2->Text;->ADOQuery1->Post();
}
//---------------------------------------------------------------------------__fastcall
TForm12::Button1Click(TObject *Sender)
{numtest;->ADOQuery1->Active
= false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM ЗапросТест");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value
== ComboBox1->Text)= (Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value);->ADOQuery1->Next();
}->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM ЗапросТестВопросы WHERE IDЗапросТеста = "+ numtest
+"");->ADOQuery1->Active = true;->Enabled = true;
}__fastcall
TForm12::DBGrid1CellClick(TColumn *Column)
{->Text =
Form3->ADOQuery1->Fields->FieldByName("Вопрос")->Value;->Text
=
Form3->ADOQuery1->Fields->FieldByName("INSERT")->Value;->Text
= Form3->ADOQuery1->Fields->FieldByName("SELECT")->Value;->Text
= Form3->ADOQuery1->Fields->FieldByName("DELETE")->Value;->Text
=
Form3->ADOQuery1->Fields->FieldByName("UPDATE")->Value;->Text
= Form3->ADOQuery1->Fields->FieldByName("WHERE")->Value;->Text
=
Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;->Text
=
Form3->ADOQuery1->Fields->FieldByName("ГлавноеУсловие")->Value;
}
Текст модуля Unit13.cpp
#include
<vcl.h>
#pragma hdrstop
#include
<Registry.hpp>
#include
"Unit13.h"
#include
"Unit8.h"
#include
"Unit3.h"
#include
"Unit1.h"
#pragma
package(smart_init)
#pragma resource
"*.dfm"*Form13;*Reg7=new TRegistry;*Reg8=new TRegistry;*Reg9=new
TRegistry;b;
__fastcall
TForm13::TForm13(TComponent* Owner)
: TForm(Owner)
{
}__fastcall
TForm13::Button1Click(TObject *Sender)
{->ADOQuery1
-> Active = false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM Пользователи");->ADOQuery1 -> Active = true;user =
(Edit1->Text);password =
(Edit2->Text);l=0;kolvo=0;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(user == (Form3->ADOQuery1->Fields->FieldByName("Логин")->Value))
{ (0,"Пользователь с таким логином
уже зарегистрирован. Введите другое имя.", "Ошибка", MB_OK);
Edit1->Text = "";
Edit2->Text = "";
l=1;
}
Form3->ADOQuery1->Next();
}(l == 0)
{->ADOQuery1->First();(!Form3->ADOQuery1->Eof) {->ADOQuery1->Fields[0];++;->ADOQuery1->Next();
}++;kolvous =
(kolvo);->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("INSERT
INTO Пользователи (IDПользователя,
Логин)");->ADOQuery1->SQL->Add(" VALUES ("+ kolvous
+", '"+ user +"')");->ADOQuery1->ExecSQL();=b+1;->RootKey=HKEY_CURRENT_USER;->OpenKey("BlockDB\\Users",true);->WriteInteger("Number",b);->WriteString(("User_"+IntToStr(b)),(user));->WriteString(("Password_"+IntToStr(b)),(password));->WriteString(("Status_"+IntToStr(b)),"Admin");9->CloseKey();
//delete
Reg3;
MessageBox(0,"Регистрация администратора успешно
произведена.","Успешная регистрация",MB_OK);
Edit1->Text =
"";->Text = "";
}
}__fastcall
TForm13::FormShow(TObject *Sender)
{->OpenKey("BlockDB\\Users",0);(Reg7->ValueExists("Number"))
//Проверяем, есть ли такой параметр
{->RootKey=HKEY_CURRENT_USER;->OpenKeyReadOnly("BlockDB\\Users");=Reg8->ReadInteger("Number");->CloseKey();Reg8;
}
{
Reg8->RootKey=HKEY_CURRENT_USER;
Reg8->OpenKey("BlockDB\\Users",true);
Reg8->WriteInteger("Number",b);
b=Reg8->ReadInteger("Number");
Reg8->CloseKey();
delete Reg8;
}->CloseKey();Reg7;
}
Текст модуля Unit14.cpp
#include
<vcl.h>
#pragma hdrstop
#include
"Unit14.h"
#include
"Unit3.h"
#include
"Unit4.h"
#pragma
package(smart_init)
#pragma resource
"*.dfm"*Form14;
__fastcall
TForm14::TForm14(TComponent* Owner)
: TForm(Owner)
{
}__fastcall
TForm14::Button1Click(TObject *Sender)
{->Close();
}
__fastcall
TForm14::FormShow(TObject *Sender)
{->Width =
Image1->Width+2;->Height = Image1->Height+2;
}__fastcall
TForm14::Image1MouseDown(TObject *Sender,Button, TShiftState Shift, int X, int
Y)
{SC_DRAGMOVE =
0xF012;(Button == mbLeft)
{();(Handle,
WM_SYSCOMMAND, SC_DRAGMOVE, 0);
}
}
Текст модуля Unit15.cpp
#include
<vcl.h>
#pragma hdrstop
#include
"Unit15.h"
#include
"Unit3.h"
#include
"Unit8.h"
#pragma
package(smart_init)
#pragma link
"ShockwaveFlashObjects_OCX"
#pragma resource
"*.dfm"*Form15;nmbrtstand;nmbrthmst;kolvst = 0;
__fastcall
TForm15::TForm15(TComponent* Owner)
: TForm(Owner)
{
}__fastcall
TForm15::FormShow(TObject *Sender)
{->Movie =
ExtractFilePath(Application->ExeName) +
"Flash/AddStandTest.swf";->Play();->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
НаименованиеТемы FROM Темы");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value);->ADOQuery1->Next();
}
}__fastcall
TForm15::Button1Click(TObject *Sender)
{numbteststand=0; //номер
нового ЗапросТестаnumbthm=0; //для хранения ID выбранной темы
bool
sovpd=0;->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDСтандартТеста, НазваниеТеста FROM СтандартТест");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Edit1->Text ==
Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value) {= 1;(0,"Тест с таким именем уже существует.","Будьте внимательны!", MB_OK +MB_TOPMOST+ MB_ICONWARNING);->Text = "";
}->ADOQuery1->Next();
}(sovpd == 0)
{->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];++;->ADOQuery1->Next();
}++;->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDТемы, НаименованиеТемы FROM Темы");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value == ComboBox1->Text)=
(Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value);->ADOQuery1->Next();
}=
(numbteststand);= (numbthm);->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("INSERT
INTO СтандартТест (IDСтандартТеста, IDТемы, НазваниеТеста) VALUES ("+ nmbrtstand +",
"+ nmbrthmst +", '"+ Edit1->Text
+"')");->ADOQuery1->ExecSQL();->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("UPDATE
Темы SET Темы.СтандартТест = True WHERE Темы.IDТемы
= "+ nmbrthmst +"");->ADOQuery1->ExecSQL();->Enabled =
false;->Enabled = false;->Enabled = false;
}
}__fastcall
TForm15::Button2Click(TObject *Sender)
{= kolvst +
1;numbteststandv=0; //номер нового ЗапросВопроса->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDСтандартВопроса FROM СтандартТестВопросы");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];++;->ADOQuery1->Next();
}++;nmbrstandquest
= (numbteststandv);->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("INSERT
INTO СтандартТестВопросы (IDСтандартВопроса, IDТемы, IDСтандартТеста, Вопрос, Вариант1, Вариант2, Вариант3, Вариант4, Вариант5, Вариант6)");->ADOQuery1->SQL->Add("
VALUES ("+ nmbrstandquest +", "+ nmbrthmst +", "+
nmbrtstand +", '"+ Edit2->Text +"', '"+ Edit3->Text
+"', '"+ Edit4->Text +"', '"+ Edit5->Text +"',
'"+ Edit6->Text +"', '"+ Edit7->Text +"', '"+
Edit8->Text +"')");->ADOQuery1->ExecSQL();
}
Текст модуля Unit16.cpp
#include
<vcl.h>
#pragma hdrstop
#include
"Unit16.h"
#include
"Unit3.h"
#include
"Unit8.h"
#pragma
package(smart_init)
#pragma resource
"*.dfm"*Form16;
__fastcall
TForm16::TForm16(TComponent* Owner)
: TForm(Owner)
{
}__fastcall
TForm16::FormShow(TObject *Sender)
{->ADOQuery1->Active
= false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
НазваниеТеста FROM СтандартТест");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);->ADOQuery1->Next();
}
}__fastcall
TForm16::Button2Click(TObject *Sender)
{(Application->MessageBox("Выйти
действительно хотите удалить данный тест? Вместе с ним удалятся и все
относящиеся к нему вопросы. Изменения будет невозможно
отменить.","Внимание!", MB_YESNO + MB_ICONQUESTION)==IDYES) {
Form3->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM СтандартТест");->ADOQuery1->Active =
true;cef;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value == ComboBox1->Text)=
Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value;->ADOQuery1->Next();
}cefk=0;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value
== cef)= cefk+1;->ADOQuery1->Next();
}(cefk > 1)
{->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM Темы");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Edit();(Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value
== cef)->ADOQuery1->Fields->FieldByName("СтандартТест")->Value = "False";->ADOQuery1->Next();
}
}->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("DELETE
* FROM СтандартТест WHERE НазваниеТеста = '"+ ComboBox1->Text
+"'");
Form3->ADOQuery1->ExecSQL();
// удаление теста и всех подчиненных ему вопросов
Form3->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDСтандартТеста FROM СтандартТест");->ADOQuery1->Active =
true;n=1;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("IDСтандартТеста")->Value=n;++;->ADOQuery1->Next();
}->ADOQuery1->Active
= false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
IDСтандартВопроса FROM СтандартТестВопросы");->ADOQuery1->Active =
true;=1;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Edit();->ADOQuery1->Fields->FieldByName("IDСтандартВопроса")->Value=n;++;->ADOQuery1->Next();
}->Text =
"";->Items->Clear();->ADOQuery1->Active =
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
НазваниеТеста FROM СтандартТест");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);->ADOQuery1->Next();
}
}
}
__fastcall
TForm16::Button1Click(TObject *Sender)
{numtest;->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM СтандартТест");->ADOQuery1->Active =
true;->ADOQuery1->First();(!Form3->ADOQuery1->Eof)
{->ADOQuery1->Fields[0];(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value == ComboBox1->Text)=
(Form3->ADOQuery1->Fields->FieldByName("IDСтандартТеста")->Value);->ADOQuery1->Next();
}->ADOQuery1->Active
=
false;->ADOQuery1->SQL->Clear();->ADOQuery1->SQL->Add("SELECT
* FROM СтандартТестВопросы WHERE IDСтандартТеста =
"+ numtest +"");->ADOQuery1->Active = true;
}
Приложение Д
Руководство программиста
. Назначение и условия применения программы
Приложение содержит в себе необходимый уровень информации по дисциплине
«Базы данных и системы управления базами данных», а также методы и решения
подачи этой информации таким образом, чтобы это происходило максимально динамично
и корректно, комплексно и красочно. После чего происходит комплексная проверка
полученных знаний и формирование статистики.
Определенных технических характеристик для персонального компьютера не
требуется. Программный продукт будет исправно работать при минимальных
технических характеристиках ПК.
Для полноценного функционирования программного продукта является
обязательным требованием наличие платформы «Windows XP/Vista/7/8». Также
необходимо присутствие в системе библиотеки «Flash.ocx» или «SWFlash.ocx»,
которые необходимы для корректного отображения flash-анимации, интегрированной в оболочку приложения.
. Характеристика программы
Обучающий блок изначально спроектирован исключительно для дисциплины
«Базы данных и системы управления базами данных» и поэтому приложение содержит
перечень программных решений и функций конкретно для данной направленности, а
также использует инструменты и методики применимые лишь в указанной области.
Приложение имеет два режима работы, административный и пользовательский.
Пользовательский режим подразумевает использование всех функций программы без
возможности их правки и управления ими. В случае если пользователь имеет статут
администратора, он получает доступ в административную панель, где есть
возможность создавать новые тесты и варианты к ним, а также редактировать и
удалять как обычные тесты, так и тесты по запросам. Кроме того, в данной панели
можно зарегистрировать новых администраторов и добавлять новые категории и
информацию в обучающую часть программного средства. Отличие администраторов от
обычных пользователей заключаются лишь в наличии управляющей панели у первых.
Логины, пароли и статусы хранятся в системном реестре «Windows».
. Обращение к программе
Для запуска обучающего блока необходимо запустить исполняемый файл «BlockDB.exe». После чего начнут выполняться все необходимые
проверки, будет осуществлено заполнение строковых значений некоторых выпадающих
списков. На первой и главной форме реализована функция динамичной регистрации и
авторизации, которая работает напрямую со специальными ключами и параметрами
реестра, создаваемыми самим приложением. Вся работа в административной панели
организована взаимодействием и манипуляцией с данными информационной базы.
Здесь происходит удаление, редактирование, добавление, обновление как вновь
созданных, так и уже существующих данных. Манипуляции реализуются с помощью
языка DML. Работа в остальных модулях
приложения, напротив, требует использования языка DQL, для обеспечения взаимодействия с базой данных. Это
обусловлено тем, что модули используют уже существующие данные для
осуществления своей корректной работы. Работа графических компонент в
большинстве своем реализована с помощью сторонних библиотек, поэтому, в
большинстве случаев, для корректного отображения всех элементов интерфейса
потребуется установка сторонних программных комплексов, таких как, к примеру, «Adobe Flash Player», при установке которого в операционную систему
инсталлируется библиотека «Flash.ocx».
. Входные и выходные данные
Входными данными программного продукта являются логин и пароль
пользователя, его статус, оцифрованные учебные пособия, а также все таблицы
информационной базы данных.
Выходными данными являются новые созданные тесты и их варианты, новые
категории и лекции, а также локальная статистика и динамика уровня полученных
знаний.
. Сообщения
Во время функционирования программного продукта, в случае какой-либо
некорректной ситуации, ошибки или иной ситуации, требующей участия
пользователя, программой предусмотрены уведомления адресованные пользователю,
содержащие рекомендации и подсказки для исключения возникновения подобных
ошибочных ситуаций в дальнейшем. Далее, в качестве примера, описаны некоторые
из них:
- при попытке закрыть приложение система выдаст диалоговое окно с просьбой
подтвердить совершенное действие. Текст уведомления: «Вы уверены, что хотите
закрыть приложение?»;
- при попытке регистрации логина, который уже существует в
базе, система попросит придумать другое имя. Текст уведомления: «Пользователь с
введенным логином уже зарегистрирован в базе, пожалуйста, придумайте другое
имя»;
- при ситуации, когда одно из обязательных для заполнения полей
было пропущено пользователем. Система выдаст уведомление вида: «Вы не указали
[наименование поля]. Пожалуйста, сделайте это».
Приложение Е
Руководство пользователя
Программное средство относится к типу обучающих программ и используется в
области обучения и всех подчиненных этому процессу этапах.
Приложение содержит в себе необходимый уровень информации по дисциплине
«Базы данных и системы управления базами данных», а также методы и решения
подачи этой информации таким образом, чтобы это происходило максимально
динамично и корректно, комплексно и красочно. После чего происходит комплексная
проверка полученных знаний и формирование статистики.
Программа служит для автоматизации основных элементов учебного процесса -
типов и видов уроков, методов, средств и форм обучения.
Для работы с программой пользователь не должен обладать никакими
специфическими навыками и изучать эксплуатационную документацию. Всю
необходимую справочную информацию приложение предоставит по мере необходимости
уже во время работы с ним. От пользователя требуется лишь навыки простейшей
компьютерной этики. Определенных технических характеристик для персонального
компьютера не требуется. Программный продукт будет исправно работать при
минимальных технических характеристиках ПК. Для полноценного функционирования
программного продукта является обязательным требованием наличие платформы «Windows XP/Vista/7/8». В свою
очередь, для корректного отображения всех элементов интерфейса потребуется
установка сторонних программных комплексов, таких как, к примеру, «Adobe Flash Player».
Для начала работы с приложением его нужно инсталлировать. В пакет
инсталляции входят: исполняемый файл, набор графических элементов, набор
оцифрованных и оформленных лекций и база данных. Для проверки работоспособности
программы необходимо запустить исполняемый файл «BlockDB.exe».
Если при запуске системой не было выведено никаких уведомлений и
интегрированный flash-ролик начал
свое воспроизведение, то можно констатировать факт наличия полной поддержки
всех возможностей обучащего блока.
После успешной авторизации пользователю представляется главное меню, где
он может выбрать один из трех режимов работы с приложением:
- обучающий режим. Окно модуля состоит из двух частей - панели вывода
лекций и панели дерева категорий. При нажатии на каждый элемент дерева в панели
вывода отображается лекция по выбранной главе, теме, подтеме или пункту.
Информация представлена в красивом графическом представлении, что делает
процесс обучения более дружественным.
- тестирующий режим. Для начала прохождения теста необходимо
выбрать его тип и тему. Если на выбранную тему в базе хранится несколько
вариантов тестов, то пользователю случайным путем будет предложен один из них.
Стандартные тесты организуются следующим образом: задается вопрос и предметная
область к нему, после чего предлагаются 6 вариантов ответов на него. После
прохождения стандартного теста пользователю выводится окно с результатами,
верными и неверными ответами. Тесты по запросам предлагают пользователю
возможность собирать SQL-запросы
из отдельных самостоятельных элементов. Для начала задается вопрос и предметная
область к нему, а в некоторых случаях, даже предлагается графическое приложение
к заданию. После чего, пользователь, перетягивая операторы из одной панели в
панель сборки запросов, а также вводя необходимые названия полей, таблиц и
условия, производит процесс прохождения теста. В конце, как и в случае со стандартным
тестом, происходит вывод детальных результатов и достижений.
- блок статистики. Предлагает пользователю подробную статистику
о его достижениях в виде графиков и прослеживания динамики.
В случае, если база данных будет перемещена в любое другое место, в
директории которого не будет находиться исполняемого файла, программа уведомит
об этом и попросит указать путь для новой базы с помощью стандартного
диалогового окна выбора файлов.
Приложение имеет яркий и интуитивно понятный интерфейс, поэтому работа в
нем, как правило, не может вызывать затруднения.
Приложение Ж
Руководство системного программиста
1. Общие сведения о программе
Приложение содержит в себе необходимый уровень информации по дисциплине
«Базы данных и системы управления базами данных», а также методы и решения
подачи этой информации таким образом, чтобы это происходило максимально
динамично и корректно, комплексно и красочно. После чего происходит комплексная
проверка полученных знаний и формирование статистики.
. Характеристика программы
Обучающий блок изначально спроектирован исключительно для дисциплины
«Базы данных и системы управления базами данных» и поэтому приложение содержит
перечень программных решений и функций конкретно для данной направленности, а
также использует инструменты и методики применимые лишь в указанной области.
Приложение имеет два режима работы, административный и пользовательский.
Пользовательский режим подразумевает использование всех функций программы без
возможности их правки и управления ими. В случае если пользователь имеет статут
администратора, он получает доступ в административную панель, где есть
возможность создавать новые тесты и варианты к ним, а также редактировать и
удалять как обычные тесты, так и тесты по запросам. Кроме того, в данной панели
можно зарегистрировать новых администраторов и добавлять новые категории и
информацию в обучающую часть программного средства. Отличие администраторов от
обычных пользователей заключаются лишь в наличии управляющей панели у первых.
Логины, пароли и статусы хранятся в системном реестре «Windows».
. Настройка программы
Настройка приложения осуществляется в административной панели, доступ к
которой пользователь получает после авторизации от имени пользователя, имеющий
соответствующий статус. Далее осуществляется настройка тестов, их добавление,
удаление или редактирование. Так же организована работа с информацией и
административными учетными записями.
. Проверка программы
Проверка осуществляется с помощью фактической апробации вновь добавленных
тестов или авторизации от имени нового администратора.
. Дополнительные возможности
Дополнительные возможности для системных программистов полностью
обеспечиваются доступом в административную панель, которая недоступна для
обычных пользователей. Подробно возможности панели описаны выше.
. Сообщения системному программисту
Во время функционирования программного продукта, в случае какой-либо
некорректной ситуации, ошибки или иной ситуации, требующей участия
пользователя, программой предусмотрены уведомления адресованные пользователю,
содержащие рекомендации и подсказки для исключения возникновения подобных
ошибочных ситуаций в дальнейшем.
Набор сообщений и уведомлений является общим для всех групп пользователей
программы. Далее, в качестве примера, описаны некоторые из них:
- при попытке закрыть приложение система выдаст диалоговое окно с просьбой
подтвердить совершенное действие. Текст уведомления: «Вы уверены, что хотите
закрыть приложение?»;
- при попытке регистрации логина, который уже существует в
базе, система попросит придумать другое имя. Текст уведомления: «Пользователь с
введенным логином уже зарегистрирован в базе, пожалуйста, придумайте другое
имя»;
- при ситуации, когда одно из обязательных для заполнения полей было
пропущено пользователем. Система выдаст уведомление вида: «Вы не указали
[наименование поля]. Пожалуйста, сделайте это».