Eclipse酒店管理系统(java).docx

上传人:小飞机 文档编号:2031903 上传时间:2023-01-02 格式:DOCX 页数:63 大小:1.42MB
返回 下载 相关 举报
Eclipse酒店管理系统(java).docx_第1页
第1页 / 共63页
Eclipse酒店管理系统(java).docx_第2页
第2页 / 共63页
Eclipse酒店管理系统(java).docx_第3页
第3页 / 共63页
Eclipse酒店管理系统(java).docx_第4页
第4页 / 共63页
Eclipse酒店管理系统(java).docx_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《Eclipse酒店管理系统(java).docx》由会员分享,可在线阅读,更多相关《Eclipse酒店管理系统(java).docx(63页珍藏版)》请在三一办公上搜索。

1、目录摘 要- 3 -1 序言- 5 -1.1 目的 - 5 -1.2 定义- 5 -2 需求分析- 6 -2.1需求分析报告- 6 -2.2数据流图- 6 -4 数据库的逻辑设计- 9 -5 系统设计- 9 -5.2用户身份验证模块- 9 -5.3酒店管理模块- 9 -5.3.1菜品管理- 9 -5.3.2菜系管理- 9 -5.3.3台号管理- 9 -5.3.4结账查询- 9 -5.4用户管理及密码模块- 9 -5.订单管理模块- 9 -6 系统的实现与调试- 9 -6.1系统的实现- 9 -6.2系统的调试- 9 -7 小结- 9 -7.1系统的功能- 9 -7.2系统的特点- 9 -7.3

2、系统开发过程的特点- 9 -7.4存在的问题与改进方向- 9 -7.5自我体会- 9 -参考文献- 9 -附录- 9 -附录:核心代码- 9 - 摘 要随着旅游业的发展,酒店、餐饮娱乐行业日趋发达,引入全方位的电脑服务和电脑管理日渐成为必要。据调查,在酒店和餐厅娱乐业引入电脑服务和管理后明显取得了优良的经济效益和社会效益。 以往传统的酒店管理往往令管理者花大量的时间来处理顾客投诉,例如错误查询、琐的登记和结帐手续、旅客费用计算错误、空余客房资料不能及时提供等,影响出租率。以上问题可以通过电脑系统辅助一一解决。 酒店管理的电脑化,不仅是体现酒店现代化形象的一个重要标志 ,而且对提高员工工作效率,

3、让管理层有时间集中精力规划管理、制定运作策略和实施决策,加速资金周转、降低各项成本以及改善服务质量都有十分积极的作用。因此为了提高住房出租效率,提升服务管理质量,规范酒店星级管理工作,建立起用户和旅游需求的桥梁,为旅游业的扩展提供优质的物质保证,使资源合理配置,也缓解旅游住宿压力,培育良好的客户群体,根据酒店管理业务实际情况,进行此系统的开发。1 序言1.1 目的针对目前酒店电子化管理的实际需求,和消费客户对跨时域地域预订住宿的要求,本需求分析定义的开发酒店管理系统的总体要求是:作为两类用户(一般客户和酒店管理人员)和软件开发员互相了解的基础,系统成品提供用户登录、查询、管理员后台管理等四大功

4、能服务。 系统开发目的:对内是为了使酒店管理更加便捷、高效,员工操作更加明晰、规范,大大提高酒店管理质量。对外是能让用户自助登录、查询酒店住房信息和酒店服务、实现零距离实时预定酒店房间,为客户提供舒心的出行住宿保证,提高社会效益。本需求分析包含了初步分析设计各功能模块、提供性能要求、对用户影响的信息、以及对各功能模块功能的描述;同时也是规范开发人员进行设计和部署实施的基础和依据,为整体工作组的工作流程做出明确指导,引导工作组员之间、工作组员与用户之间的沟通。最终作为总体审核、验证、确认和结项验收的依据;为开发方与客户方提供合法的合同保障。 1.2定义DrinkeryManageT店管理系统2

