Разработка обучающего блока по дисциплине "Базы данных и системы управления базами данных"

Описание структуры обучающего блока. Проектирование его алгоритма и лингвистического и информационного обеспечения. Организация его взаимодействия с базой данных. Разработка графического интерфейса. Программная реализация основных функций приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 20.12.2015
Размер файла 2,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

ShockwaveFlash1->Visible = true;

ShockwaveFlash1->GotoFrame(1);

ShockwaveFlash1->Play();

ShockwaveFlash1->Top = 99;

Edit1->Text = "";

Label34->Caption = "--";

Label35->Caption = "--";

Label36->Caption = "--";

Label37->Caption = "--";

Label38->Caption = "--";

Label39->Caption = "--";

Label40->Caption = "--";

Label41->Caption = "--";

Label42->Caption = "--";

Label43->Caption = "--";

Label12->Caption = "--";

Label13->Caption = "--";

Label14->Caption = "--";

Label15->Caption = "--";

Label16->Caption = "--";

Label17->Caption = "--";

Label18->Caption = "--";

Label19->Caption = "--";

Label20->Caption = "--";

Label21->Caption = "--";

Label44->Visible = false;

Label33->Visible = false;

Button4->Visible = false;

Button5->Visible = false;

}

void __fastcall TForm9::Button5Click(TObject *Sender)

{

kolv = 0;

Image7->Visible = false;

ComboBox1->Enabled = true;

ComboBox1->Text = "";

Edit1->Enabled = true;

Button1->Enabled = true;

Image1->Visible = true;

Image2->Visible = false;

Image3->Visible = false;

Image4->Visible = false;

Image5->Visible = true;

ShockwaveFlash1->Visible = true;

ShockwaveFlash1->GotoFrame(1);

ShockwaveFlash1->Play();

ShockwaveFlash1->Top = 99;

Edit1->Text = "";

Label34->Caption = "--";

Label35->Caption = "--";

Label36->Caption = "--";

Label37->Caption = "--";

Label38->Caption = "--";

Label39->Caption = "--";

Label40->Caption = "--";

Label41->Caption = "--";

Label42->Caption = "--";

Label43->Caption = "--";

Label12->Caption = "--";

Label13->Caption = "--";

Label14->Caption = "--";

Label15->Caption = "--";

Label16->Caption = "--";

Label17->Caption = "--";

Label18->Caption = "--";

Label19->Caption = "--";

Label20->Caption = "--";

Label21->Caption = "--";

Label44->Visible = false;

Label33->Visible = false;

Button4->Visible = false;

Button5->Visible = false;

Form9->Close();

}

void __fastcall TForm9::FormClose(TObject *Sender, TCloseAction &Action)

{

ComboBox1->Clear();

}

Текст программы Unit10.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit10.h"

#include "Unit3.h"

#include "Unit2.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm10 *Form10;

int k=0;

int ocenk;

AnsiString name;

AnsiString IDUser;

AnsiString IDTest;

__fastcall TForm10::TForm10(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm10::Button1Click(TObject *Sender)

{

k=0;

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM ЗапросТест");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value == ComboBox1->Text)

IDTest = Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value;

Form3->ADOQuery1->Next();

}

Chart1->Series[0]->Clear();

Label5->Caption = ComboBox1->Text;

ComboBox1->Text = "";

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM СтатистикаЗапросТеста WHERE IDПользователя = "+ IDUser +" And IDЗапросТеста = "+ IDTest +"");

Form3->ADOQuery1->Active = true;

int count=0; // для проверки количества прохождения одного теста

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

count++;

Form3->ADOQuery1->Next();

}

if (count > 1) {

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

k++;

ocenk = Form3->ADOQuery1->Fields->FieldByName("Оценка")->Value;

name = "Попытка_"+IntToStr(k);

Chart1->Series[0]->Add(ocenk,name);

Form3->ADOQuery1->Next();

}

Label4->Caption = (k);

}

