酒店管理系统报告(共36页)

上传人:wz****p 文档编号:57685399 上传时间:2022-02-24 格式:DOC 页数:37 大小:1.42MB
收藏 版权申诉 举报 下载
酒店管理系统报告(共36页)_第1页
第1页 / 共37页
酒店管理系统报告(共36页)_第2页
第2页 / 共37页
酒店管理系统报告(共36页)_第3页
第3页 / 共37页
资源描述:

《酒店管理系统报告(共36页)》由会员分享,可在线阅读,更多相关《酒店管理系统报告(共36页)(37页珍藏版)》请在装配图网上搜索。

1、精选优质文档-倾情为你奉上沈 阳 工 程 学 院课 程 设 计设计题目: Java程序设计课程设计 -酒店管理系统 系 别 信息工程系 班级 计专本101 学生姓名 杜黎明 温周洋 胡金龙 郭潇阳 学号 20 18 24 29号 指导教师 杨弘平、费雅洁 职称 副教授、教授 起止日期:2011 年 6月13日起至 2011年 6月 25日止沈 阳 工 程 学 院课程设计任务书课程设计题目: Java程序设计课程设计 -酒店管理系统 系 别 信息工程系 班级 计专本101 学生姓名 杜黎明 温周洋 胡金龙 郭潇阳 学号 20 18 24 29号 指导教师 杨弘平、费雅洁 职称 副教授、教授 课程

2、设计进行地点: 实训F 任 务 下 达 时 间: 2011 年 6 月 13 日起止日期: 2011 年 6 月 13 日起至 2011年 6月 25 日止教研室主任 杨弘平 2011年 6月 12 日批准专心-专注-专业1.设计的原始资料及依据通过课程设计使学生进一步加深对课程内容的理解,利用程序设计的基本思想进行程序的开发,进一步掌握编程方法和技巧,提高学生用程序的思想来解决实际问题的能力。2设计的主要内容及要求本小组设计题目:酒店管理管理系统需要完成的功能: 前台服务:开台点菜、添加菜品、结账 后台管理:维护台号、维护菜系、维护菜品 结账报表:日结账报表、月结账报表、年结账报表 系统安全

3、:修改密码、用户管理 数据库的创建、登陆界面3.对设计说明书撰写内容、格式、字数的要求 学生应撰写的内容为:中文摘要和关键词、目录、正文、参考文献等。课程设计说明书(论文)的结构及各部分内容要求可参照沈阳工程学院毕业设计(论文)撰写规范执行。应做到文理通顺,内容正确完整,书写工整,装订整齐。 装订格式封面、任务书、成绩评审意见表、摘要和关键词、目录、正文、结论、致谢、参考文献。 课程设计说明书(论文)是体现和总结课程设计成果的载体,一般不应少于3000字。打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采

4、用黑体小四号字,三级节标题采用黑体小四号字,表题与图题采用宋体五号字。4. 设计完成后应提交成果的种类、数量、质量等方面的要求 课程设计任务书 课程设计报告 设计成品(光盘)5.时间进度安排顺序阶段日期计 划 完 成 内 容备注1第16周第1天查阅资料,充分解读题目内容,小组分工,确定每个人的具体任务。1天2第16周第2天数据库设计及登陆界面的实现。1天3第16周第3,4,5天,第17周第1天编制程序,单元测试。4天4第17周第2,3天程序整合,综合调试。2天5第17周第4天答辩。1天6第17周第5天撰写课程设计报告。1天6.主要参考资料(文献)1 耿祥义.JAVA2 实用教程.北京:清华大学

5、出版社,20062 朱仲杰.JAVA2 全方位学习.北京:机械工业出版社,2006 3 张思民.JAVA程序设计实践教程.北京:清华大学出版社,20064 汤一平.Java 语言程序设计.北京:科学出版社,20065 刘艺.Java 程序设计大学教程. 北京:机械工业出版社,20066 耿祥义.Java课程设计.北京:清华大学出版社,20037 Sharon Zakhour. Java教程. 北京:人民邮电出版社,2007 沈阳工程学院 课程设计成绩评定表系(部): 信息工程系 班级: 计专本101 学生姓名:杜黎明、温周洋、胡金龙、郭潇阳指 导 教 师 评 审 意 见评价内容具 体 要 求权

6、重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度认真,遵守纪律,出勤情况是否良好,能够独立完成设计工作, 0.25432工作量按期圆满完成规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以8) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25