5、需求分析2.1需求分析报告酒店管理系统是面向酒店的的各项事务,包括酒店管理,订单管理、菜系管理等业务处理工作,是利用计算机进行集中管理而开发的系统。该系统是基于Eclipse连接SQL Server2005数库进行开发的酒店管理系统,力求与实际相结合具有查询、管理等功能,在达到使酒店的管理和运营趋于计算机化,使之更加方便、快捷以提高工作效率。主要包括五大管理模块:1)登录管理提供用户登录、注销等功能l 用户登录 l 用户退出2) 菜品管理用户可以对菜名、菜品、单位、助记符等进行查询、修改、添加、删除操作。l 名称l 单位l 助记符 3)菜系管理 用户可以对酒店内的所有菜系进行查询、修改、添加、

6、删除操作。l 菜系名称4)台号管理 用户可以对酒店内的所有的台号进行查询、修改、添加、删除操作。l 台号l 座位数5)结账管理 操作员可以对系统的使用者以及该系统中数据库里的多张表中数据项进行查询操作l 日结账l 月结账l 年结账6)用户管理 操作员可以进行查询、添加、删除用户信息等操作,并可以修改自己的用户密码l 修改密码l 用户管理7)菜单管理当前操作员可以进行开单、签单、取消等操作,并进行金额结账l 开单签单l 金额结账2.2数据流图酒店管理系统管理人员客户 客户信息 管理人员信息 收银信息 系统管理 菜单信息 图1.顶级数据流图 前台 数据数据后台客户订餐数据 图2.第二层流程图3 数

7、据库概念设计在酒店管理系统中,存在菜品、菜系、台号、定单、用户等几个对象实体,以菜品、菜系、台号、定单以及用户这几个对象为例,一个定单对应多个菜品,同时一个菜品只能属于一个菜系;一个定单中有多个菜系,一个菜系拥有多个菜品。一个定单对应一个操作员,一个操作员只能对应一个定单;一个定单对应一个台号,一个台号只能对应一个定单。(1)上述分析对应的实体-属性图如下所:编号菜品菜名助记符单位单价类型图3.1菜品菜系名编号菜系图3.2 菜系座位数台编号台号图3.3 台号操作员编号订购时间总金额编号台号订单图3.4 订单账单号数量编号金额订单号积菜品单图3.5 菜品单用户用户名日期筑面积积权限用户号性别卡号

8、高密码 图3.6 用户(2)实体-联系图如下:用户1签单n涉及n11对应订单菜品单台号涉及涉及nnn菜品拥有菜系图3.8 实体-联系图4 数据库的逻辑设计E-R模型所表示的全局概念结构,是对用户数据需求的一种抽象表示形式,它独立于任何一种数据模型。为了实现用户的需求,必须将概念结构进一步转化为与我们选用的具体的机器上DBMS产品所支持的数据模型相符合的逻辑结构,这就是数据库逻辑设计的任务。首先要实现的是E-R模型向关系模型的转换,将E-R模型转换为关系模型实际上就是要将实体、实体的属性和实体间的联系转换为关系模式的过程。这种转换一般遵循如下规则:(1) 对于实体类型的转换:将每个实体类型转换成

9、一个关系模式,实体的属性为关系模式的属性,实体的码即为关系模式的码。(2) 对于实体间联系的转换,根据三种不同情况作出不同的处理: 若实体间的联系是1:1,可以在两个实体类型转换成的两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的码和联系的属性。 若实体间的联系是1:N,则在N端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的码和联系的属性。 若实体间的联系是N:M,则将联系类型也转换成关系模式,其属性为两端实体类型的码加上联系类型的属性,而关系的码则为两端实体的码的结合。 通过以上所述原则,由E-R图转换得到如下的关系模式表4.1 系统中所用到的基本信息表及用途表名用