else {

// MessageBox(0,"Выводимая по умолчанию динамика не доступна (тест, выводимый по умолчанию пройден один раз). Выберите другой пройденный Вами тест.","Внимание!",MB_OK);

Label4->Caption = "1";

Label5->Caption = "Выбранный тест пройден лишь один раз!";

}

}

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

void __fastcall TForm10::FormShow(TObject *Sender)

{

Label2->Caption = (Form2->Label1->Caption);

if (Form2->Button4->Visible == true)

Label8->Caption = "Администратор";

if (Form2->Button4->Visible == false)

Label8->Caption = "Пользователь";

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM Пользователи");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("Логин")->Value == Label2->Caption)

IDUser = Form3->ADOQuery1->Fields->FieldByName("IDПользователя")->Value;

Form3->ADOQuery1->Next();

}

int r=0;

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->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;

Form3->ADOQuery1->First();

ComboBox1->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value); //Запись в ComboBox1 первого названия теста

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (ComboBox1->Items->Strings[r] != Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value) {

ComboBox1->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);

r++;

} //проверка на повторение, если название теста повторяется и уже занесено в ComboBox, то добавление повторных значений исключается

Form3->ADOQuery1->Next();

}

Form3->ADOQuery1->First();

AnsiString FirstName = Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value;

Label5->Caption = (FirstName);

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM ЗапросТест");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value == ComboBox1->Items->Strings[0])

IDTest = Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value;

Form3->ADOQuery1->Next();

}

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM СтатистикаЗапросТеста WHERE IDПользователя = "+ IDUser +" And IDЗапросТеста = "+ IDTest +"");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

k++;

ocenk = Form3->ADOQuery1->Fields->FieldByName("Оценка")->Value;

name = "Попытка_"+IntToStr(k);

Chart1->Series[0]->Add(ocenk,name);

Form3->ADOQuery1->Next();

}

Label4->Caption = (k);

}

Текст программы Unit11.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit11.h"

#include "Unit4.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm11 *Form11;

__fastcall TForm11::TForm11(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm11::FormShow(TObject *Sender)

{

ShockwaveFlash1->Movie = ExtractFilePath(Application->ExeName) + "Flash/Result_title.swf";

ShockwaveFlash1->Play();

}

Текст программы Unit12.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit12.h"

#include "Unit8.h"

#include "Unit3.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm12 *Form12;

__fastcall TForm12::TForm12(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm12::FormShow(TObject *Sender)

{

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT НазваниеТеста FROM ЗапросТест");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

ComboBox1->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);

Form3->ADOQuery1->Next();

}

}

void __fastcall TForm12::Button2Click(TObject *Sender)

{

if(Application->MessageBox("Выйти действительно хотите удалить данный тест? Вместе с ним удалятся и все относящиеся к нему вопросы. Изменения будет невозможно отменить.","Внимание!", MB_YESNO + MB_ICONQUESTION)==IDYES) {

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM ЗапросТест");

Form3->ADOQuery1->Active = true;

AnsiString cef;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value == ComboBox1->Text)

cef = Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value;

Form3->ADOQuery1->Next();

}

int cefk=0;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value == cef)

cefk = cefk+1;

Form3->ADOQuery1->Next();

}

if (cefk > 1) {

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM Темы");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Edit();

if (Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value == cef)

Form3->ADOQuery1->Fields->FieldByName("ЗапросТест")->Value = "False";

Form3->ADOQuery1->Next();

}

}

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("DELETE * FROM ЗапросТест WHERE НазваниеТеста = '"+ ComboBox1->Text +"'");

Form3->ADOQuery1->ExecSQL(); // удаление теста и всех подчиненных ему вопросов

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT IDЗапросТеста FROM ЗапросТест");

Form3->ADOQuery1->Active = true;

int n=1;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value=n;

n++;

Form3->ADOQuery1->Next();

}

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT IDЗапросВопроса FROM ЗапросТестВопросы");

Form3->ADOQuery1->Active = true;

n=1;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("IDЗапросВопроса")->Value=n;

n++;