7、432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论正确,论述充分,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名: 年 月 日答 辩 小 组 评 审 意 见评价内容具 体 要 求权重评 分加权分学生汇报汇报准备充分,思路清晰;语言表达准确,概念清楚,论点正确,有层次,有重点,基本上反映了所完成任务的全部内容;时间符合要求。0.55432答 辩思路清晰;回答问题有理论依据,基本概念清楚;主要问题回答准确,深入,有说服力。0.55432答辩小组评审成绩(加权分

8、合计乘以8)分加权分合计答辩小组教师签名: 年 月 日课 程 设 计 总 评 成 绩分摘 要随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已被人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对酒店进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。这些优点能够极大地提高酒店管理的效率,也是酒店的科学化、正规化管理和与世界接轨的重要条件。因此,开发这样一套酒店管理系统已成为很有必要的事情。JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设

9、计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。而且特别适合Internet的应用开发。JAVA确实具备“一次写成,处处运行”的特点,JAVA以成为网络时代最重要的编程语言之一。本报告中介绍了用JAVA语言实现酒店管理系统的全部过程。本次课程设计是配合JAVA程序设计课程,帮助学生深入学习掌握JAVA语言,熟练运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习兴趣,引导学生主动学习,正确理解、接受需要重点掌握的知识点,为参加项目开发及更深入学习做好准备。本次课

10、程设计主要是用JAVA和MySQL数据库实现酒店管理系统,其系统主要完成以下功能模块:前台服务:主要实现开台点菜、添加菜品和结账;后台管理:主要实现台号维护、菜系维护、菜品维护;结账报表:主要实现日结账报表、月结账报表和年结账报表;系统安全:主要实现修改密码以及用户管理;另外还有数据库的创建、登陆界面。关键词 酒店管理系统,JAVA,MySQL目 录摘 要I第1章 绪 论- 1 -第2章 系统功能介绍- 2 -2.1系统功能总框图- 2 -2.2 模块功能介绍- 2 -2.2.1 用户登录模块介绍- 2 -2.2.2 前台服务功能介绍- 3 -2.2.3 后台服务模块介绍- 3 -2.2.4

11、结账报表模块介绍- 5 -2.2.5 系统安全模块介绍- 7 -2.3 组内任务分工- 8 -第3章 数据库设计- 10 -第4章 系统功能实现- 14 -4.1 公共模块设计- 14 -4.1.1 编写数据库连接类- 14 -4.2 登陆模块设计- 14 -4.3 前台服务模块设计- 15 -4.4 后台管理模块设计- 17 -4.4.1菜系管理- 17 -4.4.2 菜品管理- 18 -4.4.3 台号管理- 18 -4.5 结账报表模块设计- 19 -4.5.1 结账报表工作区技术分析- 19 -4.5.2 日结账报表工作区的实现过程- 20 -4.5.3 月结账报表工作区的实现过程-

12、21 -4.5.4 年结账报表工作区的实现过程- 23 -4.6 系统安全模块设计- 24 -结 论- 26 -致 谢- 27 -参考文献- 28 - 第1章 绪 论世界的发展,社会的进步,人们的物质生活和精神生活都得到了很大的飞跃,人们以前的意识里就是所谓的人工管理。可是人类在进步、国家在进步、世界在进步,那么必然会带来新的产物,由前一个阶段向后一阶段过度。随着电子电子计算机技术的进步,为各行各业的自动化管理打开了方便之门。在新的条件下,有必要实现酒店的自动化管理,提高酒店工作人员的效率。本系统从对酒店的核心业务前台服务出发,着眼于为酒店管理创造自动化的办公环境而开发 在计算机飞速发展的今天

13、,将计算机这一信息处理利器应用于酒店的日常管理已是势必所然,而且这也将为酒店管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为酒店的飞速发展提供无限潜力。采用计算机管理信息系统已成为企业、酒店管理科学化和现代化的重要标志,它给酒店管理带来了明显的经济效益和社会效益。主要体现在:极大的提高了管理人员和工作人员的工作效率,大大减少了以往入出存流程繁琐、杂乱、周期长的弊端。减少的出错率,更大程度避免了不必要的误差,使酒店管理正规化、标准化、社会化。基于酒店管理的全面自动化,可以减少前台服务、后台管理及结账报表管理中的漏洞,可以节约不少管理开支,增加企业收入。这样可使酒店有更大的发展空间,被

