From 65f692b604f43154342f20add296244c21f753c7 Mon Sep 17 00:00:00 2001 From: hnu202326010103 <1853439381@qq.com> Date: Thu, 9 Oct 2025 20:46:55 +0800 Subject: [PATCH 1/3] Initial commit --- README.md | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..0f8dc2b --- /dev/null +++ b/README.md @@ -0,0 +1,2 @@ +# MathsQuestionSystem1 + -- 2.34.1 From 5dd457fadbd228aa6ee1329c0d28b7fcd061be8e Mon Sep 17 00:00:00 2001 From: root Date: Sat, 11 Oct 2025 12:38:43 +0800 Subject: [PATCH 2/3] 1 --- EmailSender.cpp | 217 +++++++++++++++++++++ EmailSender.h | 16 ++ EmailSender.o | Bin 0 -> 19944 bytes LoginWindow.cpp | 135 +++++++++++++ LoginWindow.h | 23 +++ LoginWindow.o | Bin 0 -> 5812 bytes Makefile.win | 55 ++++++ Question.cpp | 27 +++ Question.h | 25 +++ Question.o | Bin 0 -> 31415 bytes QuestionGenerator.cpp | 442 ++++++++++++++++++++++++++++++++++++++++++ QuestionGenerator.h | 29 +++ QuestionGenerator.o | Bin 0 -> 481725 bytes QuestionWindow.cpp | 195 +++++++++++++++++++ QuestionWindow.h | 32 +++ QuestionWindow.o | Bin 0 -> 154237 bytes RegisterWindow.cpp | 225 +++++++++++++++++++++ RegisterWindow.h | 30 +++ RegisterWindow.o | Bin 0 -> 13399 bytes SelectionWindow.cpp | 161 +++++++++++++++ SelectionWindow.h | 25 +++ SelectionWindow.o | Bin 0 -> 6388 bytes User.cpp | 24 +++ User.h | 23 +++ User.o | Bin 0 -> 3971 bytes UserManager.cpp | 164 ++++++++++++++++ UserManager.h | 36 ++++ UserManager.o | Bin 0 -> 59884 bytes data/users.txt | 2 + email_send.log | 3 + email_send_log.txt | 13 ++ main.cpp | 27 +++ main.o | Bin 0 -> 1076 bytes send_email.ps1 | 44 +++++ test3.dev | 242 +++++++++++++++++++++++ test3.exe | Bin 0 -> 2394171 bytes test3.layout | 98 ++++++++++ 37 files changed, 2313 insertions(+) create mode 100644 EmailSender.cpp create mode 100644 EmailSender.h create mode 100644 EmailSender.o create mode 100644 LoginWindow.cpp create mode 100644 LoginWindow.h create mode 100644 LoginWindow.o create mode 100644 Makefile.win create mode 100644 Question.cpp create mode 100644 Question.h create mode 100644 Question.o create mode 100644 QuestionGenerator.cpp create mode 100644 QuestionGenerator.h create mode 100644 QuestionGenerator.o create mode 100644 QuestionWindow.cpp create mode 100644 QuestionWindow.h create mode 100644 QuestionWindow.o create mode 100644 RegisterWindow.cpp create mode 100644 RegisterWindow.h create mode 100644 RegisterWindow.o create mode 100644 SelectionWindow.cpp create mode 100644 SelectionWindow.h create mode 100644 SelectionWindow.o create mode 100644 User.cpp create mode 100644 User.h create mode 100644 User.o create mode 100644 UserManager.cpp create mode 100644 UserManager.h create mode 100644 UserManager.o create mode 100644 data/users.txt create mode 100644 email_send.log create mode 100644 email_send_log.txt create mode 100644 main.cpp create mode 100644 main.o create mode 100644 send_email.ps1 create mode 100644 test3.dev create mode 100644 test3.exe create mode 100644 test3.layout diff --git a/EmailSender.cpp b/EmailSender.cpp new file mode 100644 index 0000000..11f3258 --- /dev/null +++ b/EmailSender.cpp @@ -0,0 +1,217 @@ +#include "EmailSender.h" +#include +#include +#include +#include +#include + +bool EmailSender::sendVerificationCode(const std::string& email, const std::string& code) { + // 首先尝试PowerShell方案,如果失败则尝试其他方案 + std::cout << "=== 开始发送验证码邮件 ===" << std::endl; + std::cout << "收件人: " << email << std::endl; + std::cout << "验证码: " << code << std::endl; + + // 尝试PowerShell方案 + if (sendByPowerShell(email, code)) { + return true; + } + + std::cout << "PowerShell方案失败,尝试CURL方案..." << std::endl; + + // 如果PowerShell失败,尝试CURL方案 + if (sendByCurl(email, code)) { + return true; + } + + std::cout << "所有邮件发送方案均失败" << std::endl; + return false; +} + +bool EmailSender::sendByPowerShell(const std::string& email, const std::string& code) { + // 配置发送方邮箱信息 - 修改为你的真实信息 + const std::string sender_email = "3675658020@qq.com"; // 修改为你的QQ邮箱 + const std::string sender_password = "lsagdbxwfolhcheb"; // 修改为QQ邮箱授权码 + + std::cout << "尝试使用PowerShell发送邮件..." << std::endl; + std::cout << "发件人: " << sender_email << std::endl; + + // 创建PowerShell脚本 + std::string psScript = + "# 数学学习软件邮件发送脚本\n" + "# 发件人配置\n" + "$SMTPServer = \"smtp.qq.com\"\n" + "$SMTPPort = \"587\"\n" + "$Username = \"" + sender_email + "\"\n" + "$Password = \"" + sender_password + "\"\n" + "$EmailFrom = \"" + sender_email + "\"\n" + "$EmailTo = \"" + email + "\"\n" + "$Subject = \"数学学习软件 - 注册验证码\"\n" + "$Body = @\"\n" + "欢迎注册数学学习软件!\n" + "\n" + "您的注册验证码是:" + code + "\n" + "\n" + "验证码有效期为10分钟,请尽快使用。\n" + "\n" + "如果您没有请求此验证码,请忽略此邮件。\n" + "\n" + "谢谢!\n" + "数学学习软件团队\n" + "\"@\n" + "\n" + "Write-Host \"正在发送邮件到: $EmailTo\"\n" + "Write-Host \"验证码: " + code + "\"\n" + "\n" + "try {\n" + " # 创建邮件消息\n" + " $SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body)\n" + " \n" + " # 创建SMTP客户端\n" + " $SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, $SMTPPort)\n" + " $SMTPClient.EnableSsl = $true\n" + " $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)\n" + " \n" + " # 发送邮件\n" + " $SMTPClient.Send($SMTPMessage)\n" + " \n" + " Write-Host \"邮件发送成功!\" -ForegroundColor Green\n" + " Write-Output \"SUCCESS\"\n" + " \n" + "} catch {\n" + " Write-Host \"邮件发送失败: $($_.Exception.Message)\" -ForegroundColor Red\n" + " Write-Output \"ERROR: $($_.Exception.Message)\"\n" + "}"; + + // 保存PowerShell脚本 + std::ofstream scriptFile("send_email.ps1"); + if (!scriptFile) { + std::cout << "创建PowerShell脚本文件失败" << std::endl; + return false; + } + scriptFile << psScript; + scriptFile.close(); + + std::cout << "正在执行PowerShell脚本..." << std::endl; + + // 执行PowerShell脚本 + std::string command = "powershell -ExecutionPolicy Bypass -File send_email.ps1"; + FILE* pipe = _popen(command.c_str(), "r"); + if (!pipe) { + std::cout << "执行PowerShell命令失败" << std::endl; + return false; + } + + char buffer[256]; + std::string result = ""; + while (!feof(pipe)) { + if (fgets(buffer, sizeof(buffer), pipe) != NULL) + result += buffer; + } + _pclose(pipe); + + // 记录发送日志 + std::ofstream logFile("email_send_log.txt", std::ios::app); + if (logFile) { + logFile << "=== 邮件发送记录 ===" << std::endl; + logFile << "时间: " << __DATE__ << " " << __TIME__ << std::endl; + logFile << "方案: PowerShell" << std::endl; + logFile << "发件人: " << sender_email << std::endl; + logFile << "收件人: " << email << std::endl; + logFile << "验证码: " << code << std::endl; + logFile << "执行结果: " << result << std::endl; + logFile << "=========================" << std::endl << std::endl; + logFile.close(); + } + + // 检查执行结果 + if (result.find("SUCCESS") != std::string::npos) { + std::cout << "? 邮件发送成功!" << std::endl; + std::cout << "验证码已发送到: " << email << std::endl; + return true; + } else { + std::cout << "? PowerShell发送失败: " << result << std::endl; + return false; + } +} + +bool EmailSender::sendByCurl(const std::string& email, const std::string& code) { + // 配置发送方邮箱信息 - 修改为你的真实信息 + const std::string sender_email = "3675658020@qq.com"; // 修改为你的QQ邮箱 + const std::string sender_password = "lsagdbxwfolhcheb"; // 修改为QQ邮箱授权码 + + std::cout << "尝试使用CURL发送邮件..." << std::endl; + + // 检查系统是否安装curl + int curlCheck = system("curl --version > nul 2>&1"); + if (curlCheck != 0) { + std::cout << "系统未安装curl,跳过此方案" << std::endl; + return false; + } + + std::cout << "检测到curl,开始发送..." << std::endl; + + // 创建邮件内容文件 + std::ofstream mailFile("email_content.txt"); + if (!mailFile) { + std::cout << "创建邮件内容文件失败" << std::endl; + return false; + } + + mailFile << "From: 数学学习软件 <" << sender_email << ">\n"; + mailFile << "To: " << email << "\n"; + mailFile << "Subject: 数学学习软件 - 注册验证码\n"; + mailFile << "Content-Type: text/plain; charset=\"utf-8\"\n"; + mailFile << "\n"; + mailFile << "欢迎注册数学学习软件!\n"; + mailFile << "\n"; + mailFile << "您的注册验证码是:" << code << "\n"; + mailFile << "\n"; + mailFile << "验证码有效期为10分钟,请尽快使用。\n"; + mailFile << "\n"; + mailFile << "如果您没有请求此验证码,请忽略此邮件。\n"; + mailFile << "\n"; + mailFile << "谢谢!\n"; + mailFile << "数学学习软件团队\n"; + mailFile.close(); + + // 使用curl发送邮件 + std::string curlCommand = + "curl -s --url \"smtp://smtp.qq.com:587\" " + "--ssl-reqd " + "--mail-from \"" + sender_email + "\" " + "--mail-rcpt \"" + email + "\" " + "--user \"" + sender_email + ":" + sender_password + "\" " + "--upload-file email_content.txt " + "> curl_output.txt 2>&1"; + + std::cout << "执行CURL命令..." << std::endl; + int result = system(curlCommand.c_str()); + + // 记录发送日志 + std::ofstream logFile("email_send_log.txt", std::ios::app); + if (logFile) { + logFile << "=== CURL邮件发送记录 ===" << std::endl; + logFile << "时间: " << __DATE__ << " " << __TIME__ << std::endl; + logFile << "方案: CURL" << std::endl; + logFile << "发件人: " << sender_email << std::endl; + logFile << "收件人: " << email << std::endl; + logFile << "验证码: " << code << std::endl; + logFile << "命令返回码: " << result << std::endl; + logFile << "=========================" << std::endl << std::endl; + logFile.close(); + } + + if (result == 0) { + std::cout << "? CURL邮件发送成功!" << std::endl; + return true; + } else { + std::cout << "? CURL邮件发送失败,返回码: " << result << std::endl; + return false; + } +} + +bool EmailSender::sendBySMTP(const std::string& email, const std::string& code) { + // 这个函数保留作为备用方案,当前不使用 + std::cout << "SMTP方案暂不可用" << std::endl; + return false; +} diff --git a/EmailSender.h b/EmailSender.h new file mode 100644 index 0000000..7eb32df --- /dev/null +++ b/EmailSender.h @@ -0,0 +1,16 @@ +#ifndef EMAILSENDER_H +#define EMAILSENDER_H + +#include + +class EmailSender { +public: + static bool sendVerificationCode(const std::string& email, const std::string& code); + +private: + static bool sendByPowerShell(const std::string& email, const std::string& code); + static bool sendByCurl(const std::string& email, const std::string& code); + static bool sendBySMTP(const std::string& email, const std::string& code); +}; + +#endif diff --git a/EmailSender.o b/EmailSender.o new file mode 100644 index 0000000000000000000000000000000000000000..cc55a0e3c01005c71edeb1680e29ccc1148a7d82 GIT binary patch literal 19944 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 literal 0 HcmV?d00001 diff --git a/LoginWindow.cpp b/LoginWindow.cpp new file mode 100644 index 0000000..f696e4e --- /dev/null +++ b/LoginWindow.cpp @@ -0,0 +1,135 @@ +#include "LoginWindow.h" +#include "UserManager.h" +#include "RegisterWindow.h" +#include "SelectionWindow.h" +#include +#include + +HWND LoginWindow::hwnd = NULL; +HWND LoginWindow::hEmail = NULL; +HWND LoginWindow::hPassword = NULL; +HWND LoginWindow::hMessage = NULL; + +void LoginWindow::Show() { + // 如果窗口已存在,先销毁 + if (hwnd != NULL) { + DestroyWindow(hwnd); + hwnd = NULL; + } + + WNDCLASSEX wc; + memset(&wc, 0, sizeof(WNDCLASSEX)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.hInstance = GetModuleHandle(NULL); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wc.lpszClassName = "LoginWindow"; + + RegisterClassEx(&wc); + + hwnd = CreateWindowEx(0, "LoginWindow", "数学学习软件 - 登录", + WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, + CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, + NULL, NULL, GetModuleHandle(NULL), NULL); + + if (!hwnd) { + MessageBox(NULL, "创建登录窗口失败", "错误", MB_OK | MB_ICONERROR); + return; + } + + CreateControls(); + + ShowWindow(hwnd, SW_SHOW); + UpdateWindow(hwnd); +} + +void LoginWindow::CreateControls() { + // 标题 + CreateWindow("STATIC", "数学学习软件", WS_VISIBLE | WS_CHILD | SS_CENTER, + 10, 20, 360, 30, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 邮箱标签和输入框 + CreateWindow("STATIC", "邮箱:", WS_VISIBLE | WS_CHILD, + 50, 70, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hEmail = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, + 100, 70, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 密码标签和输入框 + CreateWindow("STATIC", "密码:", WS_VISIBLE | WS_CHILD, + 50, 110, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hPassword = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD, + 100, 110, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 登录按钮 + CreateWindow("BUTTON", "登录", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 150, 80, 30, hwnd, (HMENU)1, GetModuleHandle(NULL), NULL); + + // 注册按钮 + CreateWindow("BUTTON", "注册", WS_VISIBLE | WS_CHILD, + 200, 150, 80, 30, hwnd, (HMENU)2, GetModuleHandle(NULL), NULL); + + // 消息标签 - 修复这里:将 WM_CHILD 改为 WS_CHILD + hMessage = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_CENTER, + 50, 190, 300, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); +} + +LRESULT CALLBACK LoginWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + switch (msg) { + case WM_COMMAND: { + int cmd = LOWORD(wParam); + if (cmd == 1) { // 登录按钮 + OnLogin(); + } else if (cmd == 2) { // 注册按钮 + OnRegister(); + } + break; + } + case WM_CLOSE: + DestroyWindow(hwnd); + PostQuitMessage(0); // 只有关闭登录窗口时才退出程序 + break; + case WM_DESTROY: + // 不在WM_DESTROY中调用PostQuitMessage,避免程序退出 + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} + +void LoginWindow::OnLogin() { + char email[100], password[100]; + GetWindowText(hEmail, email, sizeof(email)); + GetWindowText(hPassword, password, sizeof(password)); + + std::string strEmail(email); + std::string strPassword(password); + + if (strEmail.empty() || strPassword.empty()) { + SetWindowText(hMessage, "请输入邮箱和密码"); + return; + } + + UserManager& userManager = UserManager::getInstance(); + if (userManager.login(strEmail, strPassword)) { + SetWindowText(hMessage, "登录成功!"); + + // 延迟后切换到选择界面 + Sleep(800); + DestroyWindow(hwnd); + hwnd = NULL; // 重置窗口句柄 + + // 显示选择界面 + SelectionWindow::Show(); + } else { + SetWindowText(hMessage, "登录失败,请检查邮箱和密码"); + } +} + +void LoginWindow::OnRegister() { + DestroyWindow(hwnd); + hwnd = NULL; + RegisterWindow::Show(); +} diff --git a/LoginWindow.h b/LoginWindow.h new file mode 100644 index 0000000..9c19895 --- /dev/null +++ b/LoginWindow.h @@ -0,0 +1,23 @@ +#ifndef LOGINWINDOW_H +#define LOGINWINDOW_H + +#include + +class LoginWindow { +public: + static void Show(); + static HWND GetHandle() { return hwnd; } + +private: + static HWND hwnd; + static HWND hEmail; + static HWND hPassword; + static HWND hMessage; + + static void CreateControls(); + static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); + static void OnLogin(); + static void OnRegister(); +}; + +#endif diff --git a/LoginWindow.o b/LoginWindow.o new file mode 100644 index 0000000000000000000000000000000000000000..7b64bcd9999b7aba99b5af5ac67288cf5d541398 GIT binary patch literal 5812 zcmcIoe{d969etqn9)IC3=5ltCwHa_vSEIJl&AYB5}sC5dyni@6O6 zRBPIhj!WjI@wayRN0kns!)U~)Bt=c3ousK2sGX5|dwTMoJ9!{s-GR-}(@c`-ddx2O3VsfHhiyITNN+F83M- zxA)dVWRY1ON0%Qbe{{{gRYX4CFDk9N+FKnTKvcNMMRk_fK0nHT3t?_~?ON@<pO-P0Ai)mUmZuV}C$T7%VCJ{(ywc)8Tv_}OJ}XBH1$E;5a5jXoUFZus@2 z6}d9_)hoW<;@Jn`D7yrMqTb-_&oDLFYJIq|)IJa9&*#r;_BII1_2Fg>?(40W>aFv1 z7rXSci$+etB_&s}=WKHfPk<^Upl42$4S*h})r51pH}p*NGd0$<`>1lnw2vSzEfDLO zp`#?Rp9*>=BZu$<$p|F%(%mc&%nNjfj^&%mA!0yr0Fr#ud|m0=iF#!LGNEObwA_7ltva2A}MpE-8`J?Dg;Xtb-ofE`BvG6v_g>nM2yds4#< zW4DG>duMWYXRrrk~bz7iqIfT{mJesqW5S6jP9D>vJ^Hdn3> z-=S58?hetDOSO*xk*|PQr4ad`Q9!I$oDNhjIeHY`B+(GAt0j60SMn4PCvd%4q6u7C zZ!vOaX{kc1f#^R>K&%1c4CoAI^f{#$QD`U7C#6MP>2(8Xk~^TdL7-bD_bd=+Fsh{g z0peT)j#x%ZfjE~{Ky0xVh;vCPz5NP34#XBCKy2|e5L>*V^yU=048#^boDZz`VIa0$ zskn!MIIB*DdV$z>5Qr_F1Y$22mEKVgI&robcLFL*kTV5>rDdju6qUOQ*s601-eb5o3X!H zF9cL3xvh$8RNNPV?vT<)fIcnJVW7`Q^aCaRm6E=wq^|+3lX`C{R8;K5T@1u^+z7Nr z>XiY}JrWSxfI<@855$@70b+}GAhzfQS}XM)ReE0s;>y3FxTknN(hMsZU9M4aBn4fx>84vTChxtbya}^`ron;3P9uzGPZV!iD z_hn_QBh?q#@8QFhwLM1MG-^{xvnQ2EFQ9VQ?qplEC)FB>Zq|2iuWM=f(t&=DpSyM> zWwZtC!xcM{yNveEv}yD}e61uq`jTxCkMGSLk*;`W!YjDDBN|Vq`%*m%7*%yN8tHVr z-GEt3XIFPiosmX`2kbw?%-v_0jj6WYgrUciZ3&~sR&7Yd+iH7z(y1PYaq_QCAYi25 zp?U7uWsbE2-;+{$H2Hafo9R2Gkw-;SX>(_9r)gWOtoN}Nt$-62X*1b`ud)sqTaZi` zMmJow_xHDS8>lE5Pjs3GTGB>G1H|t-H2KTFL8d`L)jo^ZI`Fzb_PGoEZU7LadB(3?mEuG6t_i(KMOF(YBLnw=^81;w>R dV`+}rob1E9OUo`J-P>hIqe^Ebcmf=o{{dM}YfS(E literal 0 HcmV?d00001 diff --git a/Makefile.win b/Makefile.win new file mode 100644 index 0000000..9d1f829 --- /dev/null +++ b/Makefile.win @@ -0,0 +1,55 @@ +# Project: 项目1 +# Makefile created by Dev-C++ 5.11 + +CPP = g++.exe +CC = gcc.exe +WINDRES = windres.exe +OBJ = UserManager.o User.o QuestionGenerator.o Question.o LoginWindow.o RegisterWindow.o QuestionWindow.o main.o EmailSender.o SelectionWindow.o +LINKOBJ = UserManager.o User.o QuestionGenerator.o Question.o LoginWindow.o RegisterWindow.o QuestionWindow.o main.o EmailSender.o SelectionWindow.o +LIBS = -L"D:/程序设计/Dev-Cpp/MinGW64/lib" -L"D:/程序设计/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -mwindows -lws2_32 -lwininet +INCS = -I"D:/程序设计/Dev-Cpp/MinGW64/include" -I"D:/程序设计/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/程序设计/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" +CXXINCS = -I"D:/程序设计/Dev-Cpp/MinGW64/include" -I"D:/程序设计/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/程序设计/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"D:/程序设计/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" +BIN = test3.exe +CXXFLAGS = $(CXXINCS) +CFLAGS = $(INCS) +RM = rm.exe -f + +.PHONY: all all-before all-after clean clean-custom + +all: all-before $(BIN) all-after + +clean: clean-custom + ${RM} $(OBJ) $(BIN) + +$(BIN): $(OBJ) + $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS) + +UserManager.o: UserManager.cpp + $(CPP) -c UserManager.cpp -o UserManager.o $(CXXFLAGS) + +User.o: User.cpp + $(CPP) -c User.cpp -o User.o $(CXXFLAGS) + +QuestionGenerator.o: QuestionGenerator.cpp + $(CPP) -c QuestionGenerator.cpp -o QuestionGenerator.o $(CXXFLAGS) + +Question.o: Question.cpp + $(CPP) -c Question.cpp -o Question.o $(CXXFLAGS) + +LoginWindow.o: LoginWindow.cpp + $(CPP) -c LoginWindow.cpp -o LoginWindow.o $(CXXFLAGS) + +RegisterWindow.o: RegisterWindow.cpp + $(CPP) -c RegisterWindow.cpp -o RegisterWindow.o $(CXXFLAGS) + +QuestionWindow.o: QuestionWindow.cpp + $(CPP) -c QuestionWindow.cpp -o QuestionWindow.o $(CXXFLAGS) + +main.o: main.cpp + $(CPP) -c main.cpp -o main.o $(CXXFLAGS) + +EmailSender.o: EmailSender.cpp + $(CPP) -c EmailSender.cpp -o EmailSender.o $(CXXFLAGS) + +SelectionWindow.o: SelectionWindow.cpp + $(CPP) -c SelectionWindow.cpp -o SelectionWindow.o $(CXXFLAGS) diff --git a/Question.cpp b/Question.cpp new file mode 100644 index 0000000..6365005 --- /dev/null +++ b/Question.cpp @@ -0,0 +1,27 @@ +#include "Question.h" + +Question::Question(const std::string& text, const std::vector& options, int correctAnswer) + : text(text), options(options), correctAnswer(correctAnswer) {} + +std::string Question::getText() const { + return text; +} + +std::vector Question::getOptions() const { + return options; +} + +int Question::getCorrectAnswer() const { + return correctAnswer; +} + +bool Question::checkAnswer(int userAnswer) const { + return userAnswer == correctAnswer; +} + +std::string Question::getCorrectOptionText() const { + if (correctAnswer >= 0 && correctAnswer < (int)options.size()) { + return options[correctAnswer]; + } + return "无正确答案"; +} diff --git a/Question.h b/Question.h new file mode 100644 index 0000000..408763a --- /dev/null +++ b/Question.h @@ -0,0 +1,25 @@ +#ifndef QUESTION_H +#define QUESTION_H + +#include +#include + +class Question { +public: + Question(const std::string& text, const std::vector& options, int correctAnswer); + + std::string getText() const; + std::vector getOptions() const; + int getCorrectAnswer() const; + bool checkAnswer(int userAnswer) const; + + // 添加调试方法 + std::string getCorrectOptionText() const; + +private: + std::string text; + std::vector options; + int correctAnswer; +}; + +#endif diff --git a/Question.o b/Question.o new file mode 100644 index 0000000000000000000000000000000000000000..fd3d72a591128028375845d3287bbf052434af6c GIT binary patch literal 31415 zcmc&-3y@q@nZBLwff3nc1cM2nX_6=tOoo0>H!qtcEgeJRkjVfBp);9j!oXx^cBYd| zcRC60y*w>RCJGI7-2B5(&JPWw5N@;I89 z)&plI)|<(B3?x4{d^pydDSA4D^xg^F-}v=rGii?wyxi-P$9l7QOYdPHj`e0sR(l@@ z?peRyT*f1h`s3?9d8{{A@{D|H?{|GT)|)SQaMa%Cfcv>$Zz1c!k>2Azd91f!>wU?G zW4*mzzmVROz$M;|0+R0EV!9wGB2VHYvBYtfOB{_C)?2j4%SzzP#Cl6!|B>DlaI5`# zOGQtAYzOW#;65O63B0r3bjl;}e9%7y+@xV2>rJP6%>hGtp9Jnszut5@-HSSv?ndD# za1UF0(|Hp|de<*?oTn|l=~7V%!zbz84%~Mwy_u{TVamXb0{1IJo@j5T*VIe$J`bFk zM0>NIj^p+M_p+teJ3-12bQHL=-XkRH{!M2~e*Y!THMOd^k<0ko+XdYDQl1`H>0H5_ zNHm_$_sJ9O&1cMkPxENC4=382FPb=NZw|OiEWL%Ci7NwF2JU*Ry}bp0d+!d^TlB09 zr1t=DJ1o7WlG$&4z&!-q-G059lxJd+yk7?C&7{+2I|%nOaDV34n@RVY0W}GnbDrZI zw)Cb;CXVDKfin~PIg_#Ut_JRlmflR(?BDGWR0Qsrr8iSD7bMdAP@vvy-V6wYdla}A zEWJ6;f>Z|Xao|o`dUKw@OY&X{)SLG#G=%#da0@O(0ZEVNOup9~_es=sQcy4wkLOIm z(+(QX-9DV~b8p7qA1UCHmfqfy8KBFMcNuV3NSvO(nPRDA*h1~NGe~bXmGbMo7r3fl zZx#X7kVk#<0B|?^^=8vq(=Vj=XrNy2hJ$d&fSa)NW>V&OA-z8a?h}^YjAvaSd1t;8 znUUDf*-XywmnFbGWb5_Jqb|r<>66F(oAt(B>ff9XC-i0u{_%Vna9_6c=2GT7FGF4x zxaX|)=B&7JZ=l}1r{Bmg4*>TQOK(1J`i1m<2Dsl@dJCTTO!AHg>MeLSScH2KxYN2( zK+^Ll+nYDX^W&&H3EWDF)BD(L(G%}i19$jc*aJ$O-pA%rY5#bB4!HaMdUNTVIj+i( zcO1CKC64y(+`qZBXTDK8lFN`8iTfA(MF0A+8n~mD-fYTjFO93BPoB`5&71A$1g`4C z3B72rVGG&U2i#9By*bagr?L29lDA4Q>$s82d*Ug{I}oThU+~ZKhk!dn%G3RuD|q$? zr1w$ax-Gp0PydqM=K}Ti=KSqF4qV34+w0kfl_Bp%;QA!a?cZY290#O#brPA8gr7?V zGyV~-m~@fhm{dJ~_lH=iz=^OE$A0{2l%ZzgZ{ z2aT&~;LIfSW<2XY>Ag2;qU63VpUwF79s=$&mfoyqUq_-oMVXO=-kj$^LwdiSG(aed z_U1kDkJ@__xPP+r=6lUJIRV@;;C?J|`n-@Yr2YL-z5r($+?7z$aU)-_=I?gk7D}8R z&v|cLOG3sdaH|b@qP@MI8xCs60pQFe+S{A+kE@4(D_DAad(F7f2SJYlx7EN2y+y0v zUJle-^c=j&K4&@3QHDHWUny(aN8{>D;LOB&3#pVjUZ{W1_u*JxA!W_CmB1bH>n)@` z>su1?Qa*V?Z^jc(NpGJIC-i#f2etQl;2yK|VxxmPm69k7`{m*OWuU*h|Hba=!OyR} z8;I)6rn&0Oz_VA+RF18m+4OvMwlY_p9eB1n^VBaI=iV$N$UbM8G_tD*BOB( znX{Fy*)rGSZLg#zL% zU6{CMVf?hU3sQpjwbx>2uIg}{%R4qZL#H9$bjCY6GeWYbEcGdwQqB%T&Z1Gsxi8l7 zXw3O)3`I^8#^=K*C-Kndvv^j^&mZEG)`l1Gyo{$TKfi%KsiOS7pZx3ZpZ&_;zw|iw z4%&I$wf@nqds=sf9;!5Q^>F1uRynr8=XMQ#hI?U_hOfc%ZS!@*%qz_P8&?&EInA5C zPBl~TA}5xsNX(R*YBwHP+I8AJUGdJfiBx?1f(hLZ3#)M2t?&L+%y}Y)o)BqHe(Ju( zJgCl=#cZLXQ(g6Rb>>+0sgrSYjHrGhc6rqFj1O4M%(IxPPyIArjUBu3h{=--&>J?U zOxq$cDn6*7KrW#vjbx5BQmu|;;c*Ntpcv-5dbWaiMiFODOwJ~v)}ccI^Pw}}ahY?C z?17tTU2Cm9JQC_KHmSLA(zHr^Md_y)t;y2 zv4hx#RV;b+%%*Piei9B{qJ1ov8a=3Fu=I~Dbq^%l6uo9W!;XcTuIe-8PI{5$E-st8 z{CYMptBlL@8T+SNQ)ytqt{Gk(tFz(*VTh?1k9u-TTwj+v;R5E|hl1>t{;ux7Yl+jK zxCkwq;PwHy9rI0$Tw@{!$W{9;-PdC2hA?Symy7|%nx^N!Ii960->$qC3-5dHnD&pm zX8YdTB0E0GYX=ciRo|+1@q`zHu_Za!)u;(+#^N(V`bG4~S)xx6$5mVryBJSb^GxuM zPjx==&jXrYA^!C@Cs3}Q+kyKrNIwpfk0W{de2mY$N=4uhM1BZo9F)<8FIZXy0Gy64Mf!)!oOvedF&JbxtC0Fu3Nh~}5km%P%doW6VIbsaZ9zJM>N6ZI%oy56AFUnQkTIsk!i)QJ_q6g>T z5IRLbu5W*Og)qY2+scbXX zj8^tpCZCG=ioZ%Hto!G1F6t2NqQl)&$K%Ro?{H?j{o`z%X`ejLMUH90Jo%bP%M54u z`sD3W?p5p7U6Sl>4DTxB)}&V@b3LUV6^0l=$LNc2o=7+}qUgkwaA>`IFVlumTFs>c zC<)v@q9kzLsG&1m!Wlqm36};@61Z`c*5FAvcOk!zYd?-s57X{PeleFmt4oieB(wqS zEWi^7w<^)-xrb@U9O_YQN;q_* zBRo!fDAEnzBPTrx=QiYPxO6*m>e+-di=6JG6C9Okbxt^6L@xYH?G?U4!J#+dAyFa^ z{W;T+IcIZ;`a_hc_Ai-+%sGckR4YnU`v}vJIZL@jwW36|pJo~|KGO)j$`d7$_qR-= zS@}LZ3Fm{zg_P~OM1BsE_ioUIeWFD2zQD8<$k*Z#?dWD2l|_kgUt-!yLOe35q z5$-EYL+12wiE2fOYQM%bLRaumoj9ootLV%ky!%Zqk+(PE5jYy50w+o&?+DYV7dGP& zI2wZjCrX5ShG``48ax7b3Dc-7N`(6k)5zYfcm(cprcqgx2={%aA#=)HqFPa++J9jh zwemVVLJIYmuu7B&_is!itG3}0xc4)S%A!QLA2E$^H{uaEnqNYmC=u>In1;-`noEQf zC93^TrmaA}9gmPgqen;)CBprJX%`|N!Xt1rLIqBg2zP>MtB{Z5N$^e3D3{hDpX3s0 zAK}s<@|(Fdg*=7$mvH_BB{5Dvj#8Rwe}PgJPl9J>hG}Qw-HieiPlPR^M7I2zY41QT zETH+f8;`L5dak9iC=tj1G7Xt?1DB{)l&JQ%Ok0k88jp~26Vs?HN`!lrY1A`WwiE?t zkZFVyCBnVNwDXYPfhWPSPn7WL4C4_k5+&k@LtdOJot^Z?Hi#0{o~~Sl~p7aPMFo z#aHV01b;!811-T3G|weeID7C2UQr_6^O%=v_vusaoYkO`U8Li`u z(*L15cE+yRU7u=7a*@~8{50Dk1Qk0lgY#~-M1}_S1=U@tF^X%iq|oe+$0&EZT3Psa z8l$-WT~a6l#bXpHXe5cGxXvJ9NXxW0(vq?q)Oc(!a+~Wz8l!aGAt}6?$7uDmE&MBu zQCv?+N;m7u1akdMV-#2Xod6=ysut$MD>O!NO-Tx^sPR}HxozPuHAZn=_bvdDs73J@ zt#3BheHx>QcYU=+*tzPu+`j37&YYgxt1pR%4W| zZ%E4J%q3lnG9@)OI+FZ~y@uktN>a+G2=n1%8l$)tT>v-|t;O-!g~)9Sdo)IIT_q{+ zkKnpVV-(l8r0`B8=Ee*N(d~LzV-(jnC583~@fh`5j2Jj6Z~R7M6xTAEB1pVni3N|| z?HZ%F9+8wS;EcyUhupPN={j!($#tA9j^cVyQh1*cE22(e-O_h7Msd9=Dc1uZHd8KI zNt$RsqPY4cy6xR_+xrw=gd-+w3QCw>%U?2_RiN~%$Znx_r8l$+r zFDb*!l|=3)#ecR8|HHan*GS4vfWy4e&={rbK1ty{O^o&yZc@5_pfQSTF*yK<_c}4s znBaHH6xXF1qquI66yDK<#Ercgqqq)A3h!@X>!2ZS>3UjY6xaVq3h!(Jb_FD&M1dJ; zkM`jmlClrfc*eXld|wv5_1}A;xXFO+a7yGVn{+f7A)s2bmTyK3!Wf3=3maxERV--L$0hq z5y||knYZFS9;+hv?)G|&znEcbV}!KRQfUwEM#TQdb)?ezK8c|o2(p=^)+L5Udsy3N zC59{wlkIKlk1YS4U_X3i79A|E$1I3hV}zta(*o_v@;YKTh1zS4AP}| z!sP6bn9DTAmh*_j&^jL0U;iaB?~9PLhB^W1N<3lqJSZ`1HO98*_Y$*SV^EMu&C_?% z)*h*XC(J*WOUzXoLmVP0IRg?y(K}4eE{XX7V}jR|PfE;}Ua?#@K#-LSp(ELle@DW9m;ownoVL5=|PUYw?8H^DBwDPGf9) zE}$(u5}l#K#^E&*vyCxlQjSL?<-?Ci%!fe^v*#NUbEC%Ca$b>`n#Kq{lq+58Pdm1Q z7S><4QNTdjfhWwKIf)t47~7u36jYGvc*6X%O=50lOt61GEit!5$T=c0BN1|bAu+c_ z$XP?jVx&<#Vg8wtm@&pAk=x_&VTl=!kn@zp{ISNMAd~8^pGeFk=wbG}DlrX>QBvG~ zS3jZNtuc0g?W6#Yv=>iUe?2ZS(~Jr3uU91I_6Rv^XrVy515a4H1|{ZB#w;edl}07T zap)94X}?7|WKkZrD1U8HzHCwc*`oZwqWs*Vob*s?+vpZlHAC5a8eOY!A`0KQDgw7_ z8S43jvr^s0iao#k%6}B^zS6&0fH!&Ls=?}Aq1C&DZ|-jt_SAs=GrZU8-%W?W{LyTPH+I2Qh;D9oRCnHh(^vmDLeO>&A@iniyT5 z_SoARo3^wywo}`qcu$(Qm@zA#T3=q4;O(5E(JeWpqG2w)TH1yE@Yn!5QN^_?SQ z9=*{ptu-1Jr88R}8$P8*1&Y+CKuTN0&^YDnnFp`7Z63VR*PB8yOpEj0}z< zCJ%Fvsts<~Y($jaT5W86a@XK!ZKP43q?x~=ZzEO@dnKt<`aqwmY)#d+*7~ok^_OZ} z5DT}aYZW*8zOh=Bo8DNhO^gXoa1u*!lTpBp4iwj1R@GFj%Pzzh$3wJgdwECTj|B$N z)nO1dcevhOtRF*@^}$BHHiZE+xU=qAkRvP(=5+07Rc8~%W?}4bomX@iOk>*IJVe+U z$k>djfsD%1`AtPJE;8oA(yk!gl6D2jmcf%nJNmQ}d(6mVMx57IkMhgw-5%|>Vr@Ns z=P^0HZv)0=We;MlxqI(#1lPM}2G^_cCU&pbJz!&E4j&&~iQDX>D>23($&S_cy8A{t zbofF{6IiXT39K?9VydPw$Mpk;c)$ZGh^PG7~ ziNYvbqA<#F8|T;PVc#WUJ5rRno7=L*^;Zr*jxRG*S-$wI3wrw{Jv%hk5GWJZo zb_MBXv@0m6WdXk5H8@?fFVdquZ}J4%dkQ`L`=OP$-+sIQ%L-|;{JNpGZF5om7G13H zQ#ef67e*uaCd5GU7ZDN2jaq0gE~B^N8xV9LB)If+3Kbumpx?k_#`)?Bs9QHaIf)zY zE61kx*69Y@%bgy&r9O0w@q4FnXBzz*@dxO4#yh-UsM=L+{XPiB;=ENuBA#$!>-+{ywB-LPvMj^bgJiodP<5Hw+)hhcHGqjzXg7a-h>d0vos z7ZQDKqUL?%jC3arUw(MI%O1u)c)R{p_ZRbbv62vINr3&v-GNVOG+6(vQ2dp-_&X){ zhm8E60vW$#RM!&fmy4=C`uwc8qET8_&=FZ3v$cWIr|n2tP5+uuOEHF8NW6_WH|y57 zB}Ll;@3^M|-)T7H`0a68%gkDHgksN;L;RXgH@h{qCbSvn>?V{L=q6-~Lw6Hm1yD;2 z8nf>4Tg!`vMM_f#@km(;q$Nc-|CEDe9=uBL8+(pcE_q|Msam|0SS8a=$<9;5k$FM1E*ARFe;Cg1> z60{9((zSrwgg46o!vomyG=1Fnc6iflTAR^h_L$Yz1g?9U#0SX_8B^|2M*cuXH_6b| zEN_rryIuCRL6Z#(U<}aM{((Qh1?>wBu(b7yfB?%{7osddU<P~3N=|$C0!mYR zQj{&QH|qL8DLVzsmFBKt`a;2#5m2c(&C7p#2Dp<>{MJH=Y>i9nn&-WYzBJJ4+Z7aO zQ9$#J>j!u0o61kY_pUlu3~m^rznbJ<4=_vL#v%N^fylaE@Z!${2W$9~quS75W9SyA#_#-R fPaeu-y>ZLr_+Bt$kYQ`dZ}=O$VeuQ~J +#include +#include +#include +#include +#include +#include +#include +#include + +// C++98兼容的数字转字符串函数 +std::string intToString(int value) { + std::stringstream ss; + ss << value; + return ss.str(); +} + +// 浮点数转字符串(保留2位小数) +std::string doubleToString(double value) { + std::stringstream ss; + ss.precision(2); + ss << std::fixed << value; + return ss.str(); +} + +QuestionGenerator::QuestionGenerator(const std::string& userType) : userType(userType) { + srand(static_cast(time(NULL))); +} + +std::vector QuestionGenerator::generateQuestions(int count) { + std::vector questions; + + for (int i = 0; i < count; ++i) { + Question question("", std::vector(), 0); + + if (userType == "elementary") { + question = generateElementaryQuestion(); + } else if (userType == "middle") { + question = generateMiddleSchoolQuestion(); + } else if (userType == "high") { + question = generateHighSchoolQuestion(); + } + + if (question.getText() != "" && question.getOptions().size() == 4) { + questions.push_back(question); + } else { + // 如果生成失败,重新生成 + i--; + } + } + + return questions; +} + +// 获取操作符的优先级 +int getOperatorPriority(char op) { + if (op == '*' || op == '/') return 2; + if (op == '+' || op == '-') return 1; + return 0; +} + +// 计算两个数的运算结果 +int calculate(int a, int b, char op) { + switch (op) { + case '+': return a + b; + case '-': return a - b; + case '*': return a * b; + case '/': + if (b != 0 && a % b == 0) return a / b; + return a; // 如果除不尽,返回原值(应该不会发生) + default: return a; + } +} + +// 使用栈计算表达式结果(正确考虑运算优先级) +int calculateWithPriority(const std::vector& numbers, const std::vector& operators) { + if (numbers.size() != operators.size() + 1) { + return numbers[0]; // 错误情况,返回第一个数 + } + + std::stack numStack; + std::stack opStack; + + numStack.push(numbers[0]); + + for (size_t i = 0; i < operators.size(); ++i) { + char currentOp = operators[i]; + int currentNum = numbers[i + 1]; + + // 处理操作符优先级 + while (!opStack.empty() && getOperatorPriority(opStack.top()) >= getOperatorPriority(currentOp)) { + int num2 = numStack.top(); numStack.pop(); + int num1 = numStack.top(); numStack.pop(); + char op = opStack.top(); opStack.pop(); + numStack.push(calculate(num1, num2, op)); + } + + opStack.push(currentOp); + numStack.push(currentNum); + } + + // 处理剩余的操作 + while (!opStack.empty()) { + int num2 = numStack.top(); numStack.pop(); + int num1 = numStack.top(); numStack.pop(); + char op = opStack.top(); opStack.pop(); + numStack.push(calculate(num1, num2, op)); + } + + return numStack.top(); +} + +// 生成表达式字符串(带括号显示优先级) +std::string generateExpressionString(const std::vector& numbers, const std::vector& operators) { + std::string expression = intToString(numbers[0]); + + for (size_t i = 0; i < operators.size(); ++i) { + expression += " "; + expression += operators[i]; + expression += " "; + expression += intToString(numbers[i + 1]); + } + + return expression; +} + +Question QuestionGenerator::generateElementaryQuestion() { + int operandCount = 2 + rand() % 2; // 2-3个操作数 + + std::vector numbers; + std::vector operators; + + // 生成第一个数字 + numbers.push_back(1 + rand() % 20); + + // 生成操作符和数字 + for (int i = 0; i < operandCount; ++i) { + char op; + int num = 1 + rand() % 15; + + // 根据情况选择操作符 + if (i == 0) { + // 第一个操作符随机选择 + op = "+-*/"[rand() % 4]; + } else { + // 后续操作符避免复杂组合 + if (operators[i-1] == '*' || operators[i-1] == '/') { + op = "+-"[rand() % 2]; // 乘除后接加减 + } else { + op = "+-*/"[rand() % 4]; + } + } + + // 特殊处理 + if (op == '/') { + // 确保能整除 + if (num == 0) num = 1; + // 调整被除数确保整除 + numbers[i] = numbers[i] * num; + } else if (op == '-') { + // 确保减法结果不为负 + // 先计算当前值 + int currentValue = calculateWithPriority(numbers, operators); + if (currentValue - num < 0) { + num = rand() % currentValue + 1; + } + } else if (op == '*') { + // 避免结果过大 + if (numbers[i] * num > 100) { + num = 2; + } + } + + operators.push_back(op); + numbers.push_back(num); + } + + // 计算正确结果 + int result = calculateWithPriority(numbers, operators); + + // 确保结果合理 + if (result <= 0 || result > 200) { + return generateElementaryQuestion(); // 重新生成 + } + + // 生成表达式 + std::string expression = generateExpressionString(numbers, operators); + std::string questionText = expression + " = ?"; + + if (isDuplicate(questionText)) { + return generateElementaryQuestion(); + } + + addToHistory(questionText); + + // 生成选项 + std::vector options; + int correctIndex = rand() % 4; + + // 生成3个错误答案 + std::vector wrongAnswers; + for (int i = 0; i < 3; ++i) { + int wrongAnswer; + int attempts = 0; + do { + attempts++; + if (attempts > 10) { + wrongAnswer = result + (i + 1) * 3; + break; + } + + int offset = (rand() % 10) + 2; + if (rand() % 2 == 0) { + wrongAnswer = result + offset; + } else { + wrongAnswer = result - offset; + if (wrongAnswer < 1) wrongAnswer = result + offset; + } + } while (wrongAnswer == result || + std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); + + wrongAnswers.push_back(wrongAnswer); + } + + // 构建选项 + for (int i = 0; i < 4; ++i) { + if (i == correctIndex) { + options.push_back(intToString(result)); + } else { + options.push_back(intToString(wrongAnswers[i > correctIndex ? i-1 : i])); + } + } + + // 调试输出 + std::cout << "小学题目: " << questionText << std::endl; + std::cout << "计算顺序: "; + for (size_t i = 0; i < numbers.size(); ++i) { + std::cout << numbers[i]; + if (i < operators.size()) { + std::cout << " " << operators[i] << " "; + } + } + std::cout << " = " << result << std::endl; + std::cout << "正确答案: " << result << std::endl; + std::cout << "------------------------" << std::endl; + + return Question(questionText, options, correctIndex); +} + +// 辅助函数:找到一个数的约数 +int QuestionGenerator::findDivisor(int number) { + if (number <= 1) return 1; + + for (int i = 2; i <= 10; ++i) { + if (number % i == 0) { + return i; + } + } + + return 1; +} +Question QuestionGenerator::generateMiddleSchoolQuestion() { + int type = rand() % 2; // 0: 平方题, 1: 开方题 + + if (type == 0) { + // 平方题 + int base = 2 + rand() % 15; // 2-16 + int coefficient = 1 + rand() % 5; + int result = coefficient * base * base; + + std::string questionText; + if (coefficient == 1) { + // 方案1: 使用Unicode上标 + // questionText = intToString(base) + "2 = ?"; + + // 方案2: 使用文本描述 + questionText = intToString(base) + "的平方 = ?"; + } else { + // questionText = intToString(coefficient) + " × " + intToString(base) + "2 = ?"; + questionText = intToString(coefficient) + " × " + intToString(base) + "的平方 = ?"; + } + + if (isDuplicate(questionText)) { + return generateMiddleSchoolQuestion(); + } + + addToHistory(questionText); + + // 生成选项 + std::vector options; + int correctIndex = rand() % 4; + + std::vector wrongAnswers; + for (int i = 0; i < 3; ++i) { + int wrongAnswer; + do { + int offset = (rand() % 20) + 5; + if (rand() % 2 == 0) { + wrongAnswer = result + offset; + } else { + wrongAnswer = result - offset; + if (wrongAnswer <= 0) wrongAnswer = result + offset; + } + } while (wrongAnswer == result || + std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); + + wrongAnswers.push_back(wrongAnswer); + } + + for (int i = 0; i < 4; ++i) { + if (i == correctIndex) { + options.push_back(intToString(result)); + } else { + options.push_back(intToString(wrongAnswers[i > correctIndex ? i-1 : i])); + } + } + + return Question(questionText, options, correctIndex); + } else { + // 开方题 + int base = 2 + rand() % 12; // 2-13 + int squared = base * base; + + // 方案1: 使用Unicode平方根符号 + // std::string questionText = "√(" + intToString(squared) + ") = ?"; + + // 方案2: 使用文本描述 + std::string questionText = "根号" + intToString(squared) + " = ?"; + + if (isDuplicate(questionText)) { + return generateMiddleSchoolQuestion(); + } + + addToHistory(questionText); + + // 生成选项 + std::vector options; + int correctIndex = rand() % 4; + + std::vector wrongAnswers; + for (int i = 0; i < 3; ++i) { + int wrongAnswer; + do { + wrongAnswer = base + (rand() % 5) - 2; // -2到+2的偏移 + if (wrongAnswer <= 0) wrongAnswer = 1; + } while (wrongAnswer == base || + std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); + + wrongAnswers.push_back(wrongAnswer); + } + + for (int i = 0; i < 4; ++i) { + if (i == correctIndex) { + options.push_back(intToString(base)); + } else { + options.push_back(intToString(wrongAnswers[i > correctIndex ? i-1 : i])); + } + } + + return Question(questionText, options, correctIndex); + } +} +Question QuestionGenerator::generateHighSchoolQuestion() { + const char* trigFunctions[] = {"sin", "cos", "tan"}; + const char* currentFunc = trigFunctions[rand() % 3]; + int angle = 0; + double result = 0.0; + + int commonAngles[] = {0, 30, 45, 60, 90}; + angle = commonAngles[rand() % 5]; + + double radian = angle * 3.14159 / 180.0; + if (std::string(currentFunc) == "sin") { + result = sin(radian); + } else if (std::string(currentFunc) == "cos") { + result = cos(radian); + } else { + if (angle == 90) angle = 45; + radian = angle * 3.14159 / 180.0; + result = tan(radian); + } + + result = round(result * 100) / 100.0; + + std::string questionText = std::string(currentFunc) + "(" + intToString(angle) + "°) = ?"; + + if (isDuplicate(questionText)) { + return generateHighSchoolQuestion(); + } + + addToHistory(questionText); + + std::vector options; + int correctIndex = rand() % 4; + + std::vector wrongAnswers; + for (int i = 0; i < 3; ++i) { + double wrongAnswer; + do { + double offset = (rand() % 20 + 5) / 100.0; + if (rand() % 2 == 0) { + wrongAnswer = result + offset; + } else { + wrongAnswer = result - offset; + if (wrongAnswer < -1.0) wrongAnswer = result + offset; + } + wrongAnswer = round(wrongAnswer * 100) / 100.0; + } while (wrongAnswer == result || + std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); + + wrongAnswers.push_back(wrongAnswer); + } + + for (int i = 0; i < 4; ++i) { + if (i == correctIndex) { + options.push_back(doubleToString(result)); + } else { + options.push_back(doubleToString(wrongAnswers[i > correctIndex ? i-1 : i])); + } + } + + return Question(questionText, options, correctIndex); +} + +bool QuestionGenerator::isDuplicate(const std::string& questionText) { + for (std::set::iterator it = questionHistory.begin(); it != questionHistory.end(); ++it) { + if (*it == questionText) { + return true; + } + } + return false; +} + +void QuestionGenerator::addToHistory(const std::string& questionText) { + questionHistory.insert(questionText); +} + +void QuestionGenerator::clearHistory() { + questionHistory.clear(); +} diff --git a/QuestionGenerator.h b/QuestionGenerator.h new file mode 100644 index 0000000..23c3e63 --- /dev/null +++ b/QuestionGenerator.h @@ -0,0 +1,29 @@ +#ifndef QUESTIONGENERATOR_H +#define QUESTIONGENERATOR_H + +#include "Question.h" +#include +#include +#include + +class QuestionGenerator { +public: + QuestionGenerator(const std::string& userType); + + std::vector generateQuestions(int count); + void clearHistory(); + +private: + std::string userType; + std::set questionHistory; + + Question generateElementaryQuestion(); + Question generateMiddleSchoolQuestion(); + Question generateHighSchoolQuestion(); + + int findDivisor(int number); + bool isDuplicate(const std::string& questionText); + void addToHistory(const std::string& questionText); +}; + +#endif diff --git a/QuestionGenerator.o b/QuestionGenerator.o new file mode 100644 index 0000000000000000000000000000000000000000..0247ebc2acff390b432b2778a2e8b4d877e652be GIT binary patch literal 481725 zcmeFa4R~DDb?-g0HAXnX8o)^v;v}bBmny`8(R@#E(+RQCAr(ZWGIgm#hD4zbb%`z! z)a5!$-_T6}bO( z_L@0s@3ozf+&=Gf-}mWx9%(+#Z`S{;{rz?J>AL616)_wSJhCiyUV`4$$1dyn*tQ;e z%SZQ5#$waw)x|bnye#}?PhBh)#5yXMb=}x=V--5fYbn+-b=gNg`AK;?l#yTHeJ{An zGxnDye9UC)V(lrT3)xtZ=%`$tDOg}5KJ|c;M=6mkU0zJfuVTdYg1e6GEyw4OYfW1Q zllXqfu@~yL=JV1Z*_(8@&|a!laWmk0T-{XG;sV$^;@AsyQ~6e@+kg*e9M0$#a+0I# zTLO2#tD8<*_9#9Ya(4KIy6INS9_cnaT&SB)r(E3t+=SA#BQC&?);ac!Zh@kpc93qn z!-cw;Rx5(Z-%fDPy1JQ+@E6q z^GOxX_4&G3%GJ%Mt@K=iy#%-pS2v%x;+J$gz{w-@w~(~Lg}BY&u6K0{cK!{(ZE@^{ z;asqFDV%pYT&P>r{*Hj#=IR#haPEe^z2F{Tt{$I5-C{w7Ut_`JZ)-9w6BhZ~4DLx+ zw>6oU5my4Y*0C4rwzjs)j7j#o94_>?wbjZX#C3x^rgU4aj7gEW9o#F-)zVdKDk-mz z?2UVMQ)!nw0Iojcr03R@l~74{+OcQ+O%&i{xBpaK>_O%zGZJ@sYdR<6w}S6G-%}TRENA?!r5Dsk zGT{f{_JjKta}>_Tk4#b)SmehMa3`3nl?SaEtAOqRHwSJ--ssYQ6MmVjYcKiJzI2)? z$byJ;*Mqx=?NxOzyVVYtS#V|7UaSM*lC{!l0Is=I7b~#6C|zZs)`=g6mScb_0;?CBfY->>1sZ@}mQsJdAG2Di0_=HiH{d zy6IM#UdZ1q;2vcz@;9B8H=VQ^M7`je!F@z

