Диплом: Разработка прототипа учебного программного обеспечения для работы с АСКУЭ в СНТ «Восход»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
46
2.2.2 Характеристики баз данных
Для корректной работы приложения и реализации нужного
функционала, необходимо подготовить базы данных, а именно создать базу
данных, таблицы для них и указать в них нужные параметры. Также
необходимо создать начальные формы, для авторизации пользователя,
после чего уже можно будет переходить к созданию остального
функционала приложения.[5]
Первым делом необходимо установить и запустить локальный сервер
и базу данных MySQL под управлением оболочки phpmyadmin. Так как у
нас локальный сервер, то всё, включая базу данных будет находится по
адресу 127.0.0.1., данные для авторизации по-умолчанию менять не будем,
они имеют следующие параметры: логин: root, без пароля. [13]
Создадим новую базу данных. Для этого перейдём по адресу
http://localhost/Tools/phpMyAdmin и проведём авторизацию, далее
создадим новую базу данных с именем “ucheba”, после создания
необходимо добавить необходимые таблицы, добавляем таблицу
“Системные администраторы”, в базе данных назовём ее “admins”, она
будет иметь следующие параметры:
Рисунок 19. Таблица списка администраторов.
47
Login – имя пользователя, имеет тип varchar, это поле будет
сопоставляться со соответствующим полем в форме авторизации;
Password –пароль, имеет тип Varchar, данное поле также будет
сопоставляться с соответствующим полем в форме авторизации.
Name – ФИО пользователя.
Далее создадим вторую таблицу, с данными испытуемых
Рисунок 20. Таблица списка пользователей.
Данная таблица за исключением дополнительных полей “idc
параметром A.I. и email имеет аналогичные значения и проходит проверку
таким же образом, как и в случае с системным администратором, с одной
лишь разницей, поля из этой таблицы сопоставляются с данными
введёнными в форме авторизации пользователей, а не администраторов.
Далее необходимо создать таблицу с записью результатов
тестирования в таблицу.
Рисунок 21. Таблица оценок.
Здесь имеется два 3 поля:
Id – добавляется автоматически(автоинкремент);
Nametest – сюда будет записано наименование пройденного теста;
Ocenka – сюда будет записан результат тестирования(оценка)
48
Далее создаём таблицу для формы обратной связи, назовём её “svyaz”,
она имеет несколько.
Следующим этапом необходимо создать таблицу для формы обратной
связи, здесь будет несколько полей, в первом будут указаны email, во втором
ФИО отправителя, а в третьем будет отображено посланное им сообщение.
Рисунок 22. Таблица сообщений.
Последним шагом необходимо добавить таблицу для записи отзыва
системного администратора о испытуемом. В данной таблице, как и в
предыдущей будет два поля, имеющие тип “text”, первое поле “fio” будет
содержать данные о испытуемом, а в поле “otzv” будет содержаться сам
отзыв о нём.
Рисунок 23. Таблица отзывов.
2.2.3 Описание основных элементов программы и их функции
Для реализации программы будет реализовано 4 формы. Также
создана база данных и реализованы необходимые функции, они будут
работать следующим образом:
49
Авторизация.
Пользователь вводит в соответствующие поля данные и отправляет
запрос базу данных, база отправляет в форму результат обработки, если
соответствующая запись найдена, то открывается соответствующая форма,
если данные введены некорректно, открывается сообщение с
соответствующим уведомлением.
В приложении будет реализовано две формы авторизации, одна для
обычных пользователей, а вторая для авторизации системных
администраторов, они обе действуют по одному принципу и схематически
их работу можно представить в следующем виде:
Рисунок 24. Принцип работы авторизации.
Авторизация происходит по следующему сценарию:
1. Приложение отправляет на проверку введённые пользователем
данные в базу данных:
string CommandText = "SELECT Count(*) FROM users WHERE login = '" +
namebox.Text + "' AND password = '" + passwordbox.Text + "' LIMIT 1";
2. Если введённые данные есть в таблице базы данных, то открывается
форма пользователя(администратора), если данные введены неверно
то приложение выдаёт ошибку:
50
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
if (dt.Rows[0][0].ToString() == "1")
{
this.Hide();
Form2 f2 = new Form2();
f2.Show();
}
else
{
MessageBox.Show("Пожалуйста, проверьте правильность
введенных данных!");
}
}
Обучение.
Пользователь обязательно проходит обучение по необходимой
теме(всего 10), каждая тема открывается во встроенном веб-браузере при
нажатии на соответсвующую ссылку. Учебный материал написан с
помощью языка гипертекста HTML и визуально настроен с помощью
каскадных таблиц стилей. Все файлы хранятся на локальном сервере
Denwer, в папке с названием ucheba.ya, откуда они и выводятся в браузер:
webBrowser1.Navigate("http://ucheba.ya/index.html");
Тестирование.
Пользователь может проходить тестирование. Тестирование
происходит по следующему принципу: пользователь выбирает один из
вариантов ответа, если ответ верен, то в переменную, заданную по
умолчанию значением “0” добавляется 1 балл, после каждого верного ответа
добавляется 1 балл, если ответ не верен, то переменна баллов не добавляет.
При этом пользователь не может видеть какой ответ не верен, чтобы
предотвратить жульничество с его стороны.
Эта форма работает по следующиму принципу:
При запуске теста, открывается советующая форма;
Форма читает текстовые файлы. Находящиеся в репозитории
разрабатываемого приложения. В этих файлах находятся вопросы и
51
варианты ответа, где первый вариант является правильным, а
остальные неверными:
string file_name = "t.txt";
string[,] massiv;
int total, kolvo_voprosov, praviln_otvetov, nepraviln_otvetov;
static Random rand = new Random();
string[] lines = File.ReadAllLines(file_name, Encoding.UTF8);
total = lines.Length / 9;
massiv = new string[kolvo_voprosov, 9];
int[] temp = new int[kolvo_voprosov];
int j;
int k = 0;
do
{
j = rand.Next(0, total) * 4;
if (!temp.Contains(j))
{
massiv[k, 0] = lines[j];
for (int i = 1; i < 4; i++)
massiv[k, i] = lines[j + i];
temp[k] = j;
k++;
}
} while (!(k == kolvo_voprosov));
Считанные программой вопросы и варианты ответа отображаются в
форме в случайном порядке, чтобы исключить возможность
манипуляций;
При нажатии на кнопку следующего вопроса, открывается новый
вопрос с вариантами ответов и так до того пока заданное число
вопросов в программе не пройдётся полностью.
button_next.Text = "Следующий вопрос";
kolvo_voprosov = 10;
praviln_otvetov = 0;
nepraviln_otvetov = 0;
load_file();
radio_checked();
radio_turn_on_off();
label_result.Text = "";
52
kolvo_voprosov--;
show_question();
После ответа на все вопросы пользователь должен нажать кнопку
“Завершить тест”.
После завершения теста и нажатия кнопки “Завершить тест”, его
название и полученный результат будут записаны в базу данных, чтобы их
посмотреть пользователь может зайти в “зачётную книжку” и проверить
свой результат:
label_result.Text = "Правильных ответов: "+praviln_otvetov.ToString()+"\n"+
"Неправильных ответов: "+nepraviln_otvetov.ToString();
string Connect = "server=localhost;user
id=root;password=;persistsecurityinfo=True;database=ucheba";
string CommandText = "INSERT INTO ocenki " + "Values('" +
lavbel1_result.Text + "')";
MySqlConnection myConnection = new MySqlConnection(Connect);
MySqlCommand myCommand = new MySqlCommand(CommandText,
myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
MySqlDataAdapter dataAdapter = new
MySqlDataAdapter(myCommand);
MessageBox.Show("Результат записан");
Наглядно это выглядит так:
Рисунок 25. Принцип оценивания и записи результатов в базу данных.
Эти же результаты может видеть и системный администратор с
53
помощью соответствующей вкладке в своей форме:
string Connect = "server=localhost;user
id=root;password=;persistsecurityinfo=True;database=ucheba";
string CommandText = "SELECT * FROM ocenki";
MySqlConnection myConnection = new MySqlConnection(Connect);
MySqlCommand myCommand = new MySqlCommand(CommandText,
myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
MySqlDataAdapter dataAdapter = new
MySqlDataAdapter(myCommand);
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
dataGridView2.DataSource = dt;
Также системный администратор может удалить все оценки:
string CommandText = "DELETE FROM ocenki";
Либо только необходимые записи:
string CommandText = "DELETE FROM ocenki WHERE id =" + id;
Отзыв системного администратора.
Системный администратора пишет отзыв о пользователе и нажимает
кнопку “Отправить”, запись записывается в базу данных, после чего
пользователь при нажатии кнопки “Обновить”, на соответствующей
вкладке может этот отзыв увидеть.
Рисунок 26. Принцип работы с отзывом.
Локальная связь с системным администратором.
Пользователь, если у него возникает такая необходимость пишет своё
сообщение в текстовом поле, после чего нажимает на кнопку, сообщение
записывается в базу данных:
string Connect = "server=localhost;user
id=root;password=;persistsecurityinfo=True;database=ucheba";
54
string email = emailbox.Text;
string fio = youfiobox.Text;
string message = otzbox.Text;
string CommandText = "INSERT INTO svaz(email, fio, message) " +
"Values('" + email + "', '" + fio + "', '" + message + "')";
MySqlConnection myConnection = new MySqlConnection(Connect);
MySqlCommand myCommand = new MySqlCommand(CommandText,
myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
MySqlDataAdapter dataAdapter = new
MySqlDataAdapter(myCommand);
MessageBox.Show("Вопрос добавлен");
после чего системный администратор может просмотреть сообщение с
помощью вывода его в таблицу DataGridView:
string Connect = "server=localhost;user
id=root;password=;persistsecurityinfo=True;database=ucheba";
string CommandText = "SELECT * FROM svaz";
MySqlConnection myConnection = new MySqlConnection(Connect);
MySqlCommand myCommand = new MySqlCommand(CommandText,
myConnection);
myConnection.Open();
myCommand.ExecuteNonQuery();
MySqlDataAdapter dataAdapter = new
MySqlDataAdapter(myCommand);
DataTable dt = new DataTable();
dataAdapter.Fill(dt);
dataGridView3.DataSource = dt;
Системный администратор может удалить как все сообщения из базы
данных, так и только уже прочитанные и ненужные, нажав на
определённые кнопки:
string CommandText = "DELETE FROM svaz";
string CommandText = "DELETE FROM svaz WHERE id =" + id;
Рисунок 27. Принцип работы обратной связи.
55
Связь с системным администратором с помощью отправки Email
письма и ответ на обращения.
При необходимости пользователь может написать обращение в
специальной форме находящейся в последней вкладке пользовательской
формы, там будет иметься возможность также прикрепить файл, например
скриншот и так далее. Пользователь заполняет все поля формы, такие как
тема сообщения и само сообщение, после нажатия кнопки “Отправить
сообщение” происходит отправка письма на указанный адрес с помощью
введёных в ПО данных(адрес отправки) по протоколу SMTP:
SmtpClient new_client = new SmtpClient("smtp.yandex.ru",587
new_client.Credentials = new NetworkCredential("Почта с которой будут
отпраляться письма", "пароль к этой почте)
new_client.EnableSsl = true;
MailMessage message = new MailMessage();
message.From = new MailAddress("admin@createmesite.ru");
message.To.Add(new
MailAddress("gerasimenko.maxim1995@yandex.ru"));
message.Subject = textBox2.Text;
message.Body = textBox3.Text;
Attachment nfout = new Attachment(new_file);
message.Attachments.Add(nfout);
new_client.Send(message);
MessageBox.Show("Вопрос успешно отправлен");
textBox2.Clear();
textBox3.Clear();
Также отправлять письма может и сам системный администратор, на
странице списка обращений в таблице люди которые отправляли
сообщения локально должны были ввести свой адрес электронной почты,
системный администратор может их посмотреть и в этой же форме ввести
все данные, такие как адрес пользователя, тема и сообщение:
SmtpClient new_client = new SmtpClient("smtp.yandex.ru", 587);
new_client.Credentials = new NetworkCredential("Почта с которой
будет отправлено письмо", "Пароль от этой почты");
new_client.EnableSsl = true;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)
Value-based education: ценности в системе образования и способы их реализации на уроке английского языка. Опыт Европейских стран