14、人们和社会所认同,在社会上有它的位置和地位。对于前台服务的操作自动化和信息化,全面提高了公司管理的水平,让工作人员很容易的实现开台、点菜以及结账的查询和管理。对于报表结算的管理,更明确和准确化,既保证了酒店日常运营的准确,又利于管理者进行统计和查询。对于后台管理,很方便的提供台号、菜系以及菜品的添加删除,可以方便的对酒店的运营进行管理。具体信息的处理有强大的数据库做后盾,它里面保存大量且重要的信息,实现了酒店管理的数据化,因为现在可以说是数据的时代,其实就是所谓的信息时代。 随着我国改革开放的不断深入,经济飞速的发展,酒店要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万

15、万不行的,酒店管理的全面自动化、信息化则是其中极其重要的部分。为了酒店管理自动化的步伐,提高酒店管理业务处理效率,建酒店管理系统已变得十分重要。酒店管理已经成为现在的发展趋势,目前为止,酒店采用自动化管理的很少,还有大部分采用人工管理,不过就是比较正规化,改善了以前的人工管理的部分缺点。可是在很大程度上并没有解决问题,因为社会目前的发展对它们的要求仅限于此,但是就目前的社会发展趋势看,社会在不断的发展,而且向全面自动话靠拢,那么酒店管理系统就将成为一大亮点,是社会发展的必然产物。因此开发一个标准化的酒店管理系统是很有必要的,而且JAVA是一种面向对象的、无平台的编程语言,具有很大的发展空间,用

16、它编写酒店管理系统可以更体现出酒店管理的优势。第2章 系统功能介绍2.1系统功能总框图 酒店管理系统的功能结构图如图2.1所示。图2.1 酒店管理系统功能模块2.2 模块功能介绍2.2.1 用户登录模块介绍用户登录模块是每个软件应用软件都不可或缺的部分,其主要功能是保证用户数据安全,同时用户登录窗口也是用户看到的第一个系统界面,因此,一个设计优秀的用户登录窗口,将有效的提高用户对系统的第一印象。本系统的用户登录界面如图2.2所示。用户登录窗口的设计优秀与否,主要包括以下几个方面:图2.2 用户登录界面2.2.2 前台服务功能介绍酒店管理系统的主窗体效果如图2.2所示。窗体的中间部分用来显示当前

17、的开台点菜信息,窗体的下方用来操作该系统,例如开台点菜,自动结账,台号、菜系管理,营业报表等。单击图2.2中右下方的“菜品管理”按钮,将打开菜品管理对话框,该对话框用来维护菜品信息,包括名称、助记码、菜系、单位和单价。其中助记码用来在点菜时快速获取菜品信息(建议设置为菜品名称的首字母,例如将菜品“红烧牛肉面”的助记码为“hsnrm”)。同理单击图2.2中右下方的菜系管理、台号管理将分别显示所对应的菜系管理对话框和台号管理对话框。单击图2.2中右下方的“日结账”按钮,将打开“日结账”对话框,该对话框用来统计指定日期的销售情况,包括日营业额和各个商品的日营业额。同理单击“月结账”、“年结账”按钮,

18、将分别显示出对应的“月结账”、“年结账”对话框。图2.2酒店管理系统主窗体2.2.3 后台服务模块介绍本系统的后台服务模块包含有3个小模块,分别为菜品管理,菜系管理和台号管理,每个小模块又分为若干功能。后台管理模块如图2.3所示。图2.3 后台管理模块菜品管理是对整个酒店的菜单进行的管理,所提供的功能包括菜品的查询,添加和删除功能,其中菜品的查询功能为系统自动查询,并且在添加或者删除菜品后自动刷新真个菜品表,并把信息重新显示在表单中,如图2.4所示。图2.4菜品管理菜系管理模块包括了对整个酒店所有菜系的查询,添加和删除功能,同时菜系的查询功能为自动查询,如图2.5所示。图2.5 菜系管理台号管

19、理包含的功能有台号的查询,添加和修改功能,如图2.6所示。图2.6 台号管理2.2.4 结账报表模块介绍本系统提供提供了三种方式的结账报表,分别是日结帐号报表、月结账报表和年结账报表,在结账报表的工作区中提供了打开这三种结账 功能的按钮,如图2.7所示。图2.7 结账报表工作区日结账功能提供了对一日营业情况的统计,包括日开台数、各个餐台的消费金额、菜品的消费情况、各个菜品的日销售情况,以及日营业额等,如图2.8所示。图2.8 日结账报表月结帐报表功能提供对一个月营业情况情况的统计,包括日开台总数、日总营业额、日开台的平均消费额、日开台的最大和最小消费额,以及当月的总开台数、月总营业额、以及一个

