课堂点名系统

📅 2026/6/30 2:31:08
课堂点名系统
一.项目简介课堂教师点名回答问题往往是随机点名。由于教师习惯等因素往往造成有的同学被点名次数多有的同学被点名次数少。本系统设计了一个点名系统使得学生在一个学期的上课过程中可以获得相同的点名机会。本项目基于 Java Swing 开发采用最少被点名次数优先的公平点名算法通过文件IO实现数据持久化存储是一款轻量级、可独立运行的桌面应用程序。二.项目采用技术开发语言Java11图形界面Java Swing数据存储文件IO版本控制GitGitee代码静态规则扫描Alibaba Java Coding Guidelines三.功能需求分析1.核心功能列表导入学生名单从students.txt文件读取学生信息公平点名每次从被点名次数最少的学生中随机抽取记录回答正确点击“正确”按钮记录回答正确次数1记录回答错误点击“错误”按钮记录该生点名次数统计报表展示所有学生的点名次数、正确次数、正确率数据持久化自动保存到data.txt重启后恢复可执行jar打包成独立可运行Jar文件2.功能流程图开始 ↓ 加载 students.txt → 导入学生名单 ↓ 显示学生列表表格 ↓ 用户点击「随机点名」 ↓ 找出被点名次数最少的学生 ↓ 随机抽取一位 → 显示在界面 ↓ 用户判断该生回答情况 ├── 点击「正确」→ 记录正确次数1 → 回到就绪 └── 点击「错误」→ 仅记录错误 → 回到就绪 ↓ 数据自动保存到 data.txt ↓ 继续点名...四.项目亮点1.公平性保障传统点名可能因为教师习惯导致部分学生被频繁点名本系统通过最少点名次数优先算法确保每位学生的被点名次数趋于均衡。2.数据持久化点名数据自动保存到data.txt即使程序关闭下次启动也能恢复所有数据。3.面向对象设计Student类封装学生属性和行为FileManager类专门负责文件IOMainFrame类Swing界面 事件处理实现ActionListener接口统一事件响应4.可独立运行通过jar命令打包成可执行 JAR 文件适合日常使用五.系统演示截图截图1主界面系统启动后自动加载data.txt中的已有数据若没有数据则从students.txt导入。截图2.点名状态点击「随机点名」按钮后界面中央显示被点名学生姓名同时「正确」和「错误」按钮变为可用。截图3.统计报告点击「统计」按钮弹出统计报告包含总学生数、总点名次数、总正确次数、总体正确率、从未被点名的学生人数、被点名最多的学生、回答正确最多的学生、正确率最高的学生。截图4.数据文件data.txt文件自动保存所有学生的点名数据格式为:学号姓名被点名次数回答正确次数。截图5.项目结构项目采用标准的Java项目结构源码位于src/com/rollcall/目录下六.项目Git地址https://gitee.com/song-laishuai/rollcall-system七.团队成员分工此项目由本人独自完成八.Git提交记录截图九.心得与体会通过本次课程设计我深入理解了以下内容1. 面向对象设计通过 Student 类的封装体会了数据与行为绑定的重要性通过 MainFrame 继承 JFrame、实现 ActionListener实践了继承和多态。2. 文件IO操作使用 FileReader/FileWriter 实现数据持久化理解了字符流的读写原理。3. Swing图形界面通过 JTable、JButton、JLabel 等组件构建用户界面掌握了事件驱动编程模型。4. Git版本控制使用 Git 进行代码管理熟悉了 add、commit、push 等基本操作。5. 软件工程思维从需求分析到设计、编码、测试、打包发布体验了完整的软件开发流程。