config.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #ifndef CONFIG_H
  2. #define CONFIG_H
  3. #include <QString>
  4. #include <array>
  5. #include "interval.h"
  6. /**
  7. * @name Thesis Evaluation Constants
  8. * @{
  9. */
  10. /**
  11. * @brief Total number of evaluation grades (A through Fx).
  12. */
  13. static constexpr size_t EVAL_COUNT = 6;
  14. /**
  15. * @brief List of intervals used to map a numerical average to a letter grade.
  16. * @details Each @ref Interval object defines a minimum value, a maximum value,
  17. * and its corresponding grade string (e.g., "A", "B", ...).
  18. */
  19. static const std::array<Interval, EVAL_COUNT> EVAL_INTERVALS = {
  20. Interval(1.00, 1.25, "A"),
  21. Interval(1.26, 1.75, "B"),
  22. Interval(1.76, 2.25, "C"),
  23. Interval(2.26, 2.75, "D"),
  24. Interval(2.76, 3.25, "E"),
  25. Interval(3.26, 4.00, "Fx")
  26. };
  27. /**
  28. * @brief Numerical equivalents of individual grades used to calculate the weighted average.
  29. * @details The order of values exactly mirrors the order in @ref EVAL_INTERVALS
  30. * (index 0 = A, index 5 = Fx).
  31. */
  32. static const std::array<double, EVAL_COUNT> EVAL_NUM_VALUES = {
  33. 1.0, // A
  34. 1.5, // B
  35. 2.0, // C
  36. 2.5, // D
  37. 3.0, // E
  38. 4.0 // Fx
  39. };
  40. /**
  41. * @brief Weight of the thesis supervisor's evaluation (35%).
  42. */
  43. static constexpr double WEIGHT_THESIS_SUPERVISOR = 0.35;
  44. /**
  45. * @brief Weight of the thesis examiner's (reviewer's) evaluation (35%).
  46. */
  47. static constexpr double WEIGHT_THESIS_EXAMINER = 0.35;
  48. /**
  49. * @brief Weight of the thesis defense/presentation evaluation (30%).
  50. */
  51. static constexpr double WEIGHT_THESIS_PRESENTATION = 0.30;
  52. /**
  53. * @brief Verbal assessment for an unsuccessful defense (grade Fx or failing to meet thresholds).
  54. */
  55. static const QString EVAL_TOTAL_BAD = "nedostatočne";
  56. /**
  57. * @brief Verbal assessment for a successful defense.
  58. */
  59. static const QString EVAL_TOTAL_OK = "vyhovel";
  60. /**
  61. * @brief Verbal assessment for an excellent defense outcome.
  62. */
  63. static const QString EVAL_TOTAL_WELL = "výborne";
  64. /**
  65. * @brief Threshold value to qualify for the "excellent" (@ref EVAL_TOTAL_WELL) assessment.
  66. * @details If the final weighted average is less than or equal to this threshold,
  67. * the student receives the highest total grade.
  68. */
  69. static constexpr double EVAL_TOTAL_WELL_THRESHOLD = 1.5;
  70. /** @} */ // End of Thesis Evaluation Constants group
  71. #endif // CONFIG_H