20、月中的日平均营业额、一月中开台的最大和最小消费额,如图2.9所示。图2.9 月结账报表年结账报表功能提供了对一年营业情况的统计,包括一年中每天的营业额、每月的营业额、每月同一日的总营业额,以及一年的营业额,如图2.10所示。图2.10 年结账报表2.2.5 系统安全模块介绍在本模块里所实现的三种功能分别是:修改密码、用户管理和推出系统。在系统安全工作区提供了这三种功能的按钮。如果所示。图2.6系统安全工作区修改密码功能是对旧密码的修改。如图所示。图2.7修改密码功能用户管理功能提供了对用户和管理员的查询、添加、修改和删除的实现。 图2.8用户管理功能2.3 组内任务分工组内分工如表2.1所示。

21、表2.1 组内分工表 全体成员任务组长学号:20姓名:杜黎明学号:18姓名:温周洋学号:24姓名:胡金龙学号:29姓名:郭潇阳数据库设计登陆界面设计前台服务模块设计后台服务模块设计结账报表模块设计系统安全模块设计程序测试第3章 数据库设计在开发应用程序时,对数据库的操作时必不可少的。而一个数据库的设计优秀与否,将直接影响到开发进度和性能。所以对数据库的设计就显得尤为重要。数据库的设计要根据程序的需求及其功能制定。如果在开发软件之前不能很好的设计数据库,在开发过程中将反复修改数据库,必将严重影响到开发进度。3.1 数据库需求分析酒店管理系统的需求包括开台点菜功能、智能化获取菜品功能、自动结账功能

22、、营业额报表共跟功能等。在这些功能设计到的数据表包括台号表、菜品表、消费单表;为了使系统更加完美,还需要为菜品分类,即需要用到菜系表;为了实现菜品的日销售情况统计,还需要建立一个消费项目表,用来记录消费单消费的菜品。3.2 数据库概念结构设计数据库设计是系统设计过程中的重要组成部分,它通过管理系统的整体的整体需求而指定的,数据库设计的好坏直接影响到系统的后期开发。下面对本系统中具有代表性的数据库设计进行详细说明。餐台和菜系在本系统中最简单的实体,在本系统中用来描述餐台信息的只有台号和座位数,而描述菜系的主要是名称。餐台信息表的E-R图如图3.1所示,菜系信息表的E-R图如图3.2所示 图3.1

23、 餐台信息表E-R图 图3.2 菜系信息表E-R图在描述菜品尸体时,加入了助记码,目的是为了实现智能化获取菜品功能,通过这一功能系统操作员可以快速获取顾客所点的菜品信息、菜品信息表的E-R图如图3.3所示。图3.3 菜品信息表E-R图 消费单用来记录每次消费的相关信息,例如消费时使用的餐台、开台时间、消费金额等。消费单信息表E-R图如图3.4所示。图3.4消费单信息表E-R图消费项目用来记录每个消费单消费的菜品,记录的主要信息由所属消费单、消费菜品的名称、消费数量、消费额。消费项目信息表的E-R图如图3.5所示。图3.5消费项目信息表E-R图将各个实体E-R图进行合并后即可得到整个系统的整体E

24、-R图如图3.6所示。图3.6 系统整体E-R图3.3 数据库表的设计针对本系统的特点,在对所搜集的数据进行规范化之后,定义了如下六张表格,分别是用户信息表、餐台表,菜品表,菜系表,消费单表,消费项目表。通过对这六张表格的操作可以较好地完成系统设计的各项功能,六张表格之间有着不同程度的联系。表3.1 用户信息表(user)字段名称数据类型长 度备 注loginNamevarchar21用户登录名,做主键loginPasswordvarchar21用户登录密码typechar1用户类型namevarchar21用户姓名sexchar2用户性别ageint用户年龄telvarchar20用户电话c

25、reateTimetimestamp创建用户时间表3.2 餐台表 desk字段名称数据类型长 度备 注idvarchar8餐台号,做主键countint座位数量表3.3 菜品表 menu字段名称数据类型长 度备 注idvarchar8菜品编号,做主键sortIdint菜系编号,与菜系表中菜系编号外键关联namevarchar30菜品名称codevarchar10菜品助记码unitvarchar4菜品单位unitPricefloat菜品单价表3.4 消费项目表 orderItem字段名称数据类型长 度备 注idint消费项目编号,做主键orderFormIdvarchar15消费单编号,与消费单