Form3->ADOQuery1->Next();

}

ComboBox1->Text = "";

ComboBox1->Items->Clear();

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT НазваниеТеста FROM ЗапросТест");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

ComboBox1->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);

Form3->ADOQuery1->Next();

}

}

}

void __fastcall TForm12::Button3Click(TObject *Sender)

{

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("ГлавноеУсловие")->Value=Edit3->Text;

Form3->ADOQuery1->Post();

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("Вопрос")->Value=Edit1->Text;

Form3->ADOQuery1->Post();

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("INSERT")->Value=ComboBox2->Text;

Form3->ADOQuery1->Post();

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("SELECT")->Value=ComboBox3->Text;

Form3->ADOQuery1->Post();

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("DELETE")->Value=ComboBox4->Text;

Form3->ADOQuery1->Post();

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("UPDATE")->Value=ComboBox5->Text;

Form3->ADOQuery1->Post();

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("WHERE")->Value=ComboBox6->Text;

Form3->ADOQuery1->Post();

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value=Edit2->Text;

Form3->ADOQuery1->Post();

}

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

void __fastcall TForm12::Button1Click(TObject *Sender)

{

AnsiString numtest;

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM ЗапросТест");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value == ComboBox1->Text)

numtest = (Form3->ADOQuery1->Fields->FieldByName("IDЗапросТеста")->Value);

Form3->ADOQuery1->Next();

}

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM ЗапросТестВопросы WHERE IDЗапросТеста = "+ numtest +"");

Form3->ADOQuery1->Active = true;

DBGrid1->Enabled = true;

}

void __fastcall TForm12::DBGrid1CellClick(TColumn *Column)

{

Edit1->Text = Form3->ADOQuery1->Fields->FieldByName("Вопрос")->Value;

ComboBox2->Text = Form3->ADOQuery1->Fields->FieldByName("INSERT")->Value;

ComboBox3->Text = Form3->ADOQuery1->Fields->FieldByName("SELECT")->Value;

ComboBox4->Text = Form3->ADOQuery1->Fields->FieldByName("DELETE")->Value;

ComboBox5->Text = Form3->ADOQuery1->Fields->FieldByName("UPDATE")->Value;

ComboBox6->Text = Form3->ADOQuery1->Fields->FieldByName("WHERE")->Value;

Edit2->Text = Form3->ADOQuery1->Fields->FieldByName("ВерныйОтвет")->Value;

Edit3->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"

TForm13 *Form13;

TRegistry *Reg7=new TRegistry;

TRegistry *Reg8=new TRegistry;

TRegistry *Reg9=new TRegistry;

int b;

__fastcall TForm13::TForm13(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm13::Button1Click(TObject *Sender)

{

Form3->ADOQuery1 -> Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM Пользователи");

Form3->ADOQuery1 -> Active = true;

AnsiString user = (Edit1->Text);

AnsiString password = (Edit2->Text);

bool l=0;

int kolvo=0;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (user == (Form3->ADOQuery1->Fields->FieldByName("Логин")->Value)) {

MessageBox (0,"Пользователь с таким логином уже зарегистрирован. Введите другое имя.", "Ошибка", MB_OK);

Edit1->Text = "";

Edit2->Text = "";

l=1;

}

Form3->ADOQuery1->Next();

}

if (l == 0) {

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

kolvo++;

Form3->ADOQuery1->Next();

}

kolvo++;

AnsiString kolvous = (kolvo);

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("INSERT INTO Пользователи (IDПользователя, Логин)");

Form3->ADOQuery1->SQL->Add(" VALUES ("+ kolvous +", '"+ user +"')");

Form3->ADOQuery1->ExecSQL();

b=b+1;

Reg9->RootKey=HKEY_CURRENT_USER;

Reg9->OpenKey("BlockDB\\Users",true);

Reg9->WriteInteger("Number",b);

Reg9->WriteString(("User_"+IntToStr(b)),(user));

Reg9->WriteString(("Password_"+IntToStr(b)),(password));

Reg9->WriteString(("Status_"+IntToStr(b)),"Admin");

Reg9->CloseKey();

//delete Reg3;

MessageBox(0,"Регистрация администратора успешно произведена.","Успешная регистрация",MB_OK);

Edit1->Text = "";

Edit2->Text = "";

}

}

