Предметная область "тестирование"

Курсовой проект - Компьютеры, программирование

Другие курсовые по предмету Компьютеры, программирование

ьзователей

Главный администратор:

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

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

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

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

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

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

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

Ученик:

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

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

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

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

 

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->Вых