数据库课程设计之酒店客房管理系统.docx

上传人:b****1 文档编号:10680062 上传时间:2023-05-27 格式:DOCX 页数:16 大小:2.94MB
下载 相关 举报
数据库课程设计之酒店客房管理系统.docx_第1页
第1页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第2页
第2页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第3页
第3页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第4页
第4页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第5页
第5页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第6页
第6页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第7页
第7页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第8页
第8页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第9页
第9页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第10页
第10页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第11页
第11页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第12页
第12页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第13页
第13页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第14页
第14页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第15页
第15页 / 共16页
数据库课程设计之酒店客房管理系统.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据库课程设计之酒店客房管理系统.docx

《数据库课程设计之酒店客房管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课程设计之酒店客房管理系统.docx(16页珍藏版)》请在冰点文库上搜索。

数据库课程设计之酒店客房管理系统.docx

数据库课程设计之酒店客房管理系统

酒店客房管理系统

一、需求分析

本系统设计实现的目标是对宾馆的客房管理、客户信息管理,前台用java实现对数据的添加,删除,查询,修改等功能,在后台用oracle作为数据库,其中数据库设计是用PowerDesigner设计的。

本系统就是利用计算机信息提高了餐馆宾馆的管理水平,主要对系统的管理员权限、客户等信息管理。

系统操作权限管理可以实现对管理员和客人信息的添加、删除、查询、修改操作,并设置管理员账户、密码修改。

本系统实现对宾馆信息的管理和总体的统计等,客房及客人信息的查看。

管理员可以浏览,查询,添加,删除等客房和客人的基本信息。

功能模块图如下:

二、概念结构设计

E-R图如下:

三、逻辑结构设计

本系统中共用了五张表,分别是:

(注:

加下划线的是主码,斜体字是外码)

登陆表:

login(账号,密码)

房间表(房号,房类型,价格,押金,房状态)

开房客人表(客人姓名,性别,证件类型,证件号码,房类型,房号,联系电话,入住时间,预计离开时间)

预订客人表(客人姓名,性别,证件类型,证件号码,房类型,房号,联系电话,预计入住时间,预计离开时间)

历史客人表(客人姓名,性别,证件类型,证件号码,房类型,房号,联系电话,入住日期,离开日期)

四、详细设计

系统运行的主要界面如下:

 

登陆界面:

在登陆界面的密码JTextField中添加了KeyListener,使用户输入密码后按回车键就能登录到系统,代码如下:

