
- •Глава 1. Теоретическая часть 9
- •Глава 2. Практическая часть 36
- •Введение
- •Техническое задание
- •Глава 1. Теоретическая часть
- •1.1.Особенности реализации статических методов биометрического контроля
- •1.2. Особенности реализации динамических методов биометрического контроля
- •1.3. Биометрические технологии будущего
- •Глава 2. Практическая часть
- •2.1 Разработка программы (разработка электронного конспекта)
- •2.2 Разработка программы (разработка тестовой части)
- •2.3 Дополнительные возможности программы
- •Заключение
- •Список использованных источников Монографии, учебники, учебные пособия
- •Стандарты
- •Приложение а Состав тестовых вопросов с ответами
- •Приложение б Код программы
2.3 Дополнительные возможности программы
Разработка программного обеспечения курсовой работы предполагала программирование следующих дополнительных компонентов с целью расширения возможностей пользователя. В частности, были реализованы следующие задачи:
Оформление кода вопросов в виде функций, возвращающих результат ответа. Создание DLL-библиотеки, в которой находятся упомянутые подпрограммы;
Создание авторизации на тестовую часть;
Создание массива ответов на тестовые вопросы (True/False), и запись его в файл Microsoft Word;
Создание массива ответов на тестовые вопросы (True/False) и запись его в текстовый файл;
Запись результатов ответов тестовой программы в базу данных Microsoft Access;
Построение диаграммы, отображающей результаты тестирования.
Перейдем к рассмотрению вышеперечисленных возможностей.
По ходу разработки программы была создана пользовательская DLL библиотека с названием Courselib.В ней содержится код вопросов в виде функций, а также функции, реализующие вывод результата тестирования в различные программы (пункты 3-5 из списка задач, представленного выше).
Авторизация пользователя на тестовую часть производится посредством нажатия на кнопку «Ознакомиться с теоретической частью» и ввода в TextBox логина и пароля (пароль при вводе дополнительно шифруется символами «*»). Форма с авторизацией изображена на рисунке 24. Если логин или пароль не введены или некорректны, выдаются соответствующие сообщения: «Введите логин и пароль.», «Ошибка в логине или пароле. Попробуйте еще раз.».
Рисунок 24 – Авторизация на тестовую часть
Программный код для реализации этой дополнительной возможности представлен ниже.
String^login = "mtuci"; String^password = "pleasedontexpelme";
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
String^log = Courselib::Class::input(textBox1); String^ pass = Courselib::Class::input(textBox2); if (log == "") { MessageBox::Show("Введите логин и пароль.", "Ошибка авторизации"); } else { if ((log == login) && (pass == password)) { q1^ obj2 = gcnew q1(); obj2->Show(); this->Hide(); } else { MessageBox::Show("Ошибка в логине или пароле. Попробуйте еще раз.", "Ошибка авторизации"); } } } |
Для получения результата в программе Microsoft Word, пользователю требуется нажать на соответствующую кнопку на финальной форме программы курсовой работы. Результат работы представлен на рисунке 25.
Рисунок 25 – Массив ответов в Microsoft Word
Программный код для реализации этой дополнительной возможности представлен ниже.
Код библиотеки:
static void outputWord(bool* arr) { auto Wrd = gcnew Microsoft::Office::Interop::Word::ApplicationClass(); Wrd->Visible = true; auto inf = Type::Missing; String^ str; auto Doc = Wrd->Documents->Add(inf, inf, inf, inf); Wrd->Selection->TypeText("Результат тестирования"); Wrd->Selection->TypeParagraph(); Object^ t1 = Microsoft::Office::Interop::Word::WdDefaultTableBehavior::wdWord9TableBehavior; Object^ t2 = Microsoft::Office::Interop::Word::WdAutoFitBehavior::wdAutoFitContent; Wrd->Selection->TypeParagraph(); Wrd->Selection->TypeParagraph(); Microsoft::Office::Interop::Word::Table^ tbl = Wrd->ActiveDocument->Tables->Add(Wrd->ActiveDocument->Paragraphs[2]->Range, 2, 16, t1, t2);
for (int i = 0; i < 16; i++) { tbl->Cell(1, i + 1)->Range->InsertAfter("[" + Convert::ToString(i+1) + "]"); str = String::Format("{0:f0}", arr[i]); tbl->Cell(2, i + 1)->Range->InsertAfter(str); } } |
Код на форме программы курсовой работы:
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) { Courselib::out::outputWord(arr); } |
Для получения результата в программе Блокнот, пользователю требуется нажать на соответствующую кнопку на финальной форме программы курсовой работы. После этого появляется приглашение в диалоговом окне следующего содержания: «Введите путь по которому будет сохранен файл и его имя. Расширение добавляется автоматически. Например:C:\\Users\\name\\repos\имя файла». После ввода пути для записи результатов ответа на тестовые вопросы выводится MessageBox с сообщением: «Запись ответов в текстовый файл произведена успешно». Результат работы представлен на рисунках 26, 27.
Рисунок 26 – Ввод пути для .txt файла
Рисунок 27 – Массив ответов в Блокноте
Программный код для реализации этой дополнительной возможности представлен ниже.
Код библиотеки:
static void outputTextbook(DataGridView^ grid) { String^ f = Interaction::InputBox("Введите путь по которому будет сохранен файл и его имя. Расширение добавляется автоматически" + "\nНапример:C:\\Users\\name\\repos\"имя файла", "Ввод", "", -1, -1); String^ filename = f + ".txt"; try { auto fk = System::Text::Encoding::GetEncoding(1251); auto Z = gcnew IO::StreamWriter(filename, false, fk); String^ msg1; msg1 = "Результат тестирования"; Z->WriteLine(msg1); for (int i = 0; i < grid->ColumnCount; i++)//вывод исходного массива {
Z->WriteLine(Convert::ToString(grid->Rows[1]->Cells[i]->Value)); } Z->Close(); MessageBox::Show("Запись успешна"); } catch (System::Exception^ E) { MessageBox::Show(E->Message + "\nОшибка", "Ошибка"); } } |
Код на форме программы курсовой работы:
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) { Courselib::out::outputTextbook(dataGridView1); } |
Для получения результата в программе Microsoft Access, пользователю требуется нажать на соответствующую кнопку на финальной форме программы курсовой работы. В качестве подтверждения того, что запись произведена, всплывет сообщение с надписью «В таблицу MS Access добавлены записи». Файл сохраняется в папку с директорией «..\Course\Course». Результат работы представлен на рисунке 28.
Рисунок 28 – Таблица результата в Microsoft Access
Программный код для реализации этой дополнительной возможности представлен ниже.
Код библиотеки:
static void create_file() { if (File::Exists("Результат.mdb")) File::Delete("Результат.mdb"); ADOX::Catalog^ k = gcnew ADOX::CatalogClass(); try { k->Create("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = 'Результат.mdb'"); MessageBox::Show("..."); } catch (System::Runtime::InteropServices::COMException^ situation) { MessageBox::Show(situation->Message); } finally { k = nullptr; }
}
static void structure() { auto p = gcnew OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = Результат.mdb"); p->Open(); auto c = gcnew OleDbCommand("Create Table [Result] (num int NOT NULL, rezmas char (200));", p); try { c->ExecuteNonQuery(); MessageBox::Show("Database was created"); } catch (System::Runtime::InteropServices::COMException^ situation) { MessageBox::Show(situation->Message); } p->Close(); }
static void add_zap(bool* mas) { for (int i = 0; i < 16; i++) { auto p = gcnew OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = Результат.mdb"); p->Open(); auto c = gcnew OleDbCommand("INSERT INTO Result(num, rezmas) VALUES('" + (i+1) + "','" + mas[i] + "')"); c->Connection = p; c->ExecuteNonQuery(); p->Close(); } MessageBox::Show("В таблицу MS Access добавлены записи", "Информация", MessageBoxButtons::OK, MessageBoxIcon::Information); } |
Код на форме программы курсовой работы:
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) { Courselib::out::create_file(); Courselib::out::structure(); Courselib::out::add_zap(arr); } |
Диаграмма с результатом тестирования представлена на рисунке 29. На вертикальной оси отражены номера вопросов, результат – на столбцах диаграммы (желтым отмечено количество верных ответов, красным – неверных).
Рисунок 29 – Диаграмма с результатом тестирования
Программный код для реализации этой дополнительной возможности представлен ниже.
private: System::Void final_load(System::Object^ sender, System::EventArgs^ e) { ..
int right; for (int i = 0; i < 16; i++) { if (arr[i] == 1) { right = right + 1; } } int wrong = 16 - right; chart1->Series["Верно"]->Points->AddXY(" ", right); chart1->Series["Неверно"]->Points->AddXY(" ", wrong); .. } |
По итогам работы над второй главой, можно отметить, что был разработан электронный конспект и создана программа для тестирования пользователя по теме «Внедрение биометрической идентификации в системы контроля и управления доступом». Были выполнены следующие задачи:
Разработано электронное пособие;
Разработана тестовая программа;
Создана пользовательская DLL библиотека;
Выведена теоретическая часть с помощью текстового файла Microsoft Word;
Записаны результаты ответа на каждый вопрос в текстовый файл, файл Microsoft Word и Microsoft Access;
Выведена диаграмма с результатом тестирования.