基于 uni-app + ASP + SQL Server 的学生成绩管理系统


前言


本项目是一个基于 uni-app + ASP + SQL Server 开发的学生成绩管理系统。系统采用前后端分离架构,前端使用 uni-app 框架实现跨平台支持,后端使用 Classic ASP 提供接口服务,数据库使用 SQL Server 存储数据。


在线演示


系统演示


1. 登录模块


2. 首页功能


3. 班级管理


4. 学生管理


5. 成绩管理


6. 创建班级


7. 分配学生


8. 添加成绩


使用流程

1. 先完成班级创建

2. 进行学生分班

3. 开始成绩录入

4. 查看成绩分析


系统特点

1. 操作便捷性 - 界面直观,流程清晰

2. 功能实用性 - 覆盖教务核心需求

3. 界面友好性 - 简洁美观,响应迅速

4. 数据准确性 - 严格的验证机制


一、项目概述


1.1 技术栈


1.2 功能模块

1. 用户管理


2. 学生管理


3. 班级管理


4. 教师管理


5. 成绩管理


二、数据库设计


1. 数据库配置说明


1. 表前缀说明


2. 字段说明


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的成绩管理系统,实现了用户管理、成绩管理等功能,采用前后端分离架构,支持跨平台使用。


参考资料


关于作者

如果本指南对您有所帮助,欢迎交流和探讨技术问题。

📌 QQ: 313801120

📖 更多文章: www.xiyueta.com/

希望能一起成长,共同探索更多开发技巧!