void __fastcall TForm13::FormShow(TObject *Sender)

{

Reg7->OpenKey("BlockDB\\Users",0);

if(Reg7->ValueExists("Number")) //Проверяем, есть ли такой параметр

{

Reg8->RootKey=HKEY_CURRENT_USER;

Reg8->OpenKeyReadOnly("BlockDB\\Users");

b=Reg8->ReadInteger("Number");

Reg8->CloseKey();

delete Reg8;

}

else

{

Reg8->RootKey=HKEY_CURRENT_USER;

Reg8->OpenKey("BlockDB\\Users",true);

Reg8->WriteInteger("Number",b);

b=Reg8->ReadInteger("Number");

Reg8->CloseKey();

delete Reg8;

}

Reg7->CloseKey();

delete Reg7;

}

Текст модуля Unit14.cpp

#include <vcl.h>

#pragma hdrstop

#include "Unit14.h"

#include "Unit3.h"

#include "Unit4.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm14 *Form14;

__fastcall TForm14::TForm14(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm14::Button1Click(TObject *Sender)

{

Form14->Close();

}

void __fastcall TForm14::FormShow(TObject *Sender)

{

Form14->Width = Image1->Width+2;

Form14->Height = Image1->Height+2;

}

void __fastcall TForm14::Image1MouseDown(TObject *Sender,

TMouseButton Button, TShiftState Shift, int X, int Y)

{

long SC_DRAGMOVE = 0xF012;

if(Button == mbLeft)

{

ReleaseCapture();

SendMessage(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"

TForm15 *Form15;

AnsiString nmbrtstand;

AnsiString nmbrthmst;

int kolvst = 0;

__fastcall TForm15::TForm15(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm15::FormShow(TObject *Sender)

{

ShockwaveFlash1->Movie = ExtractFilePath(Application->ExeName) + "Flash/AddStandTest.swf";

ShockwaveFlash1->Play();

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT НаименованиеТемы FROM Темы");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

ComboBox1->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value);

Form3->ADOQuery1->Next();

}

}

void __fastcall TForm15::Button1Click(TObject *Sender)

{

int numbteststand=0; //номер нового ЗапросТеста

int numbthm=0; //для хранения ID выбранной темы

bool sovpd=0;

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT IDСтандартТеста, НазваниеТеста FROM СтандартТест");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Edit1->Text == Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value) {

sovpd = 1;

MessageBox(0,"Тест с таким именем уже существует.","Будьте внимательны!", MB_OK +MB_TOPMOST+ MB_ICONWARNING);

Edit1->Text = "";

}

Form3->ADOQuery1->Next();

}

if (sovpd == 0) {

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

numbteststand++;

Form3->ADOQuery1->Next();

}

numbteststand++;

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT IDТемы, НаименованиеТемы FROM Темы");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("НаименованиеТемы")->Value == ComboBox1->Text)

numbthm = (Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value);

Form3->ADOQuery1->Next();

}

nmbrtstand = (numbteststand);

nmbrthmst = (numbthm);

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("INSERT INTO СтандартТест (IDСтандартТеста, IDТемы, НазваниеТеста) VALUES ("+ nmbrtstand +", "+ nmbrthmst +", '"+ Edit1->Text +"')");

Form3->ADOQuery1->ExecSQL();

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("UPDATE Темы SET Темы.СтандартТест = True WHERE Темы.IDТемы = "+ nmbrthmst +"");

Form3->ADOQuery1->ExecSQL();

ComboBox1->Enabled = false;

Edit1->Enabled = false;

Button1->Enabled = false;

}

}

void __fastcall TForm15::Button2Click(TObject *Sender)

