小聲bb:
運行本項目需要的配置:java+eclipse+mysql+(很重要)修改數據庫中的single、combo、discourted表中的name行的編碼爲utf8,可以通過下列語句實現(修改的single),不然無法在菜單中添加中文的菜品:
ALTER TABLE `single` CHANGE `name` `name` VARCHAR(255) CHARACTER SET utf8 NOT NULL;
戳我直達
一、系統功能
二、開發環境及設計模式
三、系統介紹
四、界面展示
五、遇到的問題及解決
六、源代碼下載
圖像部分uml圖
系統主模塊層次圖
實體聯繫圖
數據庫表
界面的一系列圖
數據庫編碼問題及解決
一、系統功能
1.正常餐品結算和找零。
2.基本套餐結算和找零。
3.使用優惠券購買餐品結算和找零。
4.可在一定時間段參與店內活動。
5.模擬打印小票的功能(寫到文件中)。
6.實現可視化界面。
7.實現當天營業額和餐品銷量計算和統計,用數據庫記錄
本系統使用MySQL建立了數據庫其中包括菜單菜品,營業額等。利用Java中swing設計系統操作界面。
二、開發環境及設計模式
使用了Java作爲開發語言和 MySQL作爲後臺數據庫,主要採用了MVC設計模式和單例模式和靜態工廠方法。
三、系統介紹
3.1 總體設計
肯德基點餐系統設計採用了面向對象的系統設計方法,運用JAVA語言進行開發,後臺數據庫採用的是SQL Server。根據之前的設計思路和系統功能分析,將肯德基點餐系統分爲了單品、套餐、店內活動、購物車、結算、打印小票、退出系統。系統主模塊層次圖如圖所示:
3.2 系統的特點
1. 後臺連接數據庫,統一對肯德基相關產品進行管理。方便管理人員對數據進行插入、刪除、查詢等,使數據更加規範化。
2. 系統採用Swing圖形化用戶界面編程,按照人性化設計的原則,用戶界面友好、操作靈活簡便。
3. 在系統功能方面,整個系統實現自動進行點餐、總額、小票打印等各項功能。系統可以通過用戶自主選擇對應產品,例如,單品、套餐等。同時針對爲會員的用戶,對其進行相對應的管理。
4. 該系統具有通用性強,適應面廣的特點。該肯德基點餐系統面對的用戶是肯德基客戶。不同規模的店面點餐方式具有多樣化、後臺的管理方式也會不同。針對不同的需求,可以對商品的規模進行改變,店內活動等也可以根據不同的需求進行相應的調整。
3.3 數據庫概念結構及物理設計
其中營業額存儲在購物車表中。
物理設計的任務是確定所有屬性的類型、寬度與取值範圍,設計出基本表的主鍵,將所有的表名與字段名英文化,實現物理建庫,完成數據庫物理設計字典。 創建數據庫的實現:利用sql語句創建數據庫和表。
四、界面展示
4.1系統主界面
該界面主要展示了我們的主界面運行功能,有單品、套餐、店內活動、購物車、結算、打印小票、退出系統主要幾個模塊。
4.2.單品界面展示
該界面主要方便用戶選擇自己喜歡的單品。
4.3套餐界面展示
該界面主要方便用戶選擇自己喜歡的套餐。
4.4.店內活動界面展示
該界面向用戶顯示週三會員半價店內活動。
4.5購物車界面展示
展示用戶已經選擇的食品。
4.6.結算界面展示
用來結算的界面。
4.7打印小票界面展示
方便用戶查看小票知道錢的去向。
4.8退出系統界面展示
一切行爲結束後,退出操作。
五、遇到的問題及解決
(1)數據庫問題
剛開始在打印小票的時候鏈接數據庫,一味的以爲只要用getconnection函數把數據庫引過來就好了,後來怎麼也實現不了,最後查詢資料才知道,要先接入數據庫的驅動,才能引入數據庫。
(2)結算問題
剛開始忽略了結算時候涉及到的異常,當運行的時候,系統拋出異常,才反應過來結算的時候需要添加異常。
(3)數據庫編碼問題
一開始沒法添加單品進去,總要報錯:
上網查詢後發現是自己的表的默認編碼出了問題,數據庫的默認編碼爲latin1,無法識別中文,要用(以下指令)將name所在行改成utf-8
mysql> ALTER TABLE `single` CHANGE `name` `name` VARCHAR(255) CHARACTER SET utf8 NOT NULL;
修改前
修改後