点菜系统软件源码(点菜软件源码分享)
點菜系統軟件源碼
?主界面
系統主界面,主要是打印出功能選擇菜單,然后根據我們的輸入選擇不同的子功能。
package com.cunyu;import java.util.ArrayList; import java.util.List; import java.util.Scanner;/*** Created with IntelliJ IDEA.** @author : 村雨* @version : 1.0* @project : Java 實戰* @package : com.cunyu* @className : DishApp* @createTime : 2021/7/31 17:30* @email : 747731461@qq.com* @公眾號 : 村雨遙* @website : https://cunyu1943.github.io* @description : 系統主界面*/ public class DishApp {public static void main(String[] args) {Dish dish = new Dish();// 初始化菜單List<Dish> dishList = dish.initMenu();Scanner scanner = new Scanner(System.in);List<Dish> orderedList = new ArrayList<>();while (true) {System.out.println("----------歡迎使用點餐系統--------");System.out.println("----------【1】點菜--------------");System.out.println("----------【2】參看已點菜品-------");System.out.println("----------【3】刪除菜品-----------");System.out.println("----------【4】結賬--------------");System.out.println("----------【0】返回上一級/退出-----");System.out.println("輸入你的選擇");String choice = scanner.next();switch (choice) {case "1":while (true) {dish.showMenu(dishList);System.out.println("請輸入菜品序號進行點菜,輸入 0 則返回上一級菜單");int id = scanner.nextInt();if (id == 0) {break;}System.out.println("輸入菜品序號:" + id);System.out.println("你點的菜是:" + dishList.get(id - 1).getName());// 把已點的菜加入已點菜單orderedList.add(dishList.get(id - 1));}break;case "2":dish.showOrderedMenu(orderedList);break;case "3":if (orderedList.isEmpty()) {System.out.println("當前還未點菜,請重新輸入你的選擇");} else {System.out.println("輸入要刪除菜品的序號");int id = scanner.nextInt();dish.deleteDish(id, dishList, orderedList);}break;case "4":dish.checkout(orderedList);break;case "0":System.exit(0);default:break;}}} }主類設計
主要涉及的菜品,于是定義一個菜品類,主要包括序號、菜品名、菜品單價三個屬性。
package com.cunyu;/*** Created with IntelliJ IDEA.** @author : 村雨* @version : 1.0* @project : Java 實戰* @package : com.cunyu* @className : Dish* @createTime : 2021/7/31 17:27* @email : 747731461@qq.com* @公眾號 : 村雨遙* @website : https://cunyu1943.github.io* @description : 菜品類*/ public class Dish {/*** 編號*/private int id;/*** 菜名*/private String name;/*** 價格*/private double price;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public Dish() {}public Dish(int id, String name, double price) {this.id = id;this.name = name;this.price = price;} }功能接口
上次的文章中,讀者建議我把各個功能獨立出接口,然后再實現,所以這里先將各個功能的接口給出來。
package com.cunyu;import java.util.List;/*** Created with IntelliJ IDEA.** @author : 村雨* @version : 1.0* @project : Java 實戰* @package : com.cunyu* @className : DishInterface* @createTime : 2021/7/31 20:26* @email : 747731461@qq.com* @公眾號 : 村雨遙* @website : https://cunyu1943.github.io* @description :*/ public interface DishInterface {/*** 初始化菜單** @return 返回餐廳當前所提供的菜品列表*/public List<Dish> initMenu();/*** 顯示菜單** @param dishList 菜品列表*/public void showMenu(List<Dish> dishList);/*** 顯示已經點過的菜品** @param orderedList 當前已點菜品*/public void showOrderedMenu(List<Dish> orderedList);/*** 移除菜品** @param id 菜品對應序號* @param dishList 菜品列表* @param orderedList 已點菜品列表*/public void deleteDish(int id, List<Dish> dishList, List<Dish> orderedList);/*** 結賬** @param orderedList*/public void checkout(List<Dish> orderedList); }初始化菜單
一般餐館都是提供的固定的菜單,所以這里沒有給出管理菜單的功能,直接進行初始化后給出各個菜品,將其存入列表中。
/*** 初始化菜單** @return 初始化后的菜單*/ public List<Dish> initMenu() {List<Dish> dishList = new ArrayList<>();dishList.add(new Dish(1, "黃金手抓骨", 38));dishList.add(new Dish(2, "鄉村爆火肉", 58));dishList.add(new Dish(3, "養生甲魚湯", 68));dishList.add(new Dish(4, "三鮮湯", 28));dishList.add(new Dish(5, "紫菜蛋花湯", 18));dishList.add(new Dish(6, "鐵板黃金蛋", 38));dishList.add(new Dish(7, "泡椒炒牛肉", 48));dishList.add(new Dish(8, "麻婆豆腐", 18));dishList.add(new Dish(9, "干煸豆角", 28));dishList.add(new Dish(10, "干鍋娃娃菜", 29));dishList.add(new Dish(11, "干鍋土豆絲", 28));dishList.add(new Dish(12, "清炒時蔬", 25));dishList.add(new Dish(13, "涼拌黃瓜", 10));dishList.add(new Dish(14, "胡椒皮蛋", 15));dishList.add(new Dish(15, "紅燒茄子", 20));return dishList; }展示菜品列表
初始化菜單后,把整個菜單展示給顧客看。
/*** 展示菜單** @param dishList 菜品列表*/ public void showMenu(List<Dish> dishList) {System.out.println("------------本店菜單------------");System.out.println("序號\t\t菜名\t\t\t\t單價");for (int i = 0; i < dishList.size(); i++) {System.out.format("%d\t\t%s\t\t\t%.2f\n", dishList.get(i).getId(), dishList.get(i).getName(), dishList.get(i).getPrice());}System.out.println("---------------------------"); }展示已點菜品
/*** 查看已點的菜*/ public void showOrderedMenu(List<Dish> orderedList) {if (orderedList.isEmpty()) {System.out.println("當前您還未點餐,請重新輸入選擇");} else {System.out.println("當前您點的菜品如下");for (int i = 0; i < orderedList.size(); i++) {System.out.println(orderedList.get(i).getName());}}}移除菜品
找到對應序號對應的菜品,然后將其移除。
/*** 刪除對應菜品** @param id 菜品對應序號* @param dishList 菜品列表* @param orderedList 已點菜品列表*/ public void deleteDish(int id, List<Dish> dishList, List<Dish> orderedList) {if (!orderedList.isEmpty()) {orderedList.remove(dishList.get(id - 1));} }結賬
先判斷是否點菜,如果沒有則提示,若已經點過餐,則直接結賬。
/*** 結賬*/ public void checkout(List<Dish> orderedList) {double money = 0.0d;if (orderedList.isEmpty()) {System.out.println("當前您還未點餐,請重新輸入選擇");} else {System.out.println("請稍等,正在結算中……");for (int i = 0; i < orderedList.size(); i++) {money += orderedList.get(i).getPrice();}System.out.format("你此次總共消費:¥ %.2f\n", money);} }總程序
好了,實現以上各個模塊功能之后,將其整合到一起,就得到我們最后的總體程序。
各部分的代碼都已經貼出來的,不過為了大家更方便,我這這里給出總程序結構。
點菜系統軟件需求分析
點菜系統軟件體系結構
此次可以,我們需要設計一個點菜系統,我們就需要對我們的系統進行分析,面向的對象是誰?對象常用的操作又有哪些?
既然是點菜系統,那我們的餐館一般都是有一個固定的菜單,然后面向的對象一般都是顧客,顧客可以通過這個菜單進行點菜、刪除菜,查看已經點過的菜,以及最后用完餐后的結賬。
因此,對于點菜系統,主要所需功能如下:
- 初始化菜單
- 點菜
- 移除已點的菜
- 查看已點的菜
- 結賬
- 退出系統
功能預覽
系統菜單
進入我們的點菜系統之后,一般都是有系統菜單的,用于提示我們進行下一步的操作。
點菜
根據系統菜單進入點菜功能后,輸入菜品序號進行點菜以及返回上一級菜單。
查看已點菜品
假設我們點完菜之后,要確認下有沒有點重復的菜,此時就可以查看已點菜品。
當然,上圖是我們已經點過菜才會出現菜品,如果我們還沒有點過菜,那么系統則會提示還未點菜。
刪除菜品
假設我們不小心點了重復的菜,那該怎么辦呢?不用擔心,我們直接選擇刪除菜品功能,然后刪除對應重復菜品即可。
同樣的,加入我們還未點菜就進入刪除菜品功能,系統也會給出提示。
結賬
當我們用完餐之后,接下來就是結賬了。此時只要進入我們的結賬選項,系統就會打印出本次所消費的所有金額。
同樣的,加入我們還未點菜就進入結賬功能,系統也會給出提示。
退出系統
當我們輸入選擇為 0 時,表示我們退出系統。
點菜系統是一種全新的、集無線、網絡、嵌入式技術、人工智能等技術于一體的無線手持終端。適用于餐飲,酒店、咖啡廳等場所的餐臺管理、點菜錄單、結算、信息反饋與傳遞。結合傳統的點菜管理系統,為餐飲、酒店、咖啡廳等行業的經營管理提供了一整套高效、穩定可靠、先進的解決方案,改變了餐飲等行業的手工經營方式,提高了服務效率和顧客滿意程度,提升了店面形象,最終提升了企業競爭力與經營效益。
點菜系統軟件適用范圍
酒樓、連鎖餐廳、中西式餐廳、咖啡廳、火鍋店、快餐店、美食廣場、酒吧等。
點菜系統軟件功能結構
“異同餐飲系統”的功能模塊包括:會員管理、菜品管理、采購管理、庫存管理、結算管理、廚打監控、系統報表和決策分析。
點菜系統軟件產品特色
界面美觀,操作便捷
主界面美觀、操作簡單、快捷,主要功能在小鍵盤上即可完成,支持圖形點菜、編碼點菜、拼音簡碼點菜,錄入方式可自動切換,能極大地提高前臺營業的效率。
通過具有無線功能的智能掌上PDA和點菜寶,服務員可以隨時隨地為顧客開臺、點菜、退臺、并臺、換位、查詢消費情況,使用快捷方便。
點菜系統軟件靈活準確的財務結算
結算方式靈活多樣,支持現金、支票、信用卡、掛帳、免單、禮券、跑單、會員卡等。提供多種折扣方式,包括單品折扣、類別折扣、會員折扣、整單折扣等。同時提供最低消費、服務費、按時計費等自動計算功能。
實時的廚打監控,讓您不再擔心出現漏單現象
系統帶有實時的廚打監控功能,杜絕了廚房打印丟單的現象;
可以自定義廚打方式及打印內容,可實現“一菜一單”,“一大類一單”,“一小類一單”和“一桌一單”,全程監控打印,可完全實現條碼打印及紅外線掃描出品。
靈活的后臺管理,導航操作界面,簡明的業務流程
進入后臺管理系統,操作一目了然,業務流程清晰明了,操作簡單。同時提供多種操作途徑,業務操作既可在系統菜單中完成,也可在導航器中完成。
強大的短信平臺,智能化的來電提示,完善的客戶關系管理系統
短信平臺功能,為您搭建更緊密的客戶關系;
來電自動提示,當會員來電預訂時,系統自動顯示會員檔案及消費信息;
系統提供了客戶信息管理、會員管理、會員卡設置功能(可持卡或者不持卡),可以設定不同的會員類型,包括會員折扣、會員儲值卡、會員借記卡;
支持多種會員積分管理,包括消費次數限制、按消費金額積分、按消費次數積分,同時支持不同商品類別不同積分點積分。
支持多種會員積分優惠和獎勵計劃,包括積分獎勵、禮品兌換、積分折扣,同時支持不同積分級別自動享受不同折扣優惠。
科學規范的連鎖管理,豐富多樣的報表,便捷的利潤分析
美世家餐飲管理系統助您輕松地計算原料消耗、進行成本核算,并且統計出相應菜品的利潤,便于價格的設定和管理。
系統提供了豐富的報表功能從營業狀況、毛利到每天的客流量、客座率、菜品銷售、時段銷售統計、日營業數據等,為您提供相應的經營決策信息。
連鎖版提供完善、規范、科學的連鎖餐飲行業的經營管理模式。支持總部、配送中心、多連鎖餐廳、加盟店的集團式連鎖經營模式。數據通訊安全、可靠、穩定,傳輸方式同時支持遠程撥號VPN、數字專線光纖、Internet寬帶(ADSL、ISDN)FTP文件傳輸、文件拷貝等傳輸方式。
總結
以上是生活随笔為你收集整理的点菜系统软件源码(点菜软件源码分享)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 稚晖君又整活啦!基于全志F1C200s的
- 下一篇: C++类中成员变量的初始化总结