{

kolvst = kolvst + 1;

int numbteststandv=0; //номер нового ЗапросВопроса

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT IDСтандартВопроса FROM СтандартТестВопросы");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

numbteststandv++;

Form3->ADOQuery1->Next();

}

numbteststandv++;

AnsiString nmbrstandquest = (numbteststandv);

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("INSERT INTO СтандартТестВопросы (IDСтандартВопроса, IDТемы, IDСтандартТеста, Вопрос, Вариант1, Вариант2, Вариант3, Вариант4, Вариант5, Вариант6)");

Form3->ADOQuery1->SQL->Add(" VALUES ("+ nmbrstandquest +", "+ nmbrthmst +", "+ nmbrtstand +", '"+ Edit2->Text +"', '"+ Edit3->Text +"', '"+ Edit4->Text +"', '"+ Edit5->Text +"', '"+ Edit6->Text +"', '"+ Edit7->Text +"', '"+ Edit8->Text +"')");

Form3->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"

TForm16 *Form16;

__fastcall TForm16::TForm16(TComponent* Owner)

: TForm(Owner)

{

}

void __fastcall TForm16::FormShow(TObject *Sender)

{

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT НазваниеТеста FROM СтандартТест");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

ComboBox1->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);

Form3->ADOQuery1->Next();

}

}

void __fastcall TForm16::Button2Click(TObject *Sender)

{

if(Application->MessageBox("Выйти действительно хотите удалить данный тест? Вместе с ним удалятся и все относящиеся к нему вопросы. Изменения будет невозможно отменить.","Внимание!", MB_YESNO + MB_ICONQUESTION)==IDYES) {

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM СтандартТест");

Form3->ADOQuery1->Active = true;

AnsiString cef;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value == ComboBox1->Text)

cef = Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value;

Form3->ADOQuery1->Next();

}

int cefk=0;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value == cef)

cefk = cefk+1;

Form3->ADOQuery1->Next();

}

if (cefk > 1) {

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM Темы");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Edit();

if (Form3->ADOQuery1->Fields->FieldByName("IDТемы")->Value == cef)

Form3->ADOQuery1->Fields->FieldByName("СтандартТест")->Value = "False";

Form3->ADOQuery1->Next();

}

}

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("DELETE * FROM СтандартТест WHERE НазваниеТеста = '"+ ComboBox1->Text +"'");

Form3->ADOQuery1->ExecSQL(); // удаление теста и всех подчиненных ему вопросов

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT IDСтандартТеста FROM СтандартТест");

Form3->ADOQuery1->Active = true;

int n=1;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("IDСтандартТеста")->Value=n;

n++;

Form3->ADOQuery1->Next();

}

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT IDСтандартВопроса FROM СтандартТестВопросы");

Form3->ADOQuery1->Active = true;

n=1;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Edit();

Form3->ADOQuery1->Fields->FieldByName("IDСтандартВопроса")->Value=n;

n++;

Form3->ADOQuery1->Next();

}

ComboBox1->Text = "";

ComboBox1->Items->Clear();

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT НазваниеТеста FROM СтандартТест");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

ComboBox1->Items->Add(Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value);

Form3->ADOQuery1->Next();

}

}

}

void __fastcall TForm16::Button1Click(TObject *Sender)

{

AnsiString numtest;

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM СтандартТест");

Form3->ADOQuery1->Active = true;

Form3->ADOQuery1->First();

while (!Form3->ADOQuery1->Eof) {

Form3->ADOQuery1->Fields[0];

if (Form3->ADOQuery1->Fields->FieldByName("НазваниеТеста")->Value == ComboBox1->Text)

numtest = (Form3->ADOQuery1->Fields->FieldByName("IDСтандартТеста")->Value);

Form3->ADOQuery1->Next();

}

Form3->ADOQuery1->Active = false;

Form3->ADOQuery1->SQL->Clear();

Form3->ADOQuery1->SQL->Add("SELECT * FROM СтандартТестВопросы WHERE IDСтандартТеста = "+ numtest +"");

Form3->ADOQuery1->Active = true;

}

