基於 JSP/Servlet 的在線考試系統核心模組:
-- 用戶表
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) UNIQUE,
password VARCHAR(100),
role ENUM('student','teacher','admin')
);
-- 題庫表
CREATE TABLE questions (
id INT PRIMARY KEY AUTO_INCREMENT,
type ENUM('single','multiple','judge','fill'),
content TEXT,
options JSON, -- 選項內容
answer VARCHAR(200),
score INT DEFAULT 10,
category_id INT
);
-- 考試記錄表
CREATE TABLE exam_records (
id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
start_time DATETIME,
end_time DATETIME,
total_score DECIMAL(5,2),
answers JSON -- 用戶答案記錄
);
// 按類別和難度隨機抽取
SELECT * FROM questions
WHERE category_id = ?
ORDER BY RAND()
LIMIT ?
使用 JavaScript 實現倒計時,頁面卸載時自動提交,禁用右鍵/複製快捷鍵。
// 單選/判斷題精確匹配
// 多選題集合比對(順序無關)
// 填空題關鍵字匹配或相似度算法
推薦使用 Tomcat + MySQL,採用 Maven 管理依賴,前端引入 Bootstrap+jQuery 快速構建界面。完整項目可參考 GitHub 開源項目 "OnlineExamSystem"。