个人简介
一名14年经验的资深毕设内行人,语言擅长Java、php、微信小程序、Python、Golang、安卓Android等
开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。
感谢大家的关注与支持!
各位老师好,我是xx同学,本次课题是“12306候补购票服务系统的设计与实现”。系统主要解决春运等高峰时段“一票难求”的问题,让用户可以先提交候补订单,一旦有余票系统自动兑现,无需反复刷票。核心功能模块包括:用户注册与实名认证、候补订单提交、余票监控与自动兑现、排队优先级管理、后台审核与风控拦截。技术栈方面,前端用HTML+CSS+JS,后端用SpringBoot,数据库用MySQL,排队服务用Redis,消息推送用WebSocket,整体架构是B/S模式,部署在本地Tomcat,后续可考虑上云。陈述完毕,请各位老师批评指正!
评委老师:
为什么选择“候补购票”这个题目?有什么实际意义?
答辩学生:
因为我自己春运回家就老抢不到票,还要定闹钟在第三方App上一直刷,体验很差。如果官方能提供候补功能,就不用大家24小时守着手机,系统帮忙排队,公平也省心,所以我觉得很有现实意义。
评委老师:
系统里余票监控怎么实现?会不会不停查库把系统拖垮?
答辩学生:
不会。我在表里给订单加了一个“候补状态”字段,后台用定时任务每30秒扫一次“待兑现”订单,只查余票视图,再把符合条件的订单放进Redis队列,最后批量写库,一次最多处理100条,防止频繁连接数据库。
评委老师:
如果两个人同时候补同一张余票,怎么保证不会超卖?
答辩学生:
在更新余票数量时用MySQL的“乐观锁”——先把库存版本号查出来,更新时where条件带版本号,如果返回行数是0就说明被别人抢先,就把这张票跳过,继续给队列里下一个订单尝试,直到有人成功或队列为空。
评委老师:
排队优先级怎么定?会不会有人一直排不上?
答辩学生:
规则很简单:先提交候补的人优先级高。我在订单表放了一个“submit_time”字段,查询时按时间升序取前N条,这样先到先得。为了避免有人一直排不上,我设了“最长候补时限”——72小时没兑现就短信提醒用户是否继续等,不回复就自动退单。
评委老师:
前端页面只写了HTML+CSS+JS,没有框架,后期如何维护?
答辩学生:
确实比较简陋。目前先把功能跑通,后期计划把前端改成Vue,用组件化方式拆分页面,再把打包工具换成Vite,方便热更新和部署,这部分放在论文“后续优化”章节里写。
评委老师:
如果12306官方已经上线候补功能,你的创新点在哪里?
答辩学生:
官方系统闭源,我这是开源教学版,把排队逻辑、风控规则、兑现流程全部做成可插拔模块,方便其他同学二次开发。另外我加了“学生认证绿色通道”和“同车接续候补”两个小功能,官方目前还没有,算是对候补策略的一点补充探索。
【答辩结束】
评委老师评价与总结:
xx同学选题贴近生活,能把日常抢票痛点转化为技术方案,值得肯定。系统功能模块划分清晰,优先用定时任务+Redis队列解决并发,思路可行;对超卖、优先级、超时退单等核心问题也给出了解决办法,具备初步的完整性。不足是前端技术栈偏基础,后期需引入框架提升可维护性;另外对高并发压测、数据安全、日志追踪等生产级细节考虑较少,后续可继续完善。总体来看,开题目标明确,技术路线可行,同意开题,按计划推进。
以上是某同学的毕业设计答辩的过程,如果你现在还没有参加答辩,还是开题阶段,已经选好了题目不知道怎么写开题报告,可以下面找找有没有自己符合自己题目的开题报告内容,列表中的开题报告都是往届真实的开题报告,可发送使用或参考。文末或底部来联xi可免费获取
最后
有时间和有基础的同学,建议自己多花时间找一下资料(开题报告、源码)自己独立完成毕设,需要开题报告内容、源码参考的,可以联xi博主,没有选题的也可以联系我们进行帮你选题、定功能和建议。