26、中消费单编号外键关联menuIdvarchar10菜品编号,与菜品表中菜品编号外键关联amountint消费数量totalfloat消费额表3.5 菜系表 sort字段名称数据类型长 度备 注idint菜系编号,做主键namevarchar50菜系名称表3.6 消费单表 orderForm字段名称数据类型长 度备 注idvarchar15消费单编号,做主键deskIdvarchar8餐台编号,与餐台表餐台编号外键关联dateTimetime开台时间moneyfloat消费金额userIdvarchar21操作用户第4章 系统功能实现4.1 公共模块设计4.1.1 编写数据库连接类数据库连接类负

27、责加载数据库驱动程序,以及创建和关闭数据库连接,为了最大程度的应用每个已经创建的数据库连接。首先在数据库连接类中编写加载数据库驱动程序的代码,通常情况下将其放在静态代码块中,这样的好处是只要该类第一次被加载时执行加载数据库启动的动作,避免了反复加载数据库驱动程序,从而提高了软件的性能。具体代码如下:statictryClass.forName(com.mysql.jdbc.Driver);catch(Exception e)e.printStackTrace();然后编写用来创建和关闭数据库连接的方法,这里将定义两个方法,一个用于创建数据库的连接,一个用与将数据库连接关闭。具体代码如下:pub

28、lic Connection getConnection() throws SQLException, ClassNotFoundExceptionconn=DriverManager.getConnection(jdbc:mysql:/localhost:3306/db_Manager,root,root); return conn; public void close_All(Connection conn,Statement stmt,ResultSet rs) try if(rs!=null) rs.close(); else if(stmt!=null) stmt.close();

29、else if(conn!=null) conn.close(); catch (SQLException ex) e.printStackTrace(); 4.2 登陆模块设计用户登录模块是用户使用软件时看到的第一个系统界面,因此对于用户登录界面的设计需要美观大方。本系统的开发工具是使用NetBeans7.0,首先创建用于用户登陆界面的窗体,为窗体设置标题、大小等信息,并添加一个分层窗体,然后将一个JLabel对象设置成整个窗体的最底层,并为其设置背景图片。为了达到整个窗体美观的效果,在设计过程中,将界面的按钮也同样添加图片背景。在用户第一次使用本系统时,数据库中将不存在系统管理员。在这种情

30、况下,系统提供一个默认的用户供用户登录后添加其他用户。在用户使用系统时,填写完用户名和密码后点击登录按钮,或者单击键盘的确定键时,系统通过检测用户名和密码合法后即可登录本系统,实现登录的具体代码如下:private void mouseLogin(java.awt.event.MouseEvent evt) /GEN-FIRST:event_mouseLogin /鼠标点击登录 this.check(); /GEN-LAST:event_mouseLoginprivate void KeyLogin(java.awt.event.KeyEvent evt) /GEN-FIRST:event_K

