软件02班李杰JAVA课程设计样文1.docx
《软件02班李杰JAVA课程设计样文1.docx》由会员分享,可在线阅读,更多相关《软件02班李杰JAVA课程设计样文1.docx(21页珍藏版)》请在冰豆网上搜索。
软件02班李杰JAVA课程设计样文1
Java程序设计
课程设计(论文)说明书
酒店客房管理系统
学生姓名:
李杰
院系:
电子信息学院
专业:
软件外包服务
学号:
201002161229
指导教师:
陶国喜
2011年12月12日-----2011年12月23日
目录
第一章前言3
1.1工作基础及应用环境4
1.2研究意义4
1.3进度安排及任务安排4
第二章开发环境的集成5
2.1Eclipse及JDK的安装配置5
2.1.1Eclipse的安装配置5
2.1.2JDK的安装配置5
2.2SQLServer2005的优点以及使用安装6
2.2.1SQLServer2005的使用安装6
2.2.2SQLServer2005的JDBC驱动问题6
第三章系统需求分析及实现目标7
3.1系统需求分析7
3.2系统实现目标7
第四章酒店客户管理系统设计8
4.1系统规模的划分:
8
4.1.1系统分析:
8
4.1.2数据库设计:
9
第五章酒店客户管理系统的实现10
5.1模块功能的实现:
10
5.1.1登录界面的实现:
10
5.1.2主界面实现:
11
5.1.3更新客户:
12
5.1.4客户查询:
13
5.1.5删除客户:
13
5.1.6增加客户:
14
5.1.7帮助模块功能的实现:
15
5.1.8删除客户(在查询结果中进行):
16
第六章总结17
6.1实训总结:
17
参考文献18
致谢18
第一章前言
酒店,是为客人提供住宿、餐饮、娱乐和其它服务的综合性服务企业,它所接待的客来自世界各地,而且这些客人的生活习惯、消费水平、宗教信仰等各不相同。
随着我国旅游业的飞速发展,以及社会生活水平的普遍提高,人们对于酒店消费不断地提出更高、更多样性的要求。
如何以酒店企业所拥有的有限的人力、物力、财力和信息资源服务于住店客人,满足客人的各种消费需求,在当今竞争日趋激烈的酒店行业中,是经营好酒店企业的重要问题。
酒店经营管理人员不但要掌握科学的管理思想和管理方法来综合的运用酒店资源,还应该采用先进的计算机管理手段处理日益复杂的信息资源,正确、及时地对客源市场信息作出反应和正确的指定经营决策,这样才有可能保证酒店企业在如今激烈的竞争中求得生存和发展。
成功的应用先进的计算机管理手段辅助酒店企业的经营管理,不但要求酒店的日常操作模式要符合计算机信息处理的要求,而且需要有相应的管理体系和人员配合。
作为酒店的经营管理人员只有充分的掌握酒店的各职能岗位的信息流程和计算机处理的要求,并善于结合两者的要求和长处,才能使想进的计算信息处理技术有效的服务与酒店的经营管理。
本课程设计主要解决的是在一个酒店的客房管理中,实现计算机对来客的订房情况,消费情况的统计与登记,实现对酒店住房费用的一次性结算服务,为酒店管理人员关于一定时间段里酒店的住房管理情况与酒店的经营情况提供快捷方便高效的管理手段。
1.1工作基础及应用环境
在本课程设计中,系统开发平台为Win7/WindowXP,程序设计设计语言采用JAVA,数据库采用SQLServer2005,程序运行平台为Win7/WindowXP。
在eclipse中可以实现的功能有预定客户管理,管理者修改密码,住房管理等。
SQLServer2005作为各种信息资料的后台数据库包括客人信息、房间信息、结算记录等等。
1.2研究意义
通过本课程设计,主要实现对的是对酒店的客房进行管理,使用户能轻松地找到所需要的客房信息,提供订房和退房服务,以实现服务管理的电子化,自动化,提高酒店客房管理的办公效率,为提高和改善酒店的服务质量提供保证。
1.3进度安排及任务安排
序号
学号
姓名
具体任务内容
起止日期
1
201002161229
李杰
查找客户
增加客户
更新客户
退出
删除结算
2011-12-12---2011-12-21
2
201002161224
邓勤乐
客户查询
2011-12-12---2011-12-21
3
201002161203
汪星
管理者登录
2011-12-12---2011-12-21
4
201002161216
李意
帮助
2011-12-12---2011-12-21
5
201002161225
段传盈
删除客户
2011-12-12---2011-12-21
第二章开发环境的集成
2.1Eclipse及JDK的安装配置
2.1.1Eclipse的安装配置
安装Eclipse的步骤非常简单:
只需将下载的压缩包按原路径直接解压既可,可以说是一款"环保"软件。
由于Eclipse版本升级比较快,如果有了更新的版本,要先删除老的版本重新安装,而不能直接解压到原来的路径覆盖老版本。
之后,将多国语言包解压并将解压出来的plugins文件夹和features文件夹去覆盖eclipse文件夹下的同名文件夹即可。
如果当前操作系统的JRE环境安装正确无误,现在运行Eclipse.exe将会闪现如下所示的很酷的月蚀启动画面并进入其缺省界面。
注意,这里的前提是JRE环境的安装正确无误,由于Eclipse本身是用Java语言编写的,而下载的压缩包中并不包含Java运行环境,因此需要用户自己另行安装JRE,并且要在操作系统的环境变量中指明JRE中bin的路径。
如果上述设置不正确,Eclipse是无法正常运行的。
2.1.2JDK的安装配置
1.下载jdk
2.解压文件
◆打开终端,进入放置jdk的目录[cd/home/liyouliang/develop];
◆更改文件权限为可执行[chmodu+xjdk-6u14-linux-i586.bin]
或者[chmod701jdk-6u14-linux-i586.bin]
◆解压文件[sudo./jdk-6u14-linux-i586.bin],yes/no选择yes,执行完之后边可
以在develop目录下面看到文件夹jdk1.6.0_14
UbuntuJDK安装配置
3.配置环境变量
◆以root身份打开并编辑profile文件[sudogedit/etc/profile]
◆在profile文件最后添加
#setjavaenvironment
JAVA_HOME=/home/liyouliang/develop/jdk1.6.0_14
exportJRE_HOME=/home/liyouliang/develop/jdk1.6.0_14/jre
exportCLASSPATH=$JAVA_HOME/lib:
$JRE_HOME/lib:
$CLASSPATH
exportPATH=$JAVA_HOME/bin:
$JRE_HOME/bin:
$PATH
保存并关闭
4.重启系统
2.2SQLServer2005的优点以及使用安装
2.2.1SQLServer2005的使用安装
一:
安装及配置IIS
sqlserver2005需要IIS的支持,在“打开或关闭windows组件”里勾选上Internet信息服务,并且展开再勾选上以下几个组件:
1、Web管理工具IIS6管理兼容性IIS6WMI兼容性
2、Web管理工具IIS6管理兼容性IIS6元数据库和IIS6配置兼容性
3、万维网服务应用程序开发功能A
4、万维网服务常见Http功能Http重定向
5、万维网服务安全性Windows身份验证
确定并安装IIS。
二、安装标准版SQLServer2005
按照提示安装即可
三、启用SQLServerBrowser服务
单击“开始”,依次指向“程序”、“MicrosoftSQLServer2005”和“配置工具”,然后单击“SQLServer外围应用配置器”。
在“SQLServer2005外围应用配置器”页上,单击“服务和连接的外围应用配置器”。
在“服务和连接的外围应用配置器”页上,单击“SQLServerBrowser”,在“启动类型”中单击“自动”选项,然后单击“应用”。
四、创建防火墙例外
打开Windows防火墙,请单击“开始”,再单击“运行”,键入firewall.cpl,然后单击“确定”。
然后在Windows防火墙中为SQLServer2005及SQLServerBrowser服务创建例外。
2.2.2SQLServer2005的JDBC驱动问题
部署使用MicrosoftSQLServerJDBCDriver的应用程序时,必须同时重新分配JDBC驱动程序和该应用程序。
与Windows操作系统的组件Windows数据访问组件(DataAccessComponents,WindowsDAC)不同,JDBC驱动程序被认为是SQLServer的组件。
在Windows操作系统中部署JDBC驱动程序时,必须使用安装包的可执行zip文件版本,其名称通常为sqljdbc__.exe。
若要无提示运行可执行zip文件,必须在命令行或批处理文件中使用/auto命令行选项,如下所示:
sqljdbc__.exe/auto
第三章系统需求分析及实现目标
3.1系统需求分析
[1]支持的终端数。
[2]支持的并行操作的使用者数。
[3]处理的文件和记录数。
[4]处理任务的数量。
[5]对输入和输出数据的精度要求。
[6]对处理和传输过程中的精度要求。
3.2系统实现目标
基本能够满足用户的需求,即能够实现对数据库基本的增删查改操作。
并能够在用户错误的操作下,给出相应的提醒,使得用户能够及时的纠正错误,进行相应的操作。
程序运行时的界面能给人一种友好的感觉,既不那么朴实,也不那么花哨。
第四章酒店客户管理系统设计
4.1系统规模的划分:
4.1.1系统分析:
管理者登录
帮助
修改密码
退出
增加客户
空房查询
客户查询
4.1.2数据库设计:
建立一个名为jiudianguanli的数据库。
同时建立以下四张表:
adminstrate(系统管理员表)(用来存储管理者的基本信息(用户名、密码))
别名
主键
Name
列名
数据类型
允许空
name
Nchar(18)
Password
Nchar(20)
Dingfangxinxibiao(订房信息表)(用来存储酒店客房的住房信息)
别名
主键
客房编号
列名
数据类型
允许空
客房类型
Char(10)
客房单价
Char(10)
√
顾客姓名
Char(10)
√
顾客证件号码
Char(20)
√
入住日期
Datetime
√
退房日期
Datetime
√
押金
Char(10)
结算金额
Char(10)
√
Kefangxinxibiao(客房信息表)(用来存储所有客房的信息,包括是否有人入住)
列名
数据类型
允许空
客房编号
Int
客房类型
Varchar(50)
客房单价
Int
床铺数量
Int
是否已定
Bit
√
Jiesuanxinxibiao(结算信息表)(用来存储结算的客户的记录便于日后查询)
别名
无
列名
数据类型
允许空
结账单号
Nchar(50)
顾客编号
Char(10)
√
顾客姓名
Nchar(10)
身份证号
Nchar(40)
√
消费金额
Nchar(10)
退房日期
Datetime
押金
Float
√
结算金额
Float
第五章酒店客户管理系统的实现
5.1模块功能的实现:
5.1.1登录界面的实现:
首先,在Eclipse中点击运行“LoginDemo”Java文件,显示登陆对话框,然后通过输入用户名与密码进入到主界面。
如果帐号和密码输入正确在数据库中有之对应的用户名和数据库,则会弹出一个提示对话框“欢迎进入酒店客房管理系统”
如图1-1。
如图1-1
主要代码如下:
if(e.getSource()==button1){conn=BBConn2.getBBConn2();Stringusername2=text1.getText().trim();Stringpassword=newString(text2.getPassword()).trim();//
Stringsql="select*fromadminstratewherename=?
";if(username2.length()==0||password.length()==0){JOptionPane.showMessageDialog(this,"thenameorpasswordcannotbenull");}else{try{ps=conn.prepareStatement(sql);//创建Statemen对象
ps.setString(1,username2);//1代表第一?
2代表第二个?
re=ps.executeQuery();//执行查询语句,并将查询结果辐为结果对象
if(re.next())//文件首标记与文件尾记录{
Stringpassword2=re.getString
(2).trim();if(password2.equals(password)){
JOptionPane.showMessageDialog(this,"欢迎进入XX酒店客户管理系统!
");
newMainFrame(text1.getText().trim());dispose();}else{
JOptionPane.showMessageDialog(this,"密码错位,请重新输入!
");
text2.requestFocus();//使text2文本框获得焦点
text2.setText("");}}else{JOptionPane.showMessageDialog(this,"用户不存在!
");
text1.setText("");text2.setText("");text1.requestFocus();}}catch(SQLExceptione2){
e2.printStackTrace();}}}if(e.getSource()==button2){conn=BBConn2.getBBConn2();
Stringusername2=text1.getText().trim();Stringpassword=newString(text2.getPassword()).trim();Stringsql="select*fromadminstratewherename=?
";
if(username2.length()==0||password.length()==0){JOptionPane.showMessageDialog(this,"thenameorpasswordcannotbenull");
}else{try{ps=conn.prepareStatement(sql);//创建Statemen对象
ps.setString(1,username2);//1代表第一?
2代表第二个?
re=ps.executeQuery();//执行查询语句,并将查询结果辐为结果对象
if(re.next()){//文件首标记与文件尾记录
Stringpassword2=re.getString
(2).trim();if(password2.equals(password)){
newChangpassWard(text1.getText().trim());dispose();}else{
JOptionPane.showMessageDialog(this,"密码错位,请重新输入!
");
text2.requestFocus();//使text2文本框获得焦点
text2.setText("");}}else{JOptionPane.showMessageDialog(this,"用户不存在,你不能进行修改!
");text1.setText("");text2.setText("");text1.requestFocus();}}catch(SQLExceptione2){
e2.printStackTrace();}}}
如果显示了登陆对话框,但是输入的用户名在数据库中找不到对应的记录,则会弹出一个消息提示“用户不存在”,如果显示了登陆对话框,但是输入的密码在数据库中找不到对应的记录,则会弹出一个消息提示“密码错误,请重新如果显示了登陆对话框,但是输入的用户名和密码为空的话,在数据库中找不到对应的记录则会弹出一个消息提示“用户名和密码不能为空”输入”。
5.1.2主界面实现:
登录成功之后,可以看到所有功能的集合,即主界面如同如图1-2
如图1-2
当点击任何按钮时,将弹出相印的对话框。
用户可根据实际需求,点击相应的按钮来实现相应的功能
部分代码如下
if(e.getSource()==button1){newChangpassWard(sql5);}if(e.getSource()==button2){newJieShuan();}if(e.getSource()==button3){newSqlCustomer();}if(e.getSource()==button4){newZuFangdengji();}if(e.getSource()==button5){newUpdatedata();}if(e.getSource()==button6){
newLoginSQL();}if(e.getSource()==button7){System.exit(0);}if(e.getSource()==button8){newHelp();}
5.1.3更新客户:
当用户点击更新客户时,会弹出如下的界面
其主要代码如下:
if(e.getSource()==button1){Stringkefang=null;Stringnewkefang=null;StringbianMa=null;
bianMa=textField2.getText().trim();if(bianMa.length()==0){JOptionPane.showMessageDialog(this,"顾客编号不能为空!
");textField1.setText("");textField2.setText("");textField.setText("");}else{
conn=BBConn2.getBBConn2();Stringsql="select*fromdingfangxinxibiaowhere顾客编号=?
";try{ps=conn.prepareStatement(sql);ps.setString(1,bianMa);
rs=ps.executeQuery();if(!
rs.next()){JOptionPane.showMessageDialog(null,"没有此顾客,你不能进行更改!
");textField.setText("");textField1.setText("");textField2.setText("");textField2.requestFocus();ps.close();conn.close();}else{Stringkefang1=rs.getString
(1).trim();kefang=textField.getText().trim();if(kefang.length()==0){JOptionPane.showMessageDialog(null,"原客房号不能为空!
");textField.setText("");textField1.setText("");textField.requestFocus();}elseif(!
kefang1.equals(kefang)){JOptionPane.showMessageDialog(null,"原客房号输入有误,重新输入!
");textField.setText("");textField1.setText("");textField.requestFocus();
}else{newkefang=textField1.getText().trim();if(newkefang.length()==0){
JOptionPane.showMessageDialog(null,"新客房号无能为空!
");textField1.setText("");
textField1.requestFocus();}elseif(kefang1.equals(newkefang)){
JOptionPane.showMessageDialog(null,"新客房号与原始客房号相同,不能进行更新!
");textField1.setText("");textField1.requestFocus();}else{conn=BBConn2.getBBConn2();
Stringsql1="updatedingfangxinxibiaoset客房编号=?
where客房编号='"+kefang+"'";Stringsql2="updatekefangxinxibiaoset是否已定=1where客房编号=?
";Stringsql3="updatekefangxinxibiaoset是否已定=0where客房编号=?
";try{
ps=conn.prepareStatement(sql2);//先执行更新语句,是为了防止更新的客户房间号在不存在此房间下,仍然进行更新的错误操作
ps.setString(1,newkefang);intj=ps.executeUpdate();if(j>0){ps.close();ps=onn.prepareStatement(sql1);ps.setS