1、内蒙古工业大学信息 工 程 学 院课 程 设 计设计题目: Java程序设计课程设计 -酒店管理系统 系 别 信息工程系 班级 软件08-1 学生姓名 古海峰 学号 20 18 24 29号 指导教师 杨弘平、费雅洁 职称 副专家、专家 起止日期:2023 年 7月13日起至 2023年 7月 25日止内蒙古工业大学信息 工 程 学 院课程设计任务书课程设计题目: Java程序设计课程设计 -酒店管理系统 系 别 信息工程系 班级 软件08-1 学生姓名 古海峰 学号 20 18 24 29号 指导教师 杨弘平、费雅洁 职称 副专家、专家 课程设计进行地点: 实训F 任 务 下 达 时 间:
2、2023 年 6 月 13 日起止日期: 2023 年 7月 13 日起至 2023年 7月 25 日止教研室主任 杨弘平 2023年 7月 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 实用教程.北京:清华大学出版社,20232 朱仲杰.JAVA2 全方位学习.北京:机械工业出
5、版社,2023 3 张思民.JAVA程序设计实践教程.北京:清华大学出版社,20234 汤一平.Java 语言程序设计.北京:科学出版社,20235 刘艺.Java 程序设计大学教程. 北京:机械工业出版社,20236 耿祥义.Java课程设计.北京:清华大学出版社,20237 Sharon Zakhour. Java教程. 北京:人民邮电出版社,2023 沈阳工程学院 课程设计成绩评估表系(部): 信息工程系 班级: 学生姓名:指 导 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分调研论证能独立查阅文献,收集资料;能制定课程设计方案和日程安排。0.15432工作能力态度工作态度
6、认真,遵守纪律,出勤情况是否良好,可以独立完毕设计工作, 0.25432工作量按期圆满完毕规定的设计任务,工作量饱满,难度适宜。0.25432说明书的质量说明书立论对的,论述充足,结论严谨合理,文字通顺,技术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.55432指导教师评审成绩(加权分合计乘以8) 分加权分合计指 导 教 师 签 名: 年 月 日评 阅 教 师 评 审 意 见评价内容具 体 要 求权重评 分加权分查阅文献查阅文献有一定广泛性;有综合归纳资料的能力0.25432工作量工作量饱满,难度适中。0.55432说明书的质量说明书立论对的,论述充足,结论严谨合理,文字通顺,技
7、术用语准确,符号统一,编号齐全,图表完备,书写工整规范。0.35432评阅教师评审成绩(加权分合计乘以4)分加权分合计评 阅 教 师 签 名: 年 月 日答 辩 小 组 评 审 意 见评价内容具 体 要 求权重评 分加权分学生报告报告准备充足,思绪清楚;语言表达准确,概念清楚,论点对的,有层次,有重点,基本上反映了所完毕任务的所有内容;时间符合规定。0.55432答 辩思绪清楚;回答问题有理论依据,基本概念清楚;重要问题回答准确,进一步,有说服力。0.55432答辩小组评审成绩(加权分合计乘以8)分加权分合计答辩小组教师署名: 年 月 日课 程 设 计 总 评 成 绩分摘 要随着科学技术的不断
8、提高,计算机科学日渐成熟,其强大的功能已被人们深刻结识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对酒店进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、成本低等。这些优点可以极大地提高酒店管理的效率,也是酒店的科学化、正规化管理和与世界接轨的重要条件。因此,开发这样一套酒店管理系统已成为很有必要的事情。JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。JAVA不仅可以用来开发大型的应用程序。并且特别适合Internet的应用开发。JAV
9、A的确具有“一次写成,处处运营”的特点,JAVA以成为网络时代最重要的编程语言之一。本报告中介绍了用JAVA语言实现酒店管理系统的所有过程。本次课程设计是配合JAVA程序设计课程,帮助学生进一步学习掌握JAVA语言,纯熟运用这个工具来编写的。通过课程设计各个项目的综合训练,培养学生实际分析问题、编程和动手能力、提高学生的综合素质。本课程设计尝试使用一些较生动的示例和设计项目,激发学生学习爱好,引导学生积极学习,对的理解、接受需要重点掌握的知识点,为参与项目开发及更进一步学习做好准备。本次课程设计重要是用JAVA和MySQL数据库实现酒店管理系统,其系统重要完毕以下功能模块:前台服务:重要实现开
10、台点菜、添加菜品和结账;后台管理:重要实现台号维护、菜系维护、菜品维护;结账报表:重要实现日结账报表、月结账报表和年结账报表;系统安全:重要实现修改密码以及用户管理;此外尚有数据库的创建、登陆界面。关键词 酒店管理系统,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 结账报表模块介绍- 5 -2.2.5 系统安全模块介绍- 7 -2.3 组内任务分工- 8 -第3章 数据
11、库设计- 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 月结账报表工作区的实现过程- 21 -4.5.4 年结账报表工作区的实现过程- 23 -4.6 系统安全模块设计- 24 -结 论- 2
12、6 -致 谢- 27 -参考文献- 28 - 第1章 绪 论世界的发展,社会的进步,人们的物质生活和精神生活都得到了很大的奔腾,人们以前的意识里就是所谓的人工管理。可是人类在进步、国家在进步、世界在进步,那么必然会带来新的产物,由前一个阶段向后一阶段过度。随着电子电子计算机技术的进步,为各行各业的自动化管理打开了方便之门。在新的条件下,有必要实现酒店的自动化管理,提高酒店工作人员的效率。本系统从对酒店的核心业务前台服务出发,着眼于为酒店管理发明自动化的办公环境而开发 在计算机飞速发展的今天,将计算机这一信息解决利器应用于酒店的平常管理已是势必所然,并且这也将为酒店管理带来前所未有的改变,它可以
13、带来意想不到的效益,同时也会为酒店的飞速发展提供无限潜力。采用计算机管理信息系统已成为公司、酒店管理科学化和现代化的重要标志,它给酒店管理带来了明显的经济效益和社会效益。重要体现在:极大的提高了管理人员和工作人员的工作效率,大大减少了以往入出存流程繁琐、杂乱、周期长的弊端。减少的犯错率,更大限度避免了不必要的误差,使酒店管理正规化、标准化、社会化。基于酒店管理的全面自动化,可以减少前台服务、后台管理及结账报表管理中的漏洞,可以节约不少管理开支,增长公司收入。这样可使酒店有更大的发展空间,被人们和社会所认同,在社会上有它的位置和地位。对于前台服务的操作自动化和信息化,全面提高了公司管理的水平,让
14、工作人员很容易的实现开台、点菜以及结账的查询和管理。对于报表结算的管理,更明确和准确化,既保证了酒店平常运营的准确,又利于管理者进行记录和查询。对于后台管理,很方便的提供台号、菜系以及菜品的添加删除,可以方便的对酒店的运营进行管理。具体信息的解决有强大的数据库做后盾,它里面保存大量且重要的信息,实现了酒店管理的数据化,由于现在可以说是数据的时代,其实就是所谓的信息时代。 随着我国改革开放的不断进一步,经济飞速的发展,酒店要想生存、发展,要想在剧烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,酒店管理的全面自动化、信息化则是其中极其重要的部分。为了酒店管理自动化的步伐,提高酒店管理业务
15、解决效率,建酒店管理系统已变得十分重要。酒店管理已经成为现在的发展趋势,目前为止,酒店采用自动化管理的很少,尚有大部分采用人工管理,但是就是比较正规化,改善了以前的人工管理的部分缺陷。可是在很大限度上并没有解决问题,由于社会目前的发展对它们的规定仅限于此,但是就目前的社会发展趋势看,社会在不断的发展,并且向全面自动话靠拢,那么酒店管理系统就将成为一大亮点,是社会发展的必然产物。因此开发一个标准化的酒店管理系统是很有必要的,并且JAVA是一种面向对象的、无平台的编程语言,具有很大的发展空间,用它编写酒店管理系统可以更体现出酒店管理的优势。第2章 系统功能介绍2.1系统功能总框图 酒店管理系统的功
16、能结构图如图2.1所示。图2.1 酒店管理系统功能模块2.2 模块功能介绍2.2.1 用户登录模块介绍用户登录模块是每个软件应用软件都不可或缺的部分,其重要功能是保证用户数据安全,同时用户登录窗口也是用户看到的第一个系统界面,因此,一个设计优秀的用户登录窗口,将有效的提高用户对系统的第一印象。本系统的用户登录界面如图2.2所示。用户登录窗口的设计优秀与否,重要涉及以下几个方面:图2.2 用户登录界面2.2.2 前台服务功能介绍酒店管理系统的主窗体效果如图2.2所示。窗体的中间部分用来显示当前的开台点菜信息,窗体的下方用来操作该系统,例如开台点菜,自动结账,台号、菜系管理,营业报表等。单击图2.
17、2中右下方的“菜品管理”按钮,将打开菜品管理对话框,该对话框用来维护菜品信息,涉及名称、助记码、菜系、单位和单价。其中助记码用来在点菜时快速获取菜品信息(建议设立为菜品名称的首字母,例如将菜品“红烧牛肉面”的助记码为“hsnrm”)。同理单击图2.2中右下方的菜系管理、台号管理将分别显示所相应的菜系管理对话框和台号管理对话框。单击图2.2中右下方的“日结账”按钮,将打开“日结账”对话框,该对话框用来记录指定日期的销售情况,涉及日营业额和各个商品的日营业额。同理单击“月结账”、“年结账”按钮,将分别显示出相应的“月结账”、“年结账”对话框。图2.2酒店管理系统主窗体2.2.3 后台服务模块介绍本
18、系统的后台服务模块包具有3个小模块,分别为菜品管理,菜系管理和台号管理,每个小模块又分为若干功能。后台管理模块如图2.3所示。图2.3 后台管理模块菜品管理是对整个酒店的菜单进行的管理,所提供的功能涉及菜品的查询,添加和删除功能,其中菜品的查询功能为系统自动查询,并且在添加或者删除菜品后自动刷新真个菜品表,并把信息重新显示在表单中,如图2.4所示。图2.4菜品管理菜系管理模块涉及了对整个酒店所有菜系的查询,添加和删除功能,同时菜系的查询功能为自动查询,如图2.5所示。图2.5 菜系管理台号管理包含的功能有台号的查询,添加和修改功能,如图2.6所示。图2.6 台号管理2.2.4 结账报表模块介绍
19、本系统提供提供了三种方式的结账报表,分别是日结帐号报表、月结账报表和年结账报表,在结账报表的工作区中提供了打开这三种结账 功能的按钮,如图2.7所示。图2.7 结账报表工作区日结账功能提供了对一日营业情况的记录,涉及日开台数、各个餐台的消费金额、菜品的消费情况、各个菜品的日销售情况,以及日营业额等,如图2.8所示。图2.8 日结账报表月结帐报表功能提供对一个月营业情况情况的记录,涉及日开台总数、日总营业额、日开台的平均消费额、日开台的最大和最小消费额,以及当月的总开台数、月总营业额、以及一个月中的日平均营业额、一月中开台的最大和最小消费额,如图2.9所示。图2.9 月结账报表年结账报表功能提供
20、了对一年营业情况的记录,涉及一年中天天的营业额、每月的营业额、每月同一日的总营业额,以及一年的营业额,如图2.10所示。图2.10 年结账报表2.2.5 系统安全模块介绍在本模块里所实现的三种功能分别是:修改密码、用户管理和推出系统。在系统安全工作区提供了这三种功能的按钮。假如所示。图2.6系统安全工作区修改密码功能是对旧密码的修改。如图所示。图2.7修改密码功能用户管理功能提供了对用户和管理员的查询、添加、修改和删除的实现。 图2.8用户管理功能2.3 组内任务分工组内分工如表2.1所示。表2.1 组内分工表 全体成员任务组长学号:20姓名:杜黎明学号:18姓名:温周洋学号:24姓名:胡金龙
21、学号:29姓名:郭潇阳数据库设计登陆界面设计前台服务模块设计后台服务模块设计结账报表模块设计系统安全模块设计程序测试第3章 数据库设计在开发应用程序时,对数据库的操作时必不可少的。而一个数据库的设计优秀与否,将直接影响到开发进度和性能。所以对数据库的设计就显得尤为重要。数据库的设计要根据程序的需求及其功能制定。假如在开发软件之前不能很好的设计数据库,在开发过程中将反复修改数据库,必将严重影响到开发进度。3.1 数据库需求分析酒店管理系统的需求涉及开台点菜功能、智能化获取菜品功能、自动结账功能、营业额报表共跟功能等。在这些功能设计到的数据表涉及台号表、菜品表、消费单表;为了使系统更加完美,还需要
22、为菜品分类,即需要用到菜系表;为了实现菜品的日销售情况记录,还需要建立一个消费项目表,用来记录消费单消费的菜品。3.2 数据库概念结构设计数据库设计是系统设计过程中的重要组成部分,它通过管理系统的整体的整体需求而指定的,数据库设计的好坏直接影响到系统的后期开发。下面对本系统中具有代表性的数据库设计进行具体说明。餐台和菜系在本系统中最简朴的实体,在本系统中用来描述餐台信息的只有台号和座位数,而描述菜系的重要是名称。餐台信息表的E-R图如图3.1所示,菜系信息表的E-R图如图3.2所示 图3.1 餐台信息表E-R图 图3.2 菜系信息表E-R图在描述菜品尸体时,加入了助记码,目的是为了实现智能化获
23、取菜品功能,通过这一功能系统操作员可以快速获取顾客所点的菜品信息、菜品信息表的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-R图如图3.6所示。图3.6 系统整体E-R图3.3 数据库表的设计针对本系统的特点,在对所搜集的数据
24、进行规范化之后,定义了如下六张表格,分别是用户信息表、餐台表,菜品表,菜系表,消费单表,消费项目表。通过对这六张表格的操作可以较好地完毕系统设计的各项功能,六张表格之间有着不同限度的联系。表3.1 用户信息表(user)字段名称数据类型长 度备 注loginNamevarchar21用户登录名,做主键loginPasswordvarchar21用户登录密码typechar1用户类型namevarchar21用户姓名sexchar2用户性别ageint用户年龄telvarchar20用户电话createTimetimestamp创建用户时间表3.2 餐台表 desk字段名称数据类型长 度备 注i
25、dvarchar8餐台号,做主键countint座位数量表3.3 菜品表 menu字段名称数据类型长 度备 注idvarchar8菜品编号,做主键sortIdint菜系编号,与菜系表中菜系编号外键关联namevarchar30菜品名称codevarchar10菜品助记码unitvarchar4菜品单位unitPricefloat菜品单价表3.4 消费项目表 orderItem字段名称数据类型长 度备 注idint消费项目编号,做主键orderFormIdvarchar15消费单编号,与消费单中消费单编号外键关联menuIdvarchar10菜品编号,与菜品表中菜品编号外键关联amountint
26、消费数量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();然后编写用来创建和关闭数据库连接的方法,这里将定义两个方法,一个用于创建数据库的连接,一个用与将数据库连接关闭。具体代码如下:public Connection getConnection() throws SQLException,
28、 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(); else if(conn!=null) conn.close(); catch (SQLExcepti
29、on 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_KeyLogin System.out.println(evt.getKeyChar(); if(ev
31、t.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) javax.swing.JOptionPane.showMessageDialog(this, 违法的用户名
32、!,警告, 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 前台服务模块设计开台签单工作区是本系统最常用的工作区如图4.1所示,所以需要将该工作区设计的更加人性
33、化和智能化。例如,在获取欲添加的菜品时,既可以通过菜品编号获得,又可以通过才屡屡助记码获得,并且菜品的默认数量为一个等。图4.1 开台签单工作区在开台签单工作区设计中,一方面为“台号”下拉列表框添加事件监听器,用来解决开台或点菜的相关信息。假如选中的台号尚未开台,则取消“开台列表”中的选定行,并清空“签单列表”中的所有行;假如选中的台号已经开台,并且在“开台列表”中尚未选中,则选中“开台列表”中的该台号,并刷新“签单列表”中的菜品信息,既显示为当前选中台号所点的菜品。然后开发智能化获取菜品功能,通过为文本框添加键盘事件监听器实现。当用户在文本框进行输入时,同时判断输入的是商品编号,还是商品助记
34、码,并按指定条件查询符合条件的菜品,假如存在符合条件的菜品,则获取第一个符合条件的菜品,并显示菜品的名称和单位,负责将菜品名称和单位设立为空。具体代码如下:String input = jTextField2.getText().trim(); Vector vector = null; if (input.length() 0) if (jRadioButton2.isSelected() getMenuName gmn = new getMenuName(); vector = gmn.returnName(input); if (vector.size() 0) vector = (Ve
35、ctor) 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标记,拟定点菜结束后单击“签单”按钮,将取消所有新添加菜品前方的NEW标记。在未取消NEW标记的情况下合约选中后单击“取消”按钮取消该菜品,假如
36、该餐台只点了该菜品,取消该菜品后同时取消该餐台的开台信息;假如该餐台已经点了其他菜品,并且取消后不是最后点的菜品,还需要修改所点菜品的序号。结账功能设计,结账功能是作为酒店管理系统中一个重要的组成部分。结账功能的设计需要在用户选择相应的台号后就将选中的台号的消费金额显示在结账工作区中(如图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 = select id from sort where name=未分类;ResultSet rs =
39、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().execute(sql);同时要注意的是菜系表中菜系名称为“未分类”的数据项是不能被删除的。4.4.2 菜
40、品管理菜品管理子模块包具有菜品的添加和删除功能,在该子模块中,难点在与添加菜品过程中对所添加信息的判断。添加菜品过程中,菜品的所有字段都不能为空,并且ID,NAME,CODE这3个字段在数据库中必须是唯一的,所以在添加过程中必须加以控制。下面仅以ID字段说明,其他字段都与之类似,控制流程如图4.4.2.1所示。图4.4.2.1 字段控制流程图4.4.3 台号管理台号管理子模块的功能宝库台号的查询,添加和修改功能。台号的查询分为有关键字查询和无关键字查询。当执行有关键字查询是,系统只查询SORT表中COUNT与输入的作为数相同的台号。当执行无关键字查询时,系统将查询整个SORT表中的数据项,关键代码如下:/查询SORT表关键代码=public class selectSorts public void selectSorts() public ResultSet returnResultSet() throws ClassNotFoundException, SQLException GetStat