10、途Tb_desk台号Tb_menu菜品Tb_order_form订单Tb_order_item菜品单Tb_sort菜系Tb_user用户表4.2 台号基本信息表(Tb_desk)表4.3 菜品信息表(Tb_menu)表4.4 订单信息表(Tb_order_form)表4.5 菜品单信息表(Tb_order_item)表4.6 菜系信息表(Tb_sort)表4.7 用户信息表(Tb_user)5 系统设计在本章中,我将就小区管理中各个模块做一些介绍,从系统的预览中可以看到各个模块的设计风格是相同的,都是由一个框架页面来实现的。在这我具体来就几个重点模块进行说明。用户管理修改密码月结账日结账座位数

11、台号菜系名称菜系编号助记符单位名称用户退出用户登录结账管理台号管理菜系管理菜品管理登录管理系统登录金额结账开单签单用户管理菜单管理5.1系统的功能结构图图5.1 功能结构图5.2用户身份验证模块登录名和密码由系统管理员授予给用户,一般用户有查询、插入、更新、删除的权力,而管理员不仅拥有这些权力,还有添加删除用户、密码维护等权力。在如图所示的界面登录。选择下拉框,并输入密码。5.3 酒店管理模块在登录后出现的界面,上方是签单列表、开台列表,中间横条可输入进行开单签单操作,左下方显示时间和操作员,接着有消费金额、实收金额、找零金额, 右下方有菜品管理、菜系管理、台号管理、日结账、月结账、年结账,修

12、改密码、用户管理、退出系统 九个图标,点击则进入相应模块。5.3.1菜品管理 菜品管理界面为酒店管理模块的菜名界面, 此界面可以查看、添加和删除菜品资料。5.3.2菜系管理 此界面可以查看菜系信息,并对菜系信息进行修改、删除、添加。在删除相应记录时,只需选择相应记录,点击删除按钮即可进入删除界面,点击确认,即可提交。5.3.3台号信息此界面可以查看台号信息,并对台号信息进行修改、删除、添加。在删除相应记录时,只需选择相应记录,点击删除按钮即可进入删除界面,点击确认,即可提交。图5.5 楼宇概况5.3.4日结账、月结账、年结账查询此界面可以查询所有的菜单信息,在下拉框选择年、月、日,即可查询相应

13、的日、月、年的所有消费记录。5.4用户管理及密码模块点击用户管理,即可进入用户管理模块。本模块包括用户基本信息、密码信息。用户基本信息提供操作员信息的查询功能,添加、删除用户信息。在密码修改区可更改当前用户的密码。5.5订单管理模块在此模块,当前操作员可以选择台号、输入菜单信息,进行开单、签单操作。签单后,消费金额显示当前金额,在实收金额输入正确金额(大于等于实收金额),找零金额显示应找金额。 6 系统的实现与调试6.1系统的实现 在经过需求分析、概念设计、逻辑设计、系统设计四个阶段后,接下来要做的是系统的实现。 1.确定你的SQL SERVER2005的用户登录名和密码,在代码JDBC.ja

14、va中修改好相应的信息。 2.打开SQL SERVER2005,在对象资源管理器中附加db_DrinkeryManage数据库。 3.打开登录界面6.2系统的调试 开发一个系统,调试是一个必不可少的环节,也是一个非常重要的环节。系统测试是系统开发中比较重要而耗时的过程,是系统能否成功运行的保证之一。通过测试可以发现系统中存在的错误和漏洞,所以测试过程必须认真谨慎严格对待。测试的方法分为两种:人工测试和机器测试。机器测试又分为:黑盒测试和白盒测试。人工测试分为:个人复查、走查、会审。人工测试只用个人复查。由于本系统并不是真正要应用到实际当中,本人的精力和时间有限,只能进行个人测试。在测试系统过程

