版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 数据库专题实验饭店简易结账系统 数据库专题实验饭店简易结账系统 TOC o 1-3 h u HYPERLINK l _Toc10284 一、选题简介 PAGEREF _Toc10284 4 HYPERLINK l _Toc21909 二、系统功能设计 PAGEREF _Toc21909 4 HYPERLINK l _Toc9699 1. 选题分析 PAGEREF _Toc9699 4 HYPERLINK l _Toc19981 2. 系统的功能模块图 PAGEREF _Toc19981 6 HYPERLINK l _Toc14279 3. 主要功能的实现方法 PAGEREF _Toc1427
2、9 6 HYPERLINK l _Toc6210 三、 数据库设计 PAGEREF _Toc6210 7 HYPERLINK l _Toc19785 1. E-R图 PAGEREF _Toc19785 7 HYPERLINK l _Toc17661 2. 表清单 PAGEREF _Toc17661 7 HYPERLINK l _Toc20449 3. 数据字典 PAGEREF _Toc20449 9 HYPERLINK l _Toc3563 四、开发环境 PAGEREF _Toc3563 12 HYPERLINK l _Toc30106 1. 开发环境概述 PAGEREF _Toc30106
3、12 HYPERLINK l _Toc24409 2. 数据库系统及访问机制 PAGEREF _Toc24409 12 HYPERLINK l _Toc27942 3. 开发工具的比较与选择 PAGEREF _Toc27942 12 HYPERLINK l _Toc6736 五、已实现系统的技术文档 PAGEREF _Toc6736 13 HYPERLINK l _Toc10253 1. 系统的功能清单 PAGEREF _Toc10253 13 HYPERLINK l _Toc13395 2. 系统的文件清单 PAGEREF _Toc13395 13 HYPERLINK l _Toc20346
4、 3. 系统的程序描述 PAGEREF _Toc20346 14 HYPERLINK l _Toc23759 4. 开发过程 PAGEREF _Toc23759 15 HYPERLINK l _Toc31846 六、 系统的使用 PAGEREF _Toc31846 24 HYPERLINK l _Toc23308 七、需要进一步进行的工作 PAGEREF _Toc23308 25 HYPERLINK l _Toc2636 八、 体会和建议 PAGEREF _Toc2636 25 HYPERLINK l _Toc20647 九、 参考资料 PAGEREF _Toc20647 26一、选题简介该简
5、易餐厅结账系统需要完成客人订桌、点菜、结账及日报表打印功能。选题详述:(1)三种参与角色:客人、系统管理人员、服务及收银台人员(2)客人功能需求:订桌、点(退)菜、结账。(3)系统管理员功能需求:菜单及价格维护(含折扣)、用户建立及授权、统计报表生成打印。(4)服务及收银台人员功能需求:代替客人完成客人功能需求、打印消费清单、统计个人服务额总计。二、系统功能设计1. 选题分析I. 该系统需要四个实体:顾客实体、职员实体、经理实体、菜单实体。顾客实体实体名:customer角色:客户属性:id,密码,姓氏,性别,订餐时间,就餐时间,电话,邮箱,座位主键:id(2)职员实体实体名:clerk角色:
6、服务员兼收银员属性:id,密码,姓名,性别,就职时间,工资,电话,邮箱主键:id(3)经理实体实体名:manager角色:经理属性:Id,密码,姓名,性别,就职时间,工资,电话,邮箱主键:id(4)菜单实体实体名:food角色:餐厅里面的各种吃货属性:id,菜名,价格,折扣主键:idII. 还需要两个联系:服务、订餐(1)服务联系名:serve产生联系的两个实体:clerk和customer属性:无(服务员的主键只要作为顾客的外键就行了)何时产生:当服务员选择某个顾客点击结账按钮时会建立此关系订餐联系名:reserve产生联系的两个实体:customer和food属性:数量(同一份菜的份数)何
7、时产生:当用户点击订餐按钮时会建立此关系系统的功能模块图 主要功能的实现方法.订餐(1)填写详细信息,填写完成后进行选餐。(2)选餐时,返回food表中所有的记录,用户选择要点的菜,并填写菜的份数。(3)确认后,向customer表中添加一条用户记录。(4)向reserve表(订餐表)中添加多条订餐记录。.退订删除reserve表中的相关记录。.结账在customer表中查询总价。更新customer表,将服务员的编号更新至相应的用户记录。.个人报表customer表:选择投影.统计报表customer表:直接投影。.菜单管理和人事管理一些基本的通过高级语言进行增删改查的操作。 数据库设计1.
8、 E-R图Powerdesigner创建的CDM: 表清单序号表名功能描述1manager经理表2clerk服务员及收银员表3customer顾客表4food食物表5reserve顾客订餐表(1)Powerdesigner生成的PDM:(2)SQLServer中的表数据字典表格列清单表名名称代码说明clerk职员表cle_idcle_id职员号codecode密码namename姓名sexsex性别emp_dateemp_date就职时间salarysalary薪水phonephone电话emailemail邮箱customer顾客表cus_idcus_id顾客号cle_idcle_id服务的
9、职员号codecode密码namename姓名sexsex性别eat_timeeat_time就餐时间phonephone电话emailemail邮箱sum_pricesum_price花费总额seatseat作为food食物表food_idfood_id食物标号namename食物名priceprice价格discountdiscount折扣manager经理表man_idman_id经理号codecode密码namename姓名sexsex性别emp_dateemp_date就职时间salarysalary薪水phonephone电话emailemail邮箱reserve订餐表cus_id
10、cus_id顾客号food_idfood_id食物编号numnum菜的份数表格索引清单名称代码唯一的群集器主要的外键候选键表格clerk_PKclerk_PKTRUEFALSETRUEFALSEFALSEclerkcustomer_PKcustomer_PKTRUEFALSETRUEFALSEFALSEcustomerserve_FKserve_FKFALSEFALSEFALSETRUEFALSEcustomerfood_PKfood_PKTRUEFALSETRUEFALSEFALSEfoodmanager_PKmanager_PKTRUEFALSETRUEFALSEFALSEmanagerr
11、eserve_PKreserve_PKTRUETRUETRUEFALSEFALSEreservereserve_FKreserve_FKFALSEFALSEFALSETRUEFALSEreservereserve_FK2reserve_FK2FALSEFALSEFALSETRUEFALSEreserve表格键清单名称代码表格cle_idcle_idclerkcus_idcus_idcustomerfood_idIdentifier_1foodman_idman_idmanagerfood_idIdentifier_1reserve参考清单名称代码父表格子表格reservereservecust
12、omerreservereservereservefoodreserveserveserveclerkcustomer表格清单名称代码clerkclerkcustomercustomerfoodfoodmanagermanagerreservereserve四、开发环境1. 开发环境概述开发工具:eclipse开发语言:Java建模工具:PowerDesigner数据库:SQLServer2000操作系统:Windows 7数据库系统及访问机制本着方便和简单实用的原则,该项目使用SQlServer2000。访问机制:通过JDBC纯驱动方式来访问数据库。由于早期的JDBC接口不是很成熟,只有比较
13、少的数据库厂商提供纯Java的驱动程序。但是近年很多厂商都实现了纯Java的驱动程序,使得Java访问数据库更加安全快捷。由于桥接方式比之纯驱动方式不稳定、性能差、很多JDBC特性不支持,因此该项目使用JDBC纯驱动方式访问数据库。开发工具的比较与选择该项目选择使用Java语言来实现,开发工具选择eclipse。(1)JCreator小巧,功能不多,有代码提示,应用非常简单,运行速度快。但是没有GUI设计工具,调试功能不强。(2)JBuilder功能上很强大,属于精品软件,价格不菲。有GUI设计工具,有UML工具,能生成本地应用程序包等。不过速度慢,耗资源。(3)EclipseIBM投资开发的
14、开源软件,完全免费,GUI设计比较强大,运行速度较快,代码辅助功能很完善,同时对项目的管理功能也很强大,插件的设计非常出色,应用简单。考虑到经济实用,最终选择了强大的开源软件Eclipse。五、已实现系统的技术文档1. 系统的功能清单序号功能项功能描述1订餐游客可自己订餐,职员或经理均可代为订餐2退订顾客可自己退订,职员或经理均可代为退订3结账顾客请求结账,职员或经理均可结账4统计个人报表服务员及收银人员用来查看自己的详细服务信息;经理用来查看特定职员的服务信息5人事管理经理用来维护人事信息,可增、删、改、查6菜单管理经理用来维护菜单信息,可增、删、改、查7统计报表经理用来查看所有员工的信息8
15、帮助信息系统的文件清单序号文件名主要功能描述1sqlOperate.java对数据库的操作2loginCheck.java检查登录信息3Priority.java当前用户的优先级4CancelJPanel.java顾客自己取消订餐5CancelJPanel2.java职员或经理代顾客取消订餐6CheckOut.java结账7MenuMgr.java菜单管理8PersonalMgr.java人事管理9PersonalReport.java统计个人报表10Report.java统计总报表11Reserve.java订餐12Fonts.java用到的一些字体13PictureJPanel.java用
16、来设背景的一个工具类14SelectMenu.java选菜15ChoseDesk.java选桌界面16Login.java登录界面17OperateView.java操作主界面18Welcome.java欢迎界面(程序入口)系统的程序描述通过welcome类中的main函数进入到欢迎界面,用户根据提示进行订餐登录,或者输入登录信息进行登录。输入登录信息后,通过loginCheck类的检测,或提示登录信息错误,或进入正常登录界面,并设置Priority中的priority属性表示当前用户的优先级。游客登录进去可以进行订餐,订餐的实现依靠于Reserve类。顾客登录进去可以查看到自己的订餐信息,退
17、餐的实现依靠于CancelJPanel类。服务员及收银员登录进去可以代用户订餐、退订。订餐的实现依然依靠Reserve类,退订的实现依靠CancelJPanel2类。还可以进行结账,依靠于CheckOut类,结账后,进行数据库中用户表的更新,写入服务的服务员号。还可依靠PersonalReport类查看自己的服务统计信息。经理登录进去除了可以进行服务员及收银员的所有操作,还可通过PersonalMgr进行人事管理,或炒鱿鱼、或增职员、或修改信息,可通过MenuMgr类进行菜单维护,添菜,撤菜,改价之类。可通过PersonalReport类查看某个员工的服务报表,通过Report类查看大的比较笼
18、统的报表。开发过程(1)实现欢迎界面其实欢迎界面除了看起来比较炫的效果外一无用处,如下是加载其进度的代码。intprogressValue=0,1,5,9,14,17,26,35,38,44,49,56,65,71,75,78,86,94,98,99,100;for(int i=0;iprogressValue.length;i+)try /休眠50ms,再执行Thread.sleep(50); catch (InterruptedException e) / TODO Auto-generated catch blocke.printStackTrace();jpb.setValue(pro
19、gressValuei);/取得进度值可以看到,所谓进度条,也就是在数自己放的一些数字。实现登录界面登录界面不是一般的JFrame,而是继承自一个JDialog,没有最小化和叉。public class Login extends JDialog implements ActionListener 登录验证既然登录,就需要访问数据库了。由于一个项目访问数据库次数较多,总不能每次访问时就写一大堆的重复代码。因此,专门写一个访问数据库且常用的操作的类,就是:sqlOperate.java。该类的一些属性以及函数:前两个函数用来进行查询,并且返回查询结果集。后两个函数用来进行对数据库的其他操作。最后
20、一个函数用来关闭资源。可以进行数据库访问和操作了,还需要一个loginCheck类验证一下,并显示登录信息。loginCheck类的一些属性和函数:分别有三个函数用来在三个不同的表中检测用户的登录信息。验证结果如下:接下来的任务:无关于操作,实现登录后的主面板!登录后的主面板在左边加上一些快捷操作,功能一目了然。用OperateView类实现对这个项目进行操作的主界面。详情如下:这里用到了一个很重要的工具类:PictureJPanel类。使用这个类只要将图片传为参数就行了,就不会出现插入图片却看不到的问题。内容如下:/* * 以后加面板的时候直接将图片作为参数传入给该类的一个对象 * auth
21、or zhangxin */public class PictureJPanel extends JPanel Image bg;public PictureJPanel(Image i) / TODO Auto-generated constructor stubthis.bg = i;this.setSize(Toolkit.getDefaultToolkit().getScreenSize().width,Toolkit.getDefaultToolkit().getScreenSize().height);public void paintComponent(Graphics g)su
22、per.paintComponent(g);g.drawImage(bg, 0,0,this.getWidth(),this.getHeight(),this);还有一个工具类:Fonts。都是一些用到的字体。测试结果:(5)8个操作的界面思路:使用card布局一共有8个卡片,详细如下:Card1: Reserve 订餐Card2: CancelJPanel 顾客取消订餐Card3: CancelJPanel 职员和经理代顾客取消订餐Card4: CheckOut 结账 Card5: PersonalMgr 人事管理 Card6:MenuMgr 菜单管理Card7: PersonalRepor
23、t 个人报表Card8: Report 统计报表(总表)要点:每个卡片都实现为一个类,这样的话,写起来条理比较清楚,而且出现问题的时候也比较容易找到问题。每个类的实现方法都大同小异,只要一个写好之后其他的只是稍作修改。这里并未遇到一些大的障碍,只是用前面所写的sqlOperate类中的函数进行操作。订餐的时候需要选择座位,为了维护方便,特地将选择作为单独作为一个类:ChoseDesk。订餐的最后需要选菜,仍然抽象出该操作,单独实现为一个类:SelectMenu。该类中有很重要的三个信息:菜的份数、折扣、价格。因为会用这三个信息来计算用户选菜的总额。这三个信息分别用三个向量来保存。虽然这8个类都涉及到了界面,不过归根结底还是用户进行的操作,所以将这几个类放到user包中,区别于view包。实现效果:根据用户设置操作现在是只要能够登录进去就可以进行所有的操作,因此需要进行优先级判定,需要一个用户权限的类Priority,通过用户登录返回的信息设置用户所能进行的操作。在OperateView类中根据优先级设置操作的代码至此,整个系统已经完成。系统的使用要运行该系统,需要安装Jre6。七、需要进一步进行的工作该系统只是实现了一些基本要求,还有一些未实现的功能:顾客不能修改订餐的信息,只能退订。顾客应当能够通过该系统反馈
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024正式的地区代理合同范文
- 工程合同功能解析
- 水利工程维修贷款合同
- 2024医院药品供销合同
- 农业领域合作协议范本
- 2024年咨询顾问合作简单协议书
- 彩色钢板工程承包协议书
- 集装箱海运合同范本
- 2024建筑业合同范本范文
- 2024个人房产转让合同
- 防校园欺凌-课件(共28张PPT)
- 第6章 智能网联汽车测评技术
- 单向板结构设计
- 《强化学习理论与应用》环境
- 普通高等学校学生转学申请表
- 房租、水、电费(专用)收据Excel模板
- 习近平总书记关于教育的重要论述研究学习通章节答案期末考试题库2023年
- 重症急性胰腺炎ppt恢复课件
- 2022江苏省沿海开发集团限公司招聘23人上岸笔试历年难、易错点考题附带参考答案与详解
- 乡镇卫生院6S管理内容和要求
- 数学教育概论 第3版
评论
0/150
提交评论