8^vl?_j_x5uZOZf%u*5VsFpudo-U1N1*+ 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 +#include +#include +#include // 添加iostream用于调试输出 + +HWND QuestionWindow::hwnd = NULL; +HWND QuestionWindow::hQuestionText = NULL; +HWND QuestionWindow::hOptions[4] = {NULL, NULL, NULL, NULL}; +HWND QuestionWindow::hNextButton = NULL; +HWND QuestionWindow::hProgress = NULL; + +std::vector QuestionWindow::questions; +int QuestionWindow::currentQuestion = 0; +int QuestionWindow::score = 0; + +void QuestionWindow::Show(const std::string& userType, int questionCount) { + // 如果窗口已存在,先销毁 + if (hwnd != NULL) { + DestroyWindow(hwnd); + hwnd = NULL; + } + + // 生成题目 - 使用传入的题目数量 + QuestionGenerator generator(userType); + questions = generator.generateQuestions(questionCount); + currentQuestion = 0; + score = 0; + + WNDCLASSEX wc; + memset(&wc, 0, sizeof(WNDCLASSEX)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.hInstance = GetModuleHandle(NULL); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wc.lpszClassName = "QuestionWindow"; + + RegisterClassEx(&wc); + + hwnd = CreateWindowEx(0, "QuestionWindow", "数学学习软件 - 答题", + WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, + CW_USEDEFAULT, CW_USEDEFAULT, 500, 400, + NULL, NULL, GetModuleHandle(NULL), NULL); + + if (!hwnd) { + MessageBox(NULL, "创建答题窗口失败", "错误", MB_OK | MB_ICONERROR); + return; + } + + CreateControls(); + LoadQuestion(); + + ShowWindow(hwnd, SW_SHOW); + UpdateWindow(hwnd); +} + +void QuestionWindow::CreateControls() { + // 进度显示 + hProgress = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_LEFT, + 10, 10, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 题目文本 + hQuestionText = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_LEFT | WS_BORDER, + 10, 50, 460, 60, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 选项按钮 + for (int i = 0; i < 4; i++) { + hOptions[i] = CreateWindow("BUTTON", "", WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON, + 10, 120 + i * 40, 460, 30, hwnd, (HMENU)(10 + i), + GetModuleHandle(NULL), NULL); + } + + // 下一题按钮 + hNextButton = CreateWindow("BUTTON", "下一题", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 200, 300, 100, 30, hwnd, (HMENU)20, GetModuleHandle(NULL), NULL); +} + +LRESULT CALLBACK QuestionWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + switch (msg) { + case WM_COMMAND: { + int cmd = LOWORD(wParam); + if (cmd == 20) { // 下一题按钮 + OnNextQuestion(); + } + break; + } + case WM_CLOSE: + DestroyWindow(hwnd); + SelectionWindow::Show(); // 关闭时返回选择界面 + break; + case WM_DESTROY: + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} + +void QuestionWindow::LoadQuestion() { + if (currentQuestion >= (int)questions.size()) { + ShowResult(); + return; + } + + Question& question = questions[currentQuestion]; + + // 更新进度 + std::stringstream progress; + progress << "进度: " << (currentQuestion + 1) << "/" << questions.size(); + SetWindowText(hProgress, progress.str().c_str()); + + // 设置题目文本 + SetWindowText(hQuestionText, question.getText().c_str()); + + // 设置选项 + std::vector options = question.getOptions(); + + // 调试输出:显示正确答案(在控制台) + std::cout << "题目 " << (currentQuestion + 1) << ": " << question.getText() << std::endl; + std::cout << "正确答案: 选项" << (question.getCorrectAnswer() + 1) + << " - " << options[question.getCorrectAnswer()] << std::endl; + std::cout << "所有选项: "; + for (int i = 0; i < 4; i++) { + std::cout << "[" << (i+1) << "]" << options[i] << " "; + } + std::cout << std::endl << std::endl; + + for (int i = 0; i < 4; i++) { + if (i < (int)options.size()) { + SetWindowText(hOptions[i], options[i].c_str()); + } + SendMessage(hOptions[i], BM_SETCHECK, BST_UNCHECKED, 0); + } + + if (currentQuestion == (int)questions.size() - 1) { + SetWindowText(hNextButton, "提交"); + } +} + +void QuestionWindow::OnNextQuestion() { + // 检查当前选择的答案 + int selectedAnswer = -1; + for (int i = 0; i < 4; i++) { + if (SendMessage(hOptions[i], BM_GETCHECK, 0, 0) == BST_CHECKED) { + selectedAnswer = i; + break; + } + } + + if (selectedAnswer == -1) { + MessageBox(hwnd, "请选择一个答案", "提示", MB_OK | MB_ICONINFORMATION); + return; + } + + // 检查答案 + if (questions[currentQuestion].checkAnswer(selectedAnswer)) { + score++; + std::cout << "第" << (currentQuestion + 1) << "题回答正确!" << std::endl; + } else { + std::cout << "第" << (currentQuestion + 1) << "题回答错误!" << std::endl; + } + + currentQuestion++; + LoadQuestion(); +} +void QuestionWindow::ShowResult() { + std::stringstream result; + int total = questions.size(); + int percentage = (total > 0) ? (score * 100 / total) : 0; + + result << "答题完成!\n得分: " << score << "/" << total + << "\n正确率: " << percentage << "%\n\n" + << "请选择:\n" + << "是 - 返回选择界面\n" + << "否 - 结束程序"; + + // 显示带有选项的消息框 + int choice = MessageBox(hwnd, result.str().c_str(), "答题结果", + MB_YESNO | MB_ICONINFORMATION | MB_DEFBUTTON1); + + DestroyWindow(hwnd); + hwnd = NULL; + + if (choice == IDYES) { + // 用户选择"是" - 继续做题,返回选择界面 + SelectionWindow::Show(); + } else { + // 用户选择"否" - 退出程序 + PostQuitMessage(0); + } +} diff --git a/QuestionWindow.h b/QuestionWindow.h new file mode 100644 index 0000000..dcb836e --- /dev/null +++ b/QuestionWindow.h @@ -0,0 +1,32 @@ +#ifndef QUESTIONWINDOW_H +#define QUESTIONWINDOW_H + +#include +#include +#include +#include "Question.h" + +class QuestionWindow { +public: + static void Show(const std::string& userType, int questionCount); + static HWND GetHandle() { return hwnd; } + +private: + static HWND hwnd; + static HWND hQuestionText; + static HWND hOptions[4]; + static HWND hNextButton; + static HWND hProgress; + + static std::vector questions; + static int currentQuestion; + static int score; + + static void CreateControls(); + static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); + static void LoadQuestion(); + static void OnNextQuestion(); + static void ShowResult(); +}; + +#endif diff --git a/QuestionWindow.o b/QuestionWindow.o new file mode 100644 index 0000000000000000000000000000000000000000..8c967381486f0c0d8eff045a902cbd6debc8fc1e GIT binary patch literal 154237 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 Npyn5Y&VxMB{{b~)h%*2H literal 0 HcmV?d00001 diff --git a/RegisterWindow.cpp b/RegisterWindow.cpp new file mode 100644 index 0000000..e181dfd --- /dev/null +++ b/RegisterWindow.cpp @@ -0,0 +1,225 @@ +#include "RegisterWindow.h" +#include "UserManager.h" +#include "LoginWindow.h" +#include +#include +#include + +HWND RegisterWindow::hwnd = NULL; +HWND RegisterWindow::hEmail = NULL; +HWND RegisterWindow::hCode = NULL; +HWND RegisterWindow::hPassword = NULL; +HWND RegisterWindow::hConfirmPassword = NULL; +HWND RegisterWindow::hMessage = NULL; +std::string RegisterWindow::generatedCode = ""; + +void RegisterWindow::Show() { + // 如果窗口已存在,先销毁 + if (hwnd != NULL) { + DestroyWindow(hwnd); + hwnd = NULL; + } + + WNDCLASSEX wc; + memset(&wc, 0, sizeof(WNDCLASSEX)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.hInstance = GetModuleHandle(NULL); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wc.lpszClassName = "RegisterWindow"; + + RegisterClassEx(&wc); + + hwnd = CreateWindowEx(0, "RegisterWindow", "数学学习软件 - 注册", + WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, + CW_USEDEFAULT, CW_USEDEFAULT, 400, 450, + NULL, NULL, GetModuleHandle(NULL), NULL); + + if (!hwnd) { + MessageBox(NULL, "创建注册窗口失败", "错误", MB_OK | MB_ICONERROR); + return; + } + + CreateControls(); + + ShowWindow(hwnd, SW_SHOW); + UpdateWindow(hwnd); +} + +void RegisterWindow::CreateControls() { + // 标题 + CreateWindow("STATIC", "用户注册", WS_VISIBLE | WS_CHILD | SS_CENTER, + 10, 20, 360, 30, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 邮箱标签和输入框 + CreateWindow("STATIC", "邮箱:", WS_VISIBLE | WS_CHILD, + 50, 70, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hEmail = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, + 100, 70, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 获取验证码按钮 + CreateWindow("BUTTON", "获取验证码", WS_VISIBLE | WS_CHILD, + 100, 110, 200, 30, hwnd, (HMENU)1, GetModuleHandle(NULL), NULL); + + // 验证码标签和输入框 + CreateWindow("STATIC", "验证码:", WS_VISIBLE | WS_CHILD, + 50, 160, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hCode = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, + 100, 160, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 密码标签和输入框 + CreateWindow("STATIC", "密码:", WS_VISIBLE | WS_CHILD, + 50, 200, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hPassword = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD, + 100, 200, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 确认密码标签和输入框 + CreateWindow("STATIC", "确认密码:", WS_VISIBLE | WS_CHILD, + 30, 230, 70, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hConfirmPassword = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD, + 100, 230, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 密码要求提示 + CreateWindow("STATIC", "密码要求: 6-10位,包含大小写字母和数字", + WS_VISIBLE | WS_CHILD | SS_CENTER, + 50, 260, 300, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 注册按钮 + CreateWindow("BUTTON", "注册", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 300, 80, 30, hwnd, (HMENU)2, GetModuleHandle(NULL), NULL); + + // 返回按钮 + CreateWindow("BUTTON", "返回", WS_VISIBLE | WS_CHILD, + 200, 300, 80, 30, hwnd, (HMENU)3, GetModuleHandle(NULL), NULL); + + // 消息标签 + hMessage = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_CENTER, + 50, 340, 300, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); +} + +LRESULT CALLBACK RegisterWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + switch (msg) { + case WM_COMMAND: { + int cmd = LOWORD(wParam); + if (cmd == 1) { // 获取验证码 + OnGetCode(); + } else if (cmd == 2) { // 注册按钮 + OnRegister(); + } else if (cmd == 3) { // 返回按钮 + OnBack(); + } + break; + } + case WM_CLOSE: + DestroyWindow(hwnd); + LoginWindow::Show(); + break; + case WM_DESTROY: + // 不在WM_DESTROY中调用PostQuitMessage + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} + +void RegisterWindow::OnGetCode() { + char email[100]; + GetWindowText(hEmail, email, sizeof(email)); + + std::string strEmail(email); + + if (strEmail.empty()) { + SetWindowText(hMessage, "请输入邮箱地址"); + return; + } + + UserManager& userManager = UserManager::getInstance(); + if (!userManager.validateEmailFormat(strEmail)) { + SetWindowText(hMessage, "邮箱格式不正确"); + return; + } + + if (userManager.isEmailRegistered(strEmail)) { + SetWindowText(hMessage, "该邮箱已注册"); + return; + } + + // 显示发送中提示 + SetWindowText(hMessage, "正在发送验证码,请稍候..."); + + // 生成并发送验证码(不显示在界面上) + generatedCode = userManager.generateRegistrationCode(strEmail); + + if (!generatedCode.empty()) { + SetWindowText(hMessage, "验证码已发送到您的邮箱,请查收!"); + // 清空验证码输入框,让用户手动输入 + SetWindowText(hCode, ""); + // 设置焦点到验证码输入框 + SetFocus(hCode); + } else { + SetWindowText(hMessage, "邮件发送失败,请检查邮箱地址或重试"); + generatedCode = ""; // 清空验证码 + } +} + +void RegisterWindow::OnRegister() { + char email[100], code[100], password[100], confirmPassword[100]; + GetWindowText(hEmail, email, sizeof(email)); + GetWindowText(hCode, code, sizeof(code)); + GetWindowText(hPassword, password, sizeof(password)); + GetWindowText(hConfirmPassword, confirmPassword, sizeof(confirmPassword)); + + std::string strEmail(email); + std::string strCode(code); + std::string strPassword(password); + std::string strConfirmPassword(confirmPassword); + + // 验证输入 + if (strEmail.empty() || strCode.empty() || strPassword.empty() || strConfirmPassword.empty()) { + SetWindowText(hMessage, "请填写所有字段"); + return; + } + + // 验证验证码 + if (strCode != generatedCode) { + SetWindowText(hMessage, "验证码不正确"); + return; + } + + // 验证密码一致性 + if (strPassword != strConfirmPassword) { + SetWindowText(hMessage, "两次输入的密码不一致"); + return; + } + + UserManager& userManager = UserManager::getInstance(); + + // 验证密码格式 + if (!userManager.validatePasswordFormat(strPassword)) { + SetWindowText(hMessage, "密码格式不符合要求"); + return; + } + + // 注册用户 + if (registerUserWithPassword(strEmail, strPassword)) { + SetWindowText(hMessage, "注册成功!正在跳转到登录页面..."); + Sleep(2000); // 等待2秒显示成功消息 + OnBack(); + } else { + SetWindowText(hMessage, "注册失败,请重试"); + } +} + +bool RegisterWindow::registerUserWithPassword(const std::string& email, const std::string& password) { + UserManager& userManager = UserManager::getInstance(); + return userManager.registerUserWithPassword(email, password); +} + +void RegisterWindow::OnBack() { + DestroyWindow(hwnd); + hwnd = NULL; // 重置窗口句柄 + LoginWindow::Show(); +} diff --git a/RegisterWindow.h b/RegisterWindow.h new file mode 100644 index 0000000..2d8dcc2 --- /dev/null +++ b/RegisterWindow.h @@ -0,0 +1,30 @@ +#ifndef REGISTERWINDOW_H +#define REGISTERWINDOW_H + +#include +#include + +class RegisterWindow { +public: + static void Show(); + static HWND GetHandle() { return hwnd; } + +private: + static HWND hwnd; + static HWND hEmail; + static HWND hCode; + static HWND hPassword; + static HWND hConfirmPassword; + static HWND hMessage; + + static std::string generatedCode; + + static void CreateControls(); + static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); + static void OnGetCode(); + static void OnRegister(); + static void OnBack(); + static bool registerUserWithPassword(const std::string& email, const std::string& password); +}; + +#endif diff --git a/RegisterWindow.o b/RegisterWindow.o new file mode 100644 index 0000000000000000000000000000000000000000..9ff9c5dee5da575ca06fe0e21e9a4e719a580207 GIT binary patch literal 13399 zcmc&*4Rlmhe!r8+kSKnHRS{Ubj&2r1E6EImKycNBFfh>svP>ctmVFtLAsL&@r1JrR zQ!SWHPp53w^z72@+13vh7q*smSq$YPU?Wh8Q6V5gP8wzJ$O?^@E3?}sN zYf!!nIrCMP=PD~Iooc28$qhj+`!=TSC`hg_VojtEj@}t*Pt=qZwp-!4O|XJ71F z22MP$qv1jC0msGR;bAG#<=IlcqXux7tR|j6MWtjCo-GGFJ=9I!F2_&~iiBs!PASIr zVJYG1-zEN1h%|c0d%*KHbsco2O2YGj7tXw=Ui*fIf0xhUs@ZKZ?m57ja+wL zjk0_v$Qp!RiVE_bg~IB`TDx?w= zz0!monVlmy1Nk`}jo!mZj_7E^c?gX(u?*)j9&FJl)8bakDgJe* zYs~jp*LoDz?5wrV zUBvR9_(fi6j;Z0@{1teGiBzuRQ9+I_qlarV^{~EMrr#O72}c20>)2nPx=XpdiR!#W z-MFfR$61xAE?Das*Ks~CcJJL|U^|x6aXu>+OnSU)Jb*H-80x4YrNQxF!(Z-XoFuB~&zMP=f}%ETbu5lv#r zQQbR85&^oF?5p$PTtjtl*XI1yD0k8%hRs|my6T=PPxPB_z&K~zin{dW?W(?&M8M@$ zN->=_i+J)3@gMfZ@?p3@8ouc_RG1Ddy{L=Ri_jfxB;hH5ZDfa1_t)`(&1$1Bqm8k! zF;dm4cPOLYo5ZU4-WVZ+B%MeY0o4^)lXcR3?z+|m1tWh@Mi-@c4!<(x;`~S#YaO)x z@^ZzFQ{8_^h?IR%3=M?GT4p-o2aIP`ShaYo)_y|~F5H<0t#tH*iQ zdd}k}2$e{Cd8xH8d~VV|~2U7Nsf2{MG_H)U6vOr!>gVwi!BFyh-q4(SP2 zoN9!=9%8rYG9>9#LOn*u67�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 literal 0 HcmV?d00001 diff --git a/SelectionWindow.cpp b/SelectionWindow.cpp new file mode 100644 index 0000000..337ed7f --- /dev/null +++ b/SelectionWindow.cpp @@ -0,0 +1,161 @@ +#include "SelectionWindow.h" +#include "QuestionWindow.h" +#include "LoginWindow.h" +#include "UserManager.h" +#include + +HWND SelectionWindow::hwnd = NULL; +HWND SelectionWindow::hQuestionCount = NULL; + +void SelectionWindow::Show() { + // 如果窗口已存在,先销毁 + if (hwnd != NULL) { + DestroyWindow(hwnd); + hwnd = NULL; + } + + WNDCLASSEX wc; + memset(&wc, 0, sizeof(WNDCLASSEX)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.hInstance = GetModuleHandle(NULL); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wc.lpszClassName = "SelectionWindow"; + + RegisterClassEx(&wc); + + hwnd = CreateWindowEx(0, "SelectionWindow", "数学学习软件 - 选择难度", + WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, + CW_USEDEFAULT, CW_USEDEFAULT, 400, 350, + NULL, NULL, GetModuleHandle(NULL), NULL); + + if (!hwnd) { + MessageBox(NULL, "创建选择窗口失败", "错误", MB_OK | MB_ICONERROR); + return; + } + + CreateControls(); + + ShowWindow(hwnd, SW_SHOW); + UpdateWindow(hwnd); +} + +void SelectionWindow::CreateControls() { + // 标题 + CreateWindow("STATIC", "请选择题目难度", WS_VISIBLE | WS_CHILD | SS_CENTER, + 10, 20, 360, 30, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 题目数量输入 + CreateWindow("STATIC", "题目数量 (10-30):", WS_VISIBLE | WS_CHILD, + 50, 60, 120, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hQuestionCount = CreateWindow("EDIT", "10", WS_VISIBLE | WS_CHILD | WS_BORDER, + 180, 60, 60, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 小学按钮 + CreateWindow("BUTTON", "小学题目", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 100, 200, 40, hwnd, (HMENU)1, GetModuleHandle(NULL), NULL); + + // 初中按钮 + CreateWindow("BUTTON", "初中题目", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 150, 200, 40, hwnd, (HMENU)2, GetModuleHandle(NULL), NULL); + + // 高中按钮 + CreateWindow("BUTTON", "高中题目", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 200, 200, 40, hwnd, (HMENU)3, GetModuleHandle(NULL), NULL); + + // 退出登录按钮 + CreateWindow("BUTTON", "退出登录", WS_VISIBLE | WS_CHILD, + 150, 260, 100, 30, hwnd, (HMENU)4, GetModuleHandle(NULL), NULL); +} + +LRESULT CALLBACK SelectionWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + switch (msg) { + case WM_COMMAND: { + int cmd = LOWORD(wParam); + if (cmd == 1) { // 小学题目 + OnElementarySelected(); + } else if (cmd == 2) { // 初中题目 + OnMiddleSchoolSelected(); + } else if (cmd == 3) { // 高中题目 + OnHighSchoolSelected(); + } else if (cmd == 4) { // 退出登录 + OnLogout(); + } + break; + } + case WM_CLOSE: + DestroyWindow(hwnd); + LoginWindow::Show(); // 关闭选择窗口时返回登录界面 + break; + case WM_DESTROY: + // 不在WM_DESTROY中调用PostQuitMessage + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} + +bool SelectionWindow::validateQuestionCount() { + int count = getQuestionCount(); + if (count < 10 || count > 30) { + MessageBox(hwnd, "题目数量必须在10-30之间", "输入错误", MB_OK | MB_ICONWARNING); + SetFocus(hQuestionCount); + return false; + } + return true; +} + +int SelectionWindow::getQuestionCount() { + char countText[10]; + GetWindowText(hQuestionCount, countText, sizeof(countText)); + + // 转换为整数 + int count = atoi(countText); + if (count <= 0) { + count = 10; // 默认值 + } + return count; +} + +void SelectionWindow::OnElementarySelected() { + if (!validateQuestionCount()) { + return; + } + + int questionCount = getQuestionCount(); + DestroyWindow(hwnd); + hwnd = NULL; + QuestionWindow::Show("elementary", questionCount); +} + +void SelectionWindow::OnMiddleSchoolSelected() { + if (!validateQuestionCount()) { + return; + } + + int questionCount = getQuestionCount(); + DestroyWindow(hwnd); + hwnd = NULL; + QuestionWindow::Show("middle", questionCount); +} + +void SelectionWindow::OnHighSchoolSelected() { + if (!validateQuestionCount()) { + return; + } + + int questionCount = getQuestionCount(); + DestroyWindow(hwnd); + hwnd = NULL; + QuestionWindow::Show("high", questionCount); +} + +void SelectionWindow::OnLogout() { + UserManager::getInstance().logout(); + DestroyWindow(hwnd); + hwnd = NULL; + LoginWindow::Show(); +} diff --git a/SelectionWindow.h b/SelectionWindow.h new file mode 100644 index 0000000..2184726 --- /dev/null +++ b/SelectionWindow.h @@ -0,0 +1,25 @@ +#ifndef SELECTIONWINDOW_H +#define SELECTIONWINDOW_H + +#include + +class SelectionWindow { +public: + static void Show(); + static HWND GetHandle() { return hwnd; } + +private: + static HWND hwnd; + static HWND hQuestionCount; + + static void CreateControls(); + static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); + static void OnElementarySelected(); + static void OnMiddleSchoolSelected(); + static void OnHighSchoolSelected(); + static void OnLogout(); + static bool validateQuestionCount(); + static int getQuestionCount(); +}; + +#endif diff --git a/SelectionWindow.o b/SelectionWindow.o new file mode 100644 index 0000000000000000000000000000000000000000..0da6ed0f39979298b04f7f04dd904d28f2633746 GIT binary patch literal 6388 zcmc(k0dN%68OPsoIY2;+wRS))Jtf%ChHw`n21ji|vbq@(2qagSQW}ojl3eFwcVNA`@R47eeZkk?c063o6wWf1RWpTEW|yM@!~MC0m=zbmVFQB8KtkA z%RogFV|Hf!;pdPQw~WkK?WJtZY+)WRX)ldgEvoLxvUcmqz76Y7Sl5$J zPu1q90&{9onztrZTiB`1NnXk~YaYBAjhfSvm!_DT)2sDP&3n^tkEOKB$;U3c64OS! zu%;KFG6j`CQDqJ)Zd9JZX-UsSB`@I_S%uk3-=}xh=37_k*x(5ICDQYu73!S5|HFOHb`SNS^4dFLU+#M%F>&ZrreaDzePmUSTy|amWW77WPjltn1dFQ;~Ix zgxmCSlFX3y97O-EME0y4qT7NU(G|E@ks5Hc)rDKIb%W>Lh{vb(YnLgiQ@hNa4%F+( z(K5a3K*0{kBTKPQBrm$2IA(hOwvU8v2r2D=)qO|vj$P#?JCoiOcnLTDpJBEzKH6n$ zOK0E!8SLsfRt=ZtK-Ho0O2!?`IDUC$ z+&IK%8^=5UvvJVVNpjRHuO$0yU3(QtS303yoX_s=dLv>qnc-M;O*k5gZ4sxg4DBD< z|6b3)$49Pu7kP*Fo%u)K(CY)D_v3f}DSCU~c#)Leo}=%d+TZhm=ucDiosasCN~ijU ziiYY+LG@Etjvw_F`hAP;@h!Yx_{mPzf_UKt)tpLt)lc=lIE&I@$B)rgwG_N}5d912AY(GqTM!OS}j z*UUW6OxIULp4(ODn(p>Y{|%84l2>1w=g!XCJ=;BX;}jo72r)M1nmfBlh)tdsTq5E5 zu}kc95gvBYBbg9iw7=|g3HO=uJxw<&9O#HRk8Ob-U#WZwk5hBNKSKF${1t$yd>GxN z8zYrB;uV0N31*}G1O6i5vnZd#jd3sdd6a*~A1&oaDl6~z7Mh{fC8dk}3%#YqON;5D zMIEz2`S{Bdw<)5WcSwyM{@AL63Z+JS{#PaK#xHGRdE#08eo4{+{C-Um-PqXg28@xd z`HJoUd8OY15a*zG7N&tY{aABf3Exu@}S<7nI+qqDvr-aA7lLzZ*duJ6CBNLENjb zq6COzlOT@R1L9VOmEVVo(jbob6vPo8tS*jN0pc71ML`fp#6TSJD2OBal;3GZe*|&F zx3NBXy{rc<6tp590~JVm1;nkq3F5qOD|!!fr}P_EejkArNNomIJICG*x?5@sLEn(n zrmWjQ+=Hajo(6qW`n>?+yf1@_q;>>Et2<8&fQluZ0WFqvL1~{T&4nw>C#_{5?$t67 z=UuL}bs)~$3gWy85a)dY#Cf|xoOdsX^S-RKH(H>L4G;%UxP{{y$<5O90PG*PAcv9AYKPLyuXe= zx1e_?rWX|fu&yeW*GkdLeQ7}4w^zR6ND#e550 zxc;U{pN!3>Zvkj;kv>w~gkRcWGRht(w9jOeH=xjNlTrQ(h4!3`atm6eohPF#gF^dH zMu|b8U5J(J?^7@cw~KbCHc;ls{x*eMC44eAo3g)4;kE`JS{KeE`R--j;n05>)bewkh z1kD(Iy08x0=PwQ)GG5G4-0FncQFrAiMLEjS97WGjS{%wQ)Ob}DY}>X?jC<%VZfa{2 zjo(?}zjvIWw7w;_McX`~&0kvCZUjxEG8Q%4W0CkIZuhN;hU(g5OVe& z?U=B=69494B#e)z#;Sx7r#FJiSR!gp(yV_;vteG3V~KBNR8vptJU$~dNvkC#E2FjY zS-!rhB^HbPH+QtHq&*>S`!O~DiiJTSi7yPHk!k6(`c`Z1mkh7!S#etvAN3HCi96Zqh3Kd~)mKpt|KvtCvez#+BN0$9Xsu z4)HLV>*G~+EH%WHKy(XUOdD4l@kFb^$pdkty*3!dB((eeSccWnxEYK#8P=lmXW5rT H>{I?9yn;1X literal 0 HcmV?d00001 diff --git a/User.cpp b/User.cpp new file mode 100644 index 0000000..7cb129e --- /dev/null +++ b/User.cpp @@ -0,0 +1,24 @@ +#include "User.h" + +User::User(const std::string& email, const std::string& password, const std::string& userType) + : email(email), password(password), userType(userType) {} + +std::string User::getEmail() const { + return email; +} + +std::string User::getPassword() const { + return password; +} + +std::string User::getUserType() const { + return userType; +} + +void User::setPassword(const std::string& newPassword) { + password = newPassword; +} + +bool User::validatePassword(const std::string& password) const { + return this->password == password; +} diff --git a/User.h b/User.h new file mode 100644 index 0000000..c52848a --- /dev/null +++ b/User.h @@ -0,0 +1,23 @@ +#ifndef USER_H +#define USER_H + +#include + +class User { +public: + User(const std::string& email, const std::string& password, const std::string& userType); + + std::string getEmail() const; + std::string getPassword() const; + std::string getUserType() const; + void setPassword(const std::string& newPassword); + + bool validatePassword(const std::string& password) const; + +private: + std::string email; + std::string password; + std::string userType; +}; + +#endif diff --git a/User.o b/User.o new file mode 100644 index 0000000000000000000000000000000000000000..5ef308ff21b51053085c6b455301c212a96b7011 GIT binary patch literal 3971 zcmc&%O>7%Q6rRo6ts7`D2ueT*`H+GG#mPEuekzJg-4$z+6qBtXq6(Xhy-h5|iSas( z6A39IDv}i{EN(~~;no949I6VTKq}N@#i{hf1u0TEaNqzO2;ZC8KgT&Zm++LGdHcQZ zy?Hb9X2&Uh{3s*&`50qoxfWuHnpLlHT{IPmu|M(jhQ<3M=wd84lPH=sGr&7YO|#rq zV%D|~vIVhq@cL6hgt0VUi!x)MIpZP)7K`R)`coq#9r!$Wb*wQ7b$lMl zb3+_(nkf1m@PfkUF*tlKh|xU$0`FTVo;#2J)M(2J#=r|Xxw-z>k91zwHhzz5H*fW> z1J)W7TUsN3Z@i)2A8$-N&^FaAZ8LvQYy7Z7Ui|&07D0bsYy23*qQD-w*zSPV*yiMo zt%&QqE4!c@tpNuSxT$U2jbEMKZsxVdZ^$TyOrpr72SIueRok41x}!zGjZJSK$mGKv zf{igcWJfhIZ_0*eLMbDSgEDU8I@D&fjg6I#VTJLiJ=q2=sy|f`A5H<0B62vA49QZC z_Jc7+bnKZ^p&O^w>Q2%RgR^9v9ywz!dgE-{!t1~)XM6yKH z=!=`-NwKLscfoO-KqXG_hCYsWSt_D!O)7XhQ#HtvhL-N+RypsC)eTsdsA_$2^ZCZ% z(5f7i4|&9CLJ*pfEIq~b{mr1mVT@{{Y?TXTuL|92d9#H>5#DV>%r>ObhJ4tDY_=eu zxyC+)}lGPU>T)r*(tlK*I+E!2IZQ)VyMH0aot>4w$xd5$S`WF z6-%8Q(`U2#ps{~SfK=Tii>m4w!=KL)59_YX5f59X->SW9Yiozv^v+5HtQ37zGf7%~ zTUQMHF%MPtp<|ppGH2D)vRPVCuM<^(iUKre+V;v)wb*8$F|N=aa}ORxQS5*NjUEU# zgxV-!-j)}U6Wppl+8y}c>bs-E?N((+Wd8rr(H~eh$D`f1gnx4IU8>iOidD6j7ExKX zRl~OC2dLn5J0q%Gyj)VKMDvR)rNyE#Y1zwVOBhU@p9Nl{x}CC1Yfdqva8q +#include +#include +#include +#include +#include +#include +#include +#include + +UserManager::UserManager() { + currentUser = NULL; + srand(static_cast(time(NULL))); + loadUsers(); +} + +UserManager& UserManager::getInstance() { + static UserManager instance; + return instance; +} + +bool UserManager::validateEmailFormat(const std::string& email) { + size_t atPos = email.find('@'); + size_t dotPos = email.find('.'); + return atPos != std::string::npos && dotPos != std::string::npos && atPos < dotPos; +} + +bool UserManager::validatePasswordFormat(const std::string& password) { + if (password.length() < 6 || password.length() > 10) return false; + + bool hasUpper = false, hasLower = false, hasDigit = false; + for (size_t i = 0; i < password.length(); ++i) { + char c = password[i]; + if (isupper(c)) hasUpper = true; + if (islower(c)) hasLower = true; + if (isdigit(c)) hasDigit = true; + } + + return hasUpper && hasLower && hasDigit; +} + +std::string UserManager::generateRandomCode(int length) { + const std::string chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + std::string code; + + for (int i = 0; i < length; ++i) { + code += chars[rand() % chars.size()]; + } + return code; +} + +bool UserManager::sendEmail(const std::string& email, const std::string& code) { + // 使用EmailSender类发送邮件 + return EmailSender::sendVerificationCode(email, code); +} + +std::string UserManager::generateRegistrationCode(const std::string& email) { + std::string code = generateRandomCode(6); // 6位验证码 + + // 发送邮件 + if (sendEmail(email, code)) { + return code; + } else { + return ""; // 发送失败返回空字符串 + } +} + +bool UserManager::registerUser(const std::string& email) { + if (isEmailRegistered(email)) return false; + + std::string defaultPassword = "Temp123"; + users.push_back(User(email, defaultPassword, "elementary")); + saveUsers(); + return true; +} + +bool UserManager::registerUserWithPassword(const std::string& email, const std::string& password) { + if (isEmailRegistered(email)) return false; + + // 验证密码格式 + if (!validatePasswordFormat(password)) { + return false; + } + + users.push_back(User(email, password, "elementary")); + saveUsers(); + return true; +} + +bool UserManager::login(const std::string& email, const std::string& password) { + for (size_t i = 0; i < users.size(); ++i) { + User& user = users[i]; + if (user.getEmail() == email && user.validatePassword(password)) { + currentUser = &user; + return true; + } + } + return false; +} + +bool UserManager::changePassword(const std::string& email, const std::string& oldPassword, const std::string& newPassword) { + for (size_t i = 0; i < users.size(); ++i) { + User& user = users[i]; + if (user.getEmail() == email && user.validatePassword(oldPassword)) { + if (validatePasswordFormat(newPassword)) { + user.setPassword(newPassword); + saveUsers(); + return true; + } + } + } + return false; +} + +bool UserManager::isEmailRegistered(const std::string& email) { + for (size_t i = 0; i < users.size(); ++i) { + const User& user = users[i]; + if (user.getEmail() == email) { + return true; + } + } + return false; +} + +void UserManager::loadUsers() { + std::ifstream file("data/users.txt"); + if (!file) return; + + std::string line; + while (std::getline(file, line)) { + size_t pos1 = line.find(','); + size_t pos2 = line.find(',', pos1 + 1); + + if (pos1 != std::string::npos && pos2 != std::string::npos) { + std::string email = line.substr(0, pos1); + std::string password = line.substr(pos1 + 1, pos2 - pos1 - 1); + std::string userType = line.substr(pos2 + 1); + + users.push_back(User(email, password, userType)); + } + } +} + +void UserManager::saveUsers() { + // 创建数据目录 + CreateDirectory("data", NULL); + + std::ofstream file("data/users.txt"); + for (size_t i = 0; i < users.size(); ++i) { + const User& user = users[i]; + file << user.getEmail() << "," << user.getPassword() << "," << user.getUserType() << "\n"; + } +} + +User* UserManager::getCurrentUser() { + return currentUser; +} + +void UserManager::logout() { + currentUser = NULL; +} diff --git a/UserManager.h b/UserManager.h new file mode 100644 index 0000000..b8a05fd --- /dev/null +++ b/UserManager.h @@ -0,0 +1,36 @@ +#ifndef USERMANAGER_H +#define USERMANAGER_H + +#include "User.h" +#include +#include + +class UserManager { +public: + static UserManager& getInstance(); + + bool registerUser(const std::string& email); + bool registerUserWithPassword(const std::string& email, const std::string& password); + bool login(const std::string& email, const std::string& password); + bool changePassword(const std::string& email, const std::string& oldPassword, const std::string& newPassword); + User* getCurrentUser(); + void logout(); + + // 修改方法签名,添加email参数 + std::string generateRegistrationCode(const std::string& email); + std::string generateRandomCode(int length); + bool isEmailRegistered(const std::string& email); + bool validatePasswordFormat(const std::string& password); + bool validateEmailFormat(const std::string& email); + + void loadUsers(); + void saveUsers(); + +private: + UserManager(); + std::vector users; + User* currentUser; + bool sendEmail(const std::string& email, const std::string& code); +}; + +#endif diff --git a/UserManager.o b/UserManager.o new file mode 100644 index 0000000000000000000000000000000000000000..9c5947938ad012845bc4b36d328f8aaaa0d506bc GIT binary patch literal 59884 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
Z0?1Kz4YuY3Fp?; z8xzh0;}QqUoW0``FO@lOjZ5qZG6?xj zf|i@2=Sr`h%mwG;d?c25Ax`f3hq&`}EOB4l`Ip#&&2i_^aYPS}BmPgv5oTi?5?_i_ zJ=1kwKCQN6*9V&>JC@N6fj&3jO5)mxYdl&r%{A!rR$Q||(`PR_o`s-`_*{!wV>|Kj zc|WeZK+|Wj4Cfw%!6&UZ_JF3(aah<*f(-hMl|v5E_&g8$VALVf=fC5kF=Ys!cTd23 znxOB&=j~{u)alXZUAXQ5O`qS!H2|7EpU1TYG=0V_Y-iYs%CS6w}O&fII7J~pp;e#?Su7hZQgzR^+W>;}*& zEH88xRuo%%);jbW|Fo68g`VE2MSSB$z14rAGu~NMpqu;Ekx!E++GayGH#gDt20k%wRr@idRdLLiTEZ5p%3DajCe$Vx zof*i}%{ouFgyo6H8H}*X6dGwOa`n54X;@(~=S=b%NVxJ`e-rJ7qU4&&4}1WNEj`}R z*q22DmXE4TBZZ*#~^d}Nn3jG6v{ z#F?`@du-$^!Qxoxg*#>&}r-Ux%9`sj~?3 zCE5k=ywa{KZH#i|wrjHAw-?yDOqqxr-oce@2gR8z4fy4n_aH+0l)jeTsLr@t?}6Tp zmdPE9w;v@wniH^Ae>?U*HN^L)dAl@`Vi^uCu!>| ze4_yI$$H|Wd<2hYbzG$U=l2~3FBN1ruiLa?wVS6l@RYBTy62m?aT^jq4KdKg<@Php zAa5_IA*vTd3nU1(^RQcNS*J1GS`3L?xEC0=TcFPWpw%0AB55s1^2|cemHpaH81`rP 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 D^?sWu literal 0 HcmV?d00001 diff --git a/data/users.txt b/data/users.txt new file mode 100644 index 0000000..f9fec4e --- /dev/null +++ b/data/users.txt @@ -0,0 +1,2 @@ +1853439381@qq.com,Temp123,elementary +2470975401@qq.com,123456QWe,elementary diff --git a/email_send.log b/email_send.log new file mode 100644 index 0000000..ee87946 --- /dev/null +++ b/email_send.log @@ -0,0 +1,3 @@ +? 成功发送验证码到: 3675658020@qq.com | 验证码: OP9R0N | 时间: 22:45:10 +? 成功发送验证码到: 3675658020@qq.com | 验证码: B3XMEI | 时间: 22:45:10 +? 成功发送验证码到: 3675658020@qq.com | 验证码: BG5ZSN | 时间: 22:45:10 diff --git a/email_send_log.txt b/email_send_log.txt new file mode 100644 index 0000000..b5541d0 --- /dev/null +++ b/email_send_log.txt @@ -0,0 +1,13 @@ +=== 邮件发送记录 === +时间: Oct 7 2025 23:35:05 +方案: PowerShell +发件人: 3675658020@qq.com +收件人: 2470975401@qq.com +验证码: ZH4RXI +执行结果: 正在发送邮件到: 2470975401@qq.com +验证码: ZH4RXI +邮件发送成功! +SUCCESS + +========================= + diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..c238cd6 --- /dev/null +++ b/main.cpp @@ -0,0 +1,27 @@ +#include +#include +#include +#include "LoginWindow.h" + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { + // 初始化随机数种子 + srand(static_cast(time(NULL))); + + // 显示登录窗口 + LoginWindow::Show(); + + // 主消息循环 + MSG msg; + BOOL bRet; + while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) { + if (bRet == -1) { + // 错误处理 + break; + } else { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return msg.wParam; +} diff --git a/main.o b/main.o new file mode 100644 index 0000000000000000000000000000000000000000..65500ab24b7d4560f246d72ea49dfc11901c2219 GIT binary patch literal 1076 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

