您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 酒店餐饮 > 数据库课程设计之酒店客房管理系统
酒店客房管理系统一、需求分析本系统设计实现的目标是对宾馆的客房管理、客户信息管理,前台用java实现对数据的添加,删除,查询,修改等功能,在后台用oracle作为数据库,其中数据库设计是用PowerDesigner设计的。本系统就是利用计算机信息提高了餐馆宾馆的管理水平,主要对系统的管理员权限、客户等信息管理。系统操作权限管理可以实现对管理员和客人信息的添加、删除、查询、修改操作,并设置管理员账户、密码修改。本系统实现对宾馆信息的管理和总体的统计等,客房及客人信息的查看。管理员可以浏览,查询,添加,删除等客房和客人的基本信息。功能模块图如下:二、概念结构设计E-R图如下:三、逻辑结构设计本系统中共用了五张表,分别是:(注:加下划线的是主码,斜体字是外码)登陆表:login(账号,密码)房间表(房号,房类型,价格,押金,房状态)开房客人表(客人姓名,性别,证件类型,证件号码,房类型,房号,联系电话,入住时间,预计离开时间)预订客人表(客人姓名,性别,证件类型,证件号码,房类型,房号,联系电话,预计入住时间,预计离开时间)历史客人表(客人姓名,性别,证件类型,证件号码,房类型,房号,联系电话,入住日期,离开日期)四、详细设计系统运行的主要界面如下:登陆界面:在登陆界面的密码JTextField中添加了KeyListener,使用户输入密码后按回车键就能登录到系统,代码如下:jtextfield_key.addKeyListener(newKeyAdapter(){publicvoidkeyPressed(KeyEvente){//TODOAuto-generatedmethodstubsuper.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);}@OverrideprotectedvoidpaintComponent(Graphicsg){//TODOAuto-generatedmethodstubsuper.paintComponent(g);g.drawImage(image,0,0,800,600,getParent());}}在选择完房间类型后,当房间号的JTextField获取焦点和失去焦点时,会自动出现提示信息,代码如下:jtextfield_room.addFocusListener(newFocusAdapter(){@OverridepublicvoidfocusGained(FocusEvente){//TODOAuto-generatedmethodstubsuper.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);}@OverridepublicvoidfocusLost(FocusEvente){//TODOAuto-generatedmethodstubsuper.focusLost(e);intn;Stringpledge_string=db.getPledge(jtextfield_room.getText());jtextfield_pledge.setText(pledge_string);if(jtextfield_room.getText().equals()){n=0;}elsen=Integer.parseInt(jtextfield_room.getText());if(jcombobox_room_type.getSelectedIndex()==0&&(n101||n109)){JOptionPane.showMessageDialog(null,房间号输入有误!);return;}if(jcombobox_room_type.getSelectedIndex()==1&&(n201||n209)){JOptionPane.showMessageDialog(null,房间号输入有误!);return;}if(jcombobox_room_type.getSelectedIndex()==2&&(n301||n309)){JOptionPane.showMessageDialog(null,房间号输入有误!);return;}if(jcombobox_room_type.getSelectedIndex()==3&&(n401||n409)){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(){@OverridepublicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubStringnum=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)在数据库的设计方面还很不完善,数据冗余很大
本文标题:数据库课程设计之酒店客房管理系统
链接地址:https://www.777doc.com/doc-5046309 .html