基于java的订餐系统设计(含源文件)
歡迎添加微信互相交流學習哦!
項目源碼:https://gitee.com/oklongmm/biye
基于Java的訂餐系統設計與實現
客戶端詳細設計
1.設計分析
顧客模塊的主要功能是瀏覽,訂餐。瀏覽與自己相關的食品信息,訂單信息等。用戶要下訂單之前臨時美食車把詳細信息列出,物品的單價,購買的數量,總共的價錢,可修改購買,當符合顧客要求的時候,顧客就可以下訂單,下訂單時首先會先到commitfood.aspx讓用戶確定一下訂單是否付合要求,確認無誤后,進入checkout.aspx填寫接收信息后生成訂單。然后由AddbuyInfo,Addbuyinfo方法對數據庫進行操作完成的。
顧客模塊詳細設計主要涉及到顧客下訂單和食品搜索兩大功能
顧客可以通過此功能對自己選中的東西下訂單,等待服務商送貨。
1. ?菜品瀏覽:可以分頁瀏覽菜品菜品,并將想要的菜品提交到填寫訂單頁面。然后系統打出此次訂購的編號
2.訂購菜品:用戶根據自己的編號可以在該頁面定購所需要的菜品
3.查看訂單:用戶根據自己的編號在該頁修改已經訂購的菜品。
4.修改訂單:在該頁修改或刪除已經訂購的菜品。
5.菜品查詢:用戶根據自己的訂購編號可以在該頁查找自己需要的菜品。
2.顧客下訂單流程圖:
? ? ? ? ?
通過提供食品搜索控件,為顧客提供更為方便快捷的服務。顧客可以快速的找到自己想要下訂的美食。
3.搜索流程圖如圖4-3所示:
?
4.Java swing做登陸界面:
1.容器類
JFrame窗體類
JPanel面板類
JMenuBar菜單類
2.元素類
JTextField文本輸入框類
JPasswordField密碼輸入框類
JButton按鈕類
JCheckBox復選框類
JComboBox下拉列表
JLabel標簽類
3.布局類
使用FlowLayout流式布局類
4.Socket API:
.Accept方法:產生“阻塞”,直到接受到一個連接,并且返回一個客戶端的Socket對象實例。
.getinputStream方法:獲得網絡連接輸入.
.getOutputStream方法:連接的另一端將得到輸入,同時返回一個OutputStream對象實例。
客戶端開發原理:使用Socket對網絡上某一個服務器的某一個端口發出連接請求,一旦連接成功,打開對話;會話結束后,關閉Socket??蛻舳瞬恍枰贫ù蜷_的端口,通常臨時的、動態的分配一個1024以上的端口。
5.主要代碼
1.主界面:
? ? ? ? setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
? ? ? ? setTitle("顧客-網絡訂餐系統");
? ? ? ? setBackground(new java.awt.Color(255, 255, 255));
? ? ? ? nearby.setText("附近小吃");
? ? ? ? nearby.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? nearbyMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? suggest.setText("今日推薦");
? ? ? ? suggest.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? suggestMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? myorder.setText("我的訂單");
? ? ? ? myorder.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? myorderMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? myorder.addActionListener(new java.awt.event.ActionListener()?
? ? ? ? {
? ? ? ? ? ? public void actionPerformed(java.awt.event.ActionEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? myorderActionPerformed(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? all.setText("全部");
? ? ? ? all.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? allMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? meat.setText("飯類");
? ? ? ? meat.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? meatMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? noodle.setText("面類");
? ? ? ? noodle.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? noodleMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? west.setText("西餐");
? ? ? ? west.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? westMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? drink.setText("飲料");
? ? ? ? drink.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? drinkMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? other.setText("其他");
? ? ? ? other.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? otherMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? controlcenter.setText("個人中心");
? ? ? ? controlcenter.addActionListener(new java.awt.event.ActionListener()?
? ? ? ? {
? ? ? ? ? ? public void actionPerformed(java.awt.event.ActionEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? controlcenterActionPerformed(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
2.訂單信息
? ? ? ? setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
? ? ? ? setTitle("我的訂單");
? ? ? ? jLabel1.setFont(new java.awt.Font("微軟雅黑", 0, 24)); // NOI18N
? ? ? ? jLabel1.setText("我的訂單");
? ? ? ? jLabel2.setText("支付狀況:");
? ? ? ? jLabel3.setText("未支付");
? ? ? ? jButton1.setText("確認收貨");
? ? ? ? jButton1.addActionListener(new java.awt.event.ActionListener()?
? ? ? ? {
? ? ? ? ? ? public void actionPerformed(java.awt.event.ActionEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? jButton1ActionPerformed(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? jButton2.setText("取消");
? ? ? ? jButton2.addActionListener(new java.awt.event.ActionListener()?
? ? ? ? {
? ? ? ? ? ? public void actionPerformed(java.awt.event.ActionEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? jButton2ActionPerformed(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
? ? ? ? jCheckBox1.setText("COCO咖啡");
? ? ? ? jCheckBox1.addActionListener(new java.awt.event.ActionListener()?
? ? ? ? {
? ? ? ? ? ? public void actionPerformed(java.awt.event.ActionEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? jCheckBox1ActionPerformed(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? jCheckBox2.setText("鐵板牛肉");
? ? ? ? jCheckBox3.setText("木須肉蓋澆飯");
? ? ? ? javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
? ? ? ? jPanel1.setLayout(jPanel1Layout);
? ? ? ? jPanel1Layout.setHorizontalGroup(
? ? ? ? ? ? jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
? ? ? ? ? ? .addGroup(jPanel1Layout.createSequentialGroup()
? ? ? ? ? ? ? ? .addContainerGap()
? ? ? ? ? ? ? ? .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
? ? ? ? ? ? ? ? ? ? .addComponent(jCheckBox1)
? ? ? ? ? ? ? ? ? ? .addComponent(jCheckBox2)
? ? ? ? ? ? ? ? ? ? .addComponent(jCheckBox3))
? ? ? ? ? ? ? ? .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
? ? ? ? );
? ? ? ? jPanel1Layout.setVerticalGroup(
? ? ? ? ? ? jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
? ? ? ? ? ? .addGroup(jPanel1Layout.createSequentialGroup()
? ? ? ? ? ? ? ? .addContainerGap()
? ? ? ? ? ? ? ? .addComponent(jCheckBox1)
? ? ? ? ? ? ? ? .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
? ? ? ? ? ? ? ? .addComponent(jCheckBox2)
? ? ? ? ? ? ? ? .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
? ? ? ? ? ? ? ? .addComponent(jCheckBox3)
? ? ? ? ? ? ? ? .addContainerGap(207, Short.MAX_VALUE))
? ? ? ? );
? ? ? ? jButton3.setText("刪除選中");
? ? ? ? jLabel4.setText("總價:");
? ? ? ? jTextField1.setEditable(false);
? ? ? ? jTextField1.setText("48");
? ? ? ? jTextField1.addActionListener(new java.awt.event.ActionListener()?
? ? ? ? {
? ? ? ? ? ? public void actionPerformed(java.awt.event.ActionEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? jTextField1ActionPerformed(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
顧客界面
訂單生成界面:
?
訂單查看界面:
?
文件操作:
?
?
?
?
服務器管理員詳細設計
1.編寫目的
編寫此文檔的目的是為了讓管理員更加便捷的管理軟件及用戶的信息,方便訂餐系統的實現。
2.系統模塊詳細設計
本系統總共有兩大模塊,分別是顧客模塊,管理員模塊。每個模塊分別有不同的權限和使用功能。
3.登陸模塊的流程圖
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
N
?? ?
Y
1-1登陸流程圖
4.管理員模塊詳細設計
管理員:查看用戶訂單,查看用戶信息,并根據用戶信息和用戶訂單對菜 品進行發派。
管理員可以通過訂單管理功能來處理日常的訂單。
管理員訂單處理程序流程圖:
?
管理員可以通過此功能模塊添加想要添加的各種信息,比如訂單處理等功能。
?
通過提供美食搜索控件,為顧客提供更為方便快捷的服務。顧客可以快速的找到自己想要下訂的美食。
搜索流程圖如圖1-4所示:
?
5.所需要的技術
管理員登陸界面Login界面的設計:
Java Swing做登陸界面:
1.容器類
JFrame窗體類
JPanel面板類
JMenuBar菜單類
2.元素類
JTextField文本輸入框類
JPasswordField密碼輸入框類
JButton按鈕類
JCheckBox復選框類
JComboBox下拉列表
JLabel標簽類
3、?? ?布局類
使用FlowLayout流式布局類
通信使用Socket API
.Accept方法
服務器端使用ServerSocket監聽指定的端口(大于1024的端口),等待客戶連接請求,客戶連接后,會產生對話,在完成對話后,關閉連接。
客戶端服務器之間連接用Socket
服務器內存管理(dll)
?
6.主要代碼:
? ?1.登錄界面
?? ? jButton2.setText("登錄");
?? ? jButton2.addActionListener(new java.awt.event.ActionListener()?
?? ? {
?? ? ? ? ? ?public void actionPerformed(java.awt.event.ActionEvent evt)?
?? ? ? ? ? ?{
?? ? ? ? ? ? ? ?jButton2ActionPerformed(evt);
?? ? ? ? ? ?}
?? ? ? ?}
?? ? ? ?);
2.管理界面
?? ? ? ?jPasswordField1.addActionListener(new java.awt.event.ActionListener()?
?? ? ? ?{
?? ? ? ? ? ?public void actionPerformed(java.awt.event.ActionEvent evt)
?? ? ? ? ? ?{
?? ? ? ? ? ? ? ?jPasswordField1ActionPerformed(evt);
?? ? ? ? ? ?}
?? ? ? ?}
?? ? ? ?);
? ? setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
? ? ? ? setTitle("店鋪信息");
? ? ? ? jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
? ? ? ? javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
? ? ? ? jPanel1.setLayout(jPanel1Layout);
? ? ? ? jPanel1Layout.setHorizontalGroup(
? ? ? ? ? ? jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
? ? ? ? ? ? .addGap(0, 95, Short.MAX_VALUE)
? ? ? ? );
? ? ? ? jPanel1Layout.setVerticalGroup(
? ? ? ? ? ? jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
? ? ? ? ? ? .addGap(0, 110, Short.MAX_VALUE)
? ? ? ? );
? ? ? ? scream.setAutoscrolls(true);
? ? ? ? javax.swing.GroupLayout screamLayout = new javax.swing.GroupLayout(scream);
? ? ? ? scream.setLayout(screamLayout);
? ? ? ? screamLayout.setHorizontalGroup(
? ? ? ? ? ? screamLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
? ? ? ? ? ? .addGap(0, 612, Short.MAX_VALUE)
? ? ? ? );
? ? ? ? screamLayout.setVerticalGroup(
? ? ? ? ? ? screamLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
? ? ? ? ? ? .addGap(0, 289, Short.MAX_VALUE)
? ? ? ? );
? ? ? ? other.setText("其他");
? ? ? ? other.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? otherMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? drink.setText("飲料");
? ? ? ? drink.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? drinkMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? noodle.setText("面類");
? ? ? ? noodle.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? noodleMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? west.setText("西餐");
? ? ? ? west.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? westMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? meat.setText("飯類");
? ? ? ? meat.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? meatMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? myorder.setText("店內產品管理");
? ? ? ? myorder.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? myorderMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? myorder.addActionListener(new java.awt.event.ActionListener()?
? ? ? ? {
? ? ? ? ? ? public void actionPerformed(java.awt.event.ActionEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? myorderActionPerformed(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? suggest.setText("結算中心");
? ? ? ? suggest.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? suggestMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
? ? ? ? all.setText("全部");
? ? ? ? all.addMouseListener(new java.awt.event.MouseAdapter()?
? ? ? ? {
? ? ? ? ? ? public void mouseClicked(java.awt.event.MouseEvent evt)?
? ? ? ? ? ? {
? ? ? ? ? ? ? ? allMouseClicked(evt);
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? );
管理員服務器端界面
管理員登錄
?
管理員界面
?
Socket通信:
?
服務器創建成功
等待客戶端
客戶機:Hello,girl !
?
總結
以上是生活随笔為你收集整理的基于java的订餐系统设计(含源文件)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 川大 计算机 博士 毕业要求,川大酝酿新
- 下一篇: python编辑器_资深程序员:学Pyt