個人簡介
一名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博主,沒有選題的也可以聯系我們進行幫你選題、定功能和建議。