15、中,遇到不正确或不理想的地方时,给予修改。7 小结7.1 系统的功能 较为完整的星级酒店管理软件应该覆盖酒店的整个管理自动化系统,包含结账管理、账单管理、住房管理、餐饮管理、KTV等服务功能。而本酒店管理软件主要包含与订单相关的结账管理、账单管理、菜类管理。下面具体说明酒店管理软件一般包括的模块功能:1) 用户登录模块用户身份验证模块实现用户合法性检查,把用户名以及密码保存到数据库表中,而在后面的页面中通过读取用户信息来登陆。在这个模块中还提供用户提出的功能2) 菜品管理模块在菜品管理模块里主要包括了对菜品信息的查询,添加、删除功能。有编号、菜名称、助记符、单位、价格等信息。3) 菜系管理模块

16、菜系管理模块主要提供的是查看,添加,删除菜种类的基本信息。4) 台号管理模块台号管理模块主要提供的是对酒店内的台号的基本信息进行查看,添加和删除操作。有台号、座位数相关信息。5) 结账管理模块操作员可以对系统的使用者以及该系统中数据库里的多张表中数据项进行查询操作。有日结账、月结账、年结账。 6)用户管理模块操作员可以进行查询、添加、删除用户信息等操作,在密码修改区可更改当前用户的自己的登录密码。7)菜单管理模块结账管理模块包括开单列表、开台列表、金额收结。在此模块,当前操作员可以选择台号、输入菜单信息,进行开单、签单操作。签单后,消费金额显示当前金额,在实收金额输入正确金额(大于等于实收金额

17、),找零金额显示应找金额。7.2 系统的特点 1.整个系统是个框架结构的单机界面,各个模块中框架结构相似。2.整个系统的主色为灰色,以绿色和红色作为辅色。3.本系统提供密码登录,未授予登录名和密码的用户无法登录。4.代码维护简单。本系统提供了代码维护功能,可以修改代码。5.系统数据库中的表数据简洁,冗余度低,效率高。6. 用户有查询、插入、更新、删除的权力,还有添加删除用户、密码维护等权力。7.3 系统开发过程的特点 1 本系统的整个开发过程由三人完成,以课程设计的方式提交。2 本系统的开发工具为Eclipse+SQL Server2005,开发系统速度快,但功能上受到限制。3 由于自学开发系

18、统,开发本系统是一个不断学习、不断进步的过程,直到系统验收那一刻前,我们都一直在作修改。7.4 存在的问题与改进方向 我开发的酒店管理系统是按照用Swing+SQL SERVER 开发的酒店管理系统模板做的,而我是用Eclipse+SQL SERVER20005开发,在实现系统功能上受到了一定的限制。其次,一个系统存在问题在所难免,何况我们需要在短时间内自学Eclipse和Java,提交系统。本系统存在的问题如下:1. 在界面登录时,如果用户或密码输入错误,在点击登录按钮会出现卡死的问题,以任务管理器结束进程。2. 在提供查询功能时,做到了精确定位,没有提供模糊查询。模糊查询只需将条件改成li

19、ke,再加上通配符就可以了。选择精确定位还是模糊查询取决于实际需求。对于本系统而言,由于操作员熟悉酒店业务情况,提供精确定位功能,效率会更高。3. 有时不当操作会清空三张表:tb_user 、tb_order_item 、tb_order_form,所有需时常做好数据备份。7.5 自我体会汪伟1010431014:本次课程设计收获良多。从初期的无从下手,到现在较完整完成数据库课程设计。中间遇到了很多问题,也解决了很多问题。感觉在解决问题的过程中,我在一步步成长,在一点点积累知识。学习Java语言,看Eclipse教学视频,学习SQL Server2005。边学边做,期间挡在面前的很多问题,都需

20、要自己去弄懂、学习,百度、谷歌都是自己理解问题、解决问题的途径。到最终的成品出来,这也是对自己的一次肯定。对以后的课程设计及毕业设计,本次实践有着不可替代的意义,相信自己在以后的项目开发过程中都会有着良好的习惯,能学到更多的东西。以下摘取些遇到的问题及解决:1、 将eclipse连接到SQL Server:详细步骤见Eclipse连接SQL+Server+2005数据库 文档2、 Exception in thread main com.microsoft.sqlserver.jdbc.SQLServerException: 无法打开登录所请求的数据库 db_DrinkeryManage。登录