jtextfield_key.addKeyListener(newKeyAdapter(){

publicvoidkeyPressed(KeyEvente){

//TODOAuto-generatedmethodstub

super.keyPressed(e);

if(e.getKeyChar()==KeyEvent.VK_ENTER){

Stringuser_name=jtextfield_user.getText().toString();

Stringuser_key=newString(jtextfield_key.getPassword());//获取JPasswordField中的内容用此方法!

!

if(user_name.equals("")||user_key.equals("")){

JOptionPane.showMessageDialog(null,"用户名或密码不能为空!

");

return;

}

else{

if(db.checkUser(user_name,user_key)){

mfa=newMainFrame_Admin();

mfa.setVisible(true);

setVisible(false);

}

else{

if(n==3){

JOptionPane.showMessageDialog(null,"连续三次输入输入错误,系统将自动关闭!

");

System.exit(0);

}

JOptionPane.showMessageDialog(null,"输入错误,还有"+(3-n)+"次输入机会");

n++;

jtextfield_user.setText("");

jtextfield_key.setText("");

return;

}

}

}

}

});

登陆后的主界面:

在本界面中插入了gif图片作为背景图,通过继承JPanel类,并复写paintComponent()方法使图片能处于JFrame框架的底层,使得窗口中放置其他组件比较容易,且外观比较好,代码如下:

packagedesign;

importjava.awt.Graphics;

importjava.awt.Image;

importjava.awt.Toolkit;

importjavax.swing.JPanel;

publicclassmyPanelextendsJPanel{

/**

*

*/

privatestaticfinallongserialVersionUID=1L;

privateImageimage=null;

publicmyPanel(){

image=Toolkit.getDefaultToolkit().getImage(".\\image\\mainframe.gif");

}

@Override

protectedvoidpaintComponent(Graphicsg){

//TODOAuto-generatedmethodstub

super.paintComponent(g);

g.drawImage(image,0,0,800,600,getParent());

}

}

在选择完房间类型后,当房间号的JTextField获取焦点和失去焦点时,会自动出现提示信息,代码如下:

jtextfield_room.addFocusListener(newFocusAdapter(){

@Override

publicvoidfocusGained(FocusEvente){

//TODOAuto-generatedmethodstub

super.focusGained(e);

if(jcombobox_room_type.getSelectedIndex()==0)

jlabel_tip_room_type.setText("普通单人间的房间号码为:

101~109");

if(jcombobox_room_type.getSelectedIndex()==1)

jlabel_tip_room_type.setText("普通双人间的房间号码为:

201~209");

if(jcombobox_room_type.getSelectedIndex()==2)

jlabel_tip_room_type.setText("豪华单人间的房间号码为:

301~309");

if(jcombobox_room_type.getSelectedIndex()==3)

jlabel_tip_room_type.setText("豪华双人间的房间号码为:

401~409");

}

@Override

publicvoidfocusLost(FocusEvente){

//TODOAuto-generatedmethodstub

super.focusLost(e);

intn;

Stringpledge_string=db.getPledge(jtextfield_room.getText());

jtextfield_pledge.setText(pledge_string);

if(jtextfield_room.getText().equals("")){

n=0;

}

else

n=Integer.parseInt(jtextfield_room.getText());

if(jcombobox_room_type.getSelectedIndex()==0&&(n<101||n>109)){

JOptionPane.showMessageDialog(null,"房间号输入有误!

");

return;

}

if(jcombobox_room_type.getSelectedIndex()==1&&(n<201||n>209)){

JOptionPane.showMessageDialog(null,"房间号输入有误!

");

return;

}

if(jcombobox_room_type.getSelectedIndex()==2&&(n<301||n>309)){

JOptionPane.showMessageDialog(null,"房间号输入有误!

");

return;

}

if(jcombobox_room_type.getSelectedIndex()==3&&(n<401||n>409)){

JOptionPane.showMessageDialog(null,"房间号输入有误!

");

return;

}

if(db.isRoomEmpty(jtextfield_room.getText())==false){

JOptionPane.showMessageDialog(null,"此房间已经有客人!

");

return;

}

}

});

房状态查看可显示各个房间的状态与基本信息,

预订管理的界面如下:

信息查询的界面如下:

查询的界面中“查找”按钮的代码如下:

privateJButtongetJButton_search(){

if(jbutton_search==null){

jbutton_search=newJButton("查找");

jbutton_search.setBounds(280,10,80,30);

jbutton_search.addActionListener(newActionListener(){

@Override

publicvoidactionPerformed(ActionEvente){

//TODOAuto-generatedmethodstub

Stringnum=jtextfield_input.getText();

if(db.isIdentityNumExist_checkin(num)==false){

JOptionPane.showMessageDialog(null,"证件号码不存在!

");

return;

}

else{

jtable=getJTable(num);

jscrollpane.setViewportView(jtable);

jpanel.setVisible(false);

jpanel2.setVisible(true);

}

}

});

}

returnjbutton_search;

}

数据修改的界面如下:

添加管理员账户界面如下:

解除预订界面如下:

五、总结

优点:

(1)界面友好,在开房登记和预定登记界面中都做到了数据检查,判断输入的数据是否符合要求

(2)在有些输入框中添加了KeyListener和FocusListener,使得本系统运用起来时更人性化

(3)将各个功能分别放在不同的.java文件中,对数据库的操作都放在DBAccess.java文件中,使得编写代码时条理清晰

缺点:

(1)开房登记的证件类型不能添加其他的

(2)在填写入住时间时格式很固定,操作起来不方便,这一点可以改进

(3)查询信息时只能按照证件号码来查找,这一点做得还不够完善,可以用模糊查找,即输入客人姓名或证件号码时都能查找相关信息

(4)查询界面做的还不够友善,当数据库中没有信息时也没有设置提示信息

(5)本系统只能供管理员使用,可以改进为客人也能使用

(6)在数据库的设计方面还很不完善,数据冗余很大

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2