Диплом: Автоматизация процесса ведения информационной базы о должностях и вакансиях с указанием требований к уровню знаний и навыков кандидатов для ПАО Тостелеком

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
127
{
get { return _timeElapsed; }
set
{
// Обновить таймер
int seconds_remaining = value;
_timeElapsed = seconds_remaining;
lblTimer.Text = seconds_remaining < 60
? $"{seconds_remaining } сек."
: $"{seconds_remaining / 60} мин.";
// Обновить визуализацию таймера
// Создание графического объекта
Bitmap pictureBitmap = new Bitmap(50, 50);
// Создание поверхности для рисования графики
Graphics graphucsSurface = Graphics.FromImage(pictureBitmap);
// Цвет кисти рисования прогресса
Color brushColor = Color.Lime; // По умолчанию - зеленый
// Если осталось < 50% от времени тестирования - темно-зеленый
if (seconds_remaining * 100 / (_test.TimeLimit * 60) < 50) brushColor =
Color.Green;
// Если осталось < 30% от времени тестирования - желтый
if (seconds_remaining * 100 / (_test.TimeLimit * 60) < 30) brushColor =
Color.Orange;
// Если осталось < 10% от времени тестирования - красный
if (seconds_remaining * 100 / (_test.TimeLimit * 60) < 10) brushColor =
Color.Red;
// Рисование сектора, соответствующего текущему прогрессу
graphucsSurface.FillPie(new SolidBrush(brushColor), 2, 2, 46, 46, 0,
seconds_remaining * 6 / _test.TimeLimit);
// Отображение на PictureBox
picTimerProgress.Image = pictureBitmap;
}
}
/// <summary>
/// Прогресс теста
/// </summary>
private int _TestProgress { set { tstrlblCompleted.Text = $"{ value} %"; } }
#endregion
/// -----------------------------------------------------
/// <summary>
/// Словарь ответов на вопросы
/// </summary>
Dictionary<int, string> Answers;
/// <summary>
/// Ответить на вопрос
/// </summary>
/// <param name="sender">Объект, вызвавший событие</param>
/// <param name="e">Параметры события</param>
private void tstrbtnNextQuestion_Click(object sender, EventArgs e)
{
// Строка ответов
string answer_string = "";
// Получение строки ответов
foreach (DataGridViewRow dgvr in dgvAnswers.Rows)
{
// Выбранный ответ
if (Convert.ToBoolean(dgvr.Cells[2].Value))
answer_string += Convert.ToString(dgvr.Cells[1].Value) + "|";
}
// Сохранение ответа на вопрос
Answers.Add(_CurrentQuestion.Number, answer_string);
128
// Обновление прогресса тестирования
tstrpbrTestProgressBar.Value = _CurrentQuestion.Number;
_TestProgress = _CurrentQuestion.Number * 100 / _test.Questions.Count;
// Если тест закончен
if (_CurrentQuestion.Number == _test.Questions.Count)
{
// Остановить таймер
tmrTimerTest.Enabled = false;
// Сообщение пользователю
MessageBox.Show("Тестирование закончено! Спасибо за ответы!" +
Environment.NewLine +
"________________________________" + Environment.NewLine +
"Нажмите \"OK\", чтобы просмотреть свой результат.",
"Тест завершен", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
// Сохранение результатов тестирования
SaveTestResults();
}
else // Переход к следующему вопросу
{
ShowQuestion(_CurrentQuestion.Number + 1);
}
}
/// <summary>
/// Сохранение результатов тестирования
/// </summary>
/// <param name="__timed_out_">Флаг - время вышло</param>
private void SaveTestResults(bool __timed_out_ = false)
{
// Убрать флаг "Поверх всех" у окна тестирования
TopMost = false;
// Подсчет времени тестирования
int duration = (_test.TimeLimit * 60 - _TimeElapsed) / 60;
// Закрыть окно тестирования
Close();
// Сохранение результатов в БД
_test.SaveResults(TesterPost.ID, duration, Answers, TesterName, TesterPhone);
}
/// <summary>
/// Применение данных при выборе правильного варианта ответа
/// </summary>
/// <param name="sender">Объект, вызвавший событие</param>
/// <param name="e">Параметры события</param>
private void dgvAnswers_CellContentClick(object sender, DataGridViewCellEventArgs
e)
{
// Колонка выбора варианта ответа
if (e.ColumnIndex == 2)
{
dgvAnswers.CommitEdit(DataGridViewDataErrorContexts.Commit);
}
}
}
}

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

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