21、失败。 ClientConnectionId:f194c087-3b95-4d59-a0f2-fccd5d0bec8b解决:URL=jdbc:sqlserver:/localhost:1433;DatabaseName=db_DrinkeryManageUSERNAME = saPASSWORD = q3、 Load CONFIG.INI is false!界面排版:对于尺寸、分割、边框,需要安排好整个界面大小及各个块的大小徐怀群1010431120:做了本学期的课程设计,有很多有关于数据库方面的心得体会。在同学的相互合作下,终于把整个系统完成了,实现了预定的功能,SQL语言及java语言没学

22、扎实,一开始的程序这块儿就要令我抓狂了。后来在几天几夜的努力,终于有了头绪,然后又在同学的帮助下,找到了一些参考书,又在这写书的帮助下了解了系统设计的各种方法,在编译过程中常常出现的问题,和解决的方法。没想到这项看起来不需要多少技术的工作却是非常的劳心劳力。我看到有很多人跟我一样,都他们是三三两两,一同讨论学习。当我想放弃的时候,我也这么对自己说,即使你做出来的是次品甚至不合格品,但是你一定要拿出来一件成品。一个学期后我们的程序终于完成了,而且放到一起也能用。在机房调试虽然出现了一些问题,但都解决了。最后,我发现自己对编程竟然也有了一点兴趣。王乾坤1010431124:一学期的时间很快就过去了

23、,这学期不敢说自己有多大进步,获得了多少知识,但起码是了解了项目开发的部分过程。虽然学习了数据库相关课程,但没有亲身经历数据库开发的相关工作,这次课程设计给了一次很好的锻炼机会。从各种文档的阅读到开始需求分析,概念结构设计,逻辑结构设计,物理结构设计,亲身体会了一次系统开发的过程,在这个过程中我们深刻理解所学的知识,同时也可以学到很多可实用的东西。我们学习并运用了sql语言,对数据库的创建,修改,删除方法有了一定的了解,学会了对表的一些操作。很多事情不是想象的那么简单,它涉及各种实体,属性,数据流程,数据处理等等,不论做什么,我们都应该相信自己,不怕困难,努力尝试。参考文献1.王珊,萨师煊.数

24、据库系统概论.北京:高等教育出版社,2006,52.印晏.Java语言与面向对象程序设计.北京:清华大学出版社,2000,93.张峰.Java程序设计与项目实战.北京:清华大学出版社,2011,84. 陈刚.Eclipse从入门到精通M北京:清华大学出版社,20065.SQL Server 2005.北京:清华大学出版社,2006附录附录:核心代码1连接数据库public class JDBC private static final String DRIVERCLASS = com.microsoft.jdbc.sqlserver.SQLServerDriver;private static

25、 final String URL = jdbc:sqlserver:/localhost:1433;DatabaseName=db_DrinkeryManage;private static final String USERNAME = sa;private static final String PASSWORD = q;private static final ThreadLocal threadLocal = new ThreadLocal();static / 通过静态方法加载数据库驱动try Class.forName(DRIVERCLASS).newInstance();/ 加

26、载数据库驱动 catch (Exception e) e.printStackTrace();public static Connection getConnection() / 创建数据库连接的方法Connection conn = threadLocal.get();/ 从线程中获得数据库连接if (conn = null) / 没有可用的数据库连接try conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);/ 创建新的数据库连接threadLocal.set(conn);/ 将数据库连接保存到线程中 catch (SQL

27、Exception e) e.printStackTrace();return conn;public static boolean closeConnection() / 关闭数据库连接的方法boolean isClosed = true;Connection conn = threadLocal.get();/ 从线程中获得数据库连接threadLocal.set(null);/ 清空线程中的数据库连接if (conn != null) / 数据库连接可用try conn.close();/ 关闭数据库连接 catch (SQLException e) isClosed = false;e