Приложение Д

Руководство программиста

1. Назначение и условия применения программы

Приложение содержит в себе необходимый уровень информации по дисциплине «Базы данных и системы управления базами данных», а также методы и решения подачи этой информации таким образом, чтобы это происходило максимально динамично и корректно, комплексно и красочно. После чего происходит комплексная проверка полученных знаний и формирование статистики.

Определенных технических характеристик для персонального компьютера не требуется. Программный продукт будет исправно работать при минимальных технических характеристиках ПК.

Для полноценного функционирования программного продукта является обязательным требованием наличие платформы «Windows XP/Vista/7/8». Также необходимо присутствие в системе библиотеки «Flash.ocx» или «SWFlash.ocx», которые необходимы для корректного отображения flash-анимации, интегрированной в оболочку приложения.

2. Характеристика программы

Обучающий блок изначально спроектирован исключительно для дисциплины «Базы данных и системы управления базами данных» и поэтому приложение содержит перечень программных решений и функций конкретно для данной направленности, а также использует инструменты и методики применимые лишь в указанной области.

Приложение имеет два режима работы, административный и пользовательский. Пользовательский режим подразумевает использование всех функций программы без возможности их правки и управления ими. В случае если пользователь имеет статут администратора, он получает доступ в административную панель, где есть возможность создавать новые тесты и варианты к ним, а также редактировать и удалять как обычные тесты, так и тесты по запросам. Кроме того, в данной панели можно зарегистрировать новых администраторов и добавлять новые категории и информацию в обучающую часть программного средства. Отличие администраторов от обычных пользователей заключаются лишь в наличии управляющей панели у первых. Логины, пароли и статусы хранятся в системном реестре «Windows».

3. Обращение к программе

Для запуска обучающего блока необходимо запустить исполняемый файл «BlockDB.exe». После чего начнут выполняться все необходимые проверки, будет осуществлено заполнение строковых значений некоторых выпадающих списков. На первой и главной форме реализована функция динамичной регистрации и авторизации, которая работает напрямую со специальными ключами и параметрами реестра, создаваемыми самим приложением. Вся работа в административной панели организована взаимодействием и манипуляцией с данными информационной базы. Здесь происходит удаление, редактирование, добавление, обновление как вновь созданных, так и уже существующих данных. Манипуляции реализуются с помощью языка DML. Работа в остальных модулях приложения, напротив, требует использования языка DQL, для обеспечения взаимодействия с базой данных. Это обусловлено тем, что модули используют уже существующие данные для осуществления своей корректной работы. Работа графических компонент в большинстве своем реализована с помощью сторонних библиотек, поэтому, в большинстве случаев, для корректного отображения всех элементов интерфейса потребуется установка сторонних программных комплексов, таких как, к примеру, «Adobe Flash Player», при установке которого в операционную систему инсталлируется библиотека «Flash.ocx».

4. Входные и выходные данные

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

Выходными данными являются новые созданные тесты и их варианты, новые категории и лекции, а также локальная статистика и динамика уровня полученных знаний.

5. Сообщения

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

- при попытке закрыть приложение система выдаст диалоговое окно с просьбой подтвердить совершенное действие. Текст уведомления: «Вы уверены, что хотите закрыть приложение?»;

- при попытке регистрации логина, который уже существует в базе, система попросит придумать другое имя. Текст уведомления: «Пользователь с введенным логином уже зарегистрирован в базе, пожалуйста, придумайте другое имя»;

- при ситуации, когда одно из обязательных для заполнения полей было пропущено пользователем. Система выдаст уведомление вида: «Вы не указали [наименование поля]. Пожалуйста, сделайте это».

Приложение Е

Руководство пользователя

Программное средство относится к типу обучающих программ и используется в области обучения и всех подчиненных этому процессу этапах.

Приложение содержит в себе необходимый уровень информации по дисциплине «Базы данных и системы управления базами данных», а также методы и решения подачи этой информации таким образом, чтобы это происходило максимально динамично и корректно, комплексно и красочно. После чего происходит комплексная проверка полученных знаний и формирование статистики.

