酒店管理系统毕业设计_第1页
酒店管理系统毕业设计_第2页
酒店管理系统毕业设计_第3页
酒店管理系统毕业设计_第4页
酒店管理系统毕业设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕业设计说明书论文题目学号姓名指导教师职称办学点教学班2012年3月30日摘要随着计算机技术的迅速发展,人们不但对工作效率的要求越来越高,还更加强调其准确性和精确性。计算机在各种领域的地位愈加重要。作为第三产业的之主业的酒店业,其经营管理变得日益复杂,日常所需处理的数据量渐渐庞大,商业运转的中间环节也越来越多,以前主要依靠人工管理的方法显然已无法适应酒店规模的不断扩大。提高酒店的服务质量,主要依靠其管理力。酒店管理系统能提高酒店各项工作的质量;减轻各类事务性工作的劳动强度,使酒店的职员腾出更多的精力和时间来服务于顾客;改善经营管理,堵塞漏洞,保证顾客和酒店的经济效益。让消费者少付时间、精力,而获得更好的服务,更新的创意,更多的信息和更加方便的消费,使消费者和酒店管理者在市场上取得双赢。本文完整描述了利用ECLIPSE开发平台、采用真正跨平台的JAVA编程技术、结合当前成熟的SQLSERVER2005数据库技术,设计和实现酒店管理系统的过程。关键词酒店管理系统;JAVA;SQLSERVER2005目录第一章系统开发背景和环境111开发背景112开发环境1121JAVA简介1122SQLSERVER2005简介1123ECLIPSE简介2第二章系统分析321可行性分析3211经济可行性分析3212技术可行性分析3213法律可行性分析322系统需求分析3第三章系统总体设计631系统功能结构632系统概念设计6321系统实体描述6322系统实体关系图833数据库表的设计8331消费座位信息表8332菜单信息表8333用户信息表9334订单信息表9335菜系信息表9336订菜信息表9第四章系统详细设计与实现1141JAVA核心类的设计1142酒店管理员业务12421登录模块12422日结账模块13423月结账模块18424年结账模块21第五章结束语24致谢25参考文献26第一章系统开发背景和环境11开发背景随着餐饮企业的迅速发展,现有的人工管理方式已经不能满足实际需求,广大餐饮营业者已经意识到使用计算机应用软件的重要性,决定在餐饮企业的经营管理上引入酒店管理系统。根据餐饮行业的特点和实际情况,酒店管理系统应以餐饮业务为基础,突出前台管理,中式营业数据分析等功能,从专业角度出发,努力为餐饮管理者提供科学。有效的管理模式和数据分析功能。经过多年的发展,对餐饮企业的管理已经逐渐由简单的人工管理,逐步进入到规范,科学管理的阶段。众所周知,在科学管理的具体实现过程中,最有效的方法就是运用管理软件进行管理。节省了大量的时间和精力。12开发环境本文利用ECLIPSE开发平台、采用真正跨平台的JAVA编程技术、结合当前成熟的SQLSERVER2005数据库技术,完成酒店管理系统的设计和实现。121JAVA简介JAVA编程语言是一个纯的面向对象的程序设计语言,它继承了C语言面向对象技术的核心,JAVA舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(OPERATOROVERLOADING)、多重继承(以接口取代)等特性,增加了垃圾回收功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。JAVA不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码BYTECODE,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。不过,每次的编译执行需要消耗一定的时间,这同时也在一定程度上降低了JAVA程序的运行效率。但在J2SE142发布后,JAVA的执行速度有了大幅提升。与传统程序不同,SUN公司在推出JAVA之际就将其作为一种开放的技术。全球数以万计的JAVA开发公司被要求所设计的JAVA软件必须相互兼容。“JAVA语言靠群体的力量而非公司的力量”是SUN公司的口号之一,并获得了广大软件开发商的认同。这与微软公司所倡导的注重精英和封闭式的模式完全不同。SUN公司对JAVA编程语言的解释是JAVA编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。JAVA语言的特点如下(1)简单性JAVA是个精简的系统,无需强大的硬件环境便可以很好地运行。JAVA的风格和语法类似于C,因此,C程序员可以很快就掌握JAVA编程技术。JAVA摒弃了C中容易引发程序错误的地方,如多重继承、运算符重载、指针和内存管理等,JAVA语言具有支持多线程、自动垃圾收集和采用引用等特性。JAVA提供了丰富的类库,方便用户迅速掌握JAVA。(2)面向对象面向对象可以说是JAVA最基本的特性。JAVA语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。所有的JAVA程序和APPLET均是对象,JAVA支持静态和动态风格的代码继承及重用。(3)分布式JAVA包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,JAVA应用程序可凭借URL打开并访问网络上的对象,就像访问本地文件一样简单方便。JAVA的分布性为实现在分布环境尤其是INTERNET下实现动态内容提供了技术途径。(4)健壮性JAVA是一种强类型语言,它在编译和运行时要进行大量的类型检查。类型检查帮助检查出许多开发早期出现的错误。JAVA自己操纵内存减少了内存出错的可能性。JAVA的数组并非采用指针实现,从而避免了数组越界的可能。JAVA通过自动垃圾收集器避免了许多由于内存管理而造成的错误。JAVA在程序中由于不采用指针来访问内存单元,从而也避免了许多错误发生的可能。(5)结构中立作为一种网络语言,JAVA编译器将JAVA源程序编译成一种与体系结构无关的中间文件格式。只要有JAVA运行系统的机器都能执行这种中间代码。从而使同一版本的应用程序可以运行在不同的平台上。(6)安全性作为网络语言,安全是非常重要的。JAVA的安全性可从两个方面得到保证。一方面,在JAVA语言里,像指针和释放内存等C功能被删除,避免了非法内存操作。另一方面,当JAVA用来创建浏览器时,语言功能和一类浏览器本身提供的功能结合起来,使它更安全。JAVA语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。另外,JAVA拥有多个层次的互锁保护措施,能有效地防止病毒的入侵和破坏行为的发生。(7)可移植JAVA与体系结构无关的特性使得JAVA应用程序可以在配备了JAVA解释器和运行环境的任何计算机系统上运行,这成为JAVA应用软件便于移植的良好基础。但仅仅如此还不够。如果基本数据类型设计依赖于具体实现,也将为程序的移植带来很大不便。JAVA通过定义独立于平台的基本数据类型及其运算,使JAVA数据得以在任何硬件平台上保持一致,这也体现了JAVA语言的可移植性。还有JAVA编译器本身就是用JAVA语言编写的,JAVA运算系统的编制依据POSIX方便移植的限制,用ANSIC语言写成,JAVA语言规范中也没有任何“同具体实现相关”的内容,这说明JAVA本身也具有可移植性。同时JAVA语言的类库也具有可移植性。JDKJAVADEVELOPMENTKIT是整个JAVA的核心,包括了JAVA运行环境(JAVARUNTIMEENVIRONMENT),一堆JAVA工具和JAVA基础的类库RTJAR。不论什么JAVA应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好JAVA的第一步。最主流的JDK是SUN公司发布的JDK,除了SUN之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的JROCKET,还有GNU组织开发的JDK等等。其中IBM的JDK包含的JVM(JAVAVIRTUALMACHINE)运行效率要比SUNJDK包含的JVM高出许多。而专门运行在X86平台的JROCKET在服务端运行效率也要比SUNJDK好很多。从SUN的JDK50开始,提供了泛型等非常实用的功能,其版本信息也不再延续以前的12,13,14,而是变成了50,60了。从60开始,其运行效率得到了非常大的提高,尤其是在桌面应用方面。122SQLSERVER2005简介今天的商业环境要求不同类型的数据库解决方案。性能、可伸缩性及可靠性是基本要求,而进入市场时间也非常关键。除这些核心企业品质外,SQLSERVER2005还为您的数据管理与分析带来了灵活性,允许单位在快速变化的环境中从容响应,从而获得竞争优势。从数据管理和分析角度看,将原始数据转化为商业智能和充分利用WEB带来的机会非常重要。作为一个完备的数据库和数据分析包,SQLSERVER2005为快速开发新一代企业级商业应用程序、为企业赢得核心竞争优势打开了胜利之门。作为重要的基准测试可伸缩性和速度奖的记录保持者,SQLSERVER2005是一个具备完全WEB支持的数据库产品,提供了对可扩展标记语言XML的核心支持以及在INTERNET上和防火墙外进行查询的能力。采用SQLSERVER2005的优点有(1)SQL2005具有完全的WEB支持。SQLSERVER2005提供了以WEB标准为基础的扩展数据库编程功能。丰富的XML和INTERNET标准支持允许您使用内置的存储过程以XML格式轻松存储和检索数据。您还可以使用XML更新程序容易地插入、更新和删除数据。通过WEB轻松访问数据。有了SQLSERVER2005,您可以使用HTTP来向数据库发送查询、对数据库中存储的文档执行全文搜索、以及通过WEB进行自然语言查询。强大而灵活的基于WEB的分析。SQLSERVER2005分析服务功能被扩展到了INTERNET。您可以通过WEB浏览器来访问和控制多维数据。(2)高度的可伸缩性和可靠性。使用SQLSERVER2005可以获得非凡的可伸缩性和可靠性。通过向上伸缩和向外扩展的能力,SQLSERVER满足了苛刻的电子商务和企业应用程序要求。向上伸缩。SQLSERVER2005利用了对称多处理器SMP系统。SQLSERVERENTERPRISEEDITION最多可以使用32个处理器和64GBRAM。向外扩展。向外扩展可以将数据库和数据负载分配给多台服务器。可用性。通过增强的故障转移群集、日志传送和新增的备份策略,SQLSERVER2005达到了最大的可用性。(3)最快的进入市场时间。SQLSERVER2005是MICROSOFTNETENTERPRISESERVER的数据管理与分析中枢。SQLSERVER2005包括加速从概念到最后交付开发过程的工具。有了SQLSERVER2005,您可以建立带有集成工具的端到端分析解决方案,从数据创造价值。此外,还可以根据分析结果自动驱动商业过程以及从最复杂的计算灵活地检索自定义结果集。快速开发、调试和数据转换。SQLSERVER2005带有交互式调节和调试查询、从任何数据源快速移动和转化数据、以及按TRANSACTSQL方式定义和使用函数等功能。您可以从任意VISUALSTUDIO工具以可视化方式设计和编写数据库应用程序。简化的管理和调节。使用SQLSERVER2005,您可以很容易地在企业资源旁边集中管理数据库。可以在保持联机的同时轻松地在计算机间或实例间移动和复制数据库。123ECLIPSE简介ECLIPSE是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由ECLIPSE项目、ECLIPSE工具项目和ECLIPSE技术项目三个项目组成,具体包括四个部分组成ECLIPSEPLATFORM、JDT、CDT和PDEJDT支持JAVA开发、CDT支持C开发、PDE用来支持插件开发,ECLIPSEPLATFORM则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。ECLIPSEPLATFORM允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。ECLIPSESDK(软件开发者包)是ECLIPSEPLATFORM、JDT和PDE所生产的组件合并,它们可以一次下载。这些部分在一起提供了一个具有丰富特性的开发环境,允许开发者有效地建造可以无缝集成到ECLIPSEPLATFORM中的工具。ECLIPSESDK由ECLIPSE项目生产的工具和来自其它开放源代码的第三方软件组合而成。ECLIPSE项目生产的软件以CPL发布,第三方组件有各自自身的许可协议。现在ECLIPSE已经成为最广泛的JAVA开发平台,成为广大JAVA爱好者的首选编程平台。凭借其免费和稳定以及强大的功能和丰富的插件功能,所以本程序采用ECLIPSE环境。第二章系统分析21可行性分析211经济可行性分析酒店管理系统一旦开发成功投入使用,就避免了人工操作所带来的一系列不必要的麻烦,节省了用户和相关工作人员的时间,能够很好地提高工作效率。可以节省大量的管理费用,从长远来看,投资可以完全收回。本系统开发所要用到的软件JAVA和ECLIPSE都可以从SUN公司的网站中直接免费下载,大大减少了开发成本。212技术可行性分析JAVA连接数据库主要由两种方法,一种是JDBCODBC桥接,另外一种是纯数据驱动连接。JDBC(JAVADATABASECONNECTIVITY,JAVA数据库连接)是一种用于执行SQL语句的JAVAAPI,可以为多种关系数据库提供统一访问,它由一组用JAVA语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯JAVAAPI编写数据库应用程序。JDBCODBC是微软公司开放服务结构WOSA,WINDOWSOPENSERVICESARCHITECTURE中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说,不论是FOXPRO、ACCESS,MYSQL还是ORACLE数据库,均可用ODBCAPI进行访问。由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。缺点是连接的时候必须依靠ODBC,在其他非微软平台没有ODBC的情况下无法用该方法。该酒店管理系统采用的是第二种连接方式,即纯数据驱动连接的方法,这种方式不需要建立桥,设置数据源,由于不依赖于ODBC,使得程序具有更好的移植性,运行时只需要安装SQLSERVER2005提供的纯JAVA数据库驱动程序就可以了。213法律可行性分析本系统的开发作为计算机毕业设计以巩固先前所学的知识,此程序开发仅供个人所用,没有侵犯任何版权,也没有违反国家相关法律法规及相关方面的规定,与业界有关规定也无矛盾之处,所以法律方面可行。22系统需求分析系统的主要业务流程如下第一步登录系统,选择适合您的身份。根据登录用户和密码进行登陆。第二步录入顾客消费信息和菜单种类信息等。即吧台查询菜品,菜系和日结账等详细资料,提交订单,将信息录入酒店管理系统的数据库中。一个姓名对应一个台号,台号一定要确保准确无误,以便方便上菜。第三步对顾客消费进行销账处理。对顾客的消费信息进行结账。第四步对日,月,年的消费信息进行汇总处理。对整个酒店每日,每年,每月的消费信息进行简单的计算,方便酒店管理人员了解酒店的运行状态和运营趋势。综上所述,酒店管理系统应该满足以下一些基本要求(1)系统内存储的菜品菜系信息,应至少包括名称、助记码、菜系、单位、单价等信息。(2)每一位顾客应该包括的信息至少有对应的台号,开台时间,消费金额,消费的菜品等详细消费信息。(3)系统必须实现以下基本功能录入和查询菜品即用户能录入新到的菜品和查出酒店内的所有菜品;酒店管理人员能随时查询出客人预订菜品的具体情况,对应的吧台号可以对应查询对应的客户消费信息。承办订餐业务这是最基本的。订餐的时候,要求输入客户资料;若要求的吧台号尚有,则为其开台,并保存信息;如果没有,则显示抱歉信息,并询问用户是否有其他要求。管理员业务首先对管理员身份进行验证,符合身份的管理员可以对信息进行维护对用户的信息,订餐信息,开台信息,消费信息进行增加,删除,修改,查询。管理员可以按条件分类查询菜品信息,用户信息,日月年消费信息,单个顾客消费信息,如果不输入查询条件,则查询全部。第三章系统总体设计31系统功能结构系统主要功能结构如下图所示用户管理酒店管理系统前台服务开台菜单智能化获取菜品自动结账后台服务台号管理菜系管理菜品管理结账报表日结账报表月结账报表年结账报表系统安全修改密码图31系统功能结构图32系统概念设计321系统实体描述一是菜品实体,菜品实体是酒店对酒菜的描述,它保存的是关于酒菜的所有信息实体集菜品,有菜品编号、菜名、菜系别、助记码、计量单位、单价和状态。其中以“菜品号”作为主键。状态单价计量单位菜助记码菜品号菜系别菜名菜品实体图32菜品实体属性图二是消费台实体,消费台实体是酒店对消费位置桌号的描述,它保存的是消费台位置的信息图33消费台实体属性图实体集消费台,有属性台号和座位数量。每一个座位都是与众不同的,都是唯一和不重复的,所以以台号作为主键。三是用户实体,用户实体是酒店管理员对具体操作人员的描述,它保存的是酒店操作人员的信息图34用户实体属性图实体集用户,有用户编号、姓名、性别,出生年月,密码,工作卡号和状态。因为姓名有可能重名,所以不能作为主键;以“用户编号”作为主键。四是用菜系实体,菜系实体是酒店对菜的类别的描述,它保存的是所有菜类别的信息菜系实体类别名编号图35菜系实体属性图实体集菜系,有编号和菜系类别名2个属性,其中以“编号”作为主键。消费台实体座位数量台号密码性别生日工作卡号状态用户编号姓名用户实体322系统实体关系图图36系统实体ER图33数据库表的设计331消费座位信息表标识名称TB_DESK主要作用此表主要用来存储消费台,即座位的状态,包括台号和座位的数量,便于以后系统查询信息等操作的实现。字段名字段解释字段类型是否空NUM消费台号VARCHAR5非空SEATING座位数量INT非空表31消费台信息表332菜单信息表标识名称TB_MENU主要作用此表主要用来存储菜单信息,包括有菜单编号、菜名、菜系别、助记码、计量单位、单价和状态。实现系统对菜单信息的查询、修改等相关管理工作,方便用户和管理员的相关系统操作。包含11NMNN1M隶属菜品菜系包含包含点菜酒店消费台字段名字段解释字段类型是否空NUM菜单号VARCHAR8非空SORT_ID菜系号INT非空NAME菜名VARCHAR20非空CODE所属菜系VARCHAR10非空UNIT计量单位VARCHAR4非空UNIT_PRICE单价INT非空STATE该菜状态CHAR4非空表32菜单信息表333用户信息表标识名称TB_USER主要作用此表主要用来存储操作员用户信息,其中包括编号、姓名、性别、工作证卡号,管理密码和状态。它实现了管理者对操作员,同时可以实现系统查询数据库相关信息时的相关功能。字段名字段解释字段类型是否空ID用户编号INT(自加一)非空NAME姓名VARCHAR8非空SEX性别CHAR2非空BIRTHDAY生日DATETIME非空ID_CARD工作卡号VARCHAR20非空PASSWORD管理密码VARCHAR20非空FREEZE当前状态CHAR4非空表33用户信息表334订单信息表标识名称TB_ORDER_FORM主要作用此表用来存储每一个消费台的具体消费记录,主要包括主键序号、台桌号、时间和消费者编号。根据此表可以进行营业额查询,和每一个消费台(桌子)的消费状态。字段名字段解释字段类型是否空NUM唯一标识CHAR11非空DESK_NUM台号CHAR5非空DATATIME消费时间DATE可以空MONEY消费金额INT非空UER_ID消费者编号INT非空表34订单信息表335菜系信息表标识名称TB_SORT主要作用此表主要用来存储登陆信息,包括主键序号、管理员账户和管理员密码。在管理员登录时系统主动访问此表,进行相关信息的验证。可以实现数据库表结构的相关功能。字段名字段解释字段类型是否空ID唯一标识INT非空NAME菜系名VARCHAR20非空表35菜系信息表336订菜信息表标识名称TB_ORDER_ITEM主要作用此表用来存储每一个消费台的具体点菜记录,消费时以台号为单位,以消费台进行增加菜品。主要包括主键序号、台桌号、菜单编号和数量和总金额。根据此表可以查询每一桌客人具体都定了那些菜品,和每一个消费台的消费金额的状态。字段名字段解释字段类型是否空ID唯一标识INT非空ORDER_FORM_NUM台号CHAR11非空MEUN_NUM菜品号CHAR8非空AMOUNT消费菜品数量INT非空TOTAL消费金额INT非空表36订单信息表第四章系统详细设计与实现41数据库连接类的设计数据库连接类负责加载数据库驱动程序,以及创建和关闭数据库连接。为了最大程度地应用每个已经创建的数据库连接,这里将其保存到了THREADLOCAL类的对象中。首先在数据库连接类中定义一些常量,包括连接数据库使用的驱动程序、连接数据库的路径、连接数据库使用的用户名和密码,并且定义一个THREADLOCAL类的对象,用来保存已经创建的数据库连接。具体代码如下PRIVATESTATICFINALSTRINGDRIVERCLASS“COMMICROSOFTJDBCSQLSERVERSQLSERVERDRIVER“/数据库驱动PRIVATESTATICFINALSTRINGURL“JDBCMICROSOFTSQLSERVER/1270011434DATABASENAMEDB_DRINKERYMANAGE“/路径PRIVATESTATICFINALSTRINGUSERNAME“SA“/连接数据库的用户名PRIVATESTATICFINALSTRINGPASSWORD“/连接数据库的密码PRIVATESTATICFINALTHREADLOCALTHREADLOCALNEWTHREADLOCAL/创建保存连接的对象然后编写用来加载数据库驱动程序的代码,通常情况下将其放到静态代码中,这样做的好处是只在该类第一次被加载(即第一次被调用)时执行加载数据库驱动程序的动作,避免了反复加载数据库驱动程序,从而提高软件的性能。具体代码如下STATIC/通过静态方法加载数据库驱动TRYCLASSFORNAMEDRIVERCLASSNEWINSTANCE/加载数据库驱动CATCHEXCEPTIONEEPRINTSTACKTRACE最后编写用来创建和关闭数据库连接的方法,这里将这两个方法均定义为静态的,这样通过类名就可以调用方法,方便使用。在这两个方法中,首先从THREADLOCAL类的对象中获得数据库连接,然后判断是否存在可用的数据库连接,如果存在则直接返回或关闭,否则重新创建。具体代码如下PUBLICSTATICCONNECTIONGETCONNECTION/创建数据库连接的方法CONNECTIONCONNTHREADLOCALGET/从线程中获得数据库连接IFCONNNULL/没有可用的数据库连接TRYCONNDRIVERMANAGERGETCONNECTIONURL,USERNAME,PASSWORD/创建新的数据库连接THREADLOCALSETCONN/将数据库连接保存到线程中CATCHSQLEXCEPTIONEEPRINTSTACKTRACERETURNCONNPUBLICSTATICBOOLEANCLOSECONNECTION/关闭数据库连接的方法BOOLEANISCLOSEDTRUE/默认关闭成功CONNECTIONCONNTHREADLOCALGET/从线程中获得数据库连接THREADLOCALSETNULL/清空线程中的数据库连接IFCONNNULL/数据库连接可用TRYCONNCLOSE/关闭数据库连接CATCHSQLEXCEPTIONEISCLOSEDFALSE/关闭失败EPRINTSTACKTRACERETURNISCLOSED42系统业务模块421结账报表工作区设计首先解决在实现结账报表功能是日期的有效性问题。需要定义一个数组,用来存放各个月份拥有的天数,默认2月份为28天。为了方便使用,将月份与数组的索引一一对应,即不使用数组索引为1的位置。具体代码如下PRIVATEINTDAYSOFMONTH0,31,28,31,30,31,30,31,31,30,31,30,31下面为年度下拉列表框添加时间监听器。首先获得选中的年度,并判断是平年还是闰年,以确定2月份的天数,即修改索引为2的值,如果为平年则修改为28,为闰年则修改为29;然后获得当前选中的月份,如果当前选中的为2月份,则继续活得日下拉列表框拥有可选项的数量,如果日下拉列表框拥有可选项的数量不等于索引为2的值,当日下拉列表框拥有可选项的数量为28时,则为日下拉列表框添加一个可选项“29”,否则从日下拉列表框中移除可选项“29”。具体代码如下YEARCOMBOBOXADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEINTYEARINTEGERYEARCOMBOBOXGETSELECTEDITEM/获得选中的年度JUDGELEAPYEARYEAR/判断是否为闰年,以确定2月份的天数INTMONTHINTEGERMONTHCOMBOBOXGETSELECTEDITEM/获得选中的月份IFMONTH2/如果选中的为2月INTITEMCOUNTDAYCOMBOBOXGETITEMCOUNT/获得日下拉菜单当前的天数IFITEMCOUNTDAYSOFMONTH2/如果日下拉菜单当前的天数不等于2月份的天数IFITEMCOUNT28/如果日下拉菜单当前的天数为28天DAYCOMBOBOXADDITEM29/则添加为29天ELSE/否则日下拉菜单当前的天数则为29天DAYCOMBOBOXREMOVEITEM29/则减少为28天下面为月份下拉列表框添加事件监听器。首先获得选中的月份,并活得日下拉列表框拥有可选项的数量。如果日下拉列表框拥有可选项的数量不等于当前选中月份拥有的天数,当日下拉列表框拥有可选项的数量大于当前选中月份拥有的天数时,则移除日下拉列表框中最大的可选项,并将日下拉列表框拥有可选项的数量减1;否则将日下拉列表框拥有可选项的数量加1,并添加到日下拉列表框的可选项中。具体代码如下MONTHCOMBOBOXADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTEINTMONTHINTEGERMONTHCOMBOBOXGETSELECTEDITEM/获得选中的月份INTITEMCOUNTDAYCOMBOBOXGETITEMCOUNT/获得日下拉菜单当前的天数WHILEITEMCOUNTDAYSOFMONTHMONTH/如果日下拉菜单当前的天数不等于选中月份的天数IFITEMCOUNTDAYSOFMONTHMONTH/如果大于选中月份的天数DAYCOMBOBOXREMOVEITEMITEMCOUNT/则移除最后一个选择项ITEMCOUNT/并将日下拉菜单当前的天数减1ELSE/否则小于选中月份的天数ITEMCOUNT/将日下拉菜单当前的天数加1DAYCOMBOBOXADDITEMITEMCOUNT/并添加为选择项通过年度和月份下拉列表框的事件监听器对日下拉列表框可选项的控制,无论选择哪一年或哪一个月,日下拉列表框提供的日期可选项都是一个有效的日期。422日结账模块图42日结账汇总界面上图记录了酒店的日结账汇总界面,日结账报表功能提供了对一日营业情况的统计,包括日开台数量、各个餐台的消费金额、菜品的消费情况、各个菜品的日销售情况,以及营业额等。首先创建一个用于日结账界面的窗体,为窗体设置标题、大小等信息,具体代码如下PUBLICDAYDIALOGSUPERSETMODALTRUESETTITLE“日结账“SETBOUNDS60,60,860,620FINALJPANELPANELNEWJPANELGETCONTENTPANEADDPANEL,BORDERLAYOUTNORTHINTYEARTODAYGETYEARINTMONTHTODAYGETMONTHINTDAYTODAYGETDAYYEARCOMBOBOXNEWJCOMBOBOXYEARCOMBOBOXSETMAXIMUMROWCOUNT10STRINGMINDATETIMEDAOSORDERFORMOFMINDATETIMEIFMINDATETIMENULLYEARCOMBOBOXADDITEMYEARELSEINTMINYEARINTEGERVALUEOFMINDATETIMESUBSTRING0,4FORINTYMINYEARYDAYSOFMONTHMONTH/如果大于选中月份的天数DAYCOMBOBOXREMOVEITEMITEMCOUNT/则移除最后一个选择项ITEMCOUNT/并将日下拉菜单当前的天数减1ELSE/否则小于选中月份的天数ITEMCOUNT/将日下拉菜单当前的天数加1DAYCOMBOBOXADDITEMITEMCOUNT/并添加为选择项日结账查询表格,显示查询结果,具体代码如下FINALJBUTTONSUBMITBUTTONNEWJBUTTONSUBMITBUTTONADDACTIONLISTENERNEWACTIONLISTENERPUBLICVOIDACTIONPERFORMEDACTIONEVENTETABLEVALUEVREMOVEALLELEMENTSINTYEARINTEGERYEARCOMBOBOXGETSELECTEDITEMINTMONTHINTEGERMONTHCOMBOBOXGETSELECTEDITEMINTDAYINTEGERDAYCOMBOBOXGETSELECTEDITEMINTCOLUMNCOUNTTABLECOLUMNVSIZEVECTORORDERFORMVDAOSORDERFORMOFDAYYEAR“MONTH“DAYFORINTROW0ROWTABLECOLUMNVADD“编号“TABLECOLUMNVADD“台号“TABLECOLUMNVADD“开台时间“TABLECOLUMNVADD“消费金额“VECTORVECTORDAOSMENUFORINTI0ITABLECOLUMNVADD“日期“TABLECOLUMNVADD“开台总数“TABLECOLUMNVADD“消费总额“TABLECOLUMNVADD“平均消费额“TABLECOLUMNVADD“最大消费额“TABLECOLUMNVADD“最小消费额“TABLEVALUEVNEWVECTORTABLEMODELNEWDEFAULTTABLEMODELTABLEVALUEV,TABLECOLUMNVTABLENEWMTABLETABLEMODELSCROLLPANESETVIEWPORTVIEWTABLEPRIVATEVOIDJUDGELEAPYEARINTYEARIFYEAR1000IFYEAR4000DAYSOFMONTH229ELSEDAYSOFMONTH228ELSEIFYEAR40DAYSOFMONTH229ELSEDAYSOFMONTH228424年结账模块图44年结账汇总界面上图记录了酒店的月结账汇总界面,年结账报表功能提供了对一年营业情况的统计,包括一年中每天的营业额、每月的营业额、每月同一日期的总营业额,以及一年的总营业额。核心代码如下首先创建一个用于年结账界面的窗体,为窗体设置标题、大小等信息,具体代码如下PUBLICYEARDIALOGSUPERSETMODALTRUESETTITLE“年结账“SETBOUNDS60,60,860,620FINALJPANELPANELNEWJPANELGETCONTENTPANEADDPANEL,BORDERLAYOUTNORTHYEARCOMBOBOXNEWJCOMBOBOXYEAR

温馨提示

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

评论

0/150

提交评论