28、.printStackTrace();return isClosed;2.查询数据库public class Dao extends BaseDao private static Dao dao;static dao = new Dao();public static Dao getInstance() return dao;/ tb_userpublic Vector sUser() return selectSomeNote(select name,sex,birthday,id_card,freeze from tb_user where freeze=正常);public Vector

29、 sUserNameOfNotFreeze() return selectSomeValue(select name from tb_user where freeze=正常);public Vector sUserByName(String name) return selectOnlyNote(select * from tb_user where name= + name + );public boolean uPasswordByName(String name, String password) return super.longHaul(update tb_user set pas

30、sword= + password+ where name= + name + );public boolean uFreezeByName(String name, String freeze) return super.longHaul(update tb_user set freeze= + freeze+ where name= + name + );public boolean iUser(String values) String sql = insert into tb_user(name,sex,birthday,id_card,password,freeze) values(

31、+ values0+ ,+ values1+ ,+ values2+ ,+ values3 + , + values4 + , + values5 + );System.out.println(sql);return longHaul(sql);/ tb_order_formpublic Vector sOrderFormOfDay(String date) return selectSomeNote(select * from tb_order_form where datetime between + date + 00:00:00 and + date + 23:59:59);publi

32、c String sOrderFormOfMaxId() Object object = selectOnlyValue(select max(num) from tb_order_form);if (object = null) return null; else return object.toString();public String sOrderFormOfMinDatetime() Object object = selectOnlyValue(select min(datetime) from tb_order_form);if (object = null) return nu

33、ll; else return object.toString();public String monthCheckOut(String num) String values = , , , , ;String sqls = select count(*) from tb_order_form where num like + num+ %,select sum(money) from tb_order_form where num like + num+ %,select avg(money) from tb_order_form where num like + num+ %,select

34、 max(money) from tb_order_form where num like + num+ %,select min(money) from tb_order_form where num like + num+ % ;for (int i = 0; i sqls.length; i+) Object value = super.selectOnlyValue(sqlsi);if (value != null) String v = value.toString();if (!v.equals(0)valuesi = v;return values;public Vector y

35、earCheckOut(int year) Vector valueV = new Vector();String sql = ;String formatMonth = ;String formatDay = ;for (int day = 1; day = 31; day+) Vector rowV = new Vector();/ 统计行rowV.add(day);/ 加入日期formatDay = (day 10 ? 0 + day : + day);for (int month = 1; month = 12; month+) / 做统计formatMonth = (month 10

36、 ? 0 + month : + month);sql = select sum(money) from tb_order_form where num like + year + formatMonth + formatDay + %;yearCheckOut(rowV, sql);sql = select sum(money) from tb_order_form where num like + year + _ + formatDay + %;/ 做列总计yearCheckOut(rowV, sql);valueV.add(rowV);Vector rowV = new Vector(

37、);/ 总计行rowV.add(总计);for (int month = 1; month = 12; month+) / 做月总计formatMonth = (month 10 ? 0 + month : + month);sql = select sum(money) from tb_order_form where num like + year + formatMonth + %;yearCheckOut(rowV, sql);sql = select sum(money) from tb_order_form where num like + year+ %;/ 做年总计yearCh

38、eckOut(rowV, sql);valueV.add(rowV);return valueV;public void yearCheckOut(Vector rowV, String sql) Object value = super.selectOnlyValue(sql);if (value = null)rowV.add();elserowV.add(value);public boolean iOrderForm(String values) String sql = insert into tb_order_form(num,desk_num,datetime, money, u

39、ser_id) values(+ values0+ ,+ values1+ ,+ values2+ ,+ values3 + , + values4 + );return longHaul(sql);/ tb_order_itempublic boolean iOrderItem(String values) String sql = insert into tb_order_item(order_form_num,menu_num,amount, total) values(+ values0+ ,+ values1+ ,+ values2+ ,+ values3 + );return longHaul(sql);/ v_order_item_and_menupublic Vector sOrderItemAndMenuByOrderFormNum(String num) return selectSomeNote(select * from v_order_item_and_menu where order_form_num=+ num + );

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号