95 分毕设源码:SpringBoot 英语单词系统,Excel 一键导入 + 自动生成发音
·
前言
英语单词背到吐,Excel 还在手动敲?我把 10 万条词库 + AI 发音 + 在线测试 塞进一个 SpringBoot 系统,老师现场打分:‘这才是真正的数字化学习!’ 今天源码全部公开,复制就能跑。
博主介绍:CSDN特邀作者、985高校计算机专业毕业、现任某互联网大厂高级全栈开发工程师、Gitee/掘金/华为云/阿里云/GitHub等平台持续输出高质量技术内容、深耕Java、小程序、前端、python等技术领域和毕业项目实战,以及程序定制化开发、全栈讲解。
💯文末获取源码+数据库💯
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以找我咨询,希望帮助更多的人。
项目特色
- 零基础友好:关键代码全注释,IDEA 一键跑通
- 真实业务闭环:Excel 导入 → 在线测试 → 成绩看板
- 高并发:10 万单词 30 秒导入,秒级响应
| 角色 | 功能 | 描述 |
|---|---|---|
| 管理员 | 首页数据看板 | 实时统计 |
| 管理员 | Excel 一键导入 | 拖拽上传 |
| 管理员 | 自动生成英式发音 | 点击喇叭→ 标准发音 |
| 学生 | 在线测试 | 听语音拼写单词→ 答对得分 |
| 学生 | 成绩看板 | 实时统计 |
系统截图
登录:
英语学习:
书籍管理:
词汇管理:
用户管理:

功能展示
Excel 一键导入
核心代码:
@PostMapping(value = "add", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
@ApiOperation(value = "导入英语词汇书")
public HttpResponseResult addEnglishBook(@ApiParam(value = "英语词汇文件") @RequestParam(value = "file") MultipartFile file,
@ApiParam(value = "书籍编码") @RequestParam(defaultValue = "") String bookCode,
@ApiParam(value = "书籍名称") @RequestParam(defaultValue = "") String bookName,
@ApiParam(value = "描述") @RequestParam(defaultValue = "") String description) throws Exception {
if (file == null) {
return HttpDataResponseResult.isBadRequest("英语词汇文件不能为空!", null);
}
if (StringUtils.isNotEmpty(bookCode) && englishBookService.isExistBookCode(bookCode)) {
return HttpDataResponseResult.isBadRequest("该书籍编号已存在!");
}
EnglishBookDto dto = EnglishBookDto.builder()
.bookCode(bookCode)
.bookName(bookName)
.description(description).build();
try {
InputStream in = file.getInputStream();
Workbook workbook = WorkbookFactory.create(in);
// 保存EnglishBook
ServiceResult result = englishBookService.insertEnglishBook(dto, workbook.getSheetAt(0));
if (result.getStatus() == HttpStatus.OK.value()) {
EnglishBook englishBook = (EnglishBook) result.getData();
// 备份词汇书文件到本地
ByteArrayOutputStream baOs = new ByteArrayOutputStream();
workbook.write(baOs);
ExportFileUtils.writeToFile(baOs.toByteArray(), englishBook.getFilePath());
return HttpDataResponseResult.isSuccess("英语词汇书籍【" + englishBook.getBookName() + "】上传成功!", englishBook);
}
return HttpDataResponseResult.isNotModified(result.getMessage(), result.getData());
} catch (IOException e) {
return HttpDataResponseResult.isBadRequest("无法将Excel文件解析为内置对象,仅支持xls、xlsx格式的文件。Error ------> " + e.getMessage(), null);
} catch (POIXMLException e) {
return HttpDataResponseResult.isBadRequest("无法将Excel文件解析为内置对象,仅支持xls、xlsx格式的文件。Error ------> " + e.getMessage(), null);
}
}
功能演示:
单词导入
在线测试
核心代码:
public ServiceResult insertExamScore(ExamScoreDto examScoreDto, SysUser user) {
ExamScore examScore = ExamScore.builder()
.userId(user.getUserId())
.bookCode(examScoreDto.getBookCode())
.totalQuestions(examScoreDto.getTotalQuestions())
.answerTrue(examScoreDto.getAnswerTrue())
.totalScore(100)
.examTime(new Date()).build();
float f = (float) examScoreDto.getAnswerTrue() / examScoreDto.getTotalQuestions() * examScore.getTotalScore();
int score = Math.round(f);
examScore.setScore(score); // 考试得分
examScore.setPoint(examScoreDto.getAnswerTrue() == examScoreDto.getTotalQuestions() ? 10 : 0); // 满分加 10 积分
int row = examScoreMapper.insert(examScore);
if (row == 1) {
LambdaQueryWrapper<EnglishBook> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(EnglishBook::getBookCode, examScore.getBookCode());
EnglishBook book = bookMapper.selectOne(wrapper);
examScore.setBookName(book == null ? "书籍已被移除!" : book.getBookName());
return ServiceResult.isSuccess("成绩单提交成功!", examScore);
}
return ServiceResult.isInternalError("成绩单提交失败,未知错误!");
}
功能演示:
测试
词汇新增
核心代码:
public ServiceResult insertEnglishWord(EnglishWordDto englishWordDto) {
EnglishWord word = EntityUtils.entityConvert(englishWordDto, new EnglishWord(), false);
word.setBookCode(word.getBookCode());
word.setStatus((short) 1);
wrapCommonAttr(word);
// 保存信息到数据库
int row = englishWordMapper.insert(word);
if (row == 1) {
// 下载发音文件
downLoadWordsMp3(Arrays.asList(word));
return ServiceResult.isSuccess("英语词库更新成功!", word);
}
return ServiceResult.isInternalError("英语词库创建失败,未知错误!");
}
功能演示:
领取方式
点击链接,文章最下方自动获取
完整源码
word.xlsx 模板 + 海量单词库
部署文档
转发本文到 3 个群,再送「答辩 PPT 模板」。
优秀案例



如果文章帮到你,点赞+关注,如需更多其他项目分享请留言。
更多推荐


所有评论(0)