31、eyLogin System.out.println(evt.getKeyChar(); if(evt.getKeyCode()=KeyEvent.VK_ENTER) this.check(); /GEN-LAST:event_KeyLogin public void check() String name=,password=; name = jTextField1.getText(); username = name; password = String.valueOf(jPasswordField1.getPassword(); if(name.split().length1) java

32、x.swing.JOptionPane.showMessageDialog(this, 违法的用户名!,警告, JOptionPane.WARNING_MESSAGE); LoginData ld = new LoginData(); if(ld.check(name, password) this.dispose(); new MainFrame().showFrame(); else javax.swing.JOptionPane.showMessageDialog(this, 用户名或者密码错误nt请从新输入!,警告, JOptionPane.WARNING_MESSAGE); 4.3

33、前台服务模块设计开台签单工作区是本系统最常用的工作区如图4.1所示,所以需要将该工作区设计的更加人性化和智能化。例如,在获取欲添加的菜品时,既可以通过菜品编号获得,又可以通过才频频助记码获得,并且菜品的默认数量为一个等。图4.1 开台签单工作区在开台签单工作区设计中,首先为“台号”下拉列表框添加事件监听器,用来处理开台或点菜的相关信息。如果选中的台号尚未开台,则取消“开台列表”中的选定行,并清空“签单列表”中的所有行;如果选中的台号已经开台,并且在“开台列表”中尚未选中,则选中“开台列表”中的该台号,并刷新“签单列表”中的菜品信息,既显示为当前选中台号所点的菜品。然后开发智能化获取菜品功能,通

34、过为文本框添加键盘事件监听器实现。当用户在文本框进行输入时,同时判断输入的是商品编号,还是商品助记码,并按指定条件查询符合条件的菜品,如果存在符合条件的菜品,则获取第一个符合条件的菜品,并显示菜品的名称和单位,负责将菜品名称和单位设置为空。具体代码如下:String input = jTextField2.getText().trim(); Vector vector = null; if (input.length() 0) if (jRadioButton2.isSelected() getMenuName gmn = new getMenuName(); vector = gmn.ret

35、urnName(input); if (vector.size() 0) vector = (Vector) vector.get(0); else vector = null; else if (jRadioButton1.isSelected() /按编号查询 getMenuName gmn = new getMenuName(); vector = gmn.returnNameById(input); if (vector.size() 0) vector = (Vector) vector.get(0); 在新添加的菜品的前方唯有一个NEW标记,确定点菜结束后单击“签单”按钮,将取消所

36、有新添加菜品前方的NEW标记。在未取消NEW标记的情况下合约选中后单击“取消”按钮取消该菜品,如果该餐台只点了该菜品,取消该菜品后同时取消该餐台的开台信息;如果该餐台已经点了其他菜品,并且取消后不是最后点的菜品,还需要修改所点菜品的序号。结账功能设计,结账功能是作为酒店管理系统中一个重要的组成部分。结账功能的设计需要在用户选择相应的台号后就将选中的台号的消费金额显示在结账工作区中(如图4.2所示),因此需要为开台列表添加表格别选择时间,既当表格被选中时显示台号消费金额。在结账功能区,为了方便用户结账计算金额的方便,需要为实付金额文本框添加键盘监听时间,当用户输入实付金额以后即可计算出找零金额并

37、显示出来。当点击结账后,当前台号就已经完成结单,则需要在开台列表中将选中的台号删除,并相连删除签单列表中选中台号所点的所有菜品。 图4.2 结账工作区4.4 后台管理模块设计后台管理模块提供了3个子模块,分别为菜品管理、菜系管理和台号管理。菜品管理是对整个酒店的所有菜品进行的管理,菜系管理是对酒店的菜系进行管理,台号管理是对酒店的桌号进行管理。4.4.1菜系管理在该子模块中,有两个需要注意的问题。添加菜系时获取菜系的编号。在添加菜系时,只需要输入所要添加菜系的名称而无需输入菜系的编号,而菜系的编号是通过对当前数据表中的菜系编号进行检索,用当前数据表中最后一项数据的菜系编号自加一来实现的,然后和

38、菜系名称一起插入数据表中。删除菜系时对菜品表中的操作菜品表中的菜系编号和菜系表中的菜系编号是外键关联的,当删除菜系表中的数据时,如果不对菜品表中的菜系编号进行处理的话是会抛出异常的,而当删除菜系表中数据时又不能删除菜品表中与之相关的所有数据,因此只能对菜品表中相关的数据进行修改,使其菜系编号对应于菜系表中菜系名称为“未分类”的编号。其主要代码如下所示:/删除菜系之前对菜品进行修改=GetStatement gs = new GetStatement();String sql = delete from sort where name= + sortName + ;String sql2 = s

39、elect id from sort where name=未分类;ResultSet rs = gs.return_statement().executeQuery(sql2);String id=;while(rs.next()id=rs.getString(id);String sql1 = update menu set sortId=+id+ where sortId=(select id from sort where name=+ sortName + );gs.return_statement().execute(sql1);gs.return_statement().exec

40、ute(sql);同时要注意的是菜系表中菜系名称为“未分类”的数据项是不能被删除的。4.4.2 菜品管理菜品管理子模块包含有菜品的添加和删除功能,在该子模块中,难点在与添加菜品过程中对所添加信息的判断。添加菜品过程中,菜品的所有字段都不能为空,而且ID,NAME,CODE这3个字段在数据库中必须是唯一的,所以在添加过程中必须加以控制。下面仅以ID字段说明,其他字段都与之类似,控制流程如图4.4.2.1所示。图4.4.2.1 字段控制流程图4.4.3 台号管理台号管理子模块的功能宝库台号的查询,添加和修改功能。台号的查询分为有关键字查询和无关键字查询。当执行有关键字查询是,系统只查询SORT表中

41、COUNT与输入的作为数相同的台号。当执行无关键字查询时,系统将查询整个SORT表中的数据项,关键代码如下:/查询SORT表关键代码=public class selectSorts public void selectSorts() public ResultSet returnResultSet() throws ClassNotFoundException, SQLException GetStatement gs = new GetStatement(); String sql = select * from sort ; ResultSet rs = null; rs = gs.re

42、turn_statement().executeQuery(sql); return rs; public ResultSet returnResultSet(String s) throws ClassNotFoundException, SQLException GetStatement gs = new GetStatement(); String sql = select * from sort + where name=+s+; ResultSet rs = null; rs = gs.return_statement().executeQuery(sql); return rs;

43、在添加和修改台号的过程中,同样要对所添加或修改的信息进行进行判断。在添加台号过程中,台号不能为空,而且座位数量也不能为空。在修改台号过程中,台号编号不能为空,而且必须是在数据表中存在的台号,并且座位数也不能为空,其控制流程类似与菜品管理过程中的字段控制流程。4.5 结账报表模块设计结账报表模块提供了三种方式的结账报表,分别是日结账、月结账和年结账。日结账提供了对一日营业额营业的统计,月结账提供了对一月营业额的统计,年结账提供了对一年营业额的统计。4.5.1 结账报表工作区技术分析在实现结账报表功能时,有两个技术要点。对日期有效性的控制。在实现日结账功能时,无论用户修改了统计日期的年度和月份,都

44、要影响到日下拉菜单列表框中的可选项,包括大月(31天)和小月(30天)的变化,以及2月份在平年(28天)和闰年(29天)的变化,如果不能正确处理这些变化,将导致系统无法正常运行。其实在实现月结账报表和年结账报表时也会设计到这个问题,只是在系统界面上不会明显的体会到。解决该问题的大体思路是通过年度和月份下拉列表框加事件监听器,实现对日下拉列表框添加事件监听器,实现对日下拉列表框可选项的控制。对统计表格的控制。当系统界面不能显示出所有统计记录时,只需要将表格放到滚动面板中,这个办法对系统界面不能显示出统计记录的所有行有效,因为在移动垂直滚动条时,表格的列名并不会随之滚动,即表格的列名永远是可见的;

45、但是当系统界面不能显示出统计记录的所有列时,这个办法就不是很好了,因为在移动水平滚动条的时,表格的所有列都会随之滚动,导致最左侧的一列或者几列不可见。而表格最左侧的一列或者是几列通常情况下也希望是永远可见的,即不会随着滚动条的移动而滚动。解决该问题的大体思路是实现两个表格,一个表格用来显示最左侧希望永远可见的一列或者几列,另一个表格用来显示其他列,然后将两个表格并列显示。4.5.2 日结账报表工作区的实现过程日结账报表使用的主要数据表有orderform(消费单表)。初始化对话框首先解决在实现日结账报表功能时候初始化窗体的功能,主要是日期的有效性问题,需要从数据库中查找有效的日期,即点过菜的日

46、期。然后将找到的有效日期显示在结账报表下拉列表菜单中。如图4.1所示。图4.1日结账报表日期显示由于在数据中存在许多非常重复的日期数据,所以本模块才用了TreeSet集合来存入分别从数据库中获取的年份、月份和日。这样就避免了重复数据的出现。使得年份、月份和日期下拉列表框中只显示出数据库中已存在的日期,即开过台的日期。主要代码如下所示:/获取数据库中所有的不重复的日期,并排序-GetDate getDate = new GetDate();ResultSet rs = getDate.getDate();Set years = new TreeSet();/点过菜的所有年Set days = n

47、ew TreeSet();/点过菜的所有日String months = 01,02,03,04,05,06,07,08,09,10,11,12;for(;rs.next();) String date = rs.getString(orderFormId); String year = date.substring(0, 4); String day = date.substring(6,8); years.add(year); days.add(day);其次要解决的问题是使下拉列表显示的日期与当前日期相吻合,如果当前日期开过台。主要代码如下所示。/获取当前年月日-Today today

48、= new Today();int currentYear = today.getYEAR();int currentMonth = today.getMONTH();int currentday = today.getDAY();.下拉列表中添加项目/设置选择的是当前日期-String currentMonthTemp = String.valueOf(currentMonth);if(currentMonth10) currentMonthTemp = 0 + currentMonthTemp; yearComboBox.setSelectedItem(String.valueOf(cur

49、rentYear); monthComboBox.setSelectedItem(currentMonthTemp); dayComboBox.setSelectedItem(String.valueOf(currentday);/-日结账功能的实现。日结账功能实现过程是首先获取下拉列表框中选择的要查询的日期,然后根据该日期从数据表orderform中查询该日开台信息,最后初始化表格,显示出查询的结果。的程序流程图如图4.2所示。图4.2日结账功能流程图4.5.3 月结账报表工作区的实现过程月结账报表使用的主要数据表有orderform(消费单表)。月结账工作区的初始化过程同日结账功能是一样的

50、,唯一的区别是日期显示上只有年和月。需要重点做的是表格的显示部分,月结账表格部分需要显示出该月下每天的最大消费额、最小消费额、平均消费额、开台总数、消费总额以及以上消费额总计。如图4.3所示。月结账表格显示出统计数据过程中主要的问题是,如何来按照选中日期来判断该月有多少天。需要定义一个二维数组,分别存放闰年以及平年各个月份的天数。通过判断如果是闰年就按照闰年数组中的数据显示,如果是平年则按照平年数组中的数据显示。部分代码如下所示。int year = Integer.valueOf(String) yearComboBox.getSelectedItem();int month = Integ

51、er.valueOf(String) monthComboBox.getSelectedItem();int days = 31, 29, 31, 30, 31, 30, 31, 31, 30, 30, 30, 31, 31, 28, 31, 30, 31, 30, 31, 31, 30, 30, 30, 31;int day = null;if (year % 4 = 0) & (year % 100 != 0) | (year % 400 = 0) /如果是闰年 day = days0; else day = days1;图4.3 月结账表格内容显示月结账功能流程图如图4.4所示。图4.4

52、月结账功能流程图4.5.4 年结账报表工作区的实现过程年结账报表使用的主要数据表有orderform(消费单表)。年结账工作区的初始化过程同日结账、月结账功能是一样的,唯一的区别是日期显示上只有年。其表格的显示部分是日结账和月结账部分的中和。年结账表格显示如图4.5所示。图4.5 年结账表格显示4.6 系统安全模块设计系统安全模块实现了包括密码修改、用户管理、退出系统三个功能。密码修改功能就是对用户密码修改的一个实现,如图4.6所示。图4.6 密码修改功能进入用户管理界面首先要进行的就是管理员登陆,帐户和密码存在User表中,这里的主要问题就是管理员的安全问题。因为非管理员身份是不能访问数据库

53、中特定的表,也没有权限去添加删除有关的信息。只可以做管理员分配给其权限的相关操作。作为管理员在这一模块主要有菜品管理,菜系管理,前台营业员用户管理,和台位管理,每一现都可以实现添加删除和修改其状态的功能。 后面的四个模块的增加、修改、删除、查询业务基本相同,做法也基本上是一样的。如图4.7所示。图4.用户管理页面我们在添加用户的时候可以选择是添加管理员还是普通用户。 图4添加管理员操作添加完管理员之后可以通过查询按钮来查询现在所有的管理员情况。图4.管理员查询页面图4.用户删除操作结 论通过两个周对Java程序设计的学习,我们对Java语言有了更进一步的了解,知道了如何运用以前学过的知识来完成

54、本次课程设计。我们小组选择了酒店管理系统的设计,主要实现前台服务、后台服务、结账报表、系统安全模块。选择这个题目时感觉有点困难,好像无从下手,基本上没有一个具体的设计思路,因此我们先对数据库进行了设计,随后对小组成员进行分工,明确好各自的主要任务,然后分头查阅资料,上网搜索相关线索,每个人的工作做好之后,再由组长用一个主函数连接起来,进行整个程序的调试运行,最后,我们也顺利的完成了酒店管理系统的设计,并且得到了同学们的认可和喜爱。对于整个程序的流程构架、主界面的布局、数据的保存和清除等,开始时我们并没有十足的把握,但是因为之前我们在图书馆查阅了很多的资料,也上网搜索了很多这方面的解决方案方法,在课程设计的第一个星期里我们就顺利地把代码组织并编写好了。在连接所有的类的时候遇到了一点问题,不过在老师的指导,我们都把它解决了。在课程设计的前一个周,我们就把整个程序顺利地运行出来了,心里感到无比的兴奋与激动。在这个过程中我们运用了我们平时所学的知识,查阅了大量的资料。在其中,我们得到了意志的锻炼,在反复的操作中我们不断成长,在收获成功的同时,我们更得到了Java上机编程的深切体会和丰厚的编程经验。接下来,经过小组的认真思考、分析和讨论,在老师的指导下,我们对系统功能的不足之处

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!