基于 uni-app + ASP + SQL Server 的学生成绩管理系统
前言
本项目是一个基于 uni-app + ASP + SQL Server 开发的学生成绩管理系统。系统采用前后端分离架构,前端使用 uni-app 框架实现跨平台支持,后端使用 Classic ASP 提供接口服务,数据库使用 SQL Server 存储数据。
在线演示
- 演示地址: http://demo.xiyueta.com/case/student-manage/
- 测试账号: demo
- 测试密码: 123456
系统演示
1. 登录模块
- 支持多角色登录(管理员/教师/学生)
- 采用token验证机制
- 登录状态持久化
2. 首页功能
- 清晰的功能模块导航
- 根据角色显示对应功能
- 直观的操作入口
3. 班级管理
- 班级信息一览
- 支持创建/编辑班级
- 班主任分配功能
- 学生分配管理
4. 学生管理
- 学生基本信息管理
- 按班级筛选查看
- 支持添加/编辑学生
- 班级分配功能
5. 成绩管理
- 按班级/科目查询成绩
- 成绩录入与修改
- 智能成绩录入提示
- 录入完成状态显示
6. 创建班级
- 班级信息录入
- 班主任选择
- 表单验证提示
7. 分配学生
- 学生分班管理
- 批量分配功能
- 直观的学生选择
8. 添加成绩
- 智能筛选未录入学生
- 成绩录入表单
- 实时验证反馈
使用流程
1. 先完成班级创建
2. 进行学生分班
3. 开始成绩录入
4. 查看成绩分析
系统特点
1. 操作便捷性 - 界面直观,流程清晰
2. 功能实用性 - 覆盖教务核心需求
3. 界面友好性 - 简洁美观,响应迅速
4. 数据准确性 - 严格的验证机制
一、项目概述
1.1 技术栈
- 前端:uni-app + Vue3 + SCSS
- 后端:Classic ASP + SQL Server
- 开发工具:HBuilderX、Visual Studio Code
- 数据库:SQL Server 2008+
1.2 功能模块
1. 用户管理
- 用户登录/退出
- 基于 token 的身份验证
- 用户信息管理
2. 学生管理
- 学生信息的增删改查
- 学生列表分页展示
- 按班级筛选学生
3. 班级管理
- 班级信息维护
- 班级学生分配
- 班主任设置
4. 教师管理
- 教师基本信息管理
- 任课安排
- 班主任分配
5. 成绩管理
- 成绩录入
- 成绩查询
- 成绩统计分析
二、数据库设计
1. 数据库配置说明
1. 表前缀说明
- 使用 pre20250212_ 作为表前缀
- 可以根据实际需求修改前缀
- 前缀在 function.asp 中统一配置
2. 字段说明
- 所有表都包含 create_time 和 update_time
- 所有表都包含 status 状态字段
- 主键均使用 id 自增
3. 注意事项
- 执行脚本前请先创建数据库
- 建议按顺序执行创建表和插入数据的脚本
- 请根据实际需求修改默认数据
2. 数据库表结构
2.1 用户表
CREATE TABLE pre20250212_user (
id INT PRIMARY KEY IDENTITY(1,1),
username VARCHAR(50) NOT NULL UNIQUE, -- 用户名
password VARCHAR(32) NOT NULL, -- 密码(MD5加密两次)
name VARCHAR(50) NOT NULL, -- 姓名
role TINYINT NOT NULL, -- 角色:1管理员,2教师,3学生
token VARCHAR(32), -- 登录token
token_expire DATETIME, -- token过期时间
status TINYINT DEFAULT 1, -- 状态:1启用,0禁用
create_time DATETIME DEFAULT GETDATE(),
update_time DATETIME DEFAULT GETDATE()
)
2.2 教师表
CREATE TABLE pre20250212_teacher (
id INT PRIMARY KEY IDENTITY(1,1),
teacher_no VARCHAR(20) NOT NULL UNIQUE, -- 工号
name VARCHAR(50) NOT NULL, -- 姓名
gender TINYINT NOT NULL, -- 性别:1男,2女
phone VARCHAR(20), -- 联系电话
email VARCHAR(100), -- 邮箱
subject_id INT, -- 主教科目ID
status TINYINT DEFAULT 1, -- 状态:1在职,0离职
create_time DATETIME DEFAULT GETDATE(),
update_time DATETIME DEFAULT GETDATE()
)
2.3 学生表
CREATE TABLE pre20250212_student (
id INT PRIMARY KEY IDENTITY(1,1),
student_no VARCHAR(20) NOT NULL UNIQUE, -- 学号
name VARCHAR(50) NOT NULL, -- 姓名
gender TINYINT NOT NULL, -- 性别:1男,2女
phone VARCHAR(20), -- 联系电话
class_id INT, -- 班级ID
status TINYINT DEFAULT 1, -- 状态:1在读,0离校
create_time DATETIME DEFAULT GETDATE(),
update_time DATETIME DEFAULT GETDATE()
)
2.4 班级表
CREATE TABLE pre20250212_class (
id INT PRIMARY KEY IDENTITY(1,1),
name VARCHAR(50) NOT NULL, -- 班级名称
teacher_id INT, -- 班主任ID
remark TEXT, -- 备注
status TINYINT DEFAULT 1, -- 状态:1正常,0解散
create_time DATETIME DEFAULT GETDATE(),
update_time DATETIME DEFAULT GETDATE()
)
2.5 科目表
CREATE TABLE pre20250212_subject (
id INT PRIMARY KEY IDENTITY(1,1),
name VARCHAR(50) NOT NULL, -- 科目名称
remark TEXT, -- 备注
status TINYINT DEFAULT 1, -- 状态:1启用,0禁用
create_time DATETIME DEFAULT GETDATE(),
update_time DATETIME DEFAULT GETDATE()
)
2.6 教师课程表
CREATE TABLE pre20250212_teacher_course (
id INT PRIMARY KEY IDENTITY(1,1),
teacher_id INT NOT NULL, -- 教师ID
class_id INT NOT NULL, -- 班级ID
subject_id INT NOT NULL, -- 科目ID
hours INT NOT NULL, -- 课时/周
status TINYINT DEFAULT 1, -- 状态:1正常,0取消
create_time DATETIME DEFAULT GETDATE(),
update_time DATETIME DEFAULT GETDATE()
)
2.7 成绩表
CREATE TABLE pre20250212_score (
id INT PRIMARY KEY IDENTITY(1,1),
student_id INT NOT NULL, -- 学生ID
class_id INT NOT NULL, -- 班级ID
subject_id INT NOT NULL, -- 科目ID
exam_time DATE NOT NULL, -- 考试时间
score DECIMAL(5,2) NOT NULL, -- 成绩
remark TEXT, -- 备注
create_time DATETIME DEFAULT GETDATE(),
update_time DATETIME DEFAULT GETDATE()
)
3. 初始化数据
3.1 添加默认用户
-- 密码123456经过两次MD5加密: e10adc3949ba59abbe56e057f20f883e -> 14e1b600b1fd579f47433b88e8d85291
INSERT INTO pre20250212_user (username, password, name, role, status) VALUES
('admin', '14e1b600b1fd579f47433b88e8d85291', '管理账号', 1, 1),
('demo', '14e1b600b1fd579f47433b88e8d85291', '演示账号', 0, 1),
('test', '14e1b600b1fd579f47433b88e8d85291', '审核不通过账号', 0, 0);
3.2 添加默认科目
INSERT INTO pre20250212_subject (name, remark, status) VALUES
('语文', '初中语文', 1),
('数学', '初中数学', 1),
('英语', '初中英语', 1),
('物理', '初中物理', 1),
('化学', '初中化学', 1),
('生物', '初中生物', 1),
('历史', '初中历史', 1),
('地理', '初中地理', 1),
('政治', '初中政治', 1);
3.3 添加测试教师
INSERT INTO pre20250212_teacher
(teacher_no, name, gender, phone, email, subject_id, status)
VALUES
('T2025001', '张明', 1, '13800138001', 'zhangming@school.com', 1, 1),
('T2025002', '李华', 2, '13800138002', 'lihua@school.com', 2, 1),
('T2025003', '王英', 2, '13800138003', 'wangying@school.com', 3, 1);
3.4 添加测试班级
INSERT INTO pre20250212_class
(name, teacher_id, remark, status)
VALUES
('初一(1)班', 1, '张明老师班', 1),
('初一(2)班', 2, '李华老师班', 1),
('初一(3)班', 3, '王英老师班', 1);
3.5 添加测试学生
INSERT INTO pre20250212_student
(student_no, name, gender, phone, class_id, status)
VALUES
-- 初一(1)班学生
('S202501001', '张小明', 1, '13900001001', 1, 1),
('S202501002', '李小华', 2, '13900001002', 1, 1),
('S202501003', '王小军', 1, '13900001003', 1, 1),
('S202501004', '赵小红', 2, '13900001004', 1, 1),
('S202501005', '刘小伟', 1, '13900001005', 1, 1),
-- 初一(2)班学生
('S202502001', '陈小云', 2, '13900002001', 2, 1),
('S202502002', '杨小光', 1, '13900002002', 2, 1),
('S202502003', '周小燕', 2, '13900002003', 2, 1),
('S202502004', '吴小强', 1, '13900002004', 2, 1),
('S202502005', '郑小莉', 2, '13900002005', 2, 1),
-- 初一(3)班学生
('S202503001', '孙小龙', 1, '13900003001', 3, 1),
('S202503002', '钱小英', 2, '13900003002', 3, 1),
('S202503003', '马小飞', 1, '13900003003', 3, 1),
('S202503004', '朱小琳', 2, '13900003004', 3, 1),
('S202503005', '胡小明', 1, '13900003005', 3, 1);
3.6 添加教师课程安排
INSERT INTO pre20250212_teacher_course
(teacher_id, class_id, subject_id, hours, status)
VALUES
-- 张明老师课程(语文)
(1, 1, 1, 6, 1), -- 初一(1)班
(1, 2, 1, 6, 1), -- 初一(2)班
(1, 3, 1, 6, 1), -- 初一(3)班
-- 李华老师课程(数学)
(2, 1, 2, 5, 1), -- 初一(1)班
(2, 2, 2, 5, 1), -- 初一(2)班
(2, 3, 2, 5, 1), -- 初一(3)班
-- 王英老师课程(英语)
(3, 1, 3, 4, 1), -- 初一(1)班
(3, 2, 3, 4, 1), -- 初一(2)班
(3, 3, 3, 4, 1); -- 初一(3)班
3.7 添加测试成绩数据
INSERT INTO pre20250212_score
(student_id, class_id, subject_id, exam_time, score, remark)
VALUES
-- 初一(1)班部分学生成绩
(1, 1, 1, '2025-02-01', 88.5, '期中考试'), -- 张小明-语文
(1, 1, 2, '2025-02-01', 92.0, '期中考试'), -- 张小明-数学
(1, 1, 3, '2025-02-01', 85.5, '期中考试'), -- 张小明-英语
(2, 1, 1, '2025-02-01', 90.5, '期中考试'), -- 李小华-语文
(2, 1, 2, '2025-02-01', 86.0, '期中考试'), -- 李小华-数学
(2, 1, 3, '2025-02-01', 94.5, '期中考试'), -- 李小华-英语
-- 初一(2)班部分学生成绩
(6, 2, 1, '2025-02-01', 87.5, '期中考试'), -- 陈小云-语文
(6, 2, 2, '2025-02-01', 89.0, '期中考试'), -- 陈小云-数学
(6, 2, 3, '2025-02-01', 91.5, '期中考试'), -- 陈小云-英语
(7, 2, 1, '2025-02-01', 93.5, '期中考试'), -- 杨小光-语文
(7, 2, 2, '2025-02-01', 88.0, '期中考试'), -- 杨小光-数学
(7, 2, 3, '2025-02-01', 86.5, '期中考试'); -- 杨小光-英语
三、AI提示词指南
如何通过 AI 生成此项目
1. 项目规划提示词:
我想开发一个学生成绩管理系统,使用:
- 前端: uni-app + Vue3
- 后端: Classic ASP
- 数据库: SQL Server
需要实现以下功能:
1. 用户管理(登录/权限)
2. 学生管理
3. 班级管理
4. 教师管理
5. 成绩管理
请帮我规划项目结构和技术方案。
2. 数据库设计提示词:
请帮我设计这个成绩管理系统的数据库表结构,需要包含:
1. 用户表(区分管理员/教师/学生)
2. 学生表
3. 教师表
4. 班级表
5. 科目表
6. 成绩表
7. 教师课程关系表
并提供建表SQL和测试数据。
3. API接口提示词:
请帮我实现以下ASP接口:
1. 登录接口
2. 用户信息接口
3. 学生增删改查接口
4. 班级增删改查接口
5. 教师增删改查接口
6. 成绩增删改查接口
需要包含:
- 参数验证
- 权限控制
- 错误处理
- 数据返回格式统一
4. 前端页面提示词:
请使用uni-app + Vue3实现:
1. 登录页面
2. 首页(包含功能菜单)
3. 学生管理页面(列表/添加/编辑)
4. 班级管理页面
5. 教师管理页面
6. 成绩管理页面
需要包含:
- 页面布局
- 数据绑定
- 表单验证
- 接口调用
- 错误提示
5. 工具函数提示词:
请帮我实现以下工具函数:
1. HTTP请求封装
2. Token处理
3. 表单验证
4. 时间格式化
5. 错误处理
使用ES6+语法,需要考虑:
- 代码复用
- 错误处理
- 使用示例
使用以上提示词,按顺序向AI提问,即可生成一个完整的成绩管理系统。每个提示词都专注于系统的某个方面,通过组合可以构建出完整的应用。
四、总结
基于uni-app+ASP的成绩管理系统,实现了用户管理、成绩管理等功能,采用前后端分离架构,支持跨平台使用。
参考资料
- uni-app 官方文档 - uni-app 开发指南和API参考
- Vue3 组合式 API 教程 - Vue3 核心概念和最佳实践
- ASP Classic 教程 - ASP 后端开发指南和示例
关于作者
如果本指南对您有所帮助,欢迎交流和探讨技术问题。
📌 QQ: 313801120
📖 更多文章: www.xiyueta.com/
希望能一起成长,共同探索更多开发技巧!