查看代码请点击:click me
一、 需求描述
项目背景:KTV是一个人员密集的场所,逢年过节会出现一些拥堵状况,本系统全过程实现科学的信息化管理,提高了KTV的管理效率和管理质量。根据KTV的需求将以往的人工操作业务变成现在的无对接式的管理模式,大大提高了用户与管理员的可操作性。
本软件的开发过程采用Eclipse开发工具,以Java作为开发平台,使用Java作为开发语言。使用sql server 数据库进行后台的数据库管理。
用户:管理员用户和顾客用户。
业务功能:
管理员功能:对顾客需求信息、寄存信息、点餐信息、订单信息、店面信息、会员信息和员工信息的增删改查;对评论、房间信息的查看;注销账号;注册新的管理员;对系统的维护。
顾客功能:注册;修改密码;注销账号;充值;结账;对需求和评论的增删改查;添加点餐;对订单信息、房间信息、寄存信息、店面信息的查询。
二、项目设计
表2.1 main包中的类说明
| 类名 | 属性/方法 | 描述 |
|---|---|---|
| Test_ktv_Manager | main() | 主函数,调出登陆界面 |
表2.2 util包中的类说明
| 类名 | 属性/方法 | 描述 |
|---|---|---|
| DBUtil | connection(String database) | 定义一个连接,并返回连接。 |
| test() | 测试数据库是否连接成功。 | |
| NumLimit | caretUpdate(CareEvent e) | 限制只能输入数字。 |
表2.3 manner包中的类说明
| 类名 | 属性/方法 | 描述 |
|---|---|---|
| Login | static String Username | 账号 |
| JLabel jlUsername | 账号标签 | |
| JLabel jlPwd | 密码标签 | |
| JLabel jlUserType | 用户类别标签 | |
| JTextField jtUsername | 账号文本框 | |
| JPasswordField jtPwd | 密码框 | |
| JComboBox |
用户类别 | |
| JButton jbOK | 登录按钮 | |
| JButton jbCancel | 退出按钮 | |
| JButton jbRegister | 注册按钮 | |
| Login() | 构造方法 | |
| getUsername() | 获取账号方法 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| Register | JTextField jtaUserName | 账号文本框 |
| JPasswordField jpfPwd | 密码框 | |
| JPasswordField jpfIdentify | 确认密码框 | |
| JTextField jtbalance | 存入余额 | |
| JLabel jlUserName | 账号标签 | |
| JLabel jlPwd | 密码标签 | |
| JLabel jlIdentify | 确认密码标签 | |
| JLabel jlbalance | 余额标签 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCancel | 返回按钮 | |
| Register() | 构造方法 | |
| actionPerformed(ActionEvent e) | 监听器方法 |
表2.4 实体登陆表
| 表名 | 属性 | 描述 |
|---|---|---|
| manager | managerID | 管理员登陆账号 |
| managerPwd | 管理员登录密码 | |
| users | userID | 用户登陆账号 |
| userPwd | 用户登陆密码 |
表2.5 实体表
| 表名 | 属性 | 描述 |
|---|---|---|
| Comment | EID | 评论序号 |
| Etime | 评论时间 | |
| Econtent | 评论内容 | |
| EuserID | 评论用户 | |
| Customer | CID | 需求编号 |
| CuserID | 需求用户 | |
| Ctype | 需求类型 | |
| Deposit | DID | 寄存编号 |
| Deposit | 寄存柜号 | |
| Dtelephone | 寄存电话 | |
| DuserID | 寄存用户 | |
| Food | FID | 点餐编号 |
| Fproduce | 食品生产日期 | |
| Fprice | 食品价格 | |
| Fname | 食品名称 | |
| Famount | 食品数量 | |
| FuserID | 点餐用户 | |
| Orders | OID | 订单编号 |
| Omoney | 订单金额 | |
| OuserID | 所属用户 | |
| Room | RID | 房间编号 |
| Rprice | 房间金额 | |
| Rtype | 房间类型 | |
| Store | SID | 店面id |
| Scontact | 联系方式 | |
| Sposition | 地理位置 | |
| Sname | 店面名称 | |
| Vip | MID | 会员编号 |
| Mtime | 办理时间 | |
| Mbalance | 余额 | |
| MuserID | 会员id | |
| Worker | WID | 员工编号 |
| Wname | 员工姓名 | |
| Wage | 员工年龄 | |
| Wsex | 员工性别 |
表2.6 manager包中类描述
| 类名 | 属性/方法 | 描述 |
|---|---|---|
| KTVManager | JMenuBar jmb | 菜单栏 |
| JMenu jmSystem | 系统菜单 | |
| JMenu jmAccount | 账户菜单 | |
| JMenu jmOption | 需求管理菜单 | |
| JMenu jmDeposit | 寄存管理菜单 | |
| JMenu jmFood | 点餐管理菜单 | |
| JMenu jmOrder | 订单管理菜单 | |
| JMenu jmRoom | 房间管理菜单 | |
| JMenu jmStore | 店面管理菜单 | |
| JMenu jmVip | 会员管理菜单 | |
| JMenu jmWorker | 员工管理菜单 | |
| JMenu jmComment | 评论查看菜单 | |
| JMenu jmSafe | 安全与维护菜单 | |
| JMenuItem jmiReLog | 重新登陆菜单项 | |
| JMenuItem jmiExit | 退出菜单项 | |
| JMenuItem jmiDelete | 注销用户菜单项 | |
| JMenuItem jmiNewManager | 添加管理员菜单项 | |
| JMenuItem jmiSelectCustomer | 查询需求菜单项 | |
| JMenuItem jmiSelectDeposit | 查询寄存菜单项 | |
| JMenuItem jmiSelectFood | 查询点餐菜单项 | |
| JMenuItem jmiSelectOrder | 查询订单菜单项 | |
| JMenuItem jmiSelectRoom | 查询房间菜单项 | |
| JMenuItem jmiSelectStore | 查询店面菜单项 | |
| JMenuItem jmiSelectVip | 查询会员菜单项 | |
| JMenuItem jmiSelectWorker | 查询员工菜单项 | |
| JMenuItem jmiSelectComment | 查询评论菜单项 | |
| JMenuItem jmiBackup | 备份菜单项 | |
| JMenuItem jmiRestore | 还原菜单项 | |
| ImageIcon img | 添加图片 | |
| JLabel jlimg | 添加图片标签 | |
| KTVManager() | 构造方法 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| UserManager | JMenuBar jmb | 菜单栏 |
| JMenu jmSystem | 系统菜单 | |
| JMenu jmAccount | 账户菜单 | |
| JMenu jmOption | 需求管理菜单 | |
| JMenu jmComment | 评论管理菜单 | |
| JMenu jmFood | 点餐管理菜单 | |
| JMenu jmSelect | 查询菜单 | |
| JMenu jmpay | 结账菜单 | |
| JMenuItem jmiRelog | 重新登陆菜单项 | |
| JMenuItem jmiExit | 退出菜单项 | |
| JMenuItem jmiBalcance | 余额菜单项 | |
| JMenuItem jmiAltPwd | 修改密码菜单项 | |
| JMenuItem jmiDelete | 注销账户菜单项 | |
| JMenuItem jmiCustomerAdd | 添加需求菜单项 | |
| JMenuItem jmiCustomerSelect | 查看评论菜单项 | |
| JMenuItem jmiOrder | 查询订单菜单项 | |
| JMenuItem jmiRoom | 房价查询菜单项 | |
| JMenuItem jmiDeposit | 寄存查询菜单项 | |
| JMenuItem jmiStore | 门店查询菜单项 | |
| JMenuItem jmiPay | 付款结账菜单项 | |
| ImageIcon img | 添加图片 | |
| JLabel jlimg | 添加图片标签 | |
| UserManager() | 构造方法 | |
| actionPerformed(ActionEvent e) | 监听器方法 |
表2.7 fuction_user包类说明
| 类名 | 属性/方法 | 描述 |
|---|---|---|
| AltPwd | JLabel jlOldPwd | 旧密码标签 |
| JLabel jlNewPwd | 新密码标签 | |
| JLabel jlIdentify | 确认密码标签 | |
| JPasswordField jpfOldPwd | 旧密码框 | |
| JPasswordField jpfNewPwd | 新密码框 | |
| JPasswordField jpfIdentify | 确认密码框 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCancel | 返回按钮 | |
| AltPwd() | 构造方法 | |
| Container cp | 获取布局 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| actionPerformed(ActionEvent e) | 设置监听器方法 | |
| Balance | static double restBalance | 静态剩余余额属性 |
| JLabel jlBalance | 余额标签 | |
| JTextField jtBalance | 余额文本框 | |
| JButton jbCharge | 充值按钮 | |
| JButton jbCancel | 关闭按钮 | |
| Balance() | 构造方法 | |
| Container cp | 获取布局 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| actionPerformed(ActionEvent e) | 设置监听器方法 | |
| Charge | static double balance | 充值金额 |
| JRadioButton jrb50 | 设置50元单选按钮 | |
| JRadioButton jrb100 | 设置100元单选按钮 | |
| JRadioButton jrb500 | 设置500元单选按钮 | |
| JRadioButton jrb1000 | 设置1000元单选按钮 | |
| JButton jbSubmit | 设置提交按钮 | |
| Jbutton jbCancel | 设置返回按钮 | |
| Charge(Balance owner) | 构造方法 | |
| Container cp | 获取设置面板 | |
| JPanel jp | 获取面板 | |
| JPanel jp1 | 获取面板 | |
| actionPerformed(ActionEvent e) | 设置动作监听器 | |
| itemStateChanged(ItemEvent e) | 设置事务监听器 | |
| CommentAdd | JLabel jlCtype | 评论标签 |
| JTextArea jtaContent | 评论区文本 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCancel | 返回按钮 | |
| Container cp | 获取面板 | |
| CommentAdd | 构造方法 | |
| actionPerformed(ActionEvent e) | 设置动作监听器 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| CommentDelete | Jlabel jlCID | 删除编号标签 |
| JTextField jtCID | 删除编号文本框 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCanel | 返回按钮 | |
| CommentDelete() | 构造方法 | |
| Container cp | 获取面板 | |
| actionPerformed(ActionEvent e) | 设置监听器方法 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| CommentSelect | JTable jtComment | 设置表格 |
| JButton jbUpdate | 修改按钮 | |
| JButton jbDelete | 删除按钮 | |
| JButton jbCancel | 返回按钮 | |
| DefaultTableModel jTable1Model | 表格模型 | |
| CommentSelect() | 构造方法 | |
| Container cp | 获取面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| CommentUpdate | JLabel jlCID | 评论编号标签 |
| JLabel jlContent | 修改标签 | |
| JTextField jtCID | 修改编号文本框 | |
| JTextArea jtaContent | 评论内容 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCanel | 返回按钮 | |
| CommentUpdate() | 构造方法 | |
| Container cp | 获取当前面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| CustomerAdd | JLabel jlCtype | 需求类型标签 |
| JComboBox |
需求类型 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCanel | 返回按钮 | |
| CustomerAdd() | 添加需求 | |
| Container cp | 获取面板 | |
| Jpanel jp | 设置新面板 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| CustomerDelete | JLabel jlCID | 删除编号标签 |
| JTextField jtCID | 删除编号文本框 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCanel | 返回按钮 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| Container cp | 获取当前面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| CustomerSelect | JTable jtCustomers | 设置表格 |
| JButton jbUpdate | 修改按钮 | |
| JButton jbDelete | 删除按钮 | |
| JButton jbCancel | 返回按钮 | |
| CustomerSelect() | 构造方法 | |
| Container cp | 获取面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| actionPerformed(ActionEvent e) | 设置监听器方法 | |
| CustomerUpdate | JLabel jlCID | 输入编号标签 |
| Jlabel jlCtype | 修改类型标签 | |
| JTextField jtCID | 输入编号文本框 | |
| JComboBox |
需求类型 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCancel | 返回按钮 | |
| CustomerUpdate() | 构造方法 | |
| Container cp | 获取面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| Delete | Connection con | 获取连接 |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| Deposit | static JTable jtDeposit | 设置表格 |
| JButton jbCancel | 返回按钮 | |
| Deposit() | 构造方法 | |
| Container cp | 获取设置面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| FoodAdd | JLabel jlCtype | 点餐内容标签 |
| JLabel jcbChip | 薯片标签 | |
| JLabel jcbBeer | 啤酒标签 | |
| JLabel jcbTablets | 润喉片标签 | |
| JTextField jtChip | 薯片数量文本框 | |
| JTextField jtBeer | 啤酒数量文本框 | |
| JTextField jtTablets | 润喉片数量文本框 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCanel | 返回按钮 | |
| FoodAdd() | 构造方法 | |
| Container cp | 获取面板 | |
| actionPerformed(ActionEvent e) | 设置监听器方法 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| FoodDelete | JLabel jlFID | 删除编号标签 |
| JTextField jtFID | 删除编号文本域 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCanel | 返回按钮 | |
| FoodDelete() | 构造方法 | |
| Container cp | 获取面板 | |
| actionPerformed(ActionEvent e) | 设置监听器方法 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| FoodSelect | static JTable jtFood | 设置表格 |
| JButton jbUpdate | 修改按钮 | |
| JButton jbDelete | 删除按钮 | |
| JButton jbCancel | 返回按钮 | |
| FoodSelect() | 构造方法 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| Container cp | 获取面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| FoodUpdate | JLabel jlCID | 食品编号标签 |
| JLabel jlAmount | 食品数量标签 | |
| JTextField jtCID | 食品编号文本框 | |
| JTextField jtAmount | 食品数量文本框 | |
| JButton jbSubmit | 提交按钮 | |
| JButton jbCanel | 返回按钮 | |
| FoodUpdate() | 构造方法 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| Container cp | 获取面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| Order | JTable jtCustomers | 顾客需求表格 |
| JTable jtFood | 订餐表格 | |
| JTable jtOrder | 订单表格 | |
| JButton jbCancel | 返回按钮 | |
| double Total | 消费总额 | |
| Order() | 构造方法 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| Container cp | 获取面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| Pay | double Total | 消费总额 |
| double restbalance | 剩余余额 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| ResultSet rs | 获取结果集 | |
| Room | static JTable jtRoom | 设置表格 |
| JButton jbCancel | 返回按钮 | |
| Room() | 构造方法 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| Container cp | 获取面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 | |
| Store | static JTable jtStore | 设置表格 |
| JButton jbCancel | 返回按钮 | |
| Store() | 构造方法 | |
| actionPerformed(ActionEvent e) | 监听器方法 | |
| Container cp | 获取面板 | |
| Connection con | 获取连接 | |
| PreparedStatement stm | 获取命令 |
表2.7 fuction_manager包重要类说明
| 类名 | 属性/方法 | 描述 |
|---|---|---|
| Backup | Connection con | 获取连接 |
| PreparedStatement stm | 获取命令 | |
| Restore | Connection con | 获取连接 |
| PreparedStatement stm | 获取命令 |
三、项目实现
调出登陆界面
注册顾客
(1)若输入非数字会弹出提示框
(2)如输入正确则注册成功
注册后登录
充值
修改密码
查询、添加需求
添加、查看评论
增加、查询点餐
查询订单
查询房间
门店查询
登陆管理员
注册管理员(修改密码方式一样,不做演示)
对需求,寄存,点餐,订单,店面,会员员工的管理(增删改查,原理和骨科医院,不做演示)
对房间和评论的查询
对数据库的备份和还原
登入顾客管理系统付款
注销用户后返回登录界面
