на тему рефераты Информационно-образоательный портал
Рефераты, курсовые, дипломы, научные работы,
на тему рефераты
на тему рефераты
МЕНЮ|
на тему рефераты
поиск
Предметная область "тестирование"
p align="left">-возможность просматривать и изменять все таблицы

-возможность выполнять все вопросы

-возможность просматривать лог действий

Преподователь:

-возможность просматривать и изменять таблицы , связанные с предметной областью

-возможность выполнять все запросы

Ученик:

-возможность просматривать таблицы Вопрос,Тема,Предмет,Автор без изменения их

-возможность выполнения всех запросов

Описание интерфейса ИС

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

1.Окно авторизации при запуске программы:

2.Окно программы при входе под записью главного администратора:

Пример окна после выбора пункта меню-база данных-таблицы-вопросы

Таблица редактируется(изменение уже созданной записи и создание новой здесь же)

Жмем «сохранить» и сохраняем наши изменения в БД

3,При нажатии на пункт меню «запросы» становиться доступным выбор возможных запросов

Пример окна после выбора запроса

Пример запроса с вводом двух данных

4.Просмотр лога действий(базы данных-лог)

Описание контрольного примера

В качестве контрольного примера рассмотрим выполнение запроса на подсчет кол-ва тестов за определенный промежуток времени

1.Входим в систему

2.Выбираем пункт меню «запросы»

3.Выбирем нужный нам запрос

4.Вводим данные и нажимаем «ок»

5.Вводим другой промежуток времени

Сообщения программы, причины, их вызывающие, и реакция пользователя на сообщения

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

2.Попытка создания записи главного администратора

В системе запрещено создание дублирующих записей. Запись главного администратора является единственной и не может быть удалена из системы.

Текст программы, с необходимыми комментариями

Реализация входа пользователя в систему

private: System::Void Вход_Click(System::Object^ sender, System::EventArgs^ e) {

if((textBox1->Text!="") && (textBox2->Text!=""))

{

String^ connect="provider=Microsoft.Jet.OLEDB.4.0;"+path_a;

OleDbConnection^ myOleDbConnection = gcnew OleDbConnection(connect);

OleDbCommand^ myOleDbCommand = myOleDbConnection->CreateCommand();

myOleDbCommand->CommandText =

"Select [id],[lvl]"+

"FROM [auth]"+

"WHERE [login]='"+textBox1->Text+"' AND ([pass]='"+textBox2->Text+"');";

myOleDbConnection->Open();

OleDbDataReader^ myOleDbDataReader = myOleDbCommand->ExecuteReader();

while(myOleDbDataReader->Read())

{

id=Convert::ToInt32(myOleDbDataReader[0]);

lvl=Convert::ToInt32(myOleDbDataReader[1]);

}

myOleDbDataReader->Close();

myOleDbConnection->Close();

}

else

{

this->label3->Visible=true;

}

if(lvl==0)

{

String^ connectionString2 = "provider=Microsoft.Jet.OLEDB.4.0;"+path_a;

OleDbConnection^ myOleDbConnection2 = gcnew OleDbConnection(connectionString2);

OleDbCommand^ myOleDbCommand2 = myOleDbConnection2->CreateCommand();

myOleDbCommand2->CommandText =

"INSERT INTO [log] "+

"VALUES ("+id+", Now(), 'Вход в систему');";

myOleDbConnection2->Open();

OleDbDataReader^ myOleDbDataReader2 = myOleDbCommand2->ExecuteReader();

myOleDbConnection2->Close();

this->Text = L"Работа с БД";

this->ClientSize = System::Drawing::Size(500, 220);

this->menuStrip1->Visible=true;

this->textBox1->Visible=false;

this->textBox2->Visible=false;

this->label1->Visible=false;

this->label2->Visible=false;

this->Вход->Visible=false;

this->Выход->Visible=false;

this->dataGridView1->Visible=true;

this->dataGridView1->Location = System::Drawing::Point(12,30);

this->listBox1->Visible=true;

this->listBox1->Location=System::Drawing::Point(300,30);

}

if(lvl==1)

{

String^ connectionString2 = "provider=Microsoft.Jet.OLEDB.4.0;"+path_a;

OleDbConnection^ myOleDbConnection2 = gcnew OleDbConnection(connectionString2);

OleDbCommand^ myOleDbCommand2 = myOleDbConnection2->CreateCommand();

myOleDbCommand2->CommandText =

"INSERT INTO [log] "+

"VALUES ("+id+", Now(), 'Вход в систему');";

myOleDbConnection2->Open();

OleDbDataReader^ myOleDbDataReader2 = myOleDbCommand2->ExecuteReader();

myOleDbConnection2->Close();

this->Text = L"Работа с БД";

this->ClientSize = System::Drawing::Size(500, 220);

this->menuStrip1->Visible=true;

this->пользователяToolStripMenuItem->Visible=false;

this->участникиToolStripMenuItem->Visible=false;

this->логToolStripMenuItem->Visible=false;

this->textBox1->Visible=false;

this->textBox2->Visible=false;

this->label1->Visible=false;

this->label2->Visible=false;

this->Вход->Visible=false;

this->Выход->Visible=false;

this->dataGridView1->Visible=true;

this->dataGridView1->Location = System::Drawing::Point(12,30);

this->dataGridView1->ReadOnly=false;

this->listBox1->Visible=true;

this->listBox1->Location=System::Drawing::Point(300,30);

this->Сохранить->Enabled=true;

}

if(lvl==2)

{

String^ connectionString2 = "provider=Microsoft.Jet.OLEDB.4.0;"+path_a;

OleDbConnection^ myOleDbConnection2 = gcnew OleDbConnection(connectionString2);

OleDbCommand^ myOleDbCommand2 = myOleDbConnection2->CreateCommand();

myOleDbCommand2->CommandText =

"INSERT INTO [log] "+

"VALUES ("+id+", Now(), 'Вход в систему');";

myOleDbConnection2->Open();

OleDbDataReader^ myOleDbDataReader2 = myOleDbCommand2->ExecuteReader();

myOleDbConnection2->Close();

this->Text = L"Работа с БД";

this->ClientSize = System::Drawing::Size(500, 220);

this->menuStrip1->Visible=true;

this->пользователяToolStripMenuItem->Visible=false;

this->тестВопросToolStripMenuItem->Visible=false;

this->вопросОтветToolStripMenuItem->Visible=false;

this->ответыToolStripMenuItem->Visible=false;

this->участникиToolStripMenuItem->Visible=false;

this->тестыToolStripMenuItem->Visible=false;

this->логToolStripMenuItem->Visible=false;

this->уровеньToolStripMenuItem->Visible=false;

this->textBox1->Visible=false;

this->textBox2->Visible=false;

this->label1->Visible=false;

this->label2->Visible=false;

this->Вход->Visible=false;

this->Выход->Visible=false;

this->dataGridView1->Visible=true;

this->dataGridView1->Location = System::Drawing::Point(12,30);

this->dataGridView1->ReadOnly=true;

this->listBox1->Visible=true;

this->listBox1->Location=System::Drawing::Point(300,30);

this->Сохранить->Enabled=false;

}

}

Участок кода , реализующий один из запросов

if (flag==7)

{

String^ connect="provider=Microsoft.Jet.OLEDB.4.0;"+path_d;

OleDbConnection^ myOleDbConnection = gcnew OleDbConnection(connect);

DataSet = gcnew System::Data::DataSet();

DataSet->CaseSensitive = true;

OleDbCommand^ myOleDbCommand = myOleDbConnection->CreateCommand();

myOleDbCommand->CommandText ="SELECT Answer.grade, Test_Question.ID_test, Test_Question.ID_question, Answer.ID_answer FROM Answer INNER JOIN (Test_Question INNER JOIN Answer_Question ON Test_Question.ID_question = Answer_Question.ID_question) ON Answer.ID_answer = Answer_Question.ID_answer WHERE (((Test_Question.ID_test)='"+this->textBox3->Text+"') AND ((Test_Question.ID_question)=[Answer_Question].[ID_question]) AND ((Answer.ID_answer)=[Answer_Question].[ID_answer]) AND ((Answer.correct)='yes'));";

myOleDbConnection->Open();

myOleDbDataAdapter = gcnew OleDbDataAdapter();

myOleDbDataAdapter->SelectCommand = myOleDbCommand;

myOleDbDataAdapter->Fill(DataSet,"Test");

dataGridView1->DataSource = DataSet ;

dataGridView1->DataMember = "Test";

this->dataGridView1->DataSource = DataSet->Tables["Test"]->DefaultView;

myOleDbConnection->Close();

table="Test";

String^ connectionString2 = "provider=Microsoft.Jet.OLEDB.4.0;"+path_a;

OleDbConnection^ myOleDbConnection2 = gcnew OleDbConnection(connectionString2);

OleDbCommand^ myOleDbCommand2 = myOleDbConnection2->CreateCommand();

myOleDbCommand2->CommandText =

"INSERT INTO [log] "+

"VALUES ("+id+", Now(), 'Вывод оценок теста с указанием id теста');";

myOleDbConnection2->Open();

OleDbDataReader^ myOleDbDataReader2 = myOleDbCommand2->ExecuteReader();

myOleDbConnection2->Close();

}

Так как изменение данных и создание новой записи происходят средствами компонента datagridview то далее будет показан код, отвечающий за сохранение этих данных (кнопка «сохранить»)

private: System::Void Сохранить_Click(System::Object^ sender, System::EventArgs^ e) {

OleDbCommandBuilder^ myOleDbCommandBuilder=gcnew OleDbCommandBuilder(myOleDbDataAdapter);

myOleDbDataAdapter->Update(DataSet,table);

DataSet->AcceptChanges();

String^ connectionString2 = "provider=Microsoft.Jet.OLEDB.4.0;"+path_a;

OleDbConnection^ myOleDbConnection2 = gcnew OleDbConnection(connectionString2);

OleDbCommand^ myOleDbCommand2 = myOleDbConnection2->CreateCommand();

myOleDbCommand2->CommandText =

"INSERT INTO [log] "+

"VALUES ("+id+", Now(), 'Сохранение изменений');";

myOleDbConnection2->Open();

OleDbDataReader^ myOleDbDataReader2 = myOleDbCommand2->ExecuteReader();

myOleDbConnection2->Close();

}

Страницы: 1, 2



© 2003-2013
Рефераты бесплатно, курсовые, рефераты биология, большая бибилиотека рефератов, дипломы, научные работы, рефераты право, рефераты, рефераты скачать, рефераты литература, курсовые работы, реферат, доклады, рефераты медицина, рефераты на тему, сочинения, реферат бесплатно, рефераты авиация, рефераты психология, рефераты математика, рефераты кулинария, рефераты логистика, рефераты анатомия, рефераты маркетинг, рефераты релиния, рефераты социология, рефераты менеджемент.