数据库课程设计之酒店客房管理系统备课讲稿.docx
- 文档编号:11522880
- 上传时间:2023-03-02
- 格式:DOCX
- 页数:16
- 大小:2.94MB
数据库课程设计之酒店客房管理系统备课讲稿.docx
《数据库课程设计之酒店客房管理系统备课讲稿.docx》由会员分享,可在线阅读,更多相关《数据库课程设计之酒店客房管理系统备课讲稿.docx(16页珍藏版)》请在冰豆网上搜索。
数据库课程设计之酒店客房管理系统备课讲稿
数据库课程设计之酒店客房管理系统
酒店客房管理系统
1、需求分析
本系统设计实现的目标是对宾馆的客房管理、客户信息管理,前台用java实现对数据的添加,删除,查询,修改等功能,在后台用oracle作为数据库,其中数据库设计是用PowerDesigner设计的。
本系统就是利用计算机信息提高了餐馆宾馆的管理水平,主要对系统的管理员权限、客户等信息管理。
系统操作权限管理可以实现对管理员和客人信息的添加、删除、查询、修改操作,并设置管理员账户、密码修改。
本系统实现对宾馆信息的管理和总体的统计等,客房及客人信息的查看。
管理员可以浏览,查询,添加,删除等客房和客人的基本信息。
功能模块图如下:
2、概念结构设计
E-R图如下:
三、逻辑结构设计
本系统中共用了五张表,分别是:
(注:
加下划线的是主码,斜体字是外码)
登陆表:
login(账号,密码)
房间表(房号,房类型,价格,押金,房状态)
开房客人表(客人姓名,性别,证件类型,证件号码,房类型,房号,联系电话,入住时间,预计离开时间)
预订客人表(客人姓名,性别,证件类型,证件号码,房类型,房号,联系电话,预计入住时间,预计离开时间)
历史客人表(客人姓名,性别,证件类型,证件号码,房类型,房号,联系电话,入住日期,离开日期)
4、详细设计
系统运行的主要界面如下:
登陆界面:
在登陆界面的密码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;
}
数据修改的界面如下:
添加管理员账户界面如下:
解除预订界面如下:
5、总结
优点:
(1)界面友好,在开房登记和预定登记界面中都做到了数据检查,判断输入的数据是否符合要求
(2)在有些输入框中添加了KeyListener和FocusListener,使得本系统运用起来时更人性化
(3)将各个功能分别放在不同的.java文件中,对数据库的操作都放在DBAccess.java文件中,使得编写代码时条理清晰
缺点:
(1)开房登记的证件类型不能添加其他的
(2)在填写入住时间时格式很固定,操作起来不方便,这一点可以改进
(3)查询信息时只能按照证件号码来查找,这一点做得还不够完善,可以用模糊查找,即输入客人姓名或证件号码时都能查找相关信息
(4)查询界面做的还不够友善,当数据库中没有信息时也没有设置提示信息
(5)本系统只能供管理员使用,可以改进为客人也能使用
(6)在数据库的设计方面还很不完善,数据冗余很大
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 课程设计 酒店客房 管理 系统 备课 讲稿