Программа служит для автоматизации основных элементов учебного процесса -- типов и видов уроков, методов, средств и форм обучения.

Для работы с программой пользователь не должен обладать никакими специфическими навыками и изучать эксплуатационную документацию. Всю необходимую справочную информацию приложение предоставит по мере необходимости уже во время работы с ним. От пользователя требуется лишь навыки простейшей компьютерной этики. Определенных технических характеристик для персонального компьютера не требуется. Программный продукт будет исправно работать при минимальных технических характеристиках ПК. Для полноценного функционирования программного продукта является обязательным требованием наличие платформы «Windows XP/Vista/7/8». В свою очередь, для корректного отображения всех элементов интерфейса потребуется установка сторонних программных комплексов, таких как, к примеру, «Adobe Flash Player».

Для начала работы с приложением его нужно инсталлировать. В пакет инсталляции входят: исполняемый файл, набор графических элементов, набор оцифрованных и оформленных лекций и база данных. Для проверки работоспособности программы необходимо запустить исполняемый файл «BlockDB.exe». Если при запуске системой не было выведено никаких уведомлений и интегрированный flash-ролик начал свое воспроизведение, то можно констатировать факт наличия полной поддержки всех возможностей обучащего блока.

После успешной авторизации пользователю представляется главное меню, где он может выбрать один из трех режимов работы с приложением:

- обучающий режим. Окно модуля состоит из двух частей -- панели вывода лекций и панели дерева категорий. При нажатии на каждый элемент дерева в панели вывода отображается лекция по выбранной главе, теме, подтеме или пункту. Информация представлена в красивом графическом представлении, что делает процесс обучения более дружественным.

- тестирующий режим. Для начала прохождения теста необходимо выбрать его тип и тему. Если на выбранную тему в базе хранится несколько вариантов тестов, то пользователю случайным путем будет предложен один из них. Стандартные тесты организуются следующим образом: задается вопрос и предметная область к нему, после чего предлагаются 6 вариантов ответов на него. После прохождения стандартного теста пользователю выводится окно с результатами, верными и неверными ответами. Тесты по запросам предлагают пользователю возможность собирать SQL-запросы из отдельных самостоятельных элементов. Для начала задается вопрос и предметная область к нему, а в некоторых случаях, даже предлагается графическое приложение к заданию. После чего, пользователь, перетягивая операторы из одной панели в панель сборки запросов, а также вводя необходимые названия полей, таблиц и условия, производит процесс прохождения теста. В конце, как и в случае со стандартным тестом, происходит вывод детальных результатов и достижений.

- блок статистики. Предлагает пользователю подробную статистику о его достижениях в виде графиков и прослеживания динамики.

В случае, если база данных будет перемещена в любое другое место, в директории которого не будет находиться исполняемого файла, программа уведомит об этом и попросит указать путь для новой базы с помощью стандартного диалогового окна выбора файлов.

Приложение имеет яркий и интуитивно понятный интерфейс, поэтому работа в нем, как правило, не может вызывать затруднения.

Приложение Ж

Руководство системного программиста

1. Общие сведения о программе

Приложение содержит в себе необходимый уровень информации по дисциплине «Базы данных и системы управления базами данных», а также методы и решения подачи этой информации таким образом, чтобы это происходило максимально динамично и корректно, комплексно и красочно. После чего происходит комплексная проверка полученных знаний и формирование статистики.

2. Характеристика программы

Обучающий блок изначально спроектирован исключительно для дисциплины «Базы данных и системы управления базами данных» и поэтому приложение содержит перечень программных решений и функций конкретно для данной направленности, а также использует инструменты и методики применимые лишь в указанной области.

Приложение имеет два режима работы, административный и пользовательский. Пользовательский режим подразумевает использование всех функций программы без возможности их правки и управления ими. В случае если пользователь имеет статут администратора, он получает доступ в административную панель, где есть возможность создавать новые тесты и варианты к ним, а также редактировать и удалять как обычные тесты, так и тесты по запросам. Кроме того, в данной панели можно зарегистрировать новых администраторов и добавлять новые категории и информацию в обучающую часть программного средства. Отличие администраторов от обычных пользователей заключаются лишь в наличии управляющей панели у первых. Логины, пароли и статусы хранятся в системном реестре «Windows».

3. Настройка программы

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

4. Проверка программы

Проверка осуществляется с помощью фактической апробации вновь добавленных тестов или авторизации от имени нового администратора.

5. Дополнительные возможности

Дополнительные возможности для системных программистов полностью обеспечиваются доступом в административную панель, которая недоступна для обычных пользователей. Подробно возможности панели описаны выше.

6. Сообщения системному программисту

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

Набор сообщений и уведомлений является общим для всех групп пользователей программы. Далее, в качестве примера, описаны некоторые из них:

- при попытке закрыть приложение система выдаст диалоговое окно с просьбой подтвердить совершенное действие. Текст уведомления: «Вы уверены, что хотите закрыть приложение?»;

- при попытке регистрации логина, который уже существует в базе, система попросит придумать другое имя. Текст уведомления: «Пользователь с введенным логином уже зарегистрирован в базе, пожалуйста, придумайте другое имя»;

- при ситуации, когда одно из обязательных для заполнения полей было пропущено пользователем. Система выдаст уведомление вида: «Вы не указали [наименование поля]. Пожалуйста, сделайте это».

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [399,1 K], добавлен 26.08.2019

  • Классификация баз данных. Выбор системы управления базами данных для создания базы данных в сети. Быстрый доступ и получение конкретной информации по функциям. Распределение функций при работе с базой данных. Основные особенности иерархической модели.

    отчет по практике [1,2 M], добавлен 08.10.2014

  • Разработка приложения для работы с базой данных, с использованием объектно-ориентированного и визуального программирования. Проектирование физической структуры базы данных. Программная реализация, процесс взаимодействия пользователя с приложениями.

    курсовая работа [1,5 M], добавлен 31.01.2016

  • Схема взаимодействия подразделений предприятия. Выбор и обоснование технологии проектирования базы данных. Описание объектов базы данных. Разработка запросов на выборку, изменение, обновление и удаление данных. Интерфейсы взаимодействия с базой данных.

    курсовая работа [1,4 M], добавлен 25.05.2023

  • Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.

    курсовая работа [7,8 M], добавлен 13.02.2023

  • Разработка программного приложения WindowsForms для работы с базой данных на языке высокого уровня C# в автономном режиме с использованием ADO.NET. Проектирование реляционной модели базы данных, интерфейса приложения, основных функций и возможностей.

    курсовая работа [4,3 M], добавлен 30.06.2015

  • Проектирование базы данных Access. Система управления базами данных. Создание и обслуживание базы данных, обеспечение доступа к данным и их обработка. Постановка задач и целей, основных функций, выполняемых базой данных. Основные виды баз данных.

    лабораторная работа [14,4 K], добавлен 16.11.2008

  • Появление системы управления базами данных. Этапы проектирования базы данных "Строительная фирма". Инфологическая и даталогическая модель данных. Требования к информационной и программной совместимости для работы с базой данных "Строительная фирма".

    курсовая работа [93,0 K], добавлен 31.03.2010

  • Понятие базы данных, модели данных. Классификация баз данных. Системы управления базами данных. Этапы, подходы к проектированию базы данных. Разработка базы данных, которая позволит автоматизировать ведение документации, необходимой для деятельности ДЮСШ.

    курсовая работа [1,7 M], добавлен 04.06.2015

  • Обоснование необходимости систем управления базами данных на предприятиях. Особенности разработки программного обеспечения по управлению базой данных, обеспечивающего просмотр, редактирование, вставку записей базы данных, формирование запросов и отчетов.

    курсовая работа [1,5 M], добавлен 23.01.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.