u9;xwVf-AhnB^v*O;JKbrCz}Fa?y(}~d#krp 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℞a|)9*6AOz>`<=@yHT<8A%cf1IFztc-w)@K` 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�NBS10D_>z0me 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 literal 0 HcmV?d00001 diff --git a/test3.layout b/test3.layout new file mode 100644 index 0000000..ef12d63 --- /dev/null +++ b/test3.layout @@ -0,0 +1,98 @@ +[Editor_0] +CursorCol=7 +CursorRow=25 +TopLine=1 +LeftChar=1 +[Editors] +Order=8,0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18 +Focused=13 +[Editor_1] +CursorCol=7 +CursorRow=36 +TopLine=1 +LeftChar=1 +[Editor_2] +CursorCol=2 +CursorRow=164 +TopLine=122 +LeftChar=1 +[Editor_3] +CursorCol=2 +CursorRow=24 +TopLine=1 +LeftChar=1 +[Editor_4] +CursorCol=7 +CursorRow=29 +TopLine=1 +LeftChar=1 +[Editor_5] +CursorCol=2 +CursorRow=364 +TopLine=326 +LeftChar=1 +[Editor_6] +CursorCol=2 +CursorRow=27 +TopLine=1 +LeftChar=1 +[Editor_7] +CursorCol=7 +CursorRow=23 +TopLine=1 +LeftChar=1 +[Editor_8] +CursorCol=7 +CursorRow=23 +TopLine=1 +LeftChar=1 +[Editor_9] +CursorCol=2 +CursorRow=135 +TopLine=1 +LeftChar=1 +[Editor_10] +CursorCol=7 +CursorRow=30 +TopLine=1 +LeftChar=1 +[Editor_11] +CursorCol=2 +CursorRow=225 +TopLine=131 +LeftChar=1 +[Editor_12] +CursorCol=7 +CursorRow=32 +TopLine=1 +LeftChar=1 +[Editor_13] +CursorCol=18 +CursorRow=179 +TopLine=150 +LeftChar=1 +[Editor_14] +CursorCol=2 +CursorRow=27 +TopLine=1 +LeftChar=1 +[Editor_15] +CursorCol=56 +CursorRow=32 +TopLine=1 +LeftChar=1 +[Editor_16] +CursorCol=7 +CursorRow=16 +TopLine=1 +LeftChar=1 +[Editor_17] +CursorCol=2 +CursorRow=161 +TopLine=1 +LeftChar=1 +[Editor_18] +CursorCol=7 +CursorRow=25 +TopLine=1 +LeftChar=1 -- 2.34.1 From bfd1e2b9f79b5b0b90dbfd2da5d61818fb17e67a Mon Sep 17 00:00:00 2001 From: hnu202326010103 <1853439381@qq.com> Date: Sat, 11 Oct 2025 13:33:47 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AE=8C=E5=85=A8=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=EF=BC=9A=E9=87=8D=E6=9E=84=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=BB=93=E6=9E=84=EF=BC=8C=E5=B0=86=E6=89=80=E6=9C=89=E6=BA=90?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=A7=BB=E5=8A=A8=E5=88=B0src=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/1.md | 158 ++++ EmailSender.cpp => src/EmailSender.cpp | 434 ++++----- EmailSender.h => src/EmailSender.h | 32 +- EmailSender.o => src/EmailSender.o | Bin LoginWindow.cpp => src/LoginWindow.cpp | 270 +++--- LoginWindow.h => src/LoginWindow.h | 46 +- LoginWindow.o => src/LoginWindow.o | Bin Makefile.win => src/Makefile.win | 110 +-- Question.cpp => src/Question.cpp | 54 +- Question.h => src/Question.h | 50 +- Question.o => src/Question.o | Bin .../QuestionGenerator.cpp | 884 +++++++++--------- .../QuestionGenerator.h | 58 +- .../QuestionGenerator.o | Bin QuestionWindow.cpp => src/QuestionWindow.cpp | 390 ++++---- QuestionWindow.h => src/QuestionWindow.h | 64 +- QuestionWindow.o => src/QuestionWindow.o | Bin RegisterWindow.cpp => src/RegisterWindow.cpp | 450 ++++----- RegisterWindow.h => src/RegisterWindow.h | 60 +- RegisterWindow.o => src/RegisterWindow.o | Bin .../SelectionWindow.cpp | 322 +++---- SelectionWindow.h => src/SelectionWindow.h | 50 +- SelectionWindow.o => src/SelectionWindow.o | Bin User.cpp => src/User.cpp | 48 +- User.h => src/User.h | 46 +- User.o => src/User.o | Bin UserManager.cpp => src/UserManager.cpp | 328 +++---- UserManager.h => src/UserManager.h | 72 +- UserManager.o => src/UserManager.o | Bin {data => src/data}/users.txt | 4 +- email_send.log => src/email_send.log | 6 +- email_send_log.txt => src/email_send_log.txt | 26 +- main.cpp => src/main.cpp | 54 +- main.o => src/main.o | Bin send_email.ps1 => src/send_email.ps1 | 86 +- test3.dev => src/test3.dev | 484 +++++----- test3.exe => src/test3.exe | Bin test3.layout => src/test3.layout | 196 ++-- 38 files changed, 2470 insertions(+), 2312 deletions(-) create mode 100644 doc/1.md rename EmailSender.cpp => src/EmailSender.cpp (97%) rename EmailSender.h => src/EmailSender.h (96%) rename EmailSender.o => src/EmailSender.o (100%) rename LoginWindow.cpp => src/LoginWindow.cpp (96%) rename LoginWindow.h => src/LoginWindow.h (95%) rename LoginWindow.o => src/LoginWindow.o (100%) rename Makefile.win => src/Makefile.win (97%) rename Question.cpp => src/Question.cpp (96%) rename Question.h => src/Question.h (95%) rename Question.o => src/Question.o (100%) rename QuestionGenerator.cpp => src/QuestionGenerator.cpp (96%) rename QuestionGenerator.h => src/QuestionGenerator.h (95%) rename QuestionGenerator.o => src/QuestionGenerator.o (100%) rename QuestionWindow.cpp => src/QuestionWindow.cpp (96%) rename QuestionWindow.h => src/QuestionWindow.h (95%) rename QuestionWindow.o => src/QuestionWindow.o (100%) rename RegisterWindow.cpp => src/RegisterWindow.cpp (97%) rename RegisterWindow.h => src/RegisterWindow.h (96%) rename RegisterWindow.o => src/RegisterWindow.o (100%) rename SelectionWindow.cpp => src/SelectionWindow.cpp (96%) rename SelectionWindow.h => src/SelectionWindow.h (96%) rename SelectionWindow.o => src/SelectionWindow.o (100%) rename User.cpp => src/User.cpp (95%) rename User.h => src/User.h (95%) rename User.o => src/User.o (100%) rename UserManager.cpp => src/UserManager.cpp (96%) rename UserManager.h => src/UserManager.h (96%) rename UserManager.o => src/UserManager.o (100%) rename {data => src/data}/users.txt (97%) rename email_send.log => src/email_send.log (98%) rename email_send_log.txt => src/email_send_log.txt (94%) rename main.cpp => src/main.cpp (95%) rename main.o => src/main.o (100%) rename send_email.ps1 => src/send_email.ps1 (96%) rename test3.dev => src/test3.dev (92%) rename test3.exe => src/test3.exe (100%) rename test3.layout => src/test3.layout (92%) diff --git a/doc/1.md b/doc/1.md new file mode 100644 index 0000000..12d1e93 --- /dev/null +++ b/doc/1.md @@ -0,0 +1,158 @@ +# 鏁板瀛︿範杞欢浣跨敤璇存槑 + +## 椤圭洰姒傝堪 + +鏁板瀛︿範杞欢鏄竴娆句笓涓轰笉鍚屽涔犻樁娈靛鐢熻璁$殑鏁板缁冧範宸ュ叿锛屾敮鎸佸皬瀛︺佸垵涓拰楂樹腑涓変釜闅惧害绾у埆鐨勬暟瀛﹂鐩粌涔犮傝蒋浠堕噰鐢ㄧ敤鎴锋敞鍐岀櫥褰曠郴缁燂紝閫氳繃閭楠岃瘉纭繚鐢ㄦ埛韬唤瀹夊叏銆 + +## 绯荤粺瑕佹眰 + +- **鎿嶄綔绯荤粺**: Windows 7鍙婁互涓婄増鏈 +- **寮鍙戠幆澧**: C++ (鍏煎C++98鏍囧噯) +- **渚濊禆缁勪欢**: + - Windows PowerShell (鐢ㄤ簬閭欢鍙戦) + - curl (鍙夛紝澶囩敤閭欢鍙戦佹柟妗) + +## 鍔熻兘鐗圭偣 + +### 1. 鐢ㄦ埛绠$悊 +- **鐢ㄦ埛娉ㄥ唽**: 閫氳繃閭楠岃瘉鐮佹敞鍐岃处鍙 +- **瀵嗙爜瀹夊叏**: 瀵嗙爜瑕佹眰6-10浣嶏紝鍖呭惈澶у皬鍐欏瓧姣嶅拰鏁板瓧 +- **鐧诲綍楠岃瘉**: 瀹夊叏鐨勭敤鎴疯韩浠介獙璇 + +### 2. 棰樼洰鐢熸垚 +- **灏忓棰樼洰**: 鍩虹鍥涘垯杩愮畻锛屾敮鎸2-3涓搷浣滄暟 +- **鍒濅腑棰樼洰**: 骞虫柟銆佸紑鏂硅繍绠 +- **楂樹腑棰樼洰**: 涓夎鍑芥暟璁$畻 + +### 3. 绛旈鍔熻兘 +- **棰樼洰鏁伴噺**: 鍙嚜瀹氫箟10-30閬撻鐩 +- **瀹炴椂鍙嶉**: 鍗虫椂鏄剧ず绛旈缁撴灉 +- **杩涘害璺熻釜**: 鏄剧ず绛旈杩涘害鍜屽緱鍒 + +## 瀹夎涓庨厤缃 + +### 1. 缂栬瘧璇存槑 +椤圭洰浣跨敤鏍囧噯C++缂栧啓锛屽彲鍦ㄦ敮鎸乄indows API鐨勫紑鍙戠幆澧冧腑缂栬瘧锛 +```bash +g++ -o MathLearning.exe *.cpp -luser32 -lgdi32 +``` + +### 2. 閭欢閰嶇疆 +濡傞渶浣跨敤閭欢鍔熻兘锛岄渶瑕侀厤缃甉Q閭SMTP鏈嶅姟锛 + +1. 鍦 `EmailSender.cpp` 涓慨鏀瑰彂浠朵汉淇℃伅锛 +```cpp +const std::string sender_email = "your_email@qq.com"; +const std::string sender_password = "your_authorization_code"; +``` + +2. 鑾峰彇QQ閭鎺堟潈鐮侊細 + - 鐧诲綍QQ閭 鈫 璁剧疆 鈫 璐︽埛 + - 寮鍚疨OP3/SMTP鏈嶅姟 + - 鐢熸垚鎺堟潈鐮 + +## 浣跨敤鎸囧崡 + +### 1. 鍚姩绋嬪簭 +杩愯缂栬瘧鍚庣殑鍙墽琛屾枃浠讹紝杩涘叆鐧诲綍鐣岄潰銆 + +### 2. 鐢ㄦ埛娉ㄥ唽 +1. 鐐瑰嚮"娉ㄥ唽"鎸夐挳 +2. 杈撳叆鏈夋晥鐨勯偖绠卞湴鍧 +3. 鐐瑰嚮"鑾峰彇楠岃瘉鐮"锛屾煡鏀堕偖浠朵腑鐨勯獙璇佺爜 +4. 璁剧疆绗﹀悎瑕佹眰鐨勫瘑鐮侊紙6-10浣嶏紝鍖呭惈澶у皬鍐欏瓧姣嶅拰鏁板瓧锛 +5. 纭瀵嗙爜骞跺畬鎴愭敞鍐 + +### 3. 鐢ㄦ埛鐧诲綍 +1. 杈撳叆宸叉敞鍐岀殑閭鍜屽瘑鐮 +2. 鐐瑰嚮"鐧诲綍"杩涘叆棰樼洰閫夋嫨鐣岄潰 + +### 4. 閫夋嫨棰樼洰绫诲瀷 +- **灏忓棰樼洰**: 閫傚悎灏忓鐢熺殑鍩虹鏁板杩愮畻 +- **鍒濅腑棰樼洰**: 鍖呭惈骞虫柟鍜屽紑鏂硅繍绠 +- **楂樹腑棰樼洰**: 涓夎鍑芥暟璁$畻 + +### 5. 璁剧疆棰樼洰鏁伴噺 +鍦10-30閬撻鐩寖鍥村唴閫夋嫨缁冧範鏁伴噺銆 + +### 6. 绛旈鐣岄潰 +- 闃呰棰樼洰骞堕夋嫨姝g‘绛旀 +- 鐐瑰嚮"涓嬩竴棰"缁х画绛旈 +- 瀹屾垚鎵鏈夐鐩悗鏌ョ湅鎴愮哗鎶ュ憡 + +## 鏂囦欢缁撴瀯 + +``` +椤圭洰鏍圭洰褰/ +鈹溾攢鈹 main.cpp # 绋嬪簭鍏ュ彛 +鈹溾攢鈹 LoginWindow.h/cpp # 鐧诲綍绐楀彛 +鈹溾攢鈹 RegisterWindow.h/cpp # 娉ㄥ唽绐楀彛 +鈹溾攢鈹 SelectionWindow.h/cpp # 棰樼洰閫夋嫨绐楀彛 +鈹溾攢鈹 QuestionWindow.h/cpp # 绛旈绐楀彛 +鈹溾攢鈹 User.h/cpp # 鐢ㄦ埛绫 +鈹溾攢鈹 UserManager.h/cpp # 鐢ㄦ埛绠$悊 +鈹溾攢鈹 Question.h/cpp # 棰樼洰绫 +鈹溾攢鈹 QuestionGenerator.h/cpp # 棰樼洰鐢熸垚鍣 +鈹溾攢鈹 EmailSender.h/cpp # 閭欢鍙戦佸櫒 +鈹斺攢鈹 data/ + 鈹斺攢鈹 users.txt # 鐢ㄦ埛鏁版嵁瀛樺偍 +``` + +## 鎶鏈壒鎬 + +### 1. 閭欢鍙戦 +- 鏀寔PowerShell鍜宑url涓ょ鍙戦佹柟寮 +- 鑷姩鏁呴殰杞Щ鏈哄埗 +- 璇︾粏鐨勫彂閫佹棩蹇楄褰 + +### 2. 棰樼洰鐢熸垚绠楁硶 +- 鏅鸿兘閬垮厤閲嶅棰樼洰 +- 鑰冭檻杩愮畻浼樺厛绾 +- 纭繚棰樼洰闅惧害閫備腑 + +### 3. 鐢ㄦ埛鐣岄潰 +- 鍩轰簬Windows API鐨勬湰鍦板寲鐣岄潰 +- 鏀寔涓枃鏄剧ず +- 鍝嶅簲寮忕獥鍙h璁 + +## 鏁呴殰鎺掗櫎 + +### 甯歌闂 + +1. **閭欢鍙戦佸け璐** + - 妫鏌ラ偖绠遍厤缃槸鍚︽纭 + - 纭缃戠粶杩炴帴姝e父 + - 鏌ョ湅email_send_log.txt鏃ュ織鏂囦欢 + +2. **绋嬪簭鏃犳硶鍚姩** + - 纭绯荤粺婊¤冻瑕佹眰 + - 妫鏌ヤ緷璧栫粍浠舵槸鍚﹀畨瑁 + +3. **棰樼洰鏄剧ず寮傚父** + - 纭繚缂栬瘧鐜鏀寔涓枃瀛楃闆 + - 妫鏌ユ帶鍒跺彴缂栫爜璁剧疆 + +### 鏃ュ織鏂囦欢 +绋嬪簭鐢熸垚浠ヤ笅鏃ュ織鏂囦欢鐢ㄤ簬鏁呴殰璇婃柇锛 +- `email_send_log.txt` - 閭欢鍙戦佽褰 +- 鎺у埗鍙拌緭鍑 - 棰樼洰鐢熸垚鍜岀瓟棰樿鎯 + +## 寮鍙戣鏄 + +### 鎵╁睍鍔熻兘 +- 鍙坊鍔犳洿澶氶鐩被鍨 +- 鏀寔鐢ㄦ埛鎴愮哗缁熻 +- 澧炲姞棰樼洰闅惧害鍒嗙骇 + +### 鑷畾涔夐厤缃 +寮鍙戣呭彲浠ラ氳繃淇敼鐩稿簲澶存枃浠朵腑鐨勫父閲忔潵璋冩暣锛 +- 棰樼洰鏁伴噺鑼冨洿 +- 瀵嗙爜澶嶆潅搴﹁姹 +- 閭欢鍙戦侀厤缃 + +## 鐗堟潈淇℃伅 + +鏈蒋浠朵负鏁欒偛鐢ㄩ斿紑鍙戯紝閬靛惊鐩稿叧寮婧愬崗璁 + +--- +*鏈鍚庢洿鏂: 2024骞* \ No newline at end of file diff --git a/EmailSender.cpp b/src/EmailSender.cpp similarity index 97% rename from EmailSender.cpp rename to src/EmailSender.cpp index 11f3258..4923474 100644 --- a/EmailSender.cpp +++ b/src/EmailSender.cpp @@ -1,217 +1,217 @@ -#include "EmailSender.h" -#include -#include -#include -#include -#include - -bool EmailSender::sendVerificationCode(const std::string& email, const std::string& code) { - // 首先尝试PowerShell方案,如果失败则尝试其他方案 - std::cout << "=== 开始发送验证码邮件 ===" << std::endl; - std::cout << "收件人: " << email << std::endl; - std::cout << "验证码: " << code << std::endl; - - // 尝试PowerShell方案 - if (sendByPowerShell(email, code)) { - return true; - } - - std::cout << "PowerShell方案失败,尝试CURL方案..." << std::endl; - - // 如果PowerShell失败,尝试CURL方案 - if (sendByCurl(email, code)) { - return true; - } - - std::cout << "所有邮件发送方案均失败" << std::endl; - return false; -} - -bool EmailSender::sendByPowerShell(const std::string& email, const std::string& code) { - // 配置发送方邮箱信息 - 修改为你的真实信息 - const std::string sender_email = "3675658020@qq.com"; // 修改为你的QQ邮箱 - const std::string sender_password = "lsagdbxwfolhcheb"; // 修改为QQ邮箱授权码 - - std::cout << "尝试使用PowerShell发送邮件..." << std::endl; - std::cout << "发件人: " << sender_email << std::endl; - - // 创建PowerShell脚本 - std::string psScript = - "# 数学学习软件邮件发送脚本\n" - "# 发件人配置\n" - "$SMTPServer = \"smtp.qq.com\"\n" - "$SMTPPort = \"587\"\n" - "$Username = \"" + sender_email + "\"\n" - "$Password = \"" + sender_password + "\"\n" - "$EmailFrom = \"" + sender_email + "\"\n" - "$EmailTo = \"" + email + "\"\n" - "$Subject = \"数学学习软件 - 注册验证码\"\n" - "$Body = @\"\n" - "欢迎注册数学学习软件!\n" - "\n" - "您的注册验证码是:" + code + "\n" - "\n" - "验证码有效期为10分钟,请尽快使用。\n" - "\n" - "如果您没有请求此验证码,请忽略此邮件。\n" - "\n" - "谢谢!\n" - "数学学习软件团队\n" - "\"@\n" - "\n" - "Write-Host \"正在发送邮件到: $EmailTo\"\n" - "Write-Host \"验证码: " + code + "\"\n" - "\n" - "try {\n" - " # 创建邮件消息\n" - " $SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body)\n" - " \n" - " # 创建SMTP客户端\n" - " $SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, $SMTPPort)\n" - " $SMTPClient.EnableSsl = $true\n" - " $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)\n" - " \n" - " # 发送邮件\n" - " $SMTPClient.Send($SMTPMessage)\n" - " \n" - " Write-Host \"邮件发送成功!\" -ForegroundColor Green\n" - " Write-Output \"SUCCESS\"\n" - " \n" - "} catch {\n" - " Write-Host \"邮件发送失败: $($_.Exception.Message)\" -ForegroundColor Red\n" - " Write-Output \"ERROR: $($_.Exception.Message)\"\n" - "}"; - - // 保存PowerShell脚本 - std::ofstream scriptFile("send_email.ps1"); - if (!scriptFile) { - std::cout << "创建PowerShell脚本文件失败" << std::endl; - return false; - } - scriptFile << psScript; - scriptFile.close(); - - std::cout << "正在执行PowerShell脚本..." << std::endl; - - // 执行PowerShell脚本 - std::string command = "powershell -ExecutionPolicy Bypass -File send_email.ps1"; - FILE* pipe = _popen(command.c_str(), "r"); - if (!pipe) { - std::cout << "执行PowerShell命令失败" << std::endl; - return false; - } - - char buffer[256]; - std::string result = ""; - while (!feof(pipe)) { - if (fgets(buffer, sizeof(buffer), pipe) != NULL) - result += buffer; - } - _pclose(pipe); - - // 记录发送日志 - std::ofstream logFile("email_send_log.txt", std::ios::app); - if (logFile) { - logFile << "=== 邮件发送记录 ===" << std::endl; - logFile << "时间: " << __DATE__ << " " << __TIME__ << std::endl; - logFile << "方案: PowerShell" << std::endl; - logFile << "发件人: " << sender_email << std::endl; - logFile << "收件人: " << email << std::endl; - logFile << "验证码: " << code << std::endl; - logFile << "执行结果: " << result << std::endl; - logFile << "=========================" << std::endl << std::endl; - logFile.close(); - } - - // 检查执行结果 - if (result.find("SUCCESS") != std::string::npos) { - std::cout << "? 邮件发送成功!" << std::endl; - std::cout << "验证码已发送到: " << email << std::endl; - return true; - } else { - std::cout << "? PowerShell发送失败: " << result << std::endl; - return false; - } -} - -bool EmailSender::sendByCurl(const std::string& email, const std::string& code) { - // 配置发送方邮箱信息 - 修改为你的真实信息 - const std::string sender_email = "3675658020@qq.com"; // 修改为你的QQ邮箱 - const std::string sender_password = "lsagdbxwfolhcheb"; // 修改为QQ邮箱授权码 - - std::cout << "尝试使用CURL发送邮件..." << std::endl; - - // 检查系统是否安装curl - int curlCheck = system("curl --version > nul 2>&1"); - if (curlCheck != 0) { - std::cout << "系统未安装curl,跳过此方案" << std::endl; - return false; - } - - std::cout << "检测到curl,开始发送..." << std::endl; - - // 创建邮件内容文件 - std::ofstream mailFile("email_content.txt"); - if (!mailFile) { - std::cout << "创建邮件内容文件失败" << std::endl; - return false; - } - - mailFile << "From: 数学学习软件 <" << sender_email << ">\n"; - mailFile << "To: " << email << "\n"; - mailFile << "Subject: 数学学习软件 - 注册验证码\n"; - mailFile << "Content-Type: text/plain; charset=\"utf-8\"\n"; - mailFile << "\n"; - mailFile << "欢迎注册数学学习软件!\n"; - mailFile << "\n"; - mailFile << "您的注册验证码是:" << code << "\n"; - mailFile << "\n"; - mailFile << "验证码有效期为10分钟,请尽快使用。\n"; - mailFile << "\n"; - mailFile << "如果您没有请求此验证码,请忽略此邮件。\n"; - mailFile << "\n"; - mailFile << "谢谢!\n"; - mailFile << "数学学习软件团队\n"; - mailFile.close(); - - // 使用curl发送邮件 - std::string curlCommand = - "curl -s --url \"smtp://smtp.qq.com:587\" " - "--ssl-reqd " - "--mail-from \"" + sender_email + "\" " - "--mail-rcpt \"" + email + "\" " - "--user \"" + sender_email + ":" + sender_password + "\" " - "--upload-file email_content.txt " - "> curl_output.txt 2>&1"; - - std::cout << "执行CURL命令..." << std::endl; - int result = system(curlCommand.c_str()); - - // 记录发送日志 - std::ofstream logFile("email_send_log.txt", std::ios::app); - if (logFile) { - logFile << "=== CURL邮件发送记录 ===" << std::endl; - logFile << "时间: " << __DATE__ << " " << __TIME__ << std::endl; - logFile << "方案: CURL" << std::endl; - logFile << "发件人: " << sender_email << std::endl; - logFile << "收件人: " << email << std::endl; - logFile << "验证码: " << code << std::endl; - logFile << "命令返回码: " << result << std::endl; - logFile << "=========================" << std::endl << std::endl; - logFile.close(); - } - - if (result == 0) { - std::cout << "? CURL邮件发送成功!" << std::endl; - return true; - } else { - std::cout << "? CURL邮件发送失败,返回码: " << result << std::endl; - return false; - } -} - -bool EmailSender::sendBySMTP(const std::string& email, const std::string& code) { - // 这个函数保留作为备用方案,当前不使用 - std::cout << "SMTP方案暂不可用" << std::endl; - return false; -} +#include "EmailSender.h" +#include +#include +#include +#include +#include + +bool EmailSender::sendVerificationCode(const std::string& email, const std::string& code) { + // 首先尝试PowerShell方案,如果失败则尝试其他方案 + std::cout << "=== 开始发送验证码邮件 ===" << std::endl; + std::cout << "收件人: " << email << std::endl; + std::cout << "验证码: " << code << std::endl; + + // 尝试PowerShell方案 + if (sendByPowerShell(email, code)) { + return true; + } + + std::cout << "PowerShell方案失败,尝试CURL方案..." << std::endl; + + // 如果PowerShell失败,尝试CURL方案 + if (sendByCurl(email, code)) { + return true; + } + + std::cout << "所有邮件发送方案均失败" << std::endl; + return false; +} + +bool EmailSender::sendByPowerShell(const std::string& email, const std::string& code) { + // 配置发送方邮箱信息 - 修改为你的真实信息 + const std::string sender_email = "3675658020@qq.com"; // 修改为你的QQ邮箱 + const std::string sender_password = "lsagdbxwfolhcheb"; // 修改为QQ邮箱授权码 + + std::cout << "尝试使用PowerShell发送邮件..." << std::endl; + std::cout << "发件人: " << sender_email << std::endl; + + // 创建PowerShell脚本 + std::string psScript = + "# 数学学习软件邮件发送脚本\n" + "# 发件人配置\n" + "$SMTPServer = \"smtp.qq.com\"\n" + "$SMTPPort = \"587\"\n" + "$Username = \"" + sender_email + "\"\n" + "$Password = \"" + sender_password + "\"\n" + "$EmailFrom = \"" + sender_email + "\"\n" + "$EmailTo = \"" + email + "\"\n" + "$Subject = \"数学学习软件 - 注册验证码\"\n" + "$Body = @\"\n" + "欢迎注册数学学习软件!\n" + "\n" + "您的注册验证码是:" + code + "\n" + "\n" + "验证码有效期为10分钟,请尽快使用。\n" + "\n" + "如果您没有请求此验证码,请忽略此邮件。\n" + "\n" + "谢谢!\n" + "数学学习软件团队\n" + "\"@\n" + "\n" + "Write-Host \"正在发送邮件到: $EmailTo\"\n" + "Write-Host \"验证码: " + code + "\"\n" + "\n" + "try {\n" + " # 创建邮件消息\n" + " $SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body)\n" + " \n" + " # 创建SMTP客户端\n" + " $SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, $SMTPPort)\n" + " $SMTPClient.EnableSsl = $true\n" + " $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password)\n" + " \n" + " # 发送邮件\n" + " $SMTPClient.Send($SMTPMessage)\n" + " \n" + " Write-Host \"邮件发送成功!\" -ForegroundColor Green\n" + " Write-Output \"SUCCESS\"\n" + " \n" + "} catch {\n" + " Write-Host \"邮件发送失败: $($_.Exception.Message)\" -ForegroundColor Red\n" + " Write-Output \"ERROR: $($_.Exception.Message)\"\n" + "}"; + + // 保存PowerShell脚本 + std::ofstream scriptFile("send_email.ps1"); + if (!scriptFile) { + std::cout << "创建PowerShell脚本文件失败" << std::endl; + return false; + } + scriptFile << psScript; + scriptFile.close(); + + std::cout << "正在执行PowerShell脚本..." << std::endl; + + // 执行PowerShell脚本 + std::string command = "powershell -ExecutionPolicy Bypass -File send_email.ps1"; + FILE* pipe = _popen(command.c_str(), "r"); + if (!pipe) { + std::cout << "执行PowerShell命令失败" << std::endl; + return false; + } + + char buffer[256]; + std::string result = ""; + while (!feof(pipe)) { + if (fgets(buffer, sizeof(buffer), pipe) != NULL) + result += buffer; + } + _pclose(pipe); + + // 记录发送日志 + std::ofstream logFile("email_send_log.txt", std::ios::app); + if (logFile) { + logFile << "=== 邮件发送记录 ===" << std::endl; + logFile << "时间: " << __DATE__ << " " << __TIME__ << std::endl; + logFile << "方案: PowerShell" << std::endl; + logFile << "发件人: " << sender_email << std::endl; + logFile << "收件人: " << email << std::endl; + logFile << "验证码: " << code << std::endl; + logFile << "执行结果: " << result << std::endl; + logFile << "=========================" << std::endl << std::endl; + logFile.close(); + } + + // 检查执行结果 + if (result.find("SUCCESS") != std::string::npos) { + std::cout << "? 邮件发送成功!" << std::endl; + std::cout << "验证码已发送到: " << email << std::endl; + return true; + } else { + std::cout << "? PowerShell发送失败: " << result << std::endl; + return false; + } +} + +bool EmailSender::sendByCurl(const std::string& email, const std::string& code) { + // 配置发送方邮箱信息 - 修改为你的真实信息 + const std::string sender_email = "3675658020@qq.com"; // 修改为你的QQ邮箱 + const std::string sender_password = "lsagdbxwfolhcheb"; // 修改为QQ邮箱授权码 + + std::cout << "尝试使用CURL发送邮件..." << std::endl; + + // 检查系统是否安装curl + int curlCheck = system("curl --version > nul 2>&1"); + if (curlCheck != 0) { + std::cout << "系统未安装curl,跳过此方案" << std::endl; + return false; + } + + std::cout << "检测到curl,开始发送..." << std::endl; + + // 创建邮件内容文件 + std::ofstream mailFile("email_content.txt"); + if (!mailFile) { + std::cout << "创建邮件内容文件失败" << std::endl; + return false; + } + + mailFile << "From: 数学学习软件 <" << sender_email << ">\n"; + mailFile << "To: " << email << "\n"; + mailFile << "Subject: 数学学习软件 - 注册验证码\n"; + mailFile << "Content-Type: text/plain; charset=\"utf-8\"\n"; + mailFile << "\n"; + mailFile << "欢迎注册数学学习软件!\n"; + mailFile << "\n"; + mailFile << "您的注册验证码是:" << code << "\n"; + mailFile << "\n"; + mailFile << "验证码有效期为10分钟,请尽快使用。\n"; + mailFile << "\n"; + mailFile << "如果您没有请求此验证码,请忽略此邮件。\n"; + mailFile << "\n"; + mailFile << "谢谢!\n"; + mailFile << "数学学习软件团队\n"; + mailFile.close(); + + // 使用curl发送邮件 + std::string curlCommand = + "curl -s --url \"smtp://smtp.qq.com:587\" " + "--ssl-reqd " + "--mail-from \"" + sender_email + "\" " + "--mail-rcpt \"" + email + "\" " + "--user \"" + sender_email + ":" + sender_password + "\" " + "--upload-file email_content.txt " + "> curl_output.txt 2>&1"; + + std::cout << "执行CURL命令..." << std::endl; + int result = system(curlCommand.c_str()); + + // 记录发送日志 + std::ofstream logFile("email_send_log.txt", std::ios::app); + if (logFile) { + logFile << "=== CURL邮件发送记录 ===" << std::endl; + logFile << "时间: " << __DATE__ << " " << __TIME__ << std::endl; + logFile << "方案: CURL" << std::endl; + logFile << "发件人: " << sender_email << std::endl; + logFile << "收件人: " << email << std::endl; + logFile << "验证码: " << code << std::endl; + logFile << "命令返回码: " << result << std::endl; + logFile << "=========================" << std::endl << std::endl; + logFile.close(); + } + + if (result == 0) { + std::cout << "? CURL邮件发送成功!" << std::endl; + return true; + } else { + std::cout << "? CURL邮件发送失败,返回码: " << result << std::endl; + return false; + } +} + +bool EmailSender::sendBySMTP(const std::string& email, const std::string& code) { + // 这个函数保留作为备用方案,当前不使用 + std::cout << "SMTP方案暂不可用" << std::endl; + return false; +} diff --git a/EmailSender.h b/src/EmailSender.h similarity index 96% rename from EmailSender.h rename to src/EmailSender.h index 7eb32df..f9e0d17 100644 --- a/EmailSender.h +++ b/src/EmailSender.h @@ -1,16 +1,16 @@ -#ifndef EMAILSENDER_H -#define EMAILSENDER_H - -#include - -class EmailSender { -public: - static bool sendVerificationCode(const std::string& email, const std::string& code); - -private: - static bool sendByPowerShell(const std::string& email, const std::string& code); - static bool sendByCurl(const std::string& email, const std::string& code); - static bool sendBySMTP(const std::string& email, const std::string& code); -}; - -#endif +#ifndef EMAILSENDER_H +#define EMAILSENDER_H + +#include + +class EmailSender { +public: + static bool sendVerificationCode(const std::string& email, const std::string& code); + +private: + static bool sendByPowerShell(const std::string& email, const std::string& code); + static bool sendByCurl(const std::string& email, const std::string& code); + static bool sendBySMTP(const std::string& email, const std::string& code); +}; + +#endif diff --git a/EmailSender.o b/src/EmailSender.o similarity index 100% rename from EmailSender.o rename to src/EmailSender.o diff --git a/LoginWindow.cpp b/src/LoginWindow.cpp similarity index 96% rename from LoginWindow.cpp rename to src/LoginWindow.cpp index f696e4e..34b51c3 100644 --- a/LoginWindow.cpp +++ b/src/LoginWindow.cpp @@ -1,135 +1,135 @@ -#include "LoginWindow.h" -#include "UserManager.h" -#include "RegisterWindow.h" -#include "SelectionWindow.h" -#include -#include - -HWND LoginWindow::hwnd = NULL; -HWND LoginWindow::hEmail = NULL; -HWND LoginWindow::hPassword = NULL; -HWND LoginWindow::hMessage = NULL; - -void LoginWindow::Show() { - // 如果窗口已存在,先销毁 - if (hwnd != NULL) { - DestroyWindow(hwnd); - hwnd = NULL; - } - - WNDCLASSEX wc; - memset(&wc, 0, sizeof(WNDCLASSEX)); - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = WndProc; - wc.hInstance = GetModuleHandle(NULL); - wc.hCursor = LoadCursor(NULL, IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wc.lpszClassName = "LoginWindow"; - - RegisterClassEx(&wc); - - hwnd = CreateWindowEx(0, "LoginWindow", "数学学习软件 - 登录", - WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, - CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, - NULL, NULL, GetModuleHandle(NULL), NULL); - - if (!hwnd) { - MessageBox(NULL, "创建登录窗口失败", "错误", MB_OK | MB_ICONERROR); - return; - } - - CreateControls(); - - ShowWindow(hwnd, SW_SHOW); - UpdateWindow(hwnd); -} - -void LoginWindow::CreateControls() { - // 标题 - CreateWindow("STATIC", "数学学习软件", WS_VISIBLE | WS_CHILD | SS_CENTER, - 10, 20, 360, 30, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 邮箱标签和输入框 - CreateWindow("STATIC", "邮箱:", WS_VISIBLE | WS_CHILD, - 50, 70, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - hEmail = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, - 100, 70, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 密码标签和输入框 - CreateWindow("STATIC", "密码:", WS_VISIBLE | WS_CHILD, - 50, 110, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - hPassword = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD, - 100, 110, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 登录按钮 - CreateWindow("BUTTON", "登录", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, - 100, 150, 80, 30, hwnd, (HMENU)1, GetModuleHandle(NULL), NULL); - - // 注册按钮 - CreateWindow("BUTTON", "注册", WS_VISIBLE | WS_CHILD, - 200, 150, 80, 30, hwnd, (HMENU)2, GetModuleHandle(NULL), NULL); - - // 消息标签 - 修复这里:将 WM_CHILD 改为 WS_CHILD - hMessage = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_CENTER, - 50, 190, 300, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); -} - -LRESULT CALLBACK LoginWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - switch (msg) { - case WM_COMMAND: { - int cmd = LOWORD(wParam); - if (cmd == 1) { // 登录按钮 - OnLogin(); - } else if (cmd == 2) { // 注册按钮 - OnRegister(); - } - break; - } - case WM_CLOSE: - DestroyWindow(hwnd); - PostQuitMessage(0); // 只有关闭登录窗口时才退出程序 - break; - case WM_DESTROY: - // 不在WM_DESTROY中调用PostQuitMessage,避免程序退出 - break; - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - } - return 0; -} - -void LoginWindow::OnLogin() { - char email[100], password[100]; - GetWindowText(hEmail, email, sizeof(email)); - GetWindowText(hPassword, password, sizeof(password)); - - std::string strEmail(email); - std::string strPassword(password); - - if (strEmail.empty() || strPassword.empty()) { - SetWindowText(hMessage, "请输入邮箱和密码"); - return; - } - - UserManager& userManager = UserManager::getInstance(); - if (userManager.login(strEmail, strPassword)) { - SetWindowText(hMessage, "登录成功!"); - - // 延迟后切换到选择界面 - Sleep(800); - DestroyWindow(hwnd); - hwnd = NULL; // 重置窗口句柄 - - // 显示选择界面 - SelectionWindow::Show(); - } else { - SetWindowText(hMessage, "登录失败,请检查邮箱和密码"); - } -} - -void LoginWindow::OnRegister() { - DestroyWindow(hwnd); - hwnd = NULL; - RegisterWindow::Show(); -} +#include "LoginWindow.h" +#include "UserManager.h" +#include "RegisterWindow.h" +#include "SelectionWindow.h" +#include +#include + +HWND LoginWindow::hwnd = NULL; +HWND LoginWindow::hEmail = NULL; +HWND LoginWindow::hPassword = NULL; +HWND LoginWindow::hMessage = NULL; + +void LoginWindow::Show() { + // 如果窗口已存在,先销毁 + if (hwnd != NULL) { + DestroyWindow(hwnd); + hwnd = NULL; + } + + WNDCLASSEX wc; + memset(&wc, 0, sizeof(WNDCLASSEX)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.hInstance = GetModuleHandle(NULL); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wc.lpszClassName = "LoginWindow"; + + RegisterClassEx(&wc); + + hwnd = CreateWindowEx(0, "LoginWindow", "数学学习软件 - 登录", + WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, + CW_USEDEFAULT, CW_USEDEFAULT, 400, 300, + NULL, NULL, GetModuleHandle(NULL), NULL); + + if (!hwnd) { + MessageBox(NULL, "创建登录窗口失败", "错误", MB_OK | MB_ICONERROR); + return; + } + + CreateControls(); + + ShowWindow(hwnd, SW_SHOW); + UpdateWindow(hwnd); +} + +void LoginWindow::CreateControls() { + // 标题 + CreateWindow("STATIC", "数学学习软件", WS_VISIBLE | WS_CHILD | SS_CENTER, + 10, 20, 360, 30, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 邮箱标签和输入框 + CreateWindow("STATIC", "邮箱:", WS_VISIBLE | WS_CHILD, + 50, 70, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hEmail = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, + 100, 70, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 密码标签和输入框 + CreateWindow("STATIC", "密码:", WS_VISIBLE | WS_CHILD, + 50, 110, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hPassword = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD, + 100, 110, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 登录按钮 + CreateWindow("BUTTON", "登录", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 150, 80, 30, hwnd, (HMENU)1, GetModuleHandle(NULL), NULL); + + // 注册按钮 + CreateWindow("BUTTON", "注册", WS_VISIBLE | WS_CHILD, + 200, 150, 80, 30, hwnd, (HMENU)2, GetModuleHandle(NULL), NULL); + + // 消息标签 - 修复这里:将 WM_CHILD 改为 WS_CHILD + hMessage = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_CENTER, + 50, 190, 300, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); +} + +LRESULT CALLBACK LoginWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + switch (msg) { + case WM_COMMAND: { + int cmd = LOWORD(wParam); + if (cmd == 1) { // 登录按钮 + OnLogin(); + } else if (cmd == 2) { // 注册按钮 + OnRegister(); + } + break; + } + case WM_CLOSE: + DestroyWindow(hwnd); + PostQuitMessage(0); // 只有关闭登录窗口时才退出程序 + break; + case WM_DESTROY: + // 不在WM_DESTROY中调用PostQuitMessage,避免程序退出 + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} + +void LoginWindow::OnLogin() { + char email[100], password[100]; + GetWindowText(hEmail, email, sizeof(email)); + GetWindowText(hPassword, password, sizeof(password)); + + std::string strEmail(email); + std::string strPassword(password); + + if (strEmail.empty() || strPassword.empty()) { + SetWindowText(hMessage, "请输入邮箱和密码"); + return; + } + + UserManager& userManager = UserManager::getInstance(); + if (userManager.login(strEmail, strPassword)) { + SetWindowText(hMessage, "登录成功!"); + + // 延迟后切换到选择界面 + Sleep(800); + DestroyWindow(hwnd); + hwnd = NULL; // 重置窗口句柄 + + // 显示选择界面 + SelectionWindow::Show(); + } else { + SetWindowText(hMessage, "登录失败,请检查邮箱和密码"); + } +} + +void LoginWindow::OnRegister() { + DestroyWindow(hwnd); + hwnd = NULL; + RegisterWindow::Show(); +} diff --git a/LoginWindow.h b/src/LoginWindow.h similarity index 95% rename from LoginWindow.h rename to src/LoginWindow.h index 9c19895..7660549 100644 --- a/LoginWindow.h +++ b/src/LoginWindow.h @@ -1,23 +1,23 @@ -#ifndef LOGINWINDOW_H -#define LOGINWINDOW_H - -#include - -class LoginWindow { -public: - static void Show(); - static HWND GetHandle() { return hwnd; } - -private: - static HWND hwnd; - static HWND hEmail; - static HWND hPassword; - static HWND hMessage; - - static void CreateControls(); - static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - static void OnLogin(); - static void OnRegister(); -}; - -#endif +#ifndef LOGINWINDOW_H +#define LOGINWINDOW_H + +#include + +class LoginWindow { +public: + static void Show(); + static HWND GetHandle() { return hwnd; } + +private: + static HWND hwnd; + static HWND hEmail; + static HWND hPassword; + static HWND hMessage; + + static void CreateControls(); + static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); + static void OnLogin(); + static void OnRegister(); +}; + +#endif diff --git a/LoginWindow.o b/src/LoginWindow.o similarity index 100% rename from LoginWindow.o rename to src/LoginWindow.o diff --git a/Makefile.win b/src/Makefile.win similarity index 97% rename from Makefile.win rename to src/Makefile.win index 9d1f829..e043d3f 100644 --- a/Makefile.win +++ b/src/Makefile.win @@ -1,55 +1,55 @@ -# Project: 项目1 -# Makefile created by Dev-C++ 5.11 - -CPP = g++.exe -CC = gcc.exe -WINDRES = windres.exe -OBJ = UserManager.o User.o QuestionGenerator.o Question.o LoginWindow.o RegisterWindow.o QuestionWindow.o main.o EmailSender.o SelectionWindow.o -LINKOBJ = UserManager.o User.o QuestionGenerator.o Question.o LoginWindow.o RegisterWindow.o QuestionWindow.o main.o EmailSender.o SelectionWindow.o -LIBS = -L"D:/程序设计/Dev-Cpp/MinGW64/lib" -L"D:/程序设计/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -mwindows -lws2_32 -lwininet -INCS = -I"D:/程序设计/Dev-Cpp/MinGW64/include" -I"D:/程序设计/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/程序设计/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -CXXINCS = -I"D:/程序设计/Dev-Cpp/MinGW64/include" -I"D:/程序设计/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/程序设计/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"D:/程序设计/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" -BIN = test3.exe -CXXFLAGS = $(CXXINCS) -CFLAGS = $(INCS) -RM = rm.exe -f - -.PHONY: all all-before all-after clean clean-custom - -all: all-before $(BIN) all-after - -clean: clean-custom - ${RM} $(OBJ) $(BIN) - -$(BIN): $(OBJ) - $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS) - -UserManager.o: UserManager.cpp - $(CPP) -c UserManager.cpp -o UserManager.o $(CXXFLAGS) - -User.o: User.cpp - $(CPP) -c User.cpp -o User.o $(CXXFLAGS) - -QuestionGenerator.o: QuestionGenerator.cpp - $(CPP) -c QuestionGenerator.cpp -o QuestionGenerator.o $(CXXFLAGS) - -Question.o: Question.cpp - $(CPP) -c Question.cpp -o Question.o $(CXXFLAGS) - -LoginWindow.o: LoginWindow.cpp - $(CPP) -c LoginWindow.cpp -o LoginWindow.o $(CXXFLAGS) - -RegisterWindow.o: RegisterWindow.cpp - $(CPP) -c RegisterWindow.cpp -o RegisterWindow.o $(CXXFLAGS) - -QuestionWindow.o: QuestionWindow.cpp - $(CPP) -c QuestionWindow.cpp -o QuestionWindow.o $(CXXFLAGS) - -main.o: main.cpp - $(CPP) -c main.cpp -o main.o $(CXXFLAGS) - -EmailSender.o: EmailSender.cpp - $(CPP) -c EmailSender.cpp -o EmailSender.o $(CXXFLAGS) - -SelectionWindow.o: SelectionWindow.cpp - $(CPP) -c SelectionWindow.cpp -o SelectionWindow.o $(CXXFLAGS) +# Project: 项目1 +# Makefile created by Dev-C++ 5.11 + +CPP = g++.exe +CC = gcc.exe +WINDRES = windres.exe +OBJ = UserManager.o User.o QuestionGenerator.o Question.o LoginWindow.o RegisterWindow.o QuestionWindow.o main.o EmailSender.o SelectionWindow.o +LINKOBJ = UserManager.o User.o QuestionGenerator.o Question.o LoginWindow.o RegisterWindow.o QuestionWindow.o main.o EmailSender.o SelectionWindow.o +LIBS = -L"D:/程序设计/Dev-Cpp/MinGW64/lib" -L"D:/程序设计/Dev-Cpp/MinGW64/x86_64-w64-mingw32/lib" -static-libgcc -mwindows -lws2_32 -lwininet +INCS = -I"D:/程序设计/Dev-Cpp/MinGW64/include" -I"D:/程序设计/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/程序设计/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" +CXXINCS = -I"D:/程序设计/Dev-Cpp/MinGW64/include" -I"D:/程序设计/Dev-Cpp/MinGW64/x86_64-w64-mingw32/include" -I"D:/程序设计/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include" -I"D:/程序设计/Dev-Cpp/MinGW64/lib/gcc/x86_64-w64-mingw32/4.9.2/include/c++" +BIN = test3.exe +CXXFLAGS = $(CXXINCS) +CFLAGS = $(INCS) +RM = rm.exe -f + +.PHONY: all all-before all-after clean clean-custom + +all: all-before $(BIN) all-after + +clean: clean-custom + ${RM} $(OBJ) $(BIN) + +$(BIN): $(OBJ) + $(CPP) $(LINKOBJ) -o $(BIN) $(LIBS) + +UserManager.o: UserManager.cpp + $(CPP) -c UserManager.cpp -o UserManager.o $(CXXFLAGS) + +User.o: User.cpp + $(CPP) -c User.cpp -o User.o $(CXXFLAGS) + +QuestionGenerator.o: QuestionGenerator.cpp + $(CPP) -c QuestionGenerator.cpp -o QuestionGenerator.o $(CXXFLAGS) + +Question.o: Question.cpp + $(CPP) -c Question.cpp -o Question.o $(CXXFLAGS) + +LoginWindow.o: LoginWindow.cpp + $(CPP) -c LoginWindow.cpp -o LoginWindow.o $(CXXFLAGS) + +RegisterWindow.o: RegisterWindow.cpp + $(CPP) -c RegisterWindow.cpp -o RegisterWindow.o $(CXXFLAGS) + +QuestionWindow.o: QuestionWindow.cpp + $(CPP) -c QuestionWindow.cpp -o QuestionWindow.o $(CXXFLAGS) + +main.o: main.cpp + $(CPP) -c main.cpp -o main.o $(CXXFLAGS) + +EmailSender.o: EmailSender.cpp + $(CPP) -c EmailSender.cpp -o EmailSender.o $(CXXFLAGS) + +SelectionWindow.o: SelectionWindow.cpp + $(CPP) -c SelectionWindow.cpp -o SelectionWindow.o $(CXXFLAGS) diff --git a/Question.cpp b/src/Question.cpp similarity index 96% rename from Question.cpp rename to src/Question.cpp index 6365005..28a30cb 100644 --- a/Question.cpp +++ b/src/Question.cpp @@ -1,27 +1,27 @@ -#include "Question.h" - -Question::Question(const std::string& text, const std::vector& options, int correctAnswer) - : text(text), options(options), correctAnswer(correctAnswer) {} - -std::string Question::getText() const { - return text; -} - -std::vector Question::getOptions() const { - return options; -} - -int Question::getCorrectAnswer() const { - return correctAnswer; -} - -bool Question::checkAnswer(int userAnswer) const { - return userAnswer == correctAnswer; -} - -std::string Question::getCorrectOptionText() const { - if (correctAnswer >= 0 && correctAnswer < (int)options.size()) { - return options[correctAnswer]; - } - return "无正确答案"; -} +#include "Question.h" + +Question::Question(const std::string& text, const std::vector& options, int correctAnswer) + : text(text), options(options), correctAnswer(correctAnswer) {} + +std::string Question::getText() const { + return text; +} + +std::vector Question::getOptions() const { + return options; +} + +int Question::getCorrectAnswer() const { + return correctAnswer; +} + +bool Question::checkAnswer(int userAnswer) const { + return userAnswer == correctAnswer; +} + +std::string Question::getCorrectOptionText() const { + if (correctAnswer >= 0 && correctAnswer < (int)options.size()) { + return options[correctAnswer]; + } + return "无正确答案"; +} diff --git a/Question.h b/src/Question.h similarity index 95% rename from Question.h rename to src/Question.h index 408763a..b97684e 100644 --- a/Question.h +++ b/src/Question.h @@ -1,25 +1,25 @@ -#ifndef QUESTION_H -#define QUESTION_H - -#include -#include - -class Question { -public: - Question(const std::string& text, const std::vector& options, int correctAnswer); - - std::string getText() const; - std::vector getOptions() const; - int getCorrectAnswer() const; - bool checkAnswer(int userAnswer) const; - - // 添加调试方法 - std::string getCorrectOptionText() const; - -private: - std::string text; - std::vector options; - int correctAnswer; -}; - -#endif +#ifndef QUESTION_H +#define QUESTION_H + +#include +#include + +class Question { +public: + Question(const std::string& text, const std::vector& options, int correctAnswer); + + std::string getText() const; + std::vector getOptions() const; + int getCorrectAnswer() const; + bool checkAnswer(int userAnswer) const; + + // 添加调试方法 + std::string getCorrectOptionText() const; + +private: + std::string text; + std::vector options; + int correctAnswer; +}; + +#endif diff --git a/Question.o b/src/Question.o similarity index 100% rename from Question.o rename to src/Question.o diff --git a/QuestionGenerator.cpp b/src/QuestionGenerator.cpp similarity index 96% rename from QuestionGenerator.cpp rename to src/QuestionGenerator.cpp index 380e3b1..b2b9bb0 100644 --- a/QuestionGenerator.cpp +++ b/src/QuestionGenerator.cpp @@ -1,442 +1,442 @@ -#include "QuestionGenerator.h" -#include "Question.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// C++98兼容的数字转字符串函数 -std::string intToString(int value) { - std::stringstream ss; - ss << value; - return ss.str(); -} - -// 浮点数转字符串(保留2位小数) -std::string doubleToString(double value) { - std::stringstream ss; - ss.precision(2); - ss << std::fixed << value; - return ss.str(); -} - -QuestionGenerator::QuestionGenerator(const std::string& userType) : userType(userType) { - srand(static_cast(time(NULL))); -} - -std::vector QuestionGenerator::generateQuestions(int count) { - std::vector questions; - - for (int i = 0; i < count; ++i) { - Question question("", std::vector(), 0); - - if (userType == "elementary") { - question = generateElementaryQuestion(); - } else if (userType == "middle") { - question = generateMiddleSchoolQuestion(); - } else if (userType == "high") { - question = generateHighSchoolQuestion(); - } - - if (question.getText() != "" && question.getOptions().size() == 4) { - questions.push_back(question); - } else { - // 如果生成失败,重新生成 - i--; - } - } - - return questions; -} - -// 获取操作符的优先级 -int getOperatorPriority(char op) { - if (op == '*' || op == '/') return 2; - if (op == '+' || op == '-') return 1; - return 0; -} - -// 计算两个数的运算结果 -int calculate(int a, int b, char op) { - switch (op) { - case '+': return a + b; - case '-': return a - b; - case '*': return a * b; - case '/': - if (b != 0 && a % b == 0) return a / b; - return a; // 如果除不尽,返回原值(应该不会发生) - default: return a; - } -} - -// 使用栈计算表达式结果(正确考虑运算优先级) -int calculateWithPriority(const std::vector& numbers, const std::vector& operators) { - if (numbers.size() != operators.size() + 1) { - return numbers[0]; // 错误情况,返回第一个数 - } - - std::stack numStack; - std::stack opStack; - - numStack.push(numbers[0]); - - for (size_t i = 0; i < operators.size(); ++i) { - char currentOp = operators[i]; - int currentNum = numbers[i + 1]; - - // 处理操作符优先级 - while (!opStack.empty() && getOperatorPriority(opStack.top()) >= getOperatorPriority(currentOp)) { - int num2 = numStack.top(); numStack.pop(); - int num1 = numStack.top(); numStack.pop(); - char op = opStack.top(); opStack.pop(); - numStack.push(calculate(num1, num2, op)); - } - - opStack.push(currentOp); - numStack.push(currentNum); - } - - // 处理剩余的操作 - while (!opStack.empty()) { - int num2 = numStack.top(); numStack.pop(); - int num1 = numStack.top(); numStack.pop(); - char op = opStack.top(); opStack.pop(); - numStack.push(calculate(num1, num2, op)); - } - - return numStack.top(); -} - -// 生成表达式字符串(带括号显示优先级) -std::string generateExpressionString(const std::vector& numbers, const std::vector& operators) { - std::string expression = intToString(numbers[0]); - - for (size_t i = 0; i < operators.size(); ++i) { - expression += " "; - expression += operators[i]; - expression += " "; - expression += intToString(numbers[i + 1]); - } - - return expression; -} - -Question QuestionGenerator::generateElementaryQuestion() { - int operandCount = 2 + rand() % 2; // 2-3个操作数 - - std::vector numbers; - std::vector operators; - - // 生成第一个数字 - numbers.push_back(1 + rand() % 20); - - // 生成操作符和数字 - for (int i = 0; i < operandCount; ++i) { - char op; - int num = 1 + rand() % 15; - - // 根据情况选择操作符 - if (i == 0) { - // 第一个操作符随机选择 - op = "+-*/"[rand() % 4]; - } else { - // 后续操作符避免复杂组合 - if (operators[i-1] == '*' || operators[i-1] == '/') { - op = "+-"[rand() % 2]; // 乘除后接加减 - } else { - op = "+-*/"[rand() % 4]; - } - } - - // 特殊处理 - if (op == '/') { - // 确保能整除 - if (num == 0) num = 1; - // 调整被除数确保整除 - numbers[i] = numbers[i] * num; - } else if (op == '-') { - // 确保减法结果不为负 - // 先计算当前值 - int currentValue = calculateWithPriority(numbers, operators); - if (currentValue - num < 0) { - num = rand() % currentValue + 1; - } - } else if (op == '*') { - // 避免结果过大 - if (numbers[i] * num > 100) { - num = 2; - } - } - - operators.push_back(op); - numbers.push_back(num); - } - - // 计算正确结果 - int result = calculateWithPriority(numbers, operators); - - // 确保结果合理 - if (result <= 0 || result > 200) { - return generateElementaryQuestion(); // 重新生成 - } - - // 生成表达式 - std::string expression = generateExpressionString(numbers, operators); - std::string questionText = expression + " = ?"; - - if (isDuplicate(questionText)) { - return generateElementaryQuestion(); - } - - addToHistory(questionText); - - // 生成选项 - std::vector options; - int correctIndex = rand() % 4; - - // 生成3个错误答案 - std::vector wrongAnswers; - for (int i = 0; i < 3; ++i) { - int wrongAnswer; - int attempts = 0; - do { - attempts++; - if (attempts > 10) { - wrongAnswer = result + (i + 1) * 3; - break; - } - - int offset = (rand() % 10) + 2; - if (rand() % 2 == 0) { - wrongAnswer = result + offset; - } else { - wrongAnswer = result - offset; - if (wrongAnswer < 1) wrongAnswer = result + offset; - } - } while (wrongAnswer == result || - std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); - - wrongAnswers.push_back(wrongAnswer); - } - - // 构建选项 - for (int i = 0; i < 4; ++i) { - if (i == correctIndex) { - options.push_back(intToString(result)); - } else { - options.push_back(intToString(wrongAnswers[i > correctIndex ? i-1 : i])); - } - } - - // 调试输出 - std::cout << "小学题目: " << questionText << std::endl; - std::cout << "计算顺序: "; - for (size_t i = 0; i < numbers.size(); ++i) { - std::cout << numbers[i]; - if (i < operators.size()) { - std::cout << " " << operators[i] << " "; - } - } - std::cout << " = " << result << std::endl; - std::cout << "正确答案: " << result << std::endl; - std::cout << "------------------------" << std::endl; - - return Question(questionText, options, correctIndex); -} - -// 辅助函数:找到一个数的约数 -int QuestionGenerator::findDivisor(int number) { - if (number <= 1) return 1; - - for (int i = 2; i <= 10; ++i) { - if (number % i == 0) { - return i; - } - } - - return 1; -} -Question QuestionGenerator::generateMiddleSchoolQuestion() { - int type = rand() % 2; // 0: 平方题, 1: 开方题 - - if (type == 0) { - // 平方题 - int base = 2 + rand() % 15; // 2-16 - int coefficient = 1 + rand() % 5; - int result = coefficient * base * base; - - std::string questionText; - if (coefficient == 1) { - // 方案1: 使用Unicode上标 - // questionText = intToString(base) + "2 = ?"; - - // 方案2: 使用文本描述 - questionText = intToString(base) + "的平方 = ?"; - } else { - // questionText = intToString(coefficient) + " × " + intToString(base) + "2 = ?"; - questionText = intToString(coefficient) + " × " + intToString(base) + "的平方 = ?"; - } - - if (isDuplicate(questionText)) { - return generateMiddleSchoolQuestion(); - } - - addToHistory(questionText); - - // 生成选项 - std::vector options; - int correctIndex = rand() % 4; - - std::vector wrongAnswers; - for (int i = 0; i < 3; ++i) { - int wrongAnswer; - do { - int offset = (rand() % 20) + 5; - if (rand() % 2 == 0) { - wrongAnswer = result + offset; - } else { - wrongAnswer = result - offset; - if (wrongAnswer <= 0) wrongAnswer = result + offset; - } - } while (wrongAnswer == result || - std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); - - wrongAnswers.push_back(wrongAnswer); - } - - for (int i = 0; i < 4; ++i) { - if (i == correctIndex) { - options.push_back(intToString(result)); - } else { - options.push_back(intToString(wrongAnswers[i > correctIndex ? i-1 : i])); - } - } - - return Question(questionText, options, correctIndex); - } else { - // 开方题 - int base = 2 + rand() % 12; // 2-13 - int squared = base * base; - - // 方案1: 使用Unicode平方根符号 - // std::string questionText = "√(" + intToString(squared) + ") = ?"; - - // 方案2: 使用文本描述 - std::string questionText = "根号" + intToString(squared) + " = ?"; - - if (isDuplicate(questionText)) { - return generateMiddleSchoolQuestion(); - } - - addToHistory(questionText); - - // 生成选项 - std::vector options; - int correctIndex = rand() % 4; - - std::vector wrongAnswers; - for (int i = 0; i < 3; ++i) { - int wrongAnswer; - do { - wrongAnswer = base + (rand() % 5) - 2; // -2到+2的偏移 - if (wrongAnswer <= 0) wrongAnswer = 1; - } while (wrongAnswer == base || - std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); - - wrongAnswers.push_back(wrongAnswer); - } - - for (int i = 0; i < 4; ++i) { - if (i == correctIndex) { - options.push_back(intToString(base)); - } else { - options.push_back(intToString(wrongAnswers[i > correctIndex ? i-1 : i])); - } - } - - return Question(questionText, options, correctIndex); - } -} -Question QuestionGenerator::generateHighSchoolQuestion() { - const char* trigFunctions[] = {"sin", "cos", "tan"}; - const char* currentFunc = trigFunctions[rand() % 3]; - int angle = 0; - double result = 0.0; - - int commonAngles[] = {0, 30, 45, 60, 90}; - angle = commonAngles[rand() % 5]; - - double radian = angle * 3.14159 / 180.0; - if (std::string(currentFunc) == "sin") { - result = sin(radian); - } else if (std::string(currentFunc) == "cos") { - result = cos(radian); - } else { - if (angle == 90) angle = 45; - radian = angle * 3.14159 / 180.0; - result = tan(radian); - } - - result = round(result * 100) / 100.0; - - std::string questionText = std::string(currentFunc) + "(" + intToString(angle) + "°) = ?"; - - if (isDuplicate(questionText)) { - return generateHighSchoolQuestion(); - } - - addToHistory(questionText); - - std::vector options; - int correctIndex = rand() % 4; - - std::vector wrongAnswers; - for (int i = 0; i < 3; ++i) { - double wrongAnswer; - do { - double offset = (rand() % 20 + 5) / 100.0; - if (rand() % 2 == 0) { - wrongAnswer = result + offset; - } else { - wrongAnswer = result - offset; - if (wrongAnswer < -1.0) wrongAnswer = result + offset; - } - wrongAnswer = round(wrongAnswer * 100) / 100.0; - } while (wrongAnswer == result || - std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); - - wrongAnswers.push_back(wrongAnswer); - } - - for (int i = 0; i < 4; ++i) { - if (i == correctIndex) { - options.push_back(doubleToString(result)); - } else { - options.push_back(doubleToString(wrongAnswers[i > correctIndex ? i-1 : i])); - } - } - - return Question(questionText, options, correctIndex); -} - -bool QuestionGenerator::isDuplicate(const std::string& questionText) { - for (std::set::iterator it = questionHistory.begin(); it != questionHistory.end(); ++it) { - if (*it == questionText) { - return true; - } - } - return false; -} - -void QuestionGenerator::addToHistory(const std::string& questionText) { - questionHistory.insert(questionText); -} - -void QuestionGenerator::clearHistory() { - questionHistory.clear(); -} +#include "QuestionGenerator.h" +#include "Question.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +// C++98兼容的数字转字符串函数 +std::string intToString(int value) { + std::stringstream ss; + ss << value; + return ss.str(); +} + +// 浮点数转字符串(保留2位小数) +std::string doubleToString(double value) { + std::stringstream ss; + ss.precision(2); + ss << std::fixed << value; + return ss.str(); +} + +QuestionGenerator::QuestionGenerator(const std::string& userType) : userType(userType) { + srand(static_cast(time(NULL))); +} + +std::vector QuestionGenerator::generateQuestions(int count) { + std::vector questions; + + for (int i = 0; i < count; ++i) { + Question question("", std::vector(), 0); + + if (userType == "elementary") { + question = generateElementaryQuestion(); + } else if (userType == "middle") { + question = generateMiddleSchoolQuestion(); + } else if (userType == "high") { + question = generateHighSchoolQuestion(); + } + + if (question.getText() != "" && question.getOptions().size() == 4) { + questions.push_back(question); + } else { + // 如果生成失败,重新生成 + i--; + } + } + + return questions; +} + +// 获取操作符的优先级 +int getOperatorPriority(char op) { + if (op == '*' || op == '/') return 2; + if (op == '+' || op == '-') return 1; + return 0; +} + +// 计算两个数的运算结果 +int calculate(int a, int b, char op) { + switch (op) { + case '+': return a + b; + case '-': return a - b; + case '*': return a * b; + case '/': + if (b != 0 && a % b == 0) return a / b; + return a; // 如果除不尽,返回原值(应该不会发生) + default: return a; + } +} + +// 使用栈计算表达式结果(正确考虑运算优先级) +int calculateWithPriority(const std::vector& numbers, const std::vector& operators) { + if (numbers.size() != operators.size() + 1) { + return numbers[0]; // 错误情况,返回第一个数 + } + + std::stack numStack; + std::stack opStack; + + numStack.push(numbers[0]); + + for (size_t i = 0; i < operators.size(); ++i) { + char currentOp = operators[i]; + int currentNum = numbers[i + 1]; + + // 处理操作符优先级 + while (!opStack.empty() && getOperatorPriority(opStack.top()) >= getOperatorPriority(currentOp)) { + int num2 = numStack.top(); numStack.pop(); + int num1 = numStack.top(); numStack.pop(); + char op = opStack.top(); opStack.pop(); + numStack.push(calculate(num1, num2, op)); + } + + opStack.push(currentOp); + numStack.push(currentNum); + } + + // 处理剩余的操作 + while (!opStack.empty()) { + int num2 = numStack.top(); numStack.pop(); + int num1 = numStack.top(); numStack.pop(); + char op = opStack.top(); opStack.pop(); + numStack.push(calculate(num1, num2, op)); + } + + return numStack.top(); +} + +// 生成表达式字符串(带括号显示优先级) +std::string generateExpressionString(const std::vector& numbers, const std::vector& operators) { + std::string expression = intToString(numbers[0]); + + for (size_t i = 0; i < operators.size(); ++i) { + expression += " "; + expression += operators[i]; + expression += " "; + expression += intToString(numbers[i + 1]); + } + + return expression; +} + +Question QuestionGenerator::generateElementaryQuestion() { + int operandCount = 2 + rand() % 2; // 2-3个操作数 + + std::vector numbers; + std::vector operators; + + // 生成第一个数字 + numbers.push_back(1 + rand() % 20); + + // 生成操作符和数字 + for (int i = 0; i < operandCount; ++i) { + char op; + int num = 1 + rand() % 15; + + // 根据情况选择操作符 + if (i == 0) { + // 第一个操作符随机选择 + op = "+-*/"[rand() % 4]; + } else { + // 后续操作符避免复杂组合 + if (operators[i-1] == '*' || operators[i-1] == '/') { + op = "+-"[rand() % 2]; // 乘除后接加减 + } else { + op = "+-*/"[rand() % 4]; + } + } + + // 特殊处理 + if (op == '/') { + // 确保能整除 + if (num == 0) num = 1; + // 调整被除数确保整除 + numbers[i] = numbers[i] * num; + } else if (op == '-') { + // 确保减法结果不为负 + // 先计算当前值 + int currentValue = calculateWithPriority(numbers, operators); + if (currentValue - num < 0) { + num = rand() % currentValue + 1; + } + } else if (op == '*') { + // 避免结果过大 + if (numbers[i] * num > 100) { + num = 2; + } + } + + operators.push_back(op); + numbers.push_back(num); + } + + // 计算正确结果 + int result = calculateWithPriority(numbers, operators); + + // 确保结果合理 + if (result <= 0 || result > 200) { + return generateElementaryQuestion(); // 重新生成 + } + + // 生成表达式 + std::string expression = generateExpressionString(numbers, operators); + std::string questionText = expression + " = ?"; + + if (isDuplicate(questionText)) { + return generateElementaryQuestion(); + } + + addToHistory(questionText); + + // 生成选项 + std::vector options; + int correctIndex = rand() % 4; + + // 生成3个错误答案 + std::vector wrongAnswers; + for (int i = 0; i < 3; ++i) { + int wrongAnswer; + int attempts = 0; + do { + attempts++; + if (attempts > 10) { + wrongAnswer = result + (i + 1) * 3; + break; + } + + int offset = (rand() % 10) + 2; + if (rand() % 2 == 0) { + wrongAnswer = result + offset; + } else { + wrongAnswer = result - offset; + if (wrongAnswer < 1) wrongAnswer = result + offset; + } + } while (wrongAnswer == result || + std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); + + wrongAnswers.push_back(wrongAnswer); + } + + // 构建选项 + for (int i = 0; i < 4; ++i) { + if (i == correctIndex) { + options.push_back(intToString(result)); + } else { + options.push_back(intToString(wrongAnswers[i > correctIndex ? i-1 : i])); + } + } + + // 调试输出 + std::cout << "小学题目: " << questionText << std::endl; + std::cout << "计算顺序: "; + for (size_t i = 0; i < numbers.size(); ++i) { + std::cout << numbers[i]; + if (i < operators.size()) { + std::cout << " " << operators[i] << " "; + } + } + std::cout << " = " << result << std::endl; + std::cout << "正确答案: " << result << std::endl; + std::cout << "------------------------" << std::endl; + + return Question(questionText, options, correctIndex); +} + +// 辅助函数:找到一个数的约数 +int QuestionGenerator::findDivisor(int number) { + if (number <= 1) return 1; + + for (int i = 2; i <= 10; ++i) { + if (number % i == 0) { + return i; + } + } + + return 1; +} +Question QuestionGenerator::generateMiddleSchoolQuestion() { + int type = rand() % 2; // 0: 平方题, 1: 开方题 + + if (type == 0) { + // 平方题 + int base = 2 + rand() % 15; // 2-16 + int coefficient = 1 + rand() % 5; + int result = coefficient * base * base; + + std::string questionText; + if (coefficient == 1) { + // 方案1: 使用Unicode上标 + // questionText = intToString(base) + "2 = ?"; + + // 方案2: 使用文本描述 + questionText = intToString(base) + "的平方 = ?"; + } else { + // questionText = intToString(coefficient) + " × " + intToString(base) + "2 = ?"; + questionText = intToString(coefficient) + " × " + intToString(base) + "的平方 = ?"; + } + + if (isDuplicate(questionText)) { + return generateMiddleSchoolQuestion(); + } + + addToHistory(questionText); + + // 生成选项 + std::vector options; + int correctIndex = rand() % 4; + + std::vector wrongAnswers; + for (int i = 0; i < 3; ++i) { + int wrongAnswer; + do { + int offset = (rand() % 20) + 5; + if (rand() % 2 == 0) { + wrongAnswer = result + offset; + } else { + wrongAnswer = result - offset; + if (wrongAnswer <= 0) wrongAnswer = result + offset; + } + } while (wrongAnswer == result || + std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); + + wrongAnswers.push_back(wrongAnswer); + } + + for (int i = 0; i < 4; ++i) { + if (i == correctIndex) { + options.push_back(intToString(result)); + } else { + options.push_back(intToString(wrongAnswers[i > correctIndex ? i-1 : i])); + } + } + + return Question(questionText, options, correctIndex); + } else { + // 开方题 + int base = 2 + rand() % 12; // 2-13 + int squared = base * base; + + // 方案1: 使用Unicode平方根符号 + // std::string questionText = "√(" + intToString(squared) + ") = ?"; + + // 方案2: 使用文本描述 + std::string questionText = "根号" + intToString(squared) + " = ?"; + + if (isDuplicate(questionText)) { + return generateMiddleSchoolQuestion(); + } + + addToHistory(questionText); + + // 生成选项 + std::vector options; + int correctIndex = rand() % 4; + + std::vector wrongAnswers; + for (int i = 0; i < 3; ++i) { + int wrongAnswer; + do { + wrongAnswer = base + (rand() % 5) - 2; // -2到+2的偏移 + if (wrongAnswer <= 0) wrongAnswer = 1; + } while (wrongAnswer == base || + std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); + + wrongAnswers.push_back(wrongAnswer); + } + + for (int i = 0; i < 4; ++i) { + if (i == correctIndex) { + options.push_back(intToString(base)); + } else { + options.push_back(intToString(wrongAnswers[i > correctIndex ? i-1 : i])); + } + } + + return Question(questionText, options, correctIndex); + } +} +Question QuestionGenerator::generateHighSchoolQuestion() { + const char* trigFunctions[] = {"sin", "cos", "tan"}; + const char* currentFunc = trigFunctions[rand() % 3]; + int angle = 0; + double result = 0.0; + + int commonAngles[] = {0, 30, 45, 60, 90}; + angle = commonAngles[rand() % 5]; + + double radian = angle * 3.14159 / 180.0; + if (std::string(currentFunc) == "sin") { + result = sin(radian); + } else if (std::string(currentFunc) == "cos") { + result = cos(radian); + } else { + if (angle == 90) angle = 45; + radian = angle * 3.14159 / 180.0; + result = tan(radian); + } + + result = round(result * 100) / 100.0; + + std::string questionText = std::string(currentFunc) + "(" + intToString(angle) + "°) = ?"; + + if (isDuplicate(questionText)) { + return generateHighSchoolQuestion(); + } + + addToHistory(questionText); + + std::vector options; + int correctIndex = rand() % 4; + + std::vector wrongAnswers; + for (int i = 0; i < 3; ++i) { + double wrongAnswer; + do { + double offset = (rand() % 20 + 5) / 100.0; + if (rand() % 2 == 0) { + wrongAnswer = result + offset; + } else { + wrongAnswer = result - offset; + if (wrongAnswer < -1.0) wrongAnswer = result + offset; + } + wrongAnswer = round(wrongAnswer * 100) / 100.0; + } while (wrongAnswer == result || + std::find(wrongAnswers.begin(), wrongAnswers.end(), wrongAnswer) != wrongAnswers.end()); + + wrongAnswers.push_back(wrongAnswer); + } + + for (int i = 0; i < 4; ++i) { + if (i == correctIndex) { + options.push_back(doubleToString(result)); + } else { + options.push_back(doubleToString(wrongAnswers[i > correctIndex ? i-1 : i])); + } + } + + return Question(questionText, options, correctIndex); +} + +bool QuestionGenerator::isDuplicate(const std::string& questionText) { + for (std::set::iterator it = questionHistory.begin(); it != questionHistory.end(); ++it) { + if (*it == questionText) { + return true; + } + } + return false; +} + +void QuestionGenerator::addToHistory(const std::string& questionText) { + questionHistory.insert(questionText); +} + +void QuestionGenerator::clearHistory() { + questionHistory.clear(); +} diff --git a/QuestionGenerator.h b/src/QuestionGenerator.h similarity index 95% rename from QuestionGenerator.h rename to src/QuestionGenerator.h index 23c3e63..c15e604 100644 --- a/QuestionGenerator.h +++ b/src/QuestionGenerator.h @@ -1,29 +1,29 @@ -#ifndef QUESTIONGENERATOR_H -#define QUESTIONGENERATOR_H - -#include "Question.h" -#include -#include -#include - -class QuestionGenerator { -public: - QuestionGenerator(const std::string& userType); - - std::vector generateQuestions(int count); - void clearHistory(); - -private: - std::string userType; - std::set questionHistory; - - Question generateElementaryQuestion(); - Question generateMiddleSchoolQuestion(); - Question generateHighSchoolQuestion(); - - int findDivisor(int number); - bool isDuplicate(const std::string& questionText); - void addToHistory(const std::string& questionText); -}; - -#endif +#ifndef QUESTIONGENERATOR_H +#define QUESTIONGENERATOR_H + +#include "Question.h" +#include +#include +#include + +class QuestionGenerator { +public: + QuestionGenerator(const std::string& userType); + + std::vector generateQuestions(int count); + void clearHistory(); + +private: + std::string userType; + std::set questionHistory; + + Question generateElementaryQuestion(); + Question generateMiddleSchoolQuestion(); + Question generateHighSchoolQuestion(); + + int findDivisor(int number); + bool isDuplicate(const std::string& questionText); + void addToHistory(const std::string& questionText); +}; + +#endif diff --git a/QuestionGenerator.o b/src/QuestionGenerator.o similarity index 100% rename from QuestionGenerator.o rename to src/QuestionGenerator.o diff --git a/QuestionWindow.cpp b/src/QuestionWindow.cpp similarity index 96% rename from QuestionWindow.cpp rename to src/QuestionWindow.cpp index 056f119..f7f5aef 100644 --- a/QuestionWindow.cpp +++ b/src/QuestionWindow.cpp @@ -1,195 +1,195 @@ -#include "QuestionWindow.h" -#include "QuestionGenerator.h" -#include "SelectionWindow.h" -#include -#include -#include -#include // 添加iostream用于调试输出 - -HWND QuestionWindow::hwnd = NULL; -HWND QuestionWindow::hQuestionText = NULL; -HWND QuestionWindow::hOptions[4] = {NULL, NULL, NULL, NULL}; -HWND QuestionWindow::hNextButton = NULL; -HWND QuestionWindow::hProgress = NULL; - -std::vector QuestionWindow::questions; -int QuestionWindow::currentQuestion = 0; -int QuestionWindow::score = 0; - -void QuestionWindow::Show(const std::string& userType, int questionCount) { - // 如果窗口已存在,先销毁 - if (hwnd != NULL) { - DestroyWindow(hwnd); - hwnd = NULL; - } - - // 生成题目 - 使用传入的题目数量 - QuestionGenerator generator(userType); - questions = generator.generateQuestions(questionCount); - currentQuestion = 0; - score = 0; - - WNDCLASSEX wc; - memset(&wc, 0, sizeof(WNDCLASSEX)); - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = WndProc; - wc.hInstance = GetModuleHandle(NULL); - wc.hCursor = LoadCursor(NULL, IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wc.lpszClassName = "QuestionWindow"; - - RegisterClassEx(&wc); - - hwnd = CreateWindowEx(0, "QuestionWindow", "数学学习软件 - 答题", - WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, - CW_USEDEFAULT, CW_USEDEFAULT, 500, 400, - NULL, NULL, GetModuleHandle(NULL), NULL); - - if (!hwnd) { - MessageBox(NULL, "创建答题窗口失败", "错误", MB_OK | MB_ICONERROR); - return; - } - - CreateControls(); - LoadQuestion(); - - ShowWindow(hwnd, SW_SHOW); - UpdateWindow(hwnd); -} - -void QuestionWindow::CreateControls() { - // 进度显示 - hProgress = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_LEFT, - 10, 10, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 题目文本 - hQuestionText = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_LEFT | WS_BORDER, - 10, 50, 460, 60, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 选项按钮 - for (int i = 0; i < 4; i++) { - hOptions[i] = CreateWindow("BUTTON", "", WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON, - 10, 120 + i * 40, 460, 30, hwnd, (HMENU)(10 + i), - GetModuleHandle(NULL), NULL); - } - - // 下一题按钮 - hNextButton = CreateWindow("BUTTON", "下一题", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, - 200, 300, 100, 30, hwnd, (HMENU)20, GetModuleHandle(NULL), NULL); -} - -LRESULT CALLBACK QuestionWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - switch (msg) { - case WM_COMMAND: { - int cmd = LOWORD(wParam); - if (cmd == 20) { // 下一题按钮 - OnNextQuestion(); - } - break; - } - case WM_CLOSE: - DestroyWindow(hwnd); - SelectionWindow::Show(); // 关闭时返回选择界面 - break; - case WM_DESTROY: - break; - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - } - return 0; -} - -void QuestionWindow::LoadQuestion() { - if (currentQuestion >= (int)questions.size()) { - ShowResult(); - return; - } - - Question& question = questions[currentQuestion]; - - // 更新进度 - std::stringstream progress; - progress << "进度: " << (currentQuestion + 1) << "/" << questions.size(); - SetWindowText(hProgress, progress.str().c_str()); - - // 设置题目文本 - SetWindowText(hQuestionText, question.getText().c_str()); - - // 设置选项 - std::vector options = question.getOptions(); - - // 调试输出:显示正确答案(在控制台) - std::cout << "题目 " << (currentQuestion + 1) << ": " << question.getText() << std::endl; - std::cout << "正确答案: 选项" << (question.getCorrectAnswer() + 1) - << " - " << options[question.getCorrectAnswer()] << std::endl; - std::cout << "所有选项: "; - for (int i = 0; i < 4; i++) { - std::cout << "[" << (i+1) << "]" << options[i] << " "; - } - std::cout << std::endl << std::endl; - - for (int i = 0; i < 4; i++) { - if (i < (int)options.size()) { - SetWindowText(hOptions[i], options[i].c_str()); - } - SendMessage(hOptions[i], BM_SETCHECK, BST_UNCHECKED, 0); - } - - if (currentQuestion == (int)questions.size() - 1) { - SetWindowText(hNextButton, "提交"); - } -} - -void QuestionWindow::OnNextQuestion() { - // 检查当前选择的答案 - int selectedAnswer = -1; - for (int i = 0; i < 4; i++) { - if (SendMessage(hOptions[i], BM_GETCHECK, 0, 0) == BST_CHECKED) { - selectedAnswer = i; - break; - } - } - - if (selectedAnswer == -1) { - MessageBox(hwnd, "请选择一个答案", "提示", MB_OK | MB_ICONINFORMATION); - return; - } - - // 检查答案 - if (questions[currentQuestion].checkAnswer(selectedAnswer)) { - score++; - std::cout << "第" << (currentQuestion + 1) << "题回答正确!" << std::endl; - } else { - std::cout << "第" << (currentQuestion + 1) << "题回答错误!" << std::endl; - } - - currentQuestion++; - LoadQuestion(); -} -void QuestionWindow::ShowResult() { - std::stringstream result; - int total = questions.size(); - int percentage = (total > 0) ? (score * 100 / total) : 0; - - result << "答题完成!\n得分: " << score << "/" << total - << "\n正确率: " << percentage << "%\n\n" - << "请选择:\n" - << "是 - 返回选择界面\n" - << "否 - 结束程序"; - - // 显示带有选项的消息框 - int choice = MessageBox(hwnd, result.str().c_str(), "答题结果", - MB_YESNO | MB_ICONINFORMATION | MB_DEFBUTTON1); - - DestroyWindow(hwnd); - hwnd = NULL; - - if (choice == IDYES) { - // 用户选择"是" - 继续做题,返回选择界面 - SelectionWindow::Show(); - } else { - // 用户选择"否" - 退出程序 - PostQuitMessage(0); - } -} +#include "QuestionWindow.h" +#include "QuestionGenerator.h" +#include "SelectionWindow.h" +#include +#include +#include +#include // 添加iostream用于调试输出 + +HWND QuestionWindow::hwnd = NULL; +HWND QuestionWindow::hQuestionText = NULL; +HWND QuestionWindow::hOptions[4] = {NULL, NULL, NULL, NULL}; +HWND QuestionWindow::hNextButton = NULL; +HWND QuestionWindow::hProgress = NULL; + +std::vector QuestionWindow::questions; +int QuestionWindow::currentQuestion = 0; +int QuestionWindow::score = 0; + +void QuestionWindow::Show(const std::string& userType, int questionCount) { + // 如果窗口已存在,先销毁 + if (hwnd != NULL) { + DestroyWindow(hwnd); + hwnd = NULL; + } + + // 生成题目 - 使用传入的题目数量 + QuestionGenerator generator(userType); + questions = generator.generateQuestions(questionCount); + currentQuestion = 0; + score = 0; + + WNDCLASSEX wc; + memset(&wc, 0, sizeof(WNDCLASSEX)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.hInstance = GetModuleHandle(NULL); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wc.lpszClassName = "QuestionWindow"; + + RegisterClassEx(&wc); + + hwnd = CreateWindowEx(0, "QuestionWindow", "数学学习软件 - 答题", + WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, + CW_USEDEFAULT, CW_USEDEFAULT, 500, 400, + NULL, NULL, GetModuleHandle(NULL), NULL); + + if (!hwnd) { + MessageBox(NULL, "创建答题窗口失败", "错误", MB_OK | MB_ICONERROR); + return; + } + + CreateControls(); + LoadQuestion(); + + ShowWindow(hwnd, SW_SHOW); + UpdateWindow(hwnd); +} + +void QuestionWindow::CreateControls() { + // 进度显示 + hProgress = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_LEFT, + 10, 10, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 题目文本 + hQuestionText = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_LEFT | WS_BORDER, + 10, 50, 460, 60, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 选项按钮 + for (int i = 0; i < 4; i++) { + hOptions[i] = CreateWindow("BUTTON", "", WS_VISIBLE | WS_CHILD | BS_AUTORADIOBUTTON, + 10, 120 + i * 40, 460, 30, hwnd, (HMENU)(10 + i), + GetModuleHandle(NULL), NULL); + } + + // 下一题按钮 + hNextButton = CreateWindow("BUTTON", "下一题", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 200, 300, 100, 30, hwnd, (HMENU)20, GetModuleHandle(NULL), NULL); +} + +LRESULT CALLBACK QuestionWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + switch (msg) { + case WM_COMMAND: { + int cmd = LOWORD(wParam); + if (cmd == 20) { // 下一题按钮 + OnNextQuestion(); + } + break; + } + case WM_CLOSE: + DestroyWindow(hwnd); + SelectionWindow::Show(); // 关闭时返回选择界面 + break; + case WM_DESTROY: + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} + +void QuestionWindow::LoadQuestion() { + if (currentQuestion >= (int)questions.size()) { + ShowResult(); + return; + } + + Question& question = questions[currentQuestion]; + + // 更新进度 + std::stringstream progress; + progress << "进度: " << (currentQuestion + 1) << "/" << questions.size(); + SetWindowText(hProgress, progress.str().c_str()); + + // 设置题目文本 + SetWindowText(hQuestionText, question.getText().c_str()); + + // 设置选项 + std::vector options = question.getOptions(); + + // 调试输出:显示正确答案(在控制台) + std::cout << "题目 " << (currentQuestion + 1) << ": " << question.getText() << std::endl; + std::cout << "正确答案: 选项" << (question.getCorrectAnswer() + 1) + << " - " << options[question.getCorrectAnswer()] << std::endl; + std::cout << "所有选项: "; + for (int i = 0; i < 4; i++) { + std::cout << "[" << (i+1) << "]" << options[i] << " "; + } + std::cout << std::endl << std::endl; + + for (int i = 0; i < 4; i++) { + if (i < (int)options.size()) { + SetWindowText(hOptions[i], options[i].c_str()); + } + SendMessage(hOptions[i], BM_SETCHECK, BST_UNCHECKED, 0); + } + + if (currentQuestion == (int)questions.size() - 1) { + SetWindowText(hNextButton, "提交"); + } +} + +void QuestionWindow::OnNextQuestion() { + // 检查当前选择的答案 + int selectedAnswer = -1; + for (int i = 0; i < 4; i++) { + if (SendMessage(hOptions[i], BM_GETCHECK, 0, 0) == BST_CHECKED) { + selectedAnswer = i; + break; + } + } + + if (selectedAnswer == -1) { + MessageBox(hwnd, "请选择一个答案", "提示", MB_OK | MB_ICONINFORMATION); + return; + } + + // 检查答案 + if (questions[currentQuestion].checkAnswer(selectedAnswer)) { + score++; + std::cout << "第" << (currentQuestion + 1) << "题回答正确!" << std::endl; + } else { + std::cout << "第" << (currentQuestion + 1) << "题回答错误!" << std::endl; + } + + currentQuestion++; + LoadQuestion(); +} +void QuestionWindow::ShowResult() { + std::stringstream result; + int total = questions.size(); + int percentage = (total > 0) ? (score * 100 / total) : 0; + + result << "答题完成!\n得分: " << score << "/" << total + << "\n正确率: " << percentage << "%\n\n" + << "请选择:\n" + << "是 - 返回选择界面\n" + << "否 - 结束程序"; + + // 显示带有选项的消息框 + int choice = MessageBox(hwnd, result.str().c_str(), "答题结果", + MB_YESNO | MB_ICONINFORMATION | MB_DEFBUTTON1); + + DestroyWindow(hwnd); + hwnd = NULL; + + if (choice == IDYES) { + // 用户选择"是" - 继续做题,返回选择界面 + SelectionWindow::Show(); + } else { + // 用户选择"否" - 退出程序 + PostQuitMessage(0); + } +} diff --git a/QuestionWindow.h b/src/QuestionWindow.h similarity index 95% rename from QuestionWindow.h rename to src/QuestionWindow.h index dcb836e..30322ee 100644 --- a/QuestionWindow.h +++ b/src/QuestionWindow.h @@ -1,32 +1,32 @@ -#ifndef QUESTIONWINDOW_H -#define QUESTIONWINDOW_H - -#include -#include -#include -#include "Question.h" - -class QuestionWindow { -public: - static void Show(const std::string& userType, int questionCount); - static HWND GetHandle() { return hwnd; } - -private: - static HWND hwnd; - static HWND hQuestionText; - static HWND hOptions[4]; - static HWND hNextButton; - static HWND hProgress; - - static std::vector questions; - static int currentQuestion; - static int score; - - static void CreateControls(); - static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - static void LoadQuestion(); - static void OnNextQuestion(); - static void ShowResult(); -}; - -#endif +#ifndef QUESTIONWINDOW_H +#define QUESTIONWINDOW_H + +#include +#include +#include +#include "Question.h" + +class QuestionWindow { +public: + static void Show(const std::string& userType, int questionCount); + static HWND GetHandle() { return hwnd; } + +private: + static HWND hwnd; + static HWND hQuestionText; + static HWND hOptions[4]; + static HWND hNextButton; + static HWND hProgress; + + static std::vector questions; + static int currentQuestion; + static int score; + + static void CreateControls(); + static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); + static void LoadQuestion(); + static void OnNextQuestion(); + static void ShowResult(); +}; + +#endif diff --git a/QuestionWindow.o b/src/QuestionWindow.o similarity index 100% rename from QuestionWindow.o rename to src/QuestionWindow.o diff --git a/RegisterWindow.cpp b/src/RegisterWindow.cpp similarity index 97% rename from RegisterWindow.cpp rename to src/RegisterWindow.cpp index e181dfd..a92f1ca 100644 --- a/RegisterWindow.cpp +++ b/src/RegisterWindow.cpp @@ -1,225 +1,225 @@ -#include "RegisterWindow.h" -#include "UserManager.h" -#include "LoginWindow.h" -#include -#include -#include - -HWND RegisterWindow::hwnd = NULL; -HWND RegisterWindow::hEmail = NULL; -HWND RegisterWindow::hCode = NULL; -HWND RegisterWindow::hPassword = NULL; -HWND RegisterWindow::hConfirmPassword = NULL; -HWND RegisterWindow::hMessage = NULL; -std::string RegisterWindow::generatedCode = ""; - -void RegisterWindow::Show() { - // 如果窗口已存在,先销毁 - if (hwnd != NULL) { - DestroyWindow(hwnd); - hwnd = NULL; - } - - WNDCLASSEX wc; - memset(&wc, 0, sizeof(WNDCLASSEX)); - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = WndProc; - wc.hInstance = GetModuleHandle(NULL); - wc.hCursor = LoadCursor(NULL, IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wc.lpszClassName = "RegisterWindow"; - - RegisterClassEx(&wc); - - hwnd = CreateWindowEx(0, "RegisterWindow", "数学学习软件 - 注册", - WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, - CW_USEDEFAULT, CW_USEDEFAULT, 400, 450, - NULL, NULL, GetModuleHandle(NULL), NULL); - - if (!hwnd) { - MessageBox(NULL, "创建注册窗口失败", "错误", MB_OK | MB_ICONERROR); - return; - } - - CreateControls(); - - ShowWindow(hwnd, SW_SHOW); - UpdateWindow(hwnd); -} - -void RegisterWindow::CreateControls() { - // 标题 - CreateWindow("STATIC", "用户注册", WS_VISIBLE | WS_CHILD | SS_CENTER, - 10, 20, 360, 30, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 邮箱标签和输入框 - CreateWindow("STATIC", "邮箱:", WS_VISIBLE | WS_CHILD, - 50, 70, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - hEmail = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, - 100, 70, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 获取验证码按钮 - CreateWindow("BUTTON", "获取验证码", WS_VISIBLE | WS_CHILD, - 100, 110, 200, 30, hwnd, (HMENU)1, GetModuleHandle(NULL), NULL); - - // 验证码标签和输入框 - CreateWindow("STATIC", "验证码:", WS_VISIBLE | WS_CHILD, - 50, 160, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - hCode = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, - 100, 160, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 密码标签和输入框 - CreateWindow("STATIC", "密码:", WS_VISIBLE | WS_CHILD, - 50, 200, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - hPassword = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD, - 100, 200, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 确认密码标签和输入框 - CreateWindow("STATIC", "确认密码:", WS_VISIBLE | WS_CHILD, - 30, 230, 70, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - hConfirmPassword = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD, - 100, 230, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 密码要求提示 - CreateWindow("STATIC", "密码要求: 6-10位,包含大小写字母和数字", - WS_VISIBLE | WS_CHILD | SS_CENTER, - 50, 260, 300, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 注册按钮 - CreateWindow("BUTTON", "注册", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, - 100, 300, 80, 30, hwnd, (HMENU)2, GetModuleHandle(NULL), NULL); - - // 返回按钮 - CreateWindow("BUTTON", "返回", WS_VISIBLE | WS_CHILD, - 200, 300, 80, 30, hwnd, (HMENU)3, GetModuleHandle(NULL), NULL); - - // 消息标签 - hMessage = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_CENTER, - 50, 340, 300, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); -} - -LRESULT CALLBACK RegisterWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - switch (msg) { - case WM_COMMAND: { - int cmd = LOWORD(wParam); - if (cmd == 1) { // 获取验证码 - OnGetCode(); - } else if (cmd == 2) { // 注册按钮 - OnRegister(); - } else if (cmd == 3) { // 返回按钮 - OnBack(); - } - break; - } - case WM_CLOSE: - DestroyWindow(hwnd); - LoginWindow::Show(); - break; - case WM_DESTROY: - // 不在WM_DESTROY中调用PostQuitMessage - break; - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - } - return 0; -} - -void RegisterWindow::OnGetCode() { - char email[100]; - GetWindowText(hEmail, email, sizeof(email)); - - std::string strEmail(email); - - if (strEmail.empty()) { - SetWindowText(hMessage, "请输入邮箱地址"); - return; - } - - UserManager& userManager = UserManager::getInstance(); - if (!userManager.validateEmailFormat(strEmail)) { - SetWindowText(hMessage, "邮箱格式不正确"); - return; - } - - if (userManager.isEmailRegistered(strEmail)) { - SetWindowText(hMessage, "该邮箱已注册"); - return; - } - - // 显示发送中提示 - SetWindowText(hMessage, "正在发送验证码,请稍候..."); - - // 生成并发送验证码(不显示在界面上) - generatedCode = userManager.generateRegistrationCode(strEmail); - - if (!generatedCode.empty()) { - SetWindowText(hMessage, "验证码已发送到您的邮箱,请查收!"); - // 清空验证码输入框,让用户手动输入 - SetWindowText(hCode, ""); - // 设置焦点到验证码输入框 - SetFocus(hCode); - } else { - SetWindowText(hMessage, "邮件发送失败,请检查邮箱地址或重试"); - generatedCode = ""; // 清空验证码 - } -} - -void RegisterWindow::OnRegister() { - char email[100], code[100], password[100], confirmPassword[100]; - GetWindowText(hEmail, email, sizeof(email)); - GetWindowText(hCode, code, sizeof(code)); - GetWindowText(hPassword, password, sizeof(password)); - GetWindowText(hConfirmPassword, confirmPassword, sizeof(confirmPassword)); - - std::string strEmail(email); - std::string strCode(code); - std::string strPassword(password); - std::string strConfirmPassword(confirmPassword); - - // 验证输入 - if (strEmail.empty() || strCode.empty() || strPassword.empty() || strConfirmPassword.empty()) { - SetWindowText(hMessage, "请填写所有字段"); - return; - } - - // 验证验证码 - if (strCode != generatedCode) { - SetWindowText(hMessage, "验证码不正确"); - return; - } - - // 验证密码一致性 - if (strPassword != strConfirmPassword) { - SetWindowText(hMessage, "两次输入的密码不一致"); - return; - } - - UserManager& userManager = UserManager::getInstance(); - - // 验证密码格式 - if (!userManager.validatePasswordFormat(strPassword)) { - SetWindowText(hMessage, "密码格式不符合要求"); - return; - } - - // 注册用户 - if (registerUserWithPassword(strEmail, strPassword)) { - SetWindowText(hMessage, "注册成功!正在跳转到登录页面..."); - Sleep(2000); // 等待2秒显示成功消息 - OnBack(); - } else { - SetWindowText(hMessage, "注册失败,请重试"); - } -} - -bool RegisterWindow::registerUserWithPassword(const std::string& email, const std::string& password) { - UserManager& userManager = UserManager::getInstance(); - return userManager.registerUserWithPassword(email, password); -} - -void RegisterWindow::OnBack() { - DestroyWindow(hwnd); - hwnd = NULL; // 重置窗口句柄 - LoginWindow::Show(); -} +#include "RegisterWindow.h" +#include "UserManager.h" +#include "LoginWindow.h" +#include +#include +#include + +HWND RegisterWindow::hwnd = NULL; +HWND RegisterWindow::hEmail = NULL; +HWND RegisterWindow::hCode = NULL; +HWND RegisterWindow::hPassword = NULL; +HWND RegisterWindow::hConfirmPassword = NULL; +HWND RegisterWindow::hMessage = NULL; +std::string RegisterWindow::generatedCode = ""; + +void RegisterWindow::Show() { + // 如果窗口已存在,先销毁 + if (hwnd != NULL) { + DestroyWindow(hwnd); + hwnd = NULL; + } + + WNDCLASSEX wc; + memset(&wc, 0, sizeof(WNDCLASSEX)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.hInstance = GetModuleHandle(NULL); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wc.lpszClassName = "RegisterWindow"; + + RegisterClassEx(&wc); + + hwnd = CreateWindowEx(0, "RegisterWindow", "数学学习软件 - 注册", + WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, + CW_USEDEFAULT, CW_USEDEFAULT, 400, 450, + NULL, NULL, GetModuleHandle(NULL), NULL); + + if (!hwnd) { + MessageBox(NULL, "创建注册窗口失败", "错误", MB_OK | MB_ICONERROR); + return; + } + + CreateControls(); + + ShowWindow(hwnd, SW_SHOW); + UpdateWindow(hwnd); +} + +void RegisterWindow::CreateControls() { + // 标题 + CreateWindow("STATIC", "用户注册", WS_VISIBLE | WS_CHILD | SS_CENTER, + 10, 20, 360, 30, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 邮箱标签和输入框 + CreateWindow("STATIC", "邮箱:", WS_VISIBLE | WS_CHILD, + 50, 70, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hEmail = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, + 100, 70, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 获取验证码按钮 + CreateWindow("BUTTON", "获取验证码", WS_VISIBLE | WS_CHILD, + 100, 110, 200, 30, hwnd, (HMENU)1, GetModuleHandle(NULL), NULL); + + // 验证码标签和输入框 + CreateWindow("STATIC", "验证码:", WS_VISIBLE | WS_CHILD, + 50, 160, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hCode = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER, + 100, 160, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 密码标签和输入框 + CreateWindow("STATIC", "密码:", WS_VISIBLE | WS_CHILD, + 50, 200, 50, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hPassword = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD, + 100, 200, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 确认密码标签和输入框 + CreateWindow("STATIC", "确认密码:", WS_VISIBLE | WS_CHILD, + 30, 230, 70, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hConfirmPassword = CreateWindow("EDIT", "", WS_VISIBLE | WS_CHILD | WS_BORDER | ES_PASSWORD, + 100, 230, 200, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 密码要求提示 + CreateWindow("STATIC", "密码要求: 6-10位,包含大小写字母和数字", + WS_VISIBLE | WS_CHILD | SS_CENTER, + 50, 260, 300, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 注册按钮 + CreateWindow("BUTTON", "注册", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 300, 80, 30, hwnd, (HMENU)2, GetModuleHandle(NULL), NULL); + + // 返回按钮 + CreateWindow("BUTTON", "返回", WS_VISIBLE | WS_CHILD, + 200, 300, 80, 30, hwnd, (HMENU)3, GetModuleHandle(NULL), NULL); + + // 消息标签 + hMessage = CreateWindow("STATIC", "", WS_VISIBLE | WS_CHILD | SS_CENTER, + 50, 340, 300, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); +} + +LRESULT CALLBACK RegisterWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + switch (msg) { + case WM_COMMAND: { + int cmd = LOWORD(wParam); + if (cmd == 1) { // 获取验证码 + OnGetCode(); + } else if (cmd == 2) { // 注册按钮 + OnRegister(); + } else if (cmd == 3) { // 返回按钮 + OnBack(); + } + break; + } + case WM_CLOSE: + DestroyWindow(hwnd); + LoginWindow::Show(); + break; + case WM_DESTROY: + // 不在WM_DESTROY中调用PostQuitMessage + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} + +void RegisterWindow::OnGetCode() { + char email[100]; + GetWindowText(hEmail, email, sizeof(email)); + + std::string strEmail(email); + + if (strEmail.empty()) { + SetWindowText(hMessage, "请输入邮箱地址"); + return; + } + + UserManager& userManager = UserManager::getInstance(); + if (!userManager.validateEmailFormat(strEmail)) { + SetWindowText(hMessage, "邮箱格式不正确"); + return; + } + + if (userManager.isEmailRegistered(strEmail)) { + SetWindowText(hMessage, "该邮箱已注册"); + return; + } + + // 显示发送中提示 + SetWindowText(hMessage, "正在发送验证码,请稍候..."); + + // 生成并发送验证码(不显示在界面上) + generatedCode = userManager.generateRegistrationCode(strEmail); + + if (!generatedCode.empty()) { + SetWindowText(hMessage, "验证码已发送到您的邮箱,请查收!"); + // 清空验证码输入框,让用户手动输入 + SetWindowText(hCode, ""); + // 设置焦点到验证码输入框 + SetFocus(hCode); + } else { + SetWindowText(hMessage, "邮件发送失败,请检查邮箱地址或重试"); + generatedCode = ""; // 清空验证码 + } +} + +void RegisterWindow::OnRegister() { + char email[100], code[100], password[100], confirmPassword[100]; + GetWindowText(hEmail, email, sizeof(email)); + GetWindowText(hCode, code, sizeof(code)); + GetWindowText(hPassword, password, sizeof(password)); + GetWindowText(hConfirmPassword, confirmPassword, sizeof(confirmPassword)); + + std::string strEmail(email); + std::string strCode(code); + std::string strPassword(password); + std::string strConfirmPassword(confirmPassword); + + // 验证输入 + if (strEmail.empty() || strCode.empty() || strPassword.empty() || strConfirmPassword.empty()) { + SetWindowText(hMessage, "请填写所有字段"); + return; + } + + // 验证验证码 + if (strCode != generatedCode) { + SetWindowText(hMessage, "验证码不正确"); + return; + } + + // 验证密码一致性 + if (strPassword != strConfirmPassword) { + SetWindowText(hMessage, "两次输入的密码不一致"); + return; + } + + UserManager& userManager = UserManager::getInstance(); + + // 验证密码格式 + if (!userManager.validatePasswordFormat(strPassword)) { + SetWindowText(hMessage, "密码格式不符合要求"); + return; + } + + // 注册用户 + if (registerUserWithPassword(strEmail, strPassword)) { + SetWindowText(hMessage, "注册成功!正在跳转到登录页面..."); + Sleep(2000); // 等待2秒显示成功消息 + OnBack(); + } else { + SetWindowText(hMessage, "注册失败,请重试"); + } +} + +bool RegisterWindow::registerUserWithPassword(const std::string& email, const std::string& password) { + UserManager& userManager = UserManager::getInstance(); + return userManager.registerUserWithPassword(email, password); +} + +void RegisterWindow::OnBack() { + DestroyWindow(hwnd); + hwnd = NULL; // 重置窗口句柄 + LoginWindow::Show(); +} diff --git a/RegisterWindow.h b/src/RegisterWindow.h similarity index 96% rename from RegisterWindow.h rename to src/RegisterWindow.h index 2d8dcc2..72d53eb 100644 --- a/RegisterWindow.h +++ b/src/RegisterWindow.h @@ -1,30 +1,30 @@ -#ifndef REGISTERWINDOW_H -#define REGISTERWINDOW_H - -#include -#include - -class RegisterWindow { -public: - static void Show(); - static HWND GetHandle() { return hwnd; } - -private: - static HWND hwnd; - static HWND hEmail; - static HWND hCode; - static HWND hPassword; - static HWND hConfirmPassword; - static HWND hMessage; - - static std::string generatedCode; - - static void CreateControls(); - static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - static void OnGetCode(); - static void OnRegister(); - static void OnBack(); - static bool registerUserWithPassword(const std::string& email, const std::string& password); -}; - -#endif +#ifndef REGISTERWINDOW_H +#define REGISTERWINDOW_H + +#include +#include + +class RegisterWindow { +public: + static void Show(); + static HWND GetHandle() { return hwnd; } + +private: + static HWND hwnd; + static HWND hEmail; + static HWND hCode; + static HWND hPassword; + static HWND hConfirmPassword; + static HWND hMessage; + + static std::string generatedCode; + + static void CreateControls(); + static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); + static void OnGetCode(); + static void OnRegister(); + static void OnBack(); + static bool registerUserWithPassword(const std::string& email, const std::string& password); +}; + +#endif diff --git a/RegisterWindow.o b/src/RegisterWindow.o similarity index 100% rename from RegisterWindow.o rename to src/RegisterWindow.o diff --git a/SelectionWindow.cpp b/src/SelectionWindow.cpp similarity index 96% rename from SelectionWindow.cpp rename to src/SelectionWindow.cpp index 337ed7f..3ac56b0 100644 --- a/SelectionWindow.cpp +++ b/src/SelectionWindow.cpp @@ -1,161 +1,161 @@ -#include "SelectionWindow.h" -#include "QuestionWindow.h" -#include "LoginWindow.h" -#include "UserManager.h" -#include - -HWND SelectionWindow::hwnd = NULL; -HWND SelectionWindow::hQuestionCount = NULL; - -void SelectionWindow::Show() { - // 如果窗口已存在,先销毁 - if (hwnd != NULL) { - DestroyWindow(hwnd); - hwnd = NULL; - } - - WNDCLASSEX wc; - memset(&wc, 0, sizeof(WNDCLASSEX)); - wc.cbSize = sizeof(WNDCLASSEX); - wc.style = CS_HREDRAW | CS_VREDRAW; - wc.lpfnWndProc = WndProc; - wc.hInstance = GetModuleHandle(NULL); - wc.hCursor = LoadCursor(NULL, IDC_ARROW); - wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); - wc.lpszClassName = "SelectionWindow"; - - RegisterClassEx(&wc); - - hwnd = CreateWindowEx(0, "SelectionWindow", "数学学习软件 - 选择难度", - WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, - CW_USEDEFAULT, CW_USEDEFAULT, 400, 350, - NULL, NULL, GetModuleHandle(NULL), NULL); - - if (!hwnd) { - MessageBox(NULL, "创建选择窗口失败", "错误", MB_OK | MB_ICONERROR); - return; - } - - CreateControls(); - - ShowWindow(hwnd, SW_SHOW); - UpdateWindow(hwnd); -} - -void SelectionWindow::CreateControls() { - // 标题 - CreateWindow("STATIC", "请选择题目难度", WS_VISIBLE | WS_CHILD | SS_CENTER, - 10, 20, 360, 30, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 题目数量输入 - CreateWindow("STATIC", "题目数量 (10-30):", WS_VISIBLE | WS_CHILD, - 50, 60, 120, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - hQuestionCount = CreateWindow("EDIT", "10", WS_VISIBLE | WS_CHILD | WS_BORDER, - 180, 60, 60, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); - - // 小学按钮 - CreateWindow("BUTTON", "小学题目", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, - 100, 100, 200, 40, hwnd, (HMENU)1, GetModuleHandle(NULL), NULL); - - // 初中按钮 - CreateWindow("BUTTON", "初中题目", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, - 100, 150, 200, 40, hwnd, (HMENU)2, GetModuleHandle(NULL), NULL); - - // 高中按钮 - CreateWindow("BUTTON", "高中题目", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, - 100, 200, 200, 40, hwnd, (HMENU)3, GetModuleHandle(NULL), NULL); - - // 退出登录按钮 - CreateWindow("BUTTON", "退出登录", WS_VISIBLE | WS_CHILD, - 150, 260, 100, 30, hwnd, (HMENU)4, GetModuleHandle(NULL), NULL); -} - -LRESULT CALLBACK SelectionWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { - switch (msg) { - case WM_COMMAND: { - int cmd = LOWORD(wParam); - if (cmd == 1) { // 小学题目 - OnElementarySelected(); - } else if (cmd == 2) { // 初中题目 - OnMiddleSchoolSelected(); - } else if (cmd == 3) { // 高中题目 - OnHighSchoolSelected(); - } else if (cmd == 4) { // 退出登录 - OnLogout(); - } - break; - } - case WM_CLOSE: - DestroyWindow(hwnd); - LoginWindow::Show(); // 关闭选择窗口时返回登录界面 - break; - case WM_DESTROY: - // 不在WM_DESTROY中调用PostQuitMessage - break; - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - } - return 0; -} - -bool SelectionWindow::validateQuestionCount() { - int count = getQuestionCount(); - if (count < 10 || count > 30) { - MessageBox(hwnd, "题目数量必须在10-30之间", "输入错误", MB_OK | MB_ICONWARNING); - SetFocus(hQuestionCount); - return false; - } - return true; -} - -int SelectionWindow::getQuestionCount() { - char countText[10]; - GetWindowText(hQuestionCount, countText, sizeof(countText)); - - // 转换为整数 - int count = atoi(countText); - if (count <= 0) { - count = 10; // 默认值 - } - return count; -} - -void SelectionWindow::OnElementarySelected() { - if (!validateQuestionCount()) { - return; - } - - int questionCount = getQuestionCount(); - DestroyWindow(hwnd); - hwnd = NULL; - QuestionWindow::Show("elementary", questionCount); -} - -void SelectionWindow::OnMiddleSchoolSelected() { - if (!validateQuestionCount()) { - return; - } - - int questionCount = getQuestionCount(); - DestroyWindow(hwnd); - hwnd = NULL; - QuestionWindow::Show("middle", questionCount); -} - -void SelectionWindow::OnHighSchoolSelected() { - if (!validateQuestionCount()) { - return; - } - - int questionCount = getQuestionCount(); - DestroyWindow(hwnd); - hwnd = NULL; - QuestionWindow::Show("high", questionCount); -} - -void SelectionWindow::OnLogout() { - UserManager::getInstance().logout(); - DestroyWindow(hwnd); - hwnd = NULL; - LoginWindow::Show(); -} +#include "SelectionWindow.h" +#include "QuestionWindow.h" +#include "LoginWindow.h" +#include "UserManager.h" +#include + +HWND SelectionWindow::hwnd = NULL; +HWND SelectionWindow::hQuestionCount = NULL; + +void SelectionWindow::Show() { + // 如果窗口已存在,先销毁 + if (hwnd != NULL) { + DestroyWindow(hwnd); + hwnd = NULL; + } + + WNDCLASSEX wc; + memset(&wc, 0, sizeof(WNDCLASSEX)); + wc.cbSize = sizeof(WNDCLASSEX); + wc.style = CS_HREDRAW | CS_VREDRAW; + wc.lpfnWndProc = WndProc; + wc.hInstance = GetModuleHandle(NULL); + wc.hCursor = LoadCursor(NULL, IDC_ARROW); + wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1); + wc.lpszClassName = "SelectionWindow"; + + RegisterClassEx(&wc); + + hwnd = CreateWindowEx(0, "SelectionWindow", "数学学习软件 - 选择难度", + WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX, + CW_USEDEFAULT, CW_USEDEFAULT, 400, 350, + NULL, NULL, GetModuleHandle(NULL), NULL); + + if (!hwnd) { + MessageBox(NULL, "创建选择窗口失败", "错误", MB_OK | MB_ICONERROR); + return; + } + + CreateControls(); + + ShowWindow(hwnd, SW_SHOW); + UpdateWindow(hwnd); +} + +void SelectionWindow::CreateControls() { + // 标题 + CreateWindow("STATIC", "请选择题目难度", WS_VISIBLE | WS_CHILD | SS_CENTER, + 10, 20, 360, 30, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 题目数量输入 + CreateWindow("STATIC", "题目数量 (10-30):", WS_VISIBLE | WS_CHILD, + 50, 60, 120, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + hQuestionCount = CreateWindow("EDIT", "10", WS_VISIBLE | WS_CHILD | WS_BORDER, + 180, 60, 60, 25, hwnd, NULL, GetModuleHandle(NULL), NULL); + + // 小学按钮 + CreateWindow("BUTTON", "小学题目", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 100, 200, 40, hwnd, (HMENU)1, GetModuleHandle(NULL), NULL); + + // 初中按钮 + CreateWindow("BUTTON", "初中题目", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 150, 200, 40, hwnd, (HMENU)2, GetModuleHandle(NULL), NULL); + + // 高中按钮 + CreateWindow("BUTTON", "高中题目", WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, + 100, 200, 200, 40, hwnd, (HMENU)3, GetModuleHandle(NULL), NULL); + + // 退出登录按钮 + CreateWindow("BUTTON", "退出登录", WS_VISIBLE | WS_CHILD, + 150, 260, 100, 30, hwnd, (HMENU)4, GetModuleHandle(NULL), NULL); +} + +LRESULT CALLBACK SelectionWindow::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { + switch (msg) { + case WM_COMMAND: { + int cmd = LOWORD(wParam); + if (cmd == 1) { // 小学题目 + OnElementarySelected(); + } else if (cmd == 2) { // 初中题目 + OnMiddleSchoolSelected(); + } else if (cmd == 3) { // 高中题目 + OnHighSchoolSelected(); + } else if (cmd == 4) { // 退出登录 + OnLogout(); + } + break; + } + case WM_CLOSE: + DestroyWindow(hwnd); + LoginWindow::Show(); // 关闭选择窗口时返回登录界面 + break; + case WM_DESTROY: + // 不在WM_DESTROY中调用PostQuitMessage + break; + default: + return DefWindowProc(hwnd, msg, wParam, lParam); + } + return 0; +} + +bool SelectionWindow::validateQuestionCount() { + int count = getQuestionCount(); + if (count < 10 || count > 30) { + MessageBox(hwnd, "题目数量必须在10-30之间", "输入错误", MB_OK | MB_ICONWARNING); + SetFocus(hQuestionCount); + return false; + } + return true; +} + +int SelectionWindow::getQuestionCount() { + char countText[10]; + GetWindowText(hQuestionCount, countText, sizeof(countText)); + + // 转换为整数 + int count = atoi(countText); + if (count <= 0) { + count = 10; // 默认值 + } + return count; +} + +void SelectionWindow::OnElementarySelected() { + if (!validateQuestionCount()) { + return; + } + + int questionCount = getQuestionCount(); + DestroyWindow(hwnd); + hwnd = NULL; + QuestionWindow::Show("elementary", questionCount); +} + +void SelectionWindow::OnMiddleSchoolSelected() { + if (!validateQuestionCount()) { + return; + } + + int questionCount = getQuestionCount(); + DestroyWindow(hwnd); + hwnd = NULL; + QuestionWindow::Show("middle", questionCount); +} + +void SelectionWindow::OnHighSchoolSelected() { + if (!validateQuestionCount()) { + return; + } + + int questionCount = getQuestionCount(); + DestroyWindow(hwnd); + hwnd = NULL; + QuestionWindow::Show("high", questionCount); +} + +void SelectionWindow::OnLogout() { + UserManager::getInstance().logout(); + DestroyWindow(hwnd); + hwnd = NULL; + LoginWindow::Show(); +} diff --git a/SelectionWindow.h b/src/SelectionWindow.h similarity index 96% rename from SelectionWindow.h rename to src/SelectionWindow.h index 2184726..6db2023 100644 --- a/SelectionWindow.h +++ b/src/SelectionWindow.h @@ -1,25 +1,25 @@ -#ifndef SELECTIONWINDOW_H -#define SELECTIONWINDOW_H - -#include - -class SelectionWindow { -public: - static void Show(); - static HWND GetHandle() { return hwnd; } - -private: - static HWND hwnd; - static HWND hQuestionCount; - - static void CreateControls(); - static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - static void OnElementarySelected(); - static void OnMiddleSchoolSelected(); - static void OnHighSchoolSelected(); - static void OnLogout(); - static bool validateQuestionCount(); - static int getQuestionCount(); -}; - -#endif +#ifndef SELECTIONWINDOW_H +#define SELECTIONWINDOW_H + +#include + +class SelectionWindow { +public: + static void Show(); + static HWND GetHandle() { return hwnd; } + +private: + static HWND hwnd; + static HWND hQuestionCount; + + static void CreateControls(); + static LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); + static void OnElementarySelected(); + static void OnMiddleSchoolSelected(); + static void OnHighSchoolSelected(); + static void OnLogout(); + static bool validateQuestionCount(); + static int getQuestionCount(); +}; + +#endif diff --git a/SelectionWindow.o b/src/SelectionWindow.o similarity index 100% rename from SelectionWindow.o rename to src/SelectionWindow.o diff --git a/User.cpp b/src/User.cpp similarity index 95% rename from User.cpp rename to src/User.cpp index 7cb129e..7600855 100644 --- a/User.cpp +++ b/src/User.cpp @@ -1,24 +1,24 @@ -#include "User.h" - -User::User(const std::string& email, const std::string& password, const std::string& userType) - : email(email), password(password), userType(userType) {} - -std::string User::getEmail() const { - return email; -} - -std::string User::getPassword() const { - return password; -} - -std::string User::getUserType() const { - return userType; -} - -void User::setPassword(const std::string& newPassword) { - password = newPassword; -} - -bool User::validatePassword(const std::string& password) const { - return this->password == password; -} +#include "User.h" + +User::User(const std::string& email, const std::string& password, const std::string& userType) + : email(email), password(password), userType(userType) {} + +std::string User::getEmail() const { + return email; +} + +std::string User::getPassword() const { + return password; +} + +std::string User::getUserType() const { + return userType; +} + +void User::setPassword(const std::string& newPassword) { + password = newPassword; +} + +bool User::validatePassword(const std::string& password) const { + return this->password == password; +} diff --git a/User.h b/src/User.h similarity index 95% rename from User.h rename to src/User.h index c52848a..61c60f8 100644 --- a/User.h +++ b/src/User.h @@ -1,23 +1,23 @@ -#ifndef USER_H -#define USER_H - -#include - -class User { -public: - User(const std::string& email, const std::string& password, const std::string& userType); - - std::string getEmail() const; - std::string getPassword() const; - std::string getUserType() const; - void setPassword(const std::string& newPassword); - - bool validatePassword(const std::string& password) const; - -private: - std::string email; - std::string password; - std::string userType; -}; - -#endif +#ifndef USER_H +#define USER_H + +#include + +class User { +public: + User(const std::string& email, const std::string& password, const std::string& userType); + + std::string getEmail() const; + std::string getPassword() const; + std::string getUserType() const; + void setPassword(const std::string& newPassword); + + bool validatePassword(const std::string& password) const; + +private: + std::string email; + std::string password; + std::string userType; +}; + +#endif diff --git a/User.o b/src/User.o similarity index 100% rename from User.o rename to src/User.o diff --git a/UserManager.cpp b/src/UserManager.cpp similarity index 96% rename from UserManager.cpp rename to src/UserManager.cpp index 49de2b8..5da1610 100644 --- a/UserManager.cpp +++ b/src/UserManager.cpp @@ -1,164 +1,164 @@ -#include "UserManager.h" -#include "User.h" -#include "EmailSender.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include - -UserManager::UserManager() { - currentUser = NULL; - srand(static_cast(time(NULL))); - loadUsers(); -} - -UserManager& UserManager::getInstance() { - static UserManager instance; - return instance; -} - -bool UserManager::validateEmailFormat(const std::string& email) { - size_t atPos = email.find('@'); - size_t dotPos = email.find('.'); - return atPos != std::string::npos && dotPos != std::string::npos && atPos < dotPos; -} - -bool UserManager::validatePasswordFormat(const std::string& password) { - if (password.length() < 6 || password.length() > 10) return false; - - bool hasUpper = false, hasLower = false, hasDigit = false; - for (size_t i = 0; i < password.length(); ++i) { - char c = password[i]; - if (isupper(c)) hasUpper = true; - if (islower(c)) hasLower = true; - if (isdigit(c)) hasDigit = true; - } - - return hasUpper && hasLower && hasDigit; -} - -std::string UserManager::generateRandomCode(int length) { - const std::string chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; - std::string code; - - for (int i = 0; i < length; ++i) { - code += chars[rand() % chars.size()]; - } - return code; -} - -bool UserManager::sendEmail(const std::string& email, const std::string& code) { - // 使用EmailSender类发送邮件 - return EmailSender::sendVerificationCode(email, code); -} - -std::string UserManager::generateRegistrationCode(const std::string& email) { - std::string code = generateRandomCode(6); // 6位验证码 - - // 发送邮件 - if (sendEmail(email, code)) { - return code; - } else { - return ""; // 发送失败返回空字符串 - } -} - -bool UserManager::registerUser(const std::string& email) { - if (isEmailRegistered(email)) return false; - - std::string defaultPassword = "Temp123"; - users.push_back(User(email, defaultPassword, "elementary")); - saveUsers(); - return true; -} - -bool UserManager::registerUserWithPassword(const std::string& email, const std::string& password) { - if (isEmailRegistered(email)) return false; - - // 验证密码格式 - if (!validatePasswordFormat(password)) { - return false; - } - - users.push_back(User(email, password, "elementary")); - saveUsers(); - return true; -} - -bool UserManager::login(const std::string& email, const std::string& password) { - for (size_t i = 0; i < users.size(); ++i) { - User& user = users[i]; - if (user.getEmail() == email && user.validatePassword(password)) { - currentUser = &user; - return true; - } - } - return false; -} - -bool UserManager::changePassword(const std::string& email, const std::string& oldPassword, const std::string& newPassword) { - for (size_t i = 0; i < users.size(); ++i) { - User& user = users[i]; - if (user.getEmail() == email && user.validatePassword(oldPassword)) { - if (validatePasswordFormat(newPassword)) { - user.setPassword(newPassword); - saveUsers(); - return true; - } - } - } - return false; -} - -bool UserManager::isEmailRegistered(const std::string& email) { - for (size_t i = 0; i < users.size(); ++i) { - const User& user = users[i]; - if (user.getEmail() == email) { - return true; - } - } - return false; -} - -void UserManager::loadUsers() { - std::ifstream file("data/users.txt"); - if (!file) return; - - std::string line; - while (std::getline(file, line)) { - size_t pos1 = line.find(','); - size_t pos2 = line.find(',', pos1 + 1); - - if (pos1 != std::string::npos && pos2 != std::string::npos) { - std::string email = line.substr(0, pos1); - std::string password = line.substr(pos1 + 1, pos2 - pos1 - 1); - std::string userType = line.substr(pos2 + 1); - - users.push_back(User(email, password, userType)); - } - } -} - -void UserManager::saveUsers() { - // 创建数据目录 - CreateDirectory("data", NULL); - - std::ofstream file("data/users.txt"); - for (size_t i = 0; i < users.size(); ++i) { - const User& user = users[i]; - file << user.getEmail() << "," << user.getPassword() << "," << user.getUserType() << "\n"; - } -} - -User* UserManager::getCurrentUser() { - return currentUser; -} - -void UserManager::logout() { - currentUser = NULL; -} +#include "UserManager.h" +#include "User.h" +#include "EmailSender.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include + +UserManager::UserManager() { + currentUser = NULL; + srand(static_cast(time(NULL))); + loadUsers(); +} + +UserManager& UserManager::getInstance() { + static UserManager instance; + return instance; +} + +bool UserManager::validateEmailFormat(const std::string& email) { + size_t atPos = email.find('@'); + size_t dotPos = email.find('.'); + return atPos != std::string::npos && dotPos != std::string::npos && atPos < dotPos; +} + +bool UserManager::validatePasswordFormat(const std::string& password) { + if (password.length() < 6 || password.length() > 10) return false; + + bool hasUpper = false, hasLower = false, hasDigit = false; + for (size_t i = 0; i < password.length(); ++i) { + char c = password[i]; + if (isupper(c)) hasUpper = true; + if (islower(c)) hasLower = true; + if (isdigit(c)) hasDigit = true; + } + + return hasUpper && hasLower && hasDigit; +} + +std::string UserManager::generateRandomCode(int length) { + const std::string chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + std::string code; + + for (int i = 0; i < length; ++i) { + code += chars[rand() % chars.size()]; + } + return code; +} + +bool UserManager::sendEmail(const std::string& email, const std::string& code) { + // 使用EmailSender类发送邮件 + return EmailSender::sendVerificationCode(email, code); +} + +std::string UserManager::generateRegistrationCode(const std::string& email) { + std::string code = generateRandomCode(6); // 6位验证码 + + // 发送邮件 + if (sendEmail(email, code)) { + return code; + } else { + return ""; // 发送失败返回空字符串 + } +} + +bool UserManager::registerUser(const std::string& email) { + if (isEmailRegistered(email)) return false; + + std::string defaultPassword = "Temp123"; + users.push_back(User(email, defaultPassword, "elementary")); + saveUsers(); + return true; +} + +bool UserManager::registerUserWithPassword(const std::string& email, const std::string& password) { + if (isEmailRegistered(email)) return false; + + // 验证密码格式 + if (!validatePasswordFormat(password)) { + return false; + } + + users.push_back(User(email, password, "elementary")); + saveUsers(); + return true; +} + +bool UserManager::login(const std::string& email, const std::string& password) { + for (size_t i = 0; i < users.size(); ++i) { + User& user = users[i]; + if (user.getEmail() == email && user.validatePassword(password)) { + currentUser = &user; + return true; + } + } + return false; +} + +bool UserManager::changePassword(const std::string& email, const std::string& oldPassword, const std::string& newPassword) { + for (size_t i = 0; i < users.size(); ++i) { + User& user = users[i]; + if (user.getEmail() == email && user.validatePassword(oldPassword)) { + if (validatePasswordFormat(newPassword)) { + user.setPassword(newPassword); + saveUsers(); + return true; + } + } + } + return false; +} + +bool UserManager::isEmailRegistered(const std::string& email) { + for (size_t i = 0; i < users.size(); ++i) { + const User& user = users[i]; + if (user.getEmail() == email) { + return true; + } + } + return false; +} + +void UserManager::loadUsers() { + std::ifstream file("data/users.txt"); + if (!file) return; + + std::string line; + while (std::getline(file, line)) { + size_t pos1 = line.find(','); + size_t pos2 = line.find(',', pos1 + 1); + + if (pos1 != std::string::npos && pos2 != std::string::npos) { + std::string email = line.substr(0, pos1); + std::string password = line.substr(pos1 + 1, pos2 - pos1 - 1); + std::string userType = line.substr(pos2 + 1); + + users.push_back(User(email, password, userType)); + } + } +} + +void UserManager::saveUsers() { + // 创建数据目录 + CreateDirectory("data", NULL); + + std::ofstream file("data/users.txt"); + for (size_t i = 0; i < users.size(); ++i) { + const User& user = users[i]; + file << user.getEmail() << "," << user.getPassword() << "," << user.getUserType() << "\n"; + } +} + +User* UserManager::getCurrentUser() { + return currentUser; +} + +void UserManager::logout() { + currentUser = NULL; +} diff --git a/UserManager.h b/src/UserManager.h similarity index 96% rename from UserManager.h rename to src/UserManager.h index b8a05fd..407167f 100644 --- a/UserManager.h +++ b/src/UserManager.h @@ -1,36 +1,36 @@ -#ifndef USERMANAGER_H -#define USERMANAGER_H - -#include "User.h" -#include -#include - -class UserManager { -public: - static UserManager& getInstance(); - - bool registerUser(const std::string& email); - bool registerUserWithPassword(const std::string& email, const std::string& password); - bool login(const std::string& email, const std::string& password); - bool changePassword(const std::string& email, const std::string& oldPassword, const std::string& newPassword); - User* getCurrentUser(); - void logout(); - - // 修改方法签名,添加email参数 - std::string generateRegistrationCode(const std::string& email); - std::string generateRandomCode(int length); - bool isEmailRegistered(const std::string& email); - bool validatePasswordFormat(const std::string& password); - bool validateEmailFormat(const std::string& email); - - void loadUsers(); - void saveUsers(); - -private: - UserManager(); - std::vector users; - User* currentUser; - bool sendEmail(const std::string& email, const std::string& code); -}; - -#endif +#ifndef USERMANAGER_H +#define USERMANAGER_H + +#include "User.h" +#include +#include + +class UserManager { +public: + static UserManager& getInstance(); + + bool registerUser(const std::string& email); + bool registerUserWithPassword(const std::string& email, const std::string& password); + bool login(const std::string& email, const std::string& password); + bool changePassword(const std::string& email, const std::string& oldPassword, const std::string& newPassword); + User* getCurrentUser(); + void logout(); + + // 修改方法签名,添加email参数 + std::string generateRegistrationCode(const std::string& email); + std::string generateRandomCode(int length); + bool isEmailRegistered(const std::string& email); + bool validatePasswordFormat(const std::string& password); + bool validateEmailFormat(const std::string& email); + + void loadUsers(); + void saveUsers(); + +private: + UserManager(); + std::vector users; + User* currentUser; + bool sendEmail(const std::string& email, const std::string& code); +}; + +#endif diff --git a/UserManager.o b/src/UserManager.o similarity index 100% rename from UserManager.o rename to src/UserManager.o diff --git a/data/users.txt b/src/data/users.txt similarity index 97% rename from data/users.txt rename to src/data/users.txt index f9fec4e..d6395d3 100644 --- a/data/users.txt +++ b/src/data/users.txt @@ -1,2 +1,2 @@ -1853439381@qq.com,Temp123,elementary -2470975401@qq.com,123456QWe,elementary +1853439381@qq.com,Temp123,elementary +2470975401@qq.com,123456QWe,elementary diff --git a/email_send.log b/src/email_send.log similarity index 98% rename from email_send.log rename to src/email_send.log index ee87946..a277b77 100644 --- a/email_send.log +++ b/src/email_send.log @@ -1,3 +1,3 @@ -? 成功发送验证码到: 3675658020@qq.com | 验证码: OP9R0N | 时间: 22:45:10 -? 成功发送验证码到: 3675658020@qq.com | 验证码: B3XMEI | 时间: 22:45:10 -? 成功发送验证码到: 3675658020@qq.com | 验证码: BG5ZSN | 时间: 22:45:10 +? 成功发送验证码到: 3675658020@qq.com | 验证码: OP9R0N | 时间: 22:45:10 +? 成功发送验证码到: 3675658020@qq.com | 验证码: B3XMEI | 时间: 22:45:10 +? 成功发送验证码到: 3675658020@qq.com | 验证码: BG5ZSN | 时间: 22:45:10 diff --git a/email_send_log.txt b/src/email_send_log.txt similarity index 94% rename from email_send_log.txt rename to src/email_send_log.txt index b5541d0..11ac2ea 100644 --- a/email_send_log.txt +++ b/src/email_send_log.txt @@ -1,13 +1,13 @@ -=== 邮件发送记录 === -时间: Oct 7 2025 23:35:05 -方案: PowerShell -发件人: 3675658020@qq.com -收件人: 2470975401@qq.com -验证码: ZH4RXI -执行结果: 正在发送邮件到: 2470975401@qq.com -验证码: ZH4RXI -邮件发送成功! -SUCCESS - -========================= - +=== 邮件发送记录 === +时间: Oct 7 2025 23:35:05 +方案: PowerShell +发件人: 3675658020@qq.com +收件人: 2470975401@qq.com +验证码: ZH4RXI +执行结果: 正在发送邮件到: 2470975401@qq.com +验证码: ZH4RXI +邮件发送成功! +SUCCESS + +========================= + diff --git a/main.cpp b/src/main.cpp similarity index 95% rename from main.cpp rename to src/main.cpp index c238cd6..91ac453 100644 --- a/main.cpp +++ b/src/main.cpp @@ -1,27 +1,27 @@ -#include -#include -#include -#include "LoginWindow.h" - -int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { - // 初始化随机数种子 - srand(static_cast(time(NULL))); - - // 显示登录窗口 - LoginWindow::Show(); - - // 主消息循环 - MSG msg; - BOOL bRet; - while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) { - if (bRet == -1) { - // 错误处理 - break; - } else { - TranslateMessage(&msg); - DispatchMessage(&msg); - } - } - - return msg.wParam; -} +#include +#include +#include +#include "LoginWindow.h" + +int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { + // 初始化随机数种子 + srand(static_cast(time(NULL))); + + // 显示登录窗口 + LoginWindow::Show(); + + // 主消息循环 + MSG msg; + BOOL bRet; + while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) { + if (bRet == -1) { + // 错误处理 + break; + } else { + TranslateMessage(&msg); + DispatchMessage(&msg); + } + } + + return msg.wParam; +} diff --git a/main.o b/src/main.o similarity index 100% rename from main.o rename to src/main.o diff --git a/send_email.ps1 b/src/send_email.ps1 similarity index 96% rename from send_email.ps1 rename to src/send_email.ps1 index 3bc2d16..165ed6a 100644 --- a/send_email.ps1 +++ b/src/send_email.ps1 @@ -1,44 +1,44 @@ -# 数学学习软件邮件发送脚本 -# 发件人配置 -$SMTPServer = "smtp.qq.com" -$SMTPPort = "587" -$Username = "3675658020@qq.com" -$Password = "lsagdbxwfolhcheb" -$EmailFrom = "3675658020@qq.com" -$EmailTo = "2470975401@qq.com" -$Subject = "数学学习软件 - 注册验证码" -$Body = @" -欢迎注册数学学习软件! - -您的注册验证码是:ZH4RXI - -验证码有效期为10分钟,请尽快使用。 - -如果您没有请求此验证码,请忽略此邮件。 - -谢谢! -数学学习软件团队 -"@ - -Write-Host "正在发送邮件到: $EmailTo" -Write-Host "验证码: ZH4RXI" - -try { - # 创建邮件消息 - $SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body) - - # 创建SMTP客户端 - $SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, $SMTPPort) - $SMTPClient.EnableSsl = $true - $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password) - - # 发送邮件 - $SMTPClient.Send($SMTPMessage) - - Write-Host "邮件发送成功!" -ForegroundColor Green - Write-Output "SUCCESS" - -} catch { - Write-Host "邮件发送失败: $($_.Exception.Message)" -ForegroundColor Red - Write-Output "ERROR: $($_.Exception.Message)" +# 数学学习软件邮件发送脚本 +# 发件人配置 +$SMTPServer = "smtp.qq.com" +$SMTPPort = "587" +$Username = "3675658020@qq.com" +$Password = "lsagdbxwfolhcheb" +$EmailFrom = "3675658020@qq.com" +$EmailTo = "2470975401@qq.com" +$Subject = "数学学习软件 - 注册验证码" +$Body = @" +欢迎注册数学学习软件! + +您的注册验证码是:ZH4RXI + +验证码有效期为10分钟,请尽快使用。 + +如果您没有请求此验证码,请忽略此邮件。 + +谢谢! +数学学习软件团队 +"@ + +Write-Host "正在发送邮件到: $EmailTo" +Write-Host "验证码: ZH4RXI" + +try { + # 创建邮件消息 + $SMTPMessage = New-Object System.Net.Mail.MailMessage($EmailFrom, $EmailTo, $Subject, $Body) + + # 创建SMTP客户端 + $SMTPClient = New-Object Net.Mail.SmtpClient($SMTPServer, $SMTPPort) + $SMTPClient.EnableSsl = $true + $SMTPClient.Credentials = New-Object System.Net.NetworkCredential($Username, $Password) + + # 发送邮件 + $SMTPClient.Send($SMTPMessage) + + Write-Host "邮件发送成功!" -ForegroundColor Green + Write-Output "SUCCESS" + +} catch { + Write-Host "邮件发送失败: $($_.Exception.Message)" -ForegroundColor Red + Write-Output "ERROR: $($_.Exception.Message)" } \ No newline at end of file diff --git a/test3.dev b/src/test3.dev similarity index 92% rename from test3.dev rename to src/test3.dev index ad5f977..58a47d1 100644 --- a/test3.dev +++ b/src/test3.dev @@ -1,242 +1,242 @@ -[Project] -FileName=test3.dev -Name=项目1 -Type=0 -Ver=2 -ObjFiles= -Includes= -Libs= -PrivateResource= -ResourceIncludes= -MakeIncludes= -Compiler= -CppCompiler= -Linker=-lws2_32 -lwininet_@@_ -IsCpp=1 -Icon= -ExeOutput= -ObjectOutput= -LogOutput= -LogOutputEnabled=0 -OverrideOutput=0 -OverrideOutputName=test3.exe -HostApplication= -UseCustomMakefile=0 -CustomMakefile= -CommandLine= -Folders= -IncludeVersionInfo=0 -SupportXPThemes=0 -CompilerSet=0 -CompilerSettings=0000000000000000000000000 -UnitCount=19 - -[VersionInfo] -Major=1 -Minor=0 -Release=0 -Build=0 -LanguageID=1033 -CharsetID=1252 -CompanyName= -FileVersion=1.0.0.0 -FileDescription=Developed using the Dev-C++ IDE -InternalName= -LegalCopyright= -LegalTrademarks= -OriginalFilename= -ProductName= -ProductVersion=1.0.0.0 -AutoIncBuildNr=0 -SyncProduct=1 - -[Unit9] -FileName=User.h -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit1] -FileName=Question.h -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit2] -FileName=UserManager.h -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit3] -FileName=UserManager.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit4] -FileName=User.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit5] -FileName=QuestionGenerator.h -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit6] -FileName=QuestionGenerator.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit7] -FileName=Question.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit8] -FileName=LoginWindow.h -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit10] -FileName=LoginWindow.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit11] -FileName=RegisterWindow.h -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit12] -FileName=RegisterWindow.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit13] -FileName=QuestionWindow.h -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit14] -FileName=QuestionWindow.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit15] -FileName=main.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit17] -FileName=EmailSender.h -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit16] -FileName=EmailSender.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit19] -FileName=SelectionWindow.h -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - -[Unit18] -FileName=SelectionWindow.cpp -CompileCpp=1 -Folder= -Compile=1 -Link=1 -Priority=1000 -OverrideBuildCmd=0 -BuildCmd= - +[Project] +FileName=test3.dev +Name=项目1 +Type=0 +Ver=2 +ObjFiles= +Includes= +Libs= +PrivateResource= +ResourceIncludes= +MakeIncludes= +Compiler= +CppCompiler= +Linker=-lws2_32 -lwininet_@@_ +IsCpp=1 +Icon= +ExeOutput= +ObjectOutput= +LogOutput= +LogOutputEnabled=0 +OverrideOutput=0 +OverrideOutputName=test3.exe +HostApplication= +UseCustomMakefile=0 +CustomMakefile= +CommandLine= +Folders= +IncludeVersionInfo=0 +SupportXPThemes=0 +CompilerSet=0 +CompilerSettings=0000000000000000000000000 +UnitCount=19 + +[VersionInfo] +Major=1 +Minor=0 +Release=0 +Build=0 +LanguageID=1033 +CharsetID=1252 +CompanyName= +FileVersion=1.0.0.0 +FileDescription=Developed using the Dev-C++ IDE +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +AutoIncBuildNr=0 +SyncProduct=1 + +[Unit9] +FileName=User.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit1] +FileName=Question.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit2] +FileName=UserManager.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit3] +FileName=UserManager.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit4] +FileName=User.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit5] +FileName=QuestionGenerator.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit6] +FileName=QuestionGenerator.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit7] +FileName=Question.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit8] +FileName=LoginWindow.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit10] +FileName=LoginWindow.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit11] +FileName=RegisterWindow.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit12] +FileName=RegisterWindow.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit13] +FileName=QuestionWindow.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit14] +FileName=QuestionWindow.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit15] +FileName=main.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit17] +FileName=EmailSender.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit16] +FileName=EmailSender.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit19] +FileName=SelectionWindow.h +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit18] +FileName=SelectionWindow.cpp +CompileCpp=1 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + diff --git a/test3.exe b/src/test3.exe similarity index 100% rename from test3.exe rename to src/test3.exe diff --git a/test3.layout b/src/test3.layout similarity index 92% rename from test3.layout rename to src/test3.layout index ef12d63..5e06b86 100644 --- a/test3.layout +++ b/src/test3.layout @@ -1,98 +1,98 @@ -[Editor_0] -CursorCol=7 -CursorRow=25 -TopLine=1 -LeftChar=1 -[Editors] -Order=8,0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18 -Focused=13 -[Editor_1] -CursorCol=7 -CursorRow=36 -TopLine=1 -LeftChar=1 -[Editor_2] -CursorCol=2 -CursorRow=164 -TopLine=122 -LeftChar=1 -[Editor_3] -CursorCol=2 -CursorRow=24 -TopLine=1 -LeftChar=1 -[Editor_4] -CursorCol=7 -CursorRow=29 -TopLine=1 -LeftChar=1 -[Editor_5] -CursorCol=2 -CursorRow=364 -TopLine=326 -LeftChar=1 -[Editor_6] -CursorCol=2 -CursorRow=27 -TopLine=1 -LeftChar=1 -[Editor_7] -CursorCol=7 -CursorRow=23 -TopLine=1 -LeftChar=1 -[Editor_8] -CursorCol=7 -CursorRow=23 -TopLine=1 -LeftChar=1 -[Editor_9] -CursorCol=2 -CursorRow=135 -TopLine=1 -LeftChar=1 -[Editor_10] -CursorCol=7 -CursorRow=30 -TopLine=1 -LeftChar=1 -[Editor_11] -CursorCol=2 -CursorRow=225 -TopLine=131 -LeftChar=1 -[Editor_12] -CursorCol=7 -CursorRow=32 -TopLine=1 -LeftChar=1 -[Editor_13] -CursorCol=18 -CursorRow=179 -TopLine=150 -LeftChar=1 -[Editor_14] -CursorCol=2 -CursorRow=27 -TopLine=1 -LeftChar=1 -[Editor_15] -CursorCol=56 -CursorRow=32 -TopLine=1 -LeftChar=1 -[Editor_16] -CursorCol=7 -CursorRow=16 -TopLine=1 -LeftChar=1 -[Editor_17] -CursorCol=2 -CursorRow=161 -TopLine=1 -LeftChar=1 -[Editor_18] -CursorCol=7 -CursorRow=25 -TopLine=1 -LeftChar=1 +[Editor_0] +CursorCol=7 +CursorRow=25 +TopLine=1 +LeftChar=1 +[Editors] +Order=8,0,1,2,3,4,5,6,7,9,10,11,12,13,14,15,16,17,18 +Focused=13 +[Editor_1] +CursorCol=7 +CursorRow=36 +TopLine=1 +LeftChar=1 +[Editor_2] +CursorCol=2 +CursorRow=164 +TopLine=122 +LeftChar=1 +[Editor_3] +CursorCol=2 +CursorRow=24 +TopLine=1 +LeftChar=1 +[Editor_4] +CursorCol=7 +CursorRow=29 +TopLine=1 +LeftChar=1 +[Editor_5] +CursorCol=2 +CursorRow=364 +TopLine=326 +LeftChar=1 +[Editor_6] +CursorCol=2 +CursorRow=27 +TopLine=1 +LeftChar=1 +[Editor_7] +CursorCol=7 +CursorRow=23 +TopLine=1 +LeftChar=1 +[Editor_8] +CursorCol=7 +CursorRow=23 +TopLine=1 +LeftChar=1 +[Editor_9] +CursorCol=2 +CursorRow=135 +TopLine=1 +LeftChar=1 +[Editor_10] +CursorCol=7 +CursorRow=30 +TopLine=1 +LeftChar=1 +[Editor_11] +CursorCol=2 +CursorRow=225 +TopLine=131 +LeftChar=1 +[Editor_12] +CursorCol=7 +CursorRow=32 +TopLine=1 +LeftChar=1 +[Editor_13] +CursorCol=18 +CursorRow=179 +TopLine=150 +LeftChar=1 +[Editor_14] +CursorCol=2 +CursorRow=27 +TopLine=1 +LeftChar=1 +[Editor_15] +CursorCol=56 +CursorRow=32 +TopLine=1 +LeftChar=1 +[Editor_16] +CursorCol=7 +CursorRow=16 +TopLine=1 +LeftChar=1 +[Editor_17] +CursorCol=2 +CursorRow=161 +TopLine=1 +LeftChar=1 +[Editor_18] +CursorCol=7 +CursorRow=25 +TopLine=1 +LeftChar=1 -- 2.34.1