计算机毕业设计中用Java编写一个订餐系统(JAVA SWING)

一、 开发技术
JDK:JDK1.8,JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

IDE:NetBeans 8.2.0,NetBeans是开源软件开发集成环境,是一个开放框架。

DataBase:JavaDB,Java自带的数据库。

二、 需求分析

2.2功能介绍

菜品信息管理系统主要分为前台用户点餐,和后台管理员对菜品信息和用户提交订单信息的增删改查和统计等操作。

1.菜品信息管理页面:可以增加菜品信息,上下架菜品,修改价格,删除菜品,保存菜品信息到文件,按销量排序等。

2.订单管理界面:管理员可以对订单进行今日收入、本月收入、总收入的统计,并且可以根据时间查询订单信息。

3.后厨管理界面:可以查看今日所有用户提交的订单信息,并按用户提交的顺序排列菜名和备注,后厨可以根据订单中用户提交的信息来做菜并完成订单。

4.前台用户点餐页面:包括菜单展示,菜品图片预览,向订单中加入菜品和更改菜品备注(菜品口味特殊要求),并且实时地根据用户选择的菜品统计总消费金额,此页面显示的菜品都是后台中已上架的菜品,未上架的菜品在前台不会显示,并且在此页面成功提交订单后,选择菜品的销量也会随之增加。

5.登录页面:将用户输入的账号密码与用户数据表中存在的账号密码进行匹配,匹配成功则进入后台管理页面。

三、 系统设计
3.1结构介绍

结构主要分为GUI包(存放图形界面JFRAME和部分逻辑操作)、DbQuery包(存放所有访问数据库的操作)、img包(存放图标图片和各种菜品的展示图片)和Db包(存放JAVADB的数据库文件)。

3.2数据表结构分析

数据表主要分为三个:菜品信息表、用户订单表、管理员信息表。

在这里插入图片描述

对于菜品这个实体一共有五个属性,首先是作为主键的菜品编号是不为空且不重复,价格可能出现小数,所以把价格设置为double类型。对于菜品销量,是一个比较小的整数,所以使用INT型即可,当用户在订单中点菜后,销量也随之增加,而菜品上下架是一个只有两个值的字段,所以使用Boolean来储存。其他的介绍、名称都可能出现各种类型的数据,所以把这些属性都设置为字符串类型。

在这里插入图片描述

对于订单信息这个表,因为要根据时间查询订单并且在订单管理页面统计订单消费额,所以把订单事件设为Date类型,M-D格式,就可以定位到每一天的订单。订单表中并没有把每一个菜和价格作为一个字段,因为那样表的字段就不能作为固定的。所以我把用户点的菜品和备注进行字符串拼接并且用 , 分隔,这样拉取订单数据的时候就可以通过字符串的split(‘,’)函数,获得一个字符串数组,这样就实现了任意数量菜品的储存效果。

在这里插入图片描述

管理员信息表作为登录界面比对字符串就可以简单的都设计为String类型的字符串,在比较时直接通过SQL语句进行比较,权限字段开始的时候想要做出来根据权限不同来分配不同的功能,但是发现分配权限的逻辑没有想得很完整,不容易实现,所以最终只使用了最高权限的admin。

3.3程序类与函数分析

对于程序类主要结构,主要设计了MainFrame,DishFrame, OrderDishFrame, DbQuery等类,DishFrame中包括多个dialog,后厨管理(jdialogKitchen),关于我们(jDialogAbout),订单统计(jdialogOrder),MainFrame为程序主界面,包括主界面和登录界面(JDialogLogin),每个dialog中又包括着java swing的组件和触发器,例如private void jButtonResetActionPerformed(java.awt.event.ActionEvent evt)这类的鼠标点击触发的事件, 当点击重置按钮的时候触发该事件,将所有的TextField中的内容都改为空。

DbQuery类中包括数据库的各种操作,例如getConnection为连接数据库的方法,返回一个Connection对象,addDish(String No, String Name, double Money, boolean dis, String intro)方法,从形参获取菜品信息,通过SQL语句将其存入到数据表中。public static String[][] getOrder()方法从数据库中通过”select * from orderdish”的SQL语句拿到所有订单信息,并且以二维数组的形式返回到调用的地方,public static Double[] sumUp()函数可以在数据表订单中统计并返回每天、每月、总消费额的二维数组。

通过这三个大类中互相导入、实例化和调用,完成整个系统的功能与架构。

图片

                                    图4.3登录页面

图片

                                图4.4后台管理页面

猜你喜欢

转载自blog.csdn.net/bwwork/article/details/113748446