酒店管理系统JAVA代码
酒店管理系统 java实验报告

酒店管理系统 java实验报告实验报告:酒店管理系统(Java实现)一、实验目的本次实验旨在通过Java编程语言实现一个简单的酒店管理系统,以提升对面向对象编程的理解和实践能力。
具体目标包括:1. 掌握Java基础语法和面向对象编程概念;2. 学会设计并实现一个基本的酒店管理系统;3. 理解数据库在系统中的应用;4. 培养问题解决和团队协作能力。
二、实验内容1. 系统需求分析:对酒店管理系统的功能需求进行详细分析,明确系统需要实现的功能模块。
2. 系统设计:根据需求分析,设计系统的整体架构和数据库结构,包括数据表的设计。
3. 系统实现:使用Java编程语言,实现酒店管理系统的各个功能模块,包括客户管理、房间管理、预定管理、入住管理、结账管理等。
4. 系统测试:对系统进行详细的测试,确保各功能模块正常运行,数据操作准确无误。
5. 实验总结:对实验过程进行总结,分析实验中的收获与不足,提出改进建议。
三、实验步骤及结果1. 系统需求分析:通过与酒店管理人员交流,明确酒店管理系统需要实现的功能模块,如客户管理、房间管理、预定管理、入住管理、结账管理等。
2. 系统设计:根据需求分析,设计系统的整体架构和数据库结构。
采用Java的JDBC技术连接数据库,使用MySQL作为数据库管理系统。
设计了客户表、房间表、预定表、入住表、结账表等数据表,并定义了各表之间的关系。
3. 系统实现:使用Java编程语言,实现酒店管理系统的各个功能模块。
具体实现过程如下:a. 客户管理模块:实现添加、删除、修改和查询客户信息的功能。
通过JDBC连接数据库,执行相应的SQL语句完成客户数据的增删改查操作。
b. 房间管理模块:实现添加、删除、修改和查询房间信息的功能。
同样使用JDBC连接数据库,执行相应的SQL语句完成房间数据的增删改查操作。
c. 预定管理模块:实现客户预定房间的功能。
当客户预定房间时,系统会检查房间是否可用,并将预定信息保存到预定表中。
Java课程设计报告 酒店客房管理系统

《Java网络编程》课程设计报告酒店客房管理指导教师:***班级: 1303班组长:*组员: ****完成日期:2016年6月20号运城学院计算机科学与技术系目录第一章问题定义 (3)第二章系统需求分析 (3)2.1 系统建设目标 (3)2.2 可行性分析 (3)2.2.1 技术可行性 (4)2.2.2 经济可行性 (5)2.2.3 运行可行性 (5)25565 63DD 揝\37898 940A 鐊39237 9945 饅30392 76B8皸24587 600B 怋*37451 924B 鉋2.2.4 法律可行性 (5)2.3 系统需求分析 (5)第三章系统总体设计 (6)3.1 系统总体结构设计 (6)3.2 使用结构化方法进行系统分析 (6)3.2.1系统功能建模 (6)3.2.2 学生宿舍管理系统的E-R图 (6)第四章系统的详细设计及其实现 (7)4.1 注册页面 (8)4.2 用户登录 (8)4.3 入住登记 (9)4.4 离店结账并生成结账报表 (11)4.5 房间增加 (13)4.6 房间删除 (14)4.7 房间查询 (15)4.8 房间更新 (15)4.9 客户查询 (16)Z30476 770C 県8Y|g33602 8342 荂-第五章系统测试 (16)165.2 测试方法...................................................175.3 测试步骤...................................................175.4 测试过程...................................................175.5 测试结论...................................................18第六章课程设计体会 (18)第一章问题定义随着人类社会进入信息时代,计算机越来越多地活跃在社会各个领域,成为不可缺少的工具,尤其在管理方面,管理软件的出现使大量繁琐复杂的问题变得简单易行。
基于JAVA的酒店管理系统的设计与实现(毕业论文)

Key-scale hotels; SQL Server 20098 R2
第一章 绪论
酒店管理系统对于现代化企事业单位来说,就像一个润滑剂,使原本大量
且复杂的人事数据工作变得简单并且方便,并且对于企事业的领导者来说,它使
领导者对员工信息一目了然。在当前社会中,办公自动化已经在企业办公中无处
摘 要
当前酒店管理系统己经得到了充足的发展和完善,一些大的酒店购买了功能强大、数据量处理快速、客户行为研究的软件,借此来提升酒店的核心竞争力。
但是对于一些中小规模的酒店而言,昂贵的系统花费、专人的维护是不现实的,
也是非常不灵活的。一款简单、灵活、经济适用的中小型酒店管理系统的开发非
常具有市场前景。
2.本文的开发过程遵守软件工程的理论,详细地介绍了中小型酒店管理系统的开发背景、研究现状、系统业务需求、功能需求、非功能需求、系统架构设计、数据库设计、安全设计,给出了核心功能模块的界面实现和代码实现过程,并对系统做了较为详细的功能测试和性能测试,保证了系统的正确性。
通过在酒店的模拟运行,本系统能够实现简化酒店原有工作流程、提高人员
2. Specific design for hotelinformation management system. Firstly, determine the overall design of the system overview of basic management modules. Secondly, design of key technologies, development environment and database in detail, which involved in the development of the system. Finally, we drawn diagrams for the implementation of the main function modules, including room management module,financial statistics module, personnel management module and warehouse management module.
java语言编程应用案例分享

java语言编程应用案例分享java语言是一种广泛应用于软件开发领域的编程语言,具有跨平台、面向对象、安全性高等特点。
在实际应用中,java语言可以用于开发各种类型的应用程序。
下面列举了10个以java语言编写的应用案例,分别涉及到不同领域和应用场景。
1. 学生信息管理系统学生信息管理系统是一种常见的应用程序,用于管理学校或教育机构的学生信息。
通过java语言可以实现学生信息的录入、查询、修改和删除等功能,使学校的学生信息管理更加便捷和高效。
2. 图书馆管理系统图书馆管理系统是一种用于管理图书馆藏书和借阅信息的应用程序。
通过java语言可以实现图书的录入、查询、借阅和归还等功能,方便读者进行图书的管理和借阅。
3. 在线购物系统在线购物系统是一种通过互联网进行商品购买的应用程序。
通过java语言可以实现用户注册、商品浏览、购物车管理、订单生成等功能,提供给用户方便快捷的购物体验。
4. 酒店管理系统酒店管理系统是一种用于管理酒店客房和预订信息的应用程序。
通过java语言可以实现客房的查询、预订和退订等功能,方便酒店管理人员进行客房的管理和预订。
5. 在线银行系统在线银行系统是一种通过互联网进行银行业务操作的应用程序。
通过java语言可以实现用户登录、账户查询、转账汇款、账单管理等功能,方便用户进行各种银行操作。
6. 医院挂号系统医院挂号系统是一种用于管理医院患者挂号和预约信息的应用程序。
通过java语言可以实现患者的挂号、预约和退号等功能,方便医院管理人员进行患者的管理和预约。
7. 电影票订购系统电影票订购系统是一种通过互联网进行电影票购买的应用程序。
通过java语言可以实现用户注册、电影浏览、选座购票等功能,方便用户进行电影票购买和选座。
8. 人事管理系统人事管理系统是一种用于管理企业员工信息和薪酬福利的应用程序。
通过java语言可以实现员工信息的录入、查询和薪酬福利管理等功能,方便企业进行人事管理。
基于java的订餐管理系统的设计与实现

基于java的订餐管理系统的设计与实
现
1. 需求分析:明确订餐管理系统的功能需求,包括用户注册/登录、菜单浏览、订单管理、支付处理等。
确定系统的数据需求,例如菜品信息、用户信息、订单信息等。
2. 系统设计:根据需求分析的结果,进行系统架构设计和模块划分。
确定数据库表结构,设计实体关系图(ERD)。
制定系统的界面设计,包括用户界面和管理界面。
3. 技术选择:选择适合项目需求的技术栈,如 Java 后端框架(Spring、Spring Boot 等)、数据库(MySQL、Oracle 等)、前端框架(Vue.js、React 等)。
4. 数据库实现:根据设计的数据库表结构,创建数据库并进行数据操作的实现。
包括插入、查询、更新和删除数据的功能。
5. 后端实现:使用选定的 Java 框架和技术,实现业务逻辑和数据处理功能。
包括用户认证、菜单管理、订单处理、支付接口等。
6. 前端实现:使用选定的前端框架,开发用户友好的界面,实现与后端的交互。
确保界面的响应性和用户体验。
7. 系统测试:进行全面的测试,包括功能测试、性能测试、安全测试等。
修复发现的缺陷并进行回归测试。
8. 部署与发布:将系统部署到生产环境,并进行最终的测试和验证。
发布系统并提供用户培训和技术支持。
通过以上步骤,基于 Java 的订餐管理系统可以实现设计与开发的目标。
这个项目涉及多个方面的技能和知识,需要团队成员之间的协作和有效的项目管理。
基于java的酒店管理系统的设计与实现

基于java的酒店管理系统的设计与实现酒店管理系统是一个涉及到多个功能模块的系统,包括客房管理、预订管理、入住管理、账单管理等。
下面是一个基于Java的酒店管理系统的设计与实现的基本思路:1. 数据存储设计:使用关系型数据库管理系统(如MySQL)来存储酒店的各类数据,包括客房信息、预订信息、入住信息、账单信息等。
2. 数据库表设计:根据不同功能模块的需求,设计相应的表结构,并建立表之间的关联关系。
3. 客房管理:设计客房信息表,包括客房编号、客房类型、价格、入住状态等字段。
实现客房信息的增删改查功能,可以添加新的客房、修改客房信息、删除客房、查询客房信息等。
4. 预订管理:设计预订信息表,包括预订编号、客房编号、客户姓名、预订日期、入住日期等字段。
实现预订信息的增删改查功能,可以添加新的预订信息、修改预订信息、取消预订、查询预订信息等。
5. 入住管理:设计入住信息表,包括入住编号、客房编号、客户姓名、入住日期、退房日期等字段。
实现入住信息的增删改查功能,可以添加新的入住信息、修改入住信息、退房结算、查询入住信息等。
6. 账单管理:设计账单信息表,包括账单编号、客房编号、客户姓名、入住日期、费用等字段。
实现账单信息的增删改查功能,可以生成账单、查询账单、结算账单等。
7. 用户界面设计:使用Java Swing或JavaFX等图形界面库来实现用户界面,包括输入框、按钮、表格等组件来展示和操作相关信息。
8. 系统逻辑设计:根据上述功能模块的需求,实现相应的功能方法和业务逻辑,包括数据库访问、数据校验、业务处理等。
9. 用户管理:设计用户信息表,包括用户名、密码、权限等字段。
实现用户的登录和鉴权功能,保证只有具有相应权限的用户可以访问和操作系统的功能。
除了上述基本的功能模块,酒店管理系统还可以根据具体需求进行扩展和优化,例如增加会员管理、房间维护、销售统计等功能。
基于Java的酒店管理系统的设计与实现需要充分考虑系统的可靠性、安全性和性能。
酒店管理系统毕业论文
衡阳财经工业职业技术学院毕业论文(设计)课题申报表一、申报课题人的有关资料二、课题名称四、审批意见xx学院毕业论文(设计)任务书题目:酒店管理系统学生姓名:_______系部:_____电子信息系_专业:_计算机应用__班级:xx计应综合x班指导老师:_____开题时间:完成时间:年月日衡阳财经工业职业技术学院教务处印制一、选题背景及意义二、研究的主要内容三、工作的重点与难点,拟采取的解决方案四、论文工作量及进度五、论文预期成果六、完成论文拟阅读的主要文献七、指导老师意见xx学院学生毕业论文(设计)题目:酒店系统管理姓名:xxx学号:系部:电子信息系专业:计算机应用班级:指导老师:开题时间:完成时间:衡阳财经工业职业技术学院教务处制酒店管理系统【摘要】随着社会经济的飞速发展,星级酒店日益增多,而酒店对客房管理的全面性更是刻不容缓。
在当今这个信息化的社会中,酒店必须借助计算机来进行现代化的信息管理,所以酒店管理系统能够为酒店管理人员提供一个既快速便捷又安全可靠的管理平台。
科学技术的不断提高和计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已经进入人类社会的各个领域并发挥着举足轻重的作用。
作为计算机应用的一部分,人工化管理已不能满足客户的需求,例如不能及时查询客房正常情况和人工管理的费时性,也为了能使管理人员可以轻松快捷地完成酒店客房管理任务,实现无纸化、电子化和智能化管理,更快速地了解酒店各客房的所有信息。
这些优点能够极大地提高酒店管理效率,也正是酒店实现正规化管理的开始。
酒店管理系统的开发主要包括后台数据库的建立和维护以及前端应用程序的开发两方面。
对于前者来说是要求建立起数据一致性、完整性高度的安全性,而对于后者则只要求应用程序功能齐全,通俗易懂即可。
我在本次毕业设计中采用了JAVA和SQLServer2005数据库连接。
JAVA可以在不同的硬件平台和不同的操作系统上执行,有着很好的跨平台性。
宾馆客房系统代码
宾馆客房系统代码第一页面中标签控件属性如下: Object Label1: Tlabel Left=57 Top=78Width=36Height=12Caption='房间号'Object Label1: Tlabel Left=57Top=110Width=48Height=12Caption='客户姓名'Object Label1: Tlabel Left=57Top=142Width=48Height=12Caption='身份证号码'Object Label1: Tlabel Left=57Top=174Width=48Height=12Caption='入住时间'Object Label1: Tlabel Left=57Top=214Width=48Height=12Caption='入住理由'Object Label1: Tlabel Left=312 Top=78Width=24Height=12Caption='房价'Object Label1: TlabelLeft=312Top=110Width=48Height=12Caption='住宿天数'Object Label1: TlabelLeft=312Top=142Width=48Height=12Caption='值班人员'Object Label1: TlabelLeft=312Top=174Width=48Height=12Caption='电话号码'Object Label1: TlabelLeft=312Top=214Width=48Height=12Caption='结算费用'Object Label1: TlabelLeft=224Top=24Width=120Height=20Caption='顾客入住登记'Font.Height=-20 ='宋体' 第一页面中数据编辑类控件属性如下: Object DBEdit1: TDBEditLeft=129Top=79Width=121Height=20DataField='房间号'DataSource=Datasource1Taborder=0Object DBEdit1: TDBEdit Left=129Top=111Width=121Height=20DataField='客户姓名' DataSource=Datasource1 Taborder=1Object DBEdit1: TDBEdit Left=129Top=143Width=121Height=20DataField='身份证号码' DataSource=Datasource1 Taborder=2Object DBEdit1: TDBEdit Left=129Top=175Width=121Height=20DataField='入住时间' DataSource=Datasource1 Taborder=3Object DBEdit1: TDBEdit Left=129Top=207Width=121Height=20DataField='入住理由' DataSource=Datasource1 Taborder=4Object DBEdit1: TDBEdit Left=129Top=79Width=121Height=20DataField='房价' DataSource=Datasource1 Taborder=5Object DBEdit1: TDBEdit Left=382Top=111Width=121Height=20DataField='入住天数' DataSource=Datasource1 Taborder=6Object DBEdit1: TDBEdit Left=382Top=143Width=121Height=20DataField='值班人员' DataSource=Datasource1 Taborder=7Object DBEdit1: TDBEdit Left=382Top=175Width=121Height=20DataField='电话号码' DataSource=Datasource1 Taborder=8Object DBEdit1: TDBEdit Left=382Top=207Width=121Height=20DataField='结算费用' DataSource=Datasource1 Taborder=9第一页面中数据连接类控件属性如下:Object Table1: TtableActive=TureTableName=宾馆住宿系统.dbLeft=488Top=64Object DataSource1: TdataSourceDataSet=Table1Object DBNavigator1: TDBNavigatorLeft=184Top=224Width=240Height=25DataSource=DataSource1Flat=TrueTabOrder=10Procedure TForm1.Edit1Click(Sender:TObject); BeginEdit2.Text:=' 'Edit3.Text:=' ';End;Procedure TForm1.Edit2Click(Sender:Tobject); BeginEdit1.Text:=' 'Edit3.Text:=' ';End;Procedure TForm1.Edit3Click(Sender:Tobject);BeginEdit2.Text:=' 'Edit1.Text:=' ';End;执行按钮的程序代码如下:Procedure TForm1.Button1Click(Sender:Tobject);BeginTable1.refresh;With table1 doTryDisablecontrols;Filtered:=false;If edit1.text<>' ' then memo1.text:='客户姓名'+' ' ' '+edit1.text+' ' ' ';If edit2.text<>' ' then memo1.text:='房间号'+' ' ' '+edit2.text;If edit3.text<>' ' then memo1.text:='入住时期'+' ' ' '+edit1.text+' ' ' ';Filter:=memo1.text;Filtered:=true;FinallyEnablecontrols;If dbedit1.text=' ' then begin Messagebeep(1);Showmessage(' 没有符合条件的记录,请确认条件或放弃查询~'); If messageDlg(' 是否继续查询,只有结束查询才能作其他操作~',mtinformation,[mbyes,mbno],0)=mrno then beginFiltered:=false;Table1.close;Table1.open;End;End else beginIf messageDlg('是否继续查询,只有结束查询才能作其他操作~',mtinformation,[mbyes,mbno],0)=mrno then beginFiltered:=false;Table1.close;Table1.open;End;End;End;End;第二页各个控件的属性描述如下:Object Tabsheet2: TtabsheetCaption=客房查询Object Labell2: TlabelLeft=215Top=10Width=114Height=19Caption=客户查询系统Font.Height=-19=宋体Object Labell3: Tlabel Left=24Top=200Width=60Height=12Caption=按姓名查询Object Labell4: Tlabel Left=24Top=224Width=60Height=19Caption=按房号查询Object Labell5: Tlabel Left=23Top=246Width=60Height=12Caption=按时期查询endObject DBFrid1: TDBGrid Left=8Top=40Width=553Height=140DataSource=DataSource1 TitleFont.Height=-12 =宋体Object Edit1:TeditLeft=93Top=197Width=102Hdight=20Text=Edit1Object Edit2:TeditLeft=93Top=218Width=103Hdight=20Text=Edit2Object Edit3:TeditLeft=93Top=241Width=103Hdight=20Text=Edit3Object Button1:TbuttonLeft=232Top=208Width=75Height=25Caption='执行查询'Object Memo1:TmemoLeft=372Top=189Width=185Height=61Visible=False第三页面命令控件代码:Procedure TForm1.Button2Click(Sender:Tobject); VarSum1:real;S:string;Bookmark1:tbookmark; BeginSum1=0.00;Bookmark1:=table1.getbookmark;Table1.disablecontrols; Table1.first;While not table1.eof do BeginSum1:=sum1+table1.fieldbyname('结算费用')。
【精品】基于JAVA酒店管理系统的设计与实现_毕业论文设计
湖南科技大学潇湘学院毕业设计(论文)题目酒店管理系统作者学院计算机科学与工程学院专业计算机科学与技术学号指导教师摘要本文完整的描述了一个酒店管理系统的设计与实现的过程,采用真正的跨平台Java技术为基础,利用eclipse编程平台结合Oracle 数据库,完成了酒店管理系统的功能。
本系统是基于GUI的图形界面系统,使用了MVC框架,采用JAVA语言和Oracle 数据库开发完成的酒店管理系统。
该系统的主要目标是针对酒店客房住房管理进行计算机的管理,系统主要实现了以下模块:房间管理模块,营销管理模块,商品管理模块,系统设置模块。
本酒店管理系统可供用户进行房间管理、客户查询、营销管理以及功能强大的消费管理的功能。
用户只需要简单的输入,所有数据都由数据库管理系统管理。
本文中数据库服务器端采用了 Oracle 作为后台数据库,为数据的安全和程序的稳定运行提供了保障。
关键词:酒店管理系统 JAVA OracleABSTRACTThis paper describes a complete hotel management system design and implementation of the process, USES the real cross-platform Java technology as the foundation, use eclipse programming platform combined with Oracle database, the completion of the hotel management system function.This system is based on the GUI GUI system, using MVC framework, the JA V A language and Oracle database development completed hotel management system. The system's main goal is for hotel rooms housing management computer management, system mainly realizes the following module: room management module, marketing management module, commodities management module, the system Settings module.The hotel management system is available for users room management, marketing management and customer inquires powerful function, the consumption of the function of management. The user need only simple input, all the data are made by the database management system management. This paper database server in the Oracle as backend database, data security and procedures for the stable operation of the provided protection.Key Words:Hotel Management System;Oracle;Java目录第一章绪论.............................................................................................................................................. - 1 -1.1研究背景...................................................................................................................................... - 1 -1.2国内外研究现状.......................................................................................................................... - 1 -1.3研究意义...................................................................................................................................... - 2 -1.4研究内容和研究方法.................................................................................................................. - 2 -1.4.1研究内容........................................................................................................................... - 2 -1.4.2研究方法........................................................................................................................... - 2 - 第二章系统分析...................................................................................................................................... - 3 -2.1可行性分析.................................................................................................................................. - 3 -2.1.1 技术可行性分析 .............................................................................................................. - 3 -2.1.2 经济可行性分析.............................................................................................................. - 3 -2.1.3 操作可行性分析.............................................................................................................. - 3 -2.1.4 其他影响系统开发的因素.............................................................................................. - 3 -2.2 需求分析..................................................................................................................................... - 3 -2.2.1 用户需求说明.................................................................................................................. - 3 -2.3 系统需求说明............................................................................................................................. - 5 -2.4项目开发环境及工具介绍.......................................................................................................... - 5 - 第三章概要设计...................................................................................................................................... - 7 -3.1功能模块...................................................................................................................................... - 7 -3.2 设计思想以及框架..................................................................................................................... - 9 -3.2.1设计思想........................................................................................................................... - 9 -3.2.2框架................................................................................................................................... - 9 -3.3数据库设计.................................................................................................................................. - 9 -3.3.1 ER图 .............................................................................................................................. - 10 -3.3.2 数据字典........................................................................................................................ - 12 - 第四章详细设计.................................................................................................................................... - 16 -4.1项目主要业务模块.................................................................................................................... - 16 -4.1.1登陆界面模块................................................................................................................. - 16 -4.1.2房间管理模块................................................................................................................. - 16 -4.1.3营销管理模块................................................................................................................. - 16 -4.1.4商品管理模块................................................................................................................. - 16 -4.1.5系统设置模块................................................................................................................. - 16 -4.2运行控制.................................................................................................................................... - 16 -4.2.1运行流程......................................................................................................................... - 17 -4.2.2 测试................................................................................................................................ - 17 -4.2.3 测试结果........................................................................................................................ - 33 - 第五章结束语........................................................................................................................................ - 34 - 参考文献.................................................................................................................................................. - 35 - 致谢.......................................................................................................................................................... - 36 - 附录.......................................................................................................................................................... - 37 -第一章绪论1.1研究背景酒店业是一个前景广阔而又竞争激烈的行业。
酒店管理系统源代码
西彼科技有限责任公司参考源码酒店管理系统彼岸2011-03-31本段源代码,参考与阳光酒店管理系统编写的系统包Sunsdk包1)System包CsHashtable.java/** @(#)CsHashtable.java 1.24 03/12/19** public class** Copyright 2006 CazoSoft, Inc. All rights reserved.*/package sunsdk.system;import java.util.*;/*** <code> CsHashtable </code>* <p>* 该类的作用是封装哈希表* <p>* <strong>注意: </strong> 本类使用的哈希表方法put, 可能存在不安全因素* <p>* 相关类:Hashtable** @author 鲜强* @version 2006.3.28 22:18* @see java.util.Hashtable* @since CAZOSOFT 1.0*/public class CsHashtable {/*** 静态变量功能: 构造一个hashtable 供其他函数使用*/private static Hashtable hTable = new Hashtable();/*** 构造函数功能: 构造函数为静态的不能创建对象*/private CsHashtable() {}/*** 放入对象函数功能: 把对象放入哈希表,对象为Object类型** @param key :* 键值, Object 对象* @param value :* 对象, Object 对象*/public static void put(Object key, Object value) {hTable.put(key, value);}/*** 返回对象函数功能: 从哈希表中取出对象,返回为Object类型** @param key :* 键值* @return : 一个Object 对象*/public static Object get(Object key) {return hTable.get(key);}/*** 返回大小函数功能: 返回哈希表的大小** @return : 一个int 哈希表长度值*/public static int size() {return hTable.size();}/*** 移除一个对象** @param key : 接受一个要移除的键值*/public static Object remove(Object key) {return hTable.remove(key);}}/**Sunini.java*############################################################################## ** [ 项目名] :* [ 公司名] : SunshineSOFT* [ 模块名] : 对于INI文件的相关操作* [ 文件名] : sunini.java* [ 相关文件] : config.ini* [ 文件实现功能] : 读取和保存INI文件* [ 作者] : 顾俊* [ 版本] : 1.1* ----------------------------------------------------------------------------* [ 备注] :* ----------------------------------------------------------------------------* [ 修改记录] :** [ 日期] [版本] [修改人] [修改内容]* 2006/03/31 1.0 顾俊创建* 2006/04/06 1.1 顾俊修改读取函数* ##--------------------------------------------------------------------------* 版权所有(c) 2006-2007, SunshineSOFT Corporation* --------------------------------------------------------------------------##** [ 函数说明] :** [## private sunini() {} ]:* 功能: 构造函数** [## public static String getIniKey (String k) {} ]:* 功能: 获得INI文件中的指定键的键值** [## public static void setIniKey (String k, String v) {} ]:* 功能: 设置k键的键值为v对象** [## public static void saveIni (String k[]) {} ]:* 功能: 将k字符数组中所有键所对应的键值保存到INI文件中** [ 遗留问题] : setIniKey ()方法不能处理键值中的转义字符**############################################################################## */package com.sunshine.sunsdk.system;import java.util.*;import java.io.*;public class sunini {private static Properties ini = null;static {try {ini = new Properties ();ini.load (new FileInputStream ("config.ini"));}catch (Exception ex) {System.out.println ("Load CONFIG.INI is false!!");}//End try}/**=======================================================================* ** [## private sunini() {} ]: 构造函数* 参数:无* 返回值:无* 修饰符:private* 功能:防止实例化sunini对象**=======================================================================** */private sunini() {}/**=======================================================================* ** [## public static String getIniKey (String k) {} ]:* 参数:String对象表示键* 返回值:String对象表示k键所对应的键值,如果失败则返回空串* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:获得INI文件中的指定键的键值**=======================================================================** */public static String getIniKey (String k) {if(!ini.containsKey (k)) { //是否有k 这个键System.out.println ("The [ " + k + " ] Key is not exist!!");return "";}//End if(!ini.containsKey (k))return ini.get (k).toString ();}/**=======================================================================* ** [## public static void setIniKey (String k, String v) {} ]:* 参数:String k对象表示键,String v对象表示键值* 返回值:无* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:设置k键的键值为v对象**=======================================================================** */public static void setIniKey (String k, String v) {if(!ini.containsKey (k)) { //是否有k 这个键System.out.println ("The [ " + k + " ] Key is not exist!!");return;}//End if(!ini.containsKey (k))ini.put (k, v);}/**=======================================================================* ** [## public static void saveIni (String k[]) {} ]:* 参数:String k[]字符串数组表示要保存的所有键* 返回值:无* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:将k字符数组中所有键所对应的键值保存到INI文件中**=======================================================================** */public static void saveIni (String k[]) {try {FileWriter fw = new FileWriter ("config.ini");BufferedWriter bw = new BufferedWriter ( fw );//循环变量i是k字符串数组的下标for (int i = 0; i < k.length; i++) {bw.write (k[i] + "=" + getIniKey (k[i]));bw.newLine ();}//End forbw.close ();fw.close ();}catch (Exception ex) {System.out.println ("Save CONFIG.INI is false.");}//End try}}Suntools.java/***############################################################################## ** [ 项目名] :* [ 公司名] : SunshineSOFT* [ 模块名] : 工具函数* [ 文件名] : suntools.java* [ 相关文件] :* [ 文件实现功能] : 测试数据是否合法及流水号自动分配* [ 作者] : 顾俊* [ 版本] : 1.2* ----------------------------------------------------------------------------* [ 备注] :* ----------------------------------------------------------------------------* [ 修改记录] :** [ 日期] [版本] [修改人] [修改内容]* 2006/04/07 1.0 顾俊建立isDate()函数* 2006/04/08 1.1 顾俊添加函数#A, #B, #C, #D* 2006/04/08 1.2 顾俊添加函数#E, #F, #G* ##--------------------------------------------------------------------------* 版权所有(c) 2006-2007, SunshineSOFT Corporation* --------------------------------------------------------------------------##** [ 函数说明] :** [## private suntools () {} ] :* 功能: 防止实例化suntools对象** [## public static boolean isDate (String date) {} ]:* 功能: 判断日期字符串是否合法函数** [## public static boolean isNum (String in) {} ]: #A* 功能: 测试字符串是否由数字(0-9)组成** [## public static boolean isNum (String in, int length, double min, double max) {} ]: #B* 功能: 测试字符串表示的数值及范围,且字符串只能是数字组成** [## public static String getNumber (int type) {} ]: #C* 功能: 自动分配单据编号, 自动递增** [## public static void savNumber (String num, int type) {} ]: #D* 功能: 将已用编号保存到INI文件** [## public static double getConsumeFactor(String sDate, String eDate) {} ]: #E* 功能: 计算酒店计费天数按INI文件中设置的** [## public static double getClockFactor(String sDate, String eDate) {} ]: #F* 功能: 计算酒店钟点房计费系数按INI文件中设置的** [## public static String getConsumeHour(String sDate, String eDate) {} ]: #G* 功能: 计算两个时间之间有几小时几分*** [ 遗留问题] :***############################################################################## */package com.sunshine.sunsdk.system;import java.util.*;import java.text.*;import java.sql.*;import com.sunshine.sunsdk.sql.*;public class suntools {public static final int Number_RZ = 0; //表示销售单号public static final int Number_YD = 1; //表示进货单号public static final int Number_JS = 1; //表示进货单号/**=======================================================================* ** [## private suntools () {} ]: 构造函数* 参数:无* 返回值:无* 修饰符:private* 功能:防止实例化suntools对象**=======================================================================** */private suntools () {}/**=======================================================================* ** [## public static boolean isDate (String date) {} ]:* 参数:String对象表示日期的字符串* 返回值:boolean 合法返回true* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:判断日期字符串是否合法函数**=======================================================================** */public static boolean isDate (String date) {SimpleDateFormat sdf = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");String isdate = date;if(date.length() == 10) //如果只有日期,函数自动加上00:00:00 isdate = date + " 00:00:00";try {sdf.parse (isdate);return true;}catch (Exception ex) {System.out.println ("feetools.isDate(): The DATE format is error .");return false;}}/**=======================================================================* ** [## public static boolean isNum (String in) {} ]:* 参数:String对象表示被测字符串* 返回值:boolean 合法返回true* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:测试字符串是否由数字(0-9)组成**=======================================================================** */public static boolean isNum (String in) {return isNum (in, 0, 0, 0);}/**=======================================================================* ** [## public static boolean isNum (String in, int length, double min, double max) {} ]:* 参数:String对象表示被测字符串* length变量表示字符串最大长度,取值0,表示没有长度限定* min,max变量限定了String对象表示的数值范围,当(length > 0)时* 返回值:boolean 合法返回true* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:测试字符串表示的数值及范围,且字符串只能是数字组成**=======================================================================** */public static boolean isNum (String in, int length, double min, double max) {String num = in;int point = 0; //'.'的个数int len = num.length ();if(length > 0) {if(len > length || len == 0) { //判断字符串长度,不合法空返回falseSystem.out.println ("suntools.isNum(): Length error.");return false;}//Endif}//End if(length > 0)elseif(len == 0) { //判断字符串是否为空,空返回falseSystem.out.println ("suntools.isNum(): String is NULL");return false;}//End if(len == 0)for (int i = len - 1; i >=0; i--) { //判断字符串只能是数字char ac = num.charAt (i);if(ac == '.' && point == 0 && i!= 0) { //如果是'.'字符,且是第一次出现,且不是只有一个点if(i > len - 4) { //判断小数位只能是两位point++;continue;}//Endif}//Endifif(ac < '0' || ac > '9' ) {System.out.println ("suntools.isNum(): Character isn't ( '0' - '9' )");return false;}//Endif}//Endforif(length !=0) {double s = Double.parseDouble (num); //现在len为字符串表示的数值if(s < min || s >max) { //限制范围min-max之间System.out.println ("suntools.isNum(): Amount limit error. ");return false;}//Endif}//End if(length != 0)return true;}/**=======================================================================* ** [## public static String getNumber (int type) {} ]:* 参数:int变量表示要获得什么类型的单号(见类头常量)* 返回值:String对象: 单号;* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:自动分配单据编号, 自动递增**=======================================================================** */public static String getNumber (int type) {GregorianCalendar gc = new GregorianCalendar();String tp, number, month, day; //单号标头, 单号记数位, 为月份, 为天int numLen = 0; //单号的默认位数if(type == Number_RZ) { //要获取销售单号tp = sunini.getIniKey ("LodgName");number = sunini.getIniKey ("LodgNumber");}else if(type == Number_YD){ //要获取进货单号tp = sunini.getIniKey ("EngaName");number = sunini.getIniKey ("EngaNumber");}else {tp = sunini.getIniKey ("ChouName");number = sunini.getIniKey ("ChouNumber");}numLen = number.length (); //得到单号的默认位数number = Integer.parseInt (number) + 1 + ""; //将单号增1,再转成字符串//判断记数号是否超位(超出要求长度)if(number.equals ((int)Math.pow (10, numLen - 1) + "") && number.length() > 1)number = number.substring(1); //单号记数位清零//for循环,用'0'为number补位(i = 当前号码位数, i < numLen)for (int i = number.length (); i < numLen; i++) {number = "0" + number;}//Endfor//为月份补'0'month = gc.get (GregorianCalendar.MONTH) + 1 + "";if( month.length() == 1)month = "0" + month;//为天补'0'day = gc.get (GregorianCalendar.DAY_OF_MONTH) + "";if( day.length () == 1)day = "0" + day;//连接单号标头,日期,记数位;组成单据号码tp = tp + gc.get (GregorianCalendar.YEAR) + month + day + number;return tp; //返回单号}/**=======================================================================* ** [## public static void savNumber (String num, int type) {} ]:* 参数:String对象表示要保存的单号* int变量表示要保存什么类型的单号(见类头常量)* 返回值:无* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:将已用编号保存到INI文件**=======================================================================** */public static void savNumber (String num, int type) {//INI文件中的键名String ini[] = { "[SOFTINFO]", "UserName", "CompName", "[CONFIG]", "Soft_First","Default_Link" , "Default_Page", "Sys_style", "[NUMBER]","LodgName", "LodgNumber", "EngaName", "EngaNumber", "ChouName","ChouNumber", "[HABITUS]", "Ck_Habitus", "Ck_Minute", "[PARTTIME]","In_Room", "Out_Room1", "Out_Room2", "InsuDay", "ClockRoom1","ClockRoom2", "InsuHour1", "InsuHour2", "[JDBC]", "DBFname","UserID", "Password", "IP", "Access", "[ODBC]", "LinkName" };String bt;if(type == Number_RZ) {bt = sunini.getIniKey ("LodgName");sunini.setIniKey ("LodgNumber", num.substring (bt.length () + 8));}else if(type == Number_YD){bt = sunini.getIniKey ("EngaName");sunini.setIniKey ("EngaNumber", num.substring (bt.length () + 8));} else{bt = sunini.getIniKey ("ChouName");sunini.setIniKey ("ChouNumber", num.substring (bt.length () + 8));}//保存到INI文件sunini.saveIni (ini);}/**=======================================================================* ** [## public static double getConsumeFactor(String sDate, String eDate) {} ]:* 参数:String sDate对象表示开始时间* String eDate变量表示结束时间* 返回值:double* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:计算酒店计费天数按INI文件中设置的**=======================================================================** *///获得消费系数public static double getConsumeFactor(String sDate, String eDate) {//获得开始日期时间的--年--月--日--时--分--秒String syh [] = sDate.trim ().split(" ");String symd[] = syh[0].trim().split("-");String shms[] = syh[1].trim().split(":");int sy = Integer.parseInt(symd[0]);int sM = Integer.parseInt(symd[1]);int sd = Integer.parseInt(symd[2]);int sh = Integer.parseInt(shms[0]);int sm = Integer.parseInt(shms[1]);int ss = Integer.parseInt(shms[2]);//获得结束日期时间的--年--月--日--时--分--秒String eyh [] = eDate.trim ().split(" ");String eymd[] = eyh[0].trim().split("-");String ehms[] = eyh[1].trim().split(":");int ey = Integer.parseInt(eymd[0]);int eM = Integer.parseInt(eymd[1]);int ed = Integer.parseInt(eymd[2]);int eh = Integer.parseInt(ehms[0]);int em = Integer.parseInt(ehms[1]);int es = Integer.parseInt(ehms[2]);//获得sDate的long值long sdt = new Timestamp(sy, sM, sd, sh, sm, ss, 0).getTime();//获得eDate的long值long edt = new Timestamp(ey, eM, ed, eh, em, es, 0).getTime();double db = 0;if(sdt > edt) { //不合法开始日期一定要小于结束日期db = -1;return db;}//Endifif(sdt == edt) { //无时间差db = 0;return db;}//Endifint insuDay = (int)(edt - sdt)/3600000;if(insuDay < 24) { //入住不到一天if(Integer.parseInt(sunini.getIniKey("InsuDay")) == 1)db = 1; //按全天计费else {if(insuDay > 1 && insuDay < 12)db = 0.5; //如果不按全天计费,则大于1小时按半天计费elsedb = 1; //如果不按全天计费,则大于12小时按全天计费}//Endifreturn db;}//Endif//几点之后按新的一天计费int inRoom = Integer.parseInt(sunini.getIniKey("In_Room"));if(sh < inRoom) {db = 0.5;}//Endifsh = inRoom; //多的时间已经加了系数,去掉多余的//几点之后按半天计费int outRoom1 = Integer.parseInt(sunini.getIniKey("Out_Room1"));int outRoom2 = Integer.parseInt(sunini.getIniKey("Out_Room2"));if(eh > outRoom1 && eh < outRoom2) {db = db + 0.5;eh = outRoom1; //多的时间已经加了系数,去掉多余的}else if(eh >= outRoom2) {db = db + 1;eh = outRoom2;}//Endif//计算入住时间sdt = new Timestamp(sy, sM, sd, sh, sm, ss, 0).getTime();edt = new Timestamp(ey, eM, ed, eh, em, es, 0).getTime();db = db + (edt - sdt)/86400000;return db;}/**=======================================================================* ** [## public static double getClockFactor(String sDate, String eDate) {} ]:* 参数:String sDate对象表示开始时间* String eDate变量表示结束时间* 返回值:double* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:计算酒店钟点房计费系数按INI文件中设置的**=======================================================================** */public static double getClockFactor(String sDate, String eDate) {//获得开始日期时间的--年--月--日--时--分--秒String syh [] = sDate.trim ().split(" ");String symd[] = syh[0].trim().split("-");String shms[] = syh[1].trim().split(":");int sy = Integer.parseInt(symd[0]);int sM = Integer.parseInt(symd[1]);int sd = Integer.parseInt(symd[2]);int sh = Integer.parseInt(shms[0]);int sm = Integer.parseInt(shms[1]);int ss = Integer.parseInt(shms[2]);//获得结束日期时间的--年--月--日--时--分--秒String eyh [] = eDate.trim ().split(" ");String eymd[] = eyh[0].trim().split("-");String ehms[] = eyh[1].trim().split(":");int ey = Integer.parseInt(eymd[0]);int eM = Integer.parseInt(eymd[1]);int ed = Integer.parseInt(eymd[2]);int eh = Integer.parseInt(ehms[0]);int em = Integer.parseInt(ehms[1]);int es = Integer.parseInt(ehms[2]);//获得sDate的long值long sdt = new Timestamp(sy, sM, sd, sh, sm, ss, 0).getTime();//获得eDate的long值long edt = new Timestamp(ey, eM, ed, eh, em, es, 0).getTime();//获得时间差double db = 0;if(sdt > edt) { //不合法开始日期一定要小于结束日期db = -1;return db;}//Endif//获得两个时间之间有多少秒edt = (edt - sdt) / 1000;//--------------------------------------------------------------------//if(edt <= 60 * Integer.parseInt(sunini.getIniKey("ClockRoom1"))) { db = 0; //开房后几分钟开始计费,读INI文件设置return db;}//Endif//--------------------------------------------------------------------//if(edt / 60 < 60 * Integer.parseInt(sunini.getIniKey("ClockRoom2"))) { db = 1; //不足几小时按一个单位计费return db;}//Endif//--------------------------------------------------------------------////除以上可能的正常计费公式如下db = edt / 3600; //获得过去的小时数edt = edt % 3600 / 60; //获得多余的分钟数if(edt > Integer.parseInt(sunini.getIniKey("InsuHour2")) && edt <= Integer.parseInt(sunini.getIniKey("InsuHour1"))) {db = db + 0.5; //超过多少分,但小于多少分部分,收半价}else if(edt > Integer.parseInt(sunini.getIniKey("InsuHour2"))) {db = db + 1; //超过多少分的,收全价}//Endif//--------------------------------------------------------------------//return db;}/**=======================================================================* ** [## public static String getConsumeHour(String sDate, String eDate) {} ]:* 参数:String sDate对象表示开始时间* String eDate变量表示结束时间* 返回值:String* 修饰符:public static 可以不实例化对象而直接调用方法* 功能:计算两个时间之间有几小时几分**=======================================================================** */public static String getConsumeHour(String sDate, String eDate) {//获得开始日期时间的--年--月--日--时--分--秒String syh [] = sDate.trim ().split(" ");String symd[] = syh[0].trim().split("-");String shms[] = syh[1].trim().split(":");int sy = Integer.parseInt(symd[0]);int sM = Integer.parseInt(symd[1]);int sd = Integer.parseInt(symd[2]);int sh = Integer.parseInt(shms[0]);int sm = Integer.parseInt(shms[1]);int ss = Integer.parseInt(shms[2]);//获得结束日期时间的--年--月--日--时--分--秒String eyh [] = eDate.trim ().split(" ");String eymd[] = eyh[0].trim().split("-");String ehms[] = eyh[1].trim().split(":");int ey = Integer.parseInt(eymd[0]);int eM = Integer.parseInt(eymd[1]);int ed = Integer.parseInt(eymd[2]);int eh = Integer.parseInt(ehms[0]);int em = Integer.parseInt(ehms[1]);int es = Integer.parseInt(ehms[2]);//获得sDate的long值long sdt = new Timestamp(sy, sM, sd, sh, sm, ss, 0).getTime();//获得eDate的long值long edt = new Timestamp(ey, eM, ed, eh, em, es, 0).getTime();//获得时间差sdt = edt - sdt;//生成过去多少时间的字符串String t = sdt / 3600000 + "小时" + sdt % 3600000 / 60000 + "分";return t;}}ToCap.java/** @(#)ToCap.java 1.24 03/12/19** Copyright 2006 CazoSoft, Inc. All rights reserved.*/package sunsdk.system;/*** <code> ToCap </code>* <p>* 本类用于转化中文大写人民币** @author 鲜强* @version 22.14, 04/05/06* @since CAZOSOFT 1.0*/public class ToCap {/*** 用户设置大写钱数(100,000,000 (一亿)以内).** @param money :* String 接收用户的正实数.* @return : String 包括圆整或角分的中文大写人民币,如果不合法,将返回空(null) */public String setMoney(String money) {String re = null;double num;//测试数据是否合法try {num = Double.parseDouble(money.trim());if (num < 100000000 && num >= 0) {//合法, 使用字符串开始转换re = this.mySetMoney(money);}//end if} catch (Exception ex) {}//end try//返回值return re;}/*** 大写转换函数. 功能: 转换数字为中文大写** @param num :* int 接受整数* @return : String 大写数字零到玖.*/private String setDaXie(int num) {String re = null;switch (num) {case 0:re = "零";break;case 1:re = "壹";break;case 2:re = "贰";break;case 3:re = "叁";break;case 4:re = "肆";break;case 5:re = "伍";break;case 6:re = "陆";break;case 7:re = "柒";break;case 8:re = "捌";break;case 9:re = "玖";break;default:break;}return re;}/*** 处理大写人民币** @param num :* String 接收处理过的字符串(实为数字). * @return : 返回处理过的大写人民币.*/private String mySetMoney(String num) throws Exception {//要返回的字符串String re = "";//转换过程String setNum = null;int index = num.indexOf(".");//处理整数if (index == -1) {setNum = num;} else {setNum = num.substring(0, index);}int weiShu = setNum.length();if (weiShu > 0) {int leng = setNum.length();int numYuan = Integer.parseInt("" + setNum.charAt(weiShu - 1));String zhuanYuan = setDaXie(numYuan);re = zhuanYuan;//个位if (weiShu > 1) {int numShi = Integer.parseInt("" + setNum.charAt(weiShu - 2));String zhuanShi = setDaXie(numShi);//十位re = zhuanShi + "拾" + re;if (weiShu > 2) {int numBai = Integer.parseInt(""+ setNum.charAt(weiShu - 3));String zhuanBai = setDaXie(numBai);//百位re = zhuanBai + "佰" + re;if (weiShu > 3) {int numQian = Integer.parseInt(""+ setNum.charAt(weiShu - 4));String zhuanQian = setDaXie(numQian);//千位re = zhuanQian + "仟" + re;if (weiShu > 4) {int numWan = Integer.parseInt(""+ setNum.charAt(weiShu - 5));String zhuanWan = setDaXie(numWan);//万位re = zhuanWan + "万" + re;if (weiShu > 5) {int numShiWan = Integer.parseInt(""+ setNum.charAt(weiShu - 6));String zhuanShiWan = setDaXie(numShiWan);//十万位re = zhuanShiWan + "拾" + re;if (weiShu > 6) {int numBaiWan = Integer.parseInt(""+ setNum.charAt(weiShu - 7));String zhuanBaiWan = setDaXie(numBaiWan);//百万位re = zhuanBaiWan + "佰" + re;if (weiShu > 7) {int numQianWan = Integer.parseInt(""+ setNum.charAt(weiShu - 8));String zhuanQianWan = setDaXie(numQianWan);//千万位re = zhuanQianWan + "仟" + re;}//end qianwan}//end baiwan}//end shiwan}//end wan}//end qian}//end bai}//end shi}//end yuan//处理小数if (index != -1) {String xiaoShu = num.substring(index + 1, num.length());int leng = xiaoShu.length();int numJiao = Integer.parseInt("" + xiaoShu.charAt(0));String zhuanJiao = setDaXie(numJiao);int numFen;if (leng == 1) {numFen = 0;}//end ifnumFen = Integer.parseInt("" + xiaoShu.charAt(1));String zhuanFen = setDaXie(numFen);//十分位+百分位if (numJiao == 0 && numFen != 0 || numJiao != 0 && numFen != 0) {re = re + "圆" + zhuanJiao + "角" + zhuanFen + "分";} else {re = re + "圆整";}//end if} else {re = re + "圆整";}//end indexreturn re;}}2)swing包CsUIManager.java/** @(#)CsUIManager.java 2006-4-13** public class** Copyright 2006 CazoSoft, Inc. All rights reserved.*/package sunsdk.swing;import java.awt.*;import javax.swing.*;import javax.swing.plaf.metal.*;/*** <code> CsUIManager </code>* <p>* 说明:本类为外观管理器* <p>* <strong>警告:</strong>* 使用金属(BOLD)外观时,输入中文会有异常,但不影响系统运行* <p>* 相关库文件:o.jar** @author 鲜强* @version 2006-4-13 23:05:39* @since CAZOSOFT 1.0*/public class CsUIManager {//Windows 外观public static final int WINDOWS = 0;//Java 默认外观public static final int METAL = 1;//Linux 外观public static final int MOTIF = 2;//WindowsClassic 外观public static final int WINDOWSCLASSIC = 3;//Alloy 外观public static final int ALLOY = 4;//Alloy 玻璃外观public static final int GLASSTHEMEALLOY = 5;//Alloy 迷幻外观public static final int ACIDTHEMEALLOY = 6;//Alloy 贝多因外观public static final int BEDOUIDTHEMEALLOY = 7;//Alloy 默认外观public static final int DEAFULTTHEMEALLOY = 8;//Bold 外观public static final int BOLD = 9;/*** 界面风格选择器** @param cp* 接受要改变的控件* @param style* 接受界面下标* @return 返回成功设置与否*/public static boolean setUI(Component cp, int style) {try {switch (style) {case 0:UIManager.setLookAndFeel("com.sun.java.swing.plaf."+ "windows.WindowsLookAndFeel");break;case 1:UIManager.setLookAndFeel("javax.swing.plaf."+ "metal.MetalLookAndFeel");break;case 2:UIManager.setLookAndFeel("com.sun.java.swing.plaf."+ "motif.MotifLookAndFeel");break;case 3:UIManager.setLookAndFeel("com.sun.java.swing.plaf."+"windows.WindowsClassicLookAndFeel");break;case 4:UIManager.setLookAndFeel("com.incors.plaf."+ "alloy.AlloyLookAndFeel");break;case 5:UIManager.setLookAndFeel("soft.wes.feels."+ "GlassThemeAlloyLookAndFeel");break;case 6:UIManager.setLookAndFeel("soft.wes.feels."+ "AcidThemeAlloyLookAndFeel");break;case 7:UIManager.setLookAndFeel("soft.wes.feels."+ "BedouinThemeAlloyLookAndFeel");break;case 8:UIManager.setLookAndFeel("soft.wes.feels."+ "DefaultThemeAlloyLookAndFeel");break;case 9:UIManager.put("swing.boldMetal", Boolean.FALSE);//可设置对话框外观JDialog.setDefaultLookAndFeelDecorated(true);//可设置设置窗口外观JFrame.setDefaultLookAndFeelDecorated(true);Toolkit.getDefaultToolkit().setDynamicLayout(true);System.setProperty("sun.awt.noerasebackground","true");UIManager.setLookAndFeel(new MetalLookAndFeel());break;}} catch (Exception ex) {JOptionPane.showMessageDialog(null, "更换风格失败,以原风格显。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
import java.util.Scanner;
import org.omg.CORBA.PUBLIC_MEMBER;
public class jiudian {
static String[][] rooms ;
public static void main(String[] args) {
rooms = new String[8][8];
for (int i = 0; i < rooms.length; i++) {
for (int j = 0; j < rooms[i].length; j++) {
rooms[i][j] = "NULL";
}
}
String command = "";
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("请输入命令:");
command = scanner.nextLine();
if(command.equals("search")){
searchRoom();
}else if (command.equals("in")) {
System.out.println("请输入您需要入住的房间号:");
String roomIDString = scanner.nextLine();
int roomID = Integer.parseInt(roomIDString);
System.out.println("请输入您的姓名:");
String userName = scanner.nextLine();
inRoom(roomID,userName);
}else if(command.equals("out")){
System.out.println("请输入您需要退订的房间号:");
String roomIDString = scanner.nextLine();
int roomID = Integer.parseInt(roomIDString);
outRoom(roomID);
}else if (command.equals("quit")) {
System.out.println("欢迎再次使用");
System.exit(0);
}else {
System.out.println("输入命令有误,请重新输入!");
}
}
}
public static void searchRoom(){
for (int i = 0; i < rooms.length; i++) {
//输出房间号
for (int j = 0; j < rooms[i].length; j++) {
System.out.print((i+1)+"0"+(j+1)+"\t");
}
System.out.println();
//输出房间情况
for (int j = 0; j < rooms[i].length; j++) {
System.out.print(rooms[i][j]+"\t");
}
System.out.println();
}
}
public static void inRoom(int roomID , String userName){ if (isRoomNull(roomID)) {
//房间为空
//房间状态:NULL-->userName
int i = roomID/100-1;
int j = roomID%100-1;
rooms[i][j] =userName;
System.out.println(userName+"成功入住"+roomID);
}else {
//房间不为空
System.out.println("该房间已经有人,请重新选择!");
}
}
public static void outRoom(int roomID){
if (isRoomNull(roomID)) {
//房间为空
System.out.println("房间为空无需退房");
}else {
//房间不为空
//房间状态:userName -->NULL
int i = roomID/100-1;
int j = roomID%100-1;
rooms[i][j] ="NULL";
System.out.println(roomID+"退房成功!");
}
}
private static boolean isRoomNull(int roomID) { //801 -->i=7 j=0 -->rooms[7][0]
int i = roomID/100-1;
int j = roomID%100-1;
if (rooms[i][j].equals("NULL")) {
return true;
}else {
return false;
}
}
}。