From 94fb7f94fec0b487dafb483a1b3dfd7468aec8ae Mon Sep 17 00:00:00 2001 From: hnu202326010310 <278879662@qq.com> Date: Mon, 29 Sep 2025 11:01:16 +0800 Subject: [PATCH] ADD file via upload --- src/session_manager.cpp | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 src/session_manager.cpp diff --git a/src/session_manager.cpp b/src/session_manager.cpp new file mode 100644 index 0000000..71ea227 --- /dev/null +++ b/src/session_manager.cpp @@ -0,0 +1,40 @@ +#include "session_manager.h" + +SessionManager::SessionManager() + : current_user_(""), + current_difficulty_(""), + current_generator_(nullptr) {} + +void SessionManager::SetUser(const std::string& username, + const std::string& difficulty) { + current_user_ = username; + SwitchDifficulty(difficulty); +} + +bool SessionManager::SwitchDifficulty(const std::string& difficulty) { + if (difficulty == "primary") { + current_generator_ = &primary_generator_; + current_difficulty_ = "小学"; + } else if (difficulty == "junior") { + current_generator_ = &junior_generator_; + current_difficulty_ = "初中"; + } else if (difficulty == "senior") { + current_generator_ = &senior_generator_; + current_difficulty_ = "高中"; + } else { + return false; + } + return true; +} + +QuestionGenerator* SessionManager::GetCurrentGenerator() { + return current_generator_; +} + +std::string SessionManager::GetCurrentDifficulty() const { + return current_difficulty_; +} + +std::string SessionManager::GetCurrentUser() const { + return current_user_; +} \ No newline at end of file