摘要

随着信息技术的快速发展,编程教育逐渐成为高等教育和职业培训的重要组成部分。传统的编程训练系统往往采用单体架构,存在扩展性差、维护成本高、前后端耦合严重等问题。为了提高编程训练系统的灵活性和可维护性,本研究设计并实现了一套基于前后端分离架构的编程训练系统。该系统采用现代化的技术栈,结合SpringBoot、Vue3和MyBatis等框架,实现了高效的代码编译、运行和评测功能。同时,系统支持多用户角色管理、题目管理、代码提交与评测等功能,能够满足不同层次用户的需求。关键词:编程训练系统、前后端分离、SpringBoot、Vue3、MyBatis、MySQL。

本研究采用SpringBoot作为后端框架,结合Vue3构建前端界面,利用MyBatis实现数据持久化,并通过MySQL数据库存储系统数据。系统的主要功能包括用户管理、题目管理、代码提交与评测、成绩统计等。前端采用Vue3的响应式特性,提升了用户体验;后端通过SpringBoot的RESTful API提供高效的数据交互;MyBatis优化了数据库操作性能。系统支持多角色权限控制,管理员可以管理题目和用户,教师可以查看学生成绩,学生可以进行编程练习并提交代码。关键词:用户管理、题目管理、代码评测、权限控制、RESTful API。

数据表

用户信息数据表

用户信息数据表存储系统用户的基本信息,包括用户ID、用户名、密码、角色类型等。用户ID是该表的主键,角色类型用于区分管理员、教师和学生。密码采用加密存储以提高安全性。结构表如表3-1所示。

字段名 数据类型 描述
user_id BIGINT 用户唯一标识(主键)
username VARCHAR(50) 用户名
password_hash VARCHAR(100) 加密后的密码
role_type VARCHAR(20) 用户角色(admin/teacher/student)
register_time DATETIME 注册时间
last_login DATETIME 最后登录时间
题目信息数据表

题目信息数据表存储编程题目的详细信息,包括题目ID、标题、描述、难度等级等。题目ID是该表的主键,难度等级用于分类题目。结构表如表3-2所示。

字段名 数据类型 描述
problem_id BIGINT 题目唯一标识(主键)
title VARCHAR(100) 题目标题
description TEXT 题目描述
difficulty VARCHAR(20) 难度等级(easy/medium/hard)
time_limit INT 时间限制(毫秒)
memory_limit INT 内存限制(MB)
creator_id BIGINT 创建者ID(外键)
create_time DATETIME 创建时间
提交记录数据表

提交记录数据表存储用户提交的代码及其评测结果,包括提交ID、用户ID、题目ID、代码内容、评测状态等。提交ID是该表的主键,评测状态用于记录代码的运行结果。结构表如表3-3所示。

字段名 数据类型 描述
submission_id BIGINT 提交唯一标识(主键)
user_id BIGINT 用户ID(外键)
problem_id BIGINT 题目ID(外键)
code_content TEXT 提交的代码内容
submit_time DATETIME 提交时间
judge_status VARCHAR(20) 评测状态(pending/accepted/rejected)
run_time INT 运行时间(毫秒)
memory_usage INT 内存使用(MB)

博主介绍:

🎓 计算机科学与技术专业在读研究生 | CSDN博客专家 | Java技术爱好者
在校期间积极参与实验室项目研发,现为CSDN特邀作者、掘金优质创作者。专注于Java开发、Spring
Boot框架、前后端分离技术及常见毕设项目实现。 📊 数据展示:
全网粉丝30W+,累计指导毕业设计1000+项目,原创技术文章200+篇,GitHub项目获赞5K+ 🎯 核心服务:
专业毕业设计指导、项目源码开发、技术答疑解惑,用学生视角理解学生需求,提供最贴心的技术帮助。

系统介绍:

开源免费分享Java SpringBoot+Vue3+MyBatis 编程训练系统系统源码|前后端分离+MySQL数据库可提供说明文档 可以通过AIGC**技术包括:MySQL、VueJS、ElementUI、(Python或者Java或者.NET)等等功能如图所示。可以滴我获取详细的视频介绍

功能参考截图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

系统架构参考:
在这里插入图片描述
视频演示:

可以直接联系我查看详细视频,个性签名!

在这里插入图片描述

项目案例参考:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

最后再唠叨一句:

可以直接联系我查看详细视频,个性签名!
遇见即是缘,欢迎交流,你别地能找到的源码我都有!!!

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