【开题答辩实录分享】以《“平安行”驾校信息管理系统的设计与实现》为例进行答辩实录分享
大家好,我是韩立。
写代码、跑算法、做产品,从 Java、PHP、Python 到 Golang、小程序、安卓,全栈都玩;带项目、讲答辩、做文档,也懂降重技巧。
这些年一直在帮同学定制系统、梳理论文、模拟开题,积累了不少“避坑”经验。
新学期开始,很多人卡在选题:想要新颖,又怕做不完。接下来我会持续分享一批“好上手且有亮点”的选题思路和完整开题答辩案例,给你参考,也给你灵感。关注我,毕业设计不再头秃!
“平安行” 驾校信息管理系统基于 SSM 和 JSP 开发,分学员、教练、管理员三大功能板块,具体功能如下:
- 学员板块:未缴费可注册登录、查看驾校信息与资讯、管理个人基础信息;缴费后可额外观看收藏教学视频、浏览预约教练、无限次练习试卷查分,还能查看缴费信息、申请退费。
- 教练板块:登录后可查看驾校资讯与个人信息,管理所带学员基本信息,查看学员训练及考试成绩,修改补考学员缴费信息。
- 管理员板块:可维护首页资讯(增删改)、管理学员与教练信息(查看、增删)、管理驾校车辆信息(查看、增删),按日期或学员姓名查询学员成绩,查看补考学员信息,还能进行系统 bug 修复与版本更新。
【开题陈述】
答辩学生:各位老师好,我是 H 同学。课题是“基于 SSM+JSP 的‘平安行’驾校信息管理系统”。
系统分三类角色:学员、教练、管理员。学员可报名缴费、预约教练、观看教学视频、在线刷题;教练可查看分配学员、录入成绩、登记补考费;管理员可管理学员/教练/车辆、统计成绩、发布资讯。
技术栈:Spring + SpringMVC + MyBatis 组成 SSM,页面用 JSP+Bootstrap,数据库 MySQL,服务器 Tomcat,Maven 管包。下面请各位老师提问。
——答辩开始——
评委老师:学员预约教练时,如何避免同一教练在同一时段被重复预约?
答辩学生:在预约表里把(coach_id + date + time_slot)建联合唯一索引,重复插入直接抛异常,后台捕获后提示“时段已满”。
评委老师:教学视频最大 300 MB,直接存数据库吗?若不用 OSS,你怎样实现断点续传?
答辩学生:视频存磁盘,数据库存相对路径;前端用 WebUploader 切片 5 MB,后端记录已上传分片编号,续传时比对编号,缺片再补传,最后合并。
评委老师:成绩模块要支持“补考成绩”与“初次成绩”两条记录,数据库如何设计?
答辩学生:成绩表加字段 exam_type(初考/补考)和次数,联合主键(stu_id, subject, exam_type, times),保证同类型可多条。
评委老师:用 SSM 事务时,如果补考费更新成功但成绩插入失败,你会怎样回滚?
答辩学生:在 Service 层加 @Transactional,默认传播级别 REQUIRED,第二条 SQL 抛 RuntimeException 时整体回滚,数据库保持原状。
评委老师:学员端首页要展示“缴费率”实时百分比,你会在 SQL 里 COUNT(*) 全表吗?
答辩学生:不会,定时任务每 10 min 把已缴/总数写进 Redis,前端直接读缓存;夜间再同步到统计表,减轻高峰期压力。
评委老师:Tomcat 默认 200 线程,若 300 人同时刷题,你觉得会成为瓶颈吗?打算怎么调优?
答辩学生:先把 maxThreads 提到 400,acceptCount=100,同时把 MySQL 连接池 maxActive 调到 200,避免“线程等资源”互相死锁;后续压测若还不够,考虑 Nginx 两台 Tomcat 负载均衡。
评委老师:系统管理里的“版本更新”功能,你打算如何实现热部署而不重启 Tomcat?
答辩学生:采用“外置 WAR”方式,Tomcat 配置 autoDeploy=true,新版本 war 上传后 Tomcat 自动卸载旧应用并加载新应用;用户 session 存 Redis,不丢失登录状态。
——评委总结——
H 同学对业务场景理解到位,能给出联合索引、事务回滚、切片续传、缓存降频等中等难度的解决方案,思路清晰;下一步需补充压测数据与热部署风险验证,并按计划推进。开题质量中等偏上,予以通过,期待后续成果。
以上是H同学的毕业设计答辩过程,如果你现在还没有参加答辩,还是开题阶段,已经选好了题目不知道怎么写开题报告,可以下面找找有没有自己符合自己题目的开题报告内容,列表中的开题报告都是往届真实的开题报告,可发送使用或参考。