Предметная область "тестирование"
Курсовой проект - Компьютеры, программирование
Другие курсовые по предмету Компьютеры, программирование
ьзователей
Главный администратор:
-возможность просматривать таблицы пользователей и изменять их
-возможность просматривать и изменять все таблицы
-возможность выполнять все вопросы
-возможность просматривать лог действий
Преподователь:
-возможность просматривать и изменять таблицы , связанные с предметной областью
-возможность выполнять все запросы
Ученик:
-возможность просматривать таблицы Вопрос,Тема,Предмет,Автор без изменения их
-возможность выполнения всех запросов
Описание интерфейса ИС
Программа была разработана с использованием одного окна, изменяющего свои размеры в зависимости от этапа работы программы.
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->Вых