1、目录第一章 前言2第二章 需求分析32.1可行性分析32.1.1技术可行性32.1.2操作可行性32.1.3经济可行性32.2环境分析32.2.1系统核心顾客32.2.2 系统目的32.2.3 系统组织构造42.2.4系统流程42.3 问题和约束52.3.1定义问题52.3.2 定义约束52.4系统目的62.5功能模块与接口6第三章 概念构造设计73.1信息源和顾客73.2信息需求73.3系统陈氏E-R模型83.3.1 系统整体E-R图83.3.2 各主题模块陈氏E-R图8第四章 逻辑构造设计104.1管理员表及表内信息104.2预订信息表104.3入住信息表114.4房间信息表及表内信息11
2、第五章 数据库物理设计1251数据库需要空间估算1252数据库表对象需要空间估算125.2.1房间信息 表一125.2.2预定信息 表二125.2.3入住信息 表三125.2.4账单 表四12第六章 详细设计阶段房屋系统136.1.添加房屋13166.2修改房屋信息166.3查询信息196.4删除房屋信息21第七章 测试257.1增长房屋257.2查询房间267.3修改房屋信息277.4删除房间28总结30附 录31第一章 前言随着市场经济和旅游业不断发展,酒店行业日趋发达。老式酒店管理往往令管理者花大量时间来解决琐碎事物,例如错误查询、啰嗦登记和结账手续、费用计算错误、空余客房资料不能及时提
3、供等。从而影响出租率,使得管理人员不得不集中精力规划管理运营方略和进行决策。以上问题可通过电脑系统辅助解决,酒店管理电脑化,不但是体现酒店当代化形象一种重要标志,并且对于提高员工工作效率,加速资金周转、减少各项成本及改进服务质量均有十分积极作用。为此,国家建设部已于近来做出明确规定:凡星级酒店在项目审批时,其设计方案必要涉及电脑管理系统,否则不予立项。可见,酒店管理电脑化势在必行。本酒店管理系统将先进电脑技术与当代酒店服务管理完美地结合起来,实现了全新概念服务和管理方式。本系统属于大型酒店管理和民用住宅设计项目中一某些,由NEC公司由日本移植到中华人民共和国并实现了汉化。本系统配合视频点播系统
4、可以对酒店进行全方位管理,重要长处如下:1.电脑收银,迅速精确,减少宾客等待时间,并可杜绝收银过程中舞弊现象。 2.高效客房管理:能有效提高房率,增长营业收入。3.提高决策根据:管理者可以随时理解经营状况,以制定相应经营方针。4.减轻员工工作承担:从而使员工把更多精力放在提高为宾客服务质量上。5.简朴、以便地保存和查询历史资料。6.树立良好酒店形象。咱们设计酒店管理系统后台数据库采用SQL Sever ,以保证数据安全、高效和稳定;前台采用Microsoft公司JAVA作为重要开发工具,它可以与SQL Sever 数据库无缝衔接。在需求分析及总体设计后,将酒店管理系统分为:登陆模块、客房预订模
5、块、客户接待模块、房屋管理模块、收银模块等几某些。整个设计过程中小构成员分工:小构成员成员分工学号王郭鑫客户接待系统2程晨客户预订系统2刘鸣晓退房系统1李雪登录、注册系统2张嘉雯房屋管理系统,界面优化2第二章 需求分析2.1可行性分析2.1.1技术可行性酒店管理系统是采用Java语言编写,具备Java“一次编写,处处运营”长处,因此此系统在不同操作系统上都可以运营,具备很强移植性、健全性和安全性。并且酒店管理系统规定规定应具备功能完备、易于使用、易于维护等特点,而对于后者则规定能建立数据一致性和完整性强、数据安全性好库。基于以上规定,本系统采用MyEclipse7.0作为开发工具,使得代码编写
6、过程大大简化。而数据库则是采用当前较为流行Sql Server ,Java对Sql Server 具备较好支持并且在经历了近年发展Sql Server 较好口碑。此系统在技术上是可行。2.1.2操作可行性酒店管理系统具备和谐顾客界面,使用以便,易于维护,操作简朴易于被顾客接受,顾客只需纯熟操作计算机,和对此系统使用做简朴理解即可以便使用,并且使用此系统可以大大减少管理人员承担。因而从使用操作方面看,此系统开发是可行。2.1.3经济可行性本酒店管理系统运营硬件环境只需一台便宜电脑既可,软件环境则是安装windows XP系统,MyEclipse7.0,Sql Server 既可。对于普通中小型酒
7、店来说都是很小成本支出。2.2环境分析2.2.1系统核心顾客 经分析,酒店管理系统核心为房间预订,房间信息修改,收银系统。2.2.2 系统目的通过度析,系统需要满足如下功能:(1)依照不同账号登录界面,可注册账号(2)生成订单(3)对于已经生成订单进行查询,修改,删除(4)将订单信息转为入住。对于入住信息科进行查询,修改,删除(5)对于房间信息进行增长,查询,修改,删除(6)退房时,账单生成,涉及房间价格以及网费(7)退房,计算费用(8)记录总收益2.2.3 系统组织构造退出添加订房记录酒店管理系统修改客户信息查询客户信息添加房间信息修改房间信息删除房间信息查看所有房间信息登陆预订接待房务管理
8、收银预定转接待查询订房删除订房修改订房客户入住网络管理结帐退房图2.2.32.2.4系统流程系统流程图图2.2.42.3 问题和约束该系统在真实生活需要更多信息,例如对于登记者信息查询,与公安系统联网等等。咱们所设计只是一种小型酒店重要核心某些。2.3.1定义问题(1)酒店管理不是仅仅对于房价信息查询,要以便管理者真正使用(2)对于已经预定房价信息要可以以便快捷查找(3)酒店管理中要考虑到除房费意外也许产生费用2.3.2 定义约束 期限:系统要在两周内完毕软件和硬件:该系统必要具备后台数据库,以保证数据安全、高效和稳定和作为重要开发工具该系统前台。必要运营在既有操作系统之上。系统额外拓展:要有
9、良好人机交流界面。2.4系统目的(1)对于大量房间信息可以统一规划管理(2)对于订单增长,修改,重置简朴可行(3)对于大量订单,账单统一规划管理数据流图:图2.42.5功能模块与接口表1:登录模块模块模块接口功能登录Info_Manage登录系统注册Setzhuce注册顾客主界面zhujiemian进入系统主界面表2:预定模块模块模块接口功能添加Adddingfang添加预订信息删除Deletedingfang删预订信息修改Getdingfang修改预订信息查询setren按客户姓名查询信息Setdingfang查询所有预订信息表3:接待模块模块模块接口功能录入信息AddGrade查询已预订信
10、息,将其入住修改信息Getruzhu修改入住客户信息查询信息Setruzhu查询入住客户信息删除信息Deleteruzhu删除入住客户信息表4:房屋管理模块模块模块接口功能增长房屋Addroom增长房屋信息删除房屋Deleteroom删除已有房屋修改房屋Getroom修改房屋信息查询房屋setroom按房间号查询房屋信息表5:收银模块模块模块接口功能生成账单wwww退房,生成账单,记录收益第三章 概念构造设计3.1信息源和顾客信息源:房间信息表、预订信息表、入住信息表、账单信息表顾客:酒店系统操作员3.2信息需求1 设计系统操作员账号、密码2 输出各种表3.3系统陈氏E-R模型3.3.1 系统
11、整体E-R图图3.3.13.3.2 各主题模块陈氏E-R图房间信息:预订信息:登录信息: 第四章 逻辑构造设计4.1管理员表及表内信息4.2预订信息表4.3入住信息表4.4房间信息表及表内信息第五章 数据库物理设计51数据库需要空间估算项 目磁盘空间/KB数据库内创立表固定空间(库内需要空间)12294个表*4KB/个(外存预留空间)16数据库使用总空间124552数据库表对象需要空间估算5.2.1房间信息 表一名称数据类型字段大小可否为空房间编号 char10no规格char10yes状态int4yes价格money8yes与否有网char10yes5.2.2预定信息 表二名称数据类型字段大
12、小可否为空姓名char10no证件号char10no电话char10yes规格char10yes房间编码char10yes入住时间datetime8yes5.2.3入住信息 表三名称数据类型字段大小可否为空姓名char10no证件号char10no电话char10yes规格char10yes房间编码char10yes入住时间datetime8yes与否有网char10yes5.2.4账单 表四名称数据类型字段大小可否为空总价Int4yes第六章 详细设计阶段房屋系统 6.1.添加房屋依照规定添加房屋。输入新增房间编号,如果房间已存在,则提示“该号已存在”;如果房间不存在,则设定房间规格、价格、
13、与否有网。有网状态为1,无网为0。点击添加,房屋信息保存增长成功;点击重置,一切为空,重新添加;点击退出,返回功能页面。class Addroom extends JFrameimplements ActionListenerJLabel JL =new JLabel(添 加 房 屋,JLabel.CENTER);JLabel JLNumber=new JLabel(房间编号:);JTextField JTNumber=new JTextField();JLabel JL1 =new JLabel(规格:);JTextField JT1 =new JTextField();JLabel JL2
14、 =new JLabel(价格:);JTextField JT2 =new JTextField();JLabel JL3 =new JLabel(与否有网:);JTextField JT3 =new JTextField();JButton JBAdd =new JButton(添加);JButton JBNext =new JButton(重置);JButton JBExit =new JButton(退出);String sql=;public Addroom()setSize(550,700); setLocation(200,50); String path = d:addroom.
15、jpg; ImageIcon background = new ImageIcon(path); JLabel label = new JLabel(background); label.setBounds(0,0,this.getWidth(),this.getHeight(); JPanel imagePanel = (JPanel) this.getContentPane(); imagePanel.setOpaque(false); this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE); setVisible(tr
16、ue); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setTitle(添加房屋信息);this.setLayout(null);JL.setFont(new Font(TimesRoman,Font.BOLD,24); JL.setForeground(Color.red);JL.setFont(new java.awt.Font(宋体,Font.PLAIN,19);JL.setBounds(100,30,200,40);this.add(JL);JLNumber.setBounds(100,100,100,20);this.add
17、(JLNumber);JTNumber.setBounds(200,100,80,20);this.add(JTNumber);JL1.setBounds(100,140,60,20);this.add(JL1);JT1.setBounds(200,140,80,20);this.add(JT1);JL2.setBounds(100,180,60,20);this.add(JL2);JT2.setBounds(200,180,80,20); this.add(JT2);JL3.setBounds(100,220,60,20);this.add(JL3);JT3.setBounds(200,22
18、0,80,20);this.add(JT3);JBAdd.setBounds(80,320,90,20);this.add(JBAdd);JBAdd.addActionListener(this);JBNext.setBounds(190,320,90,20);this.add(JBNext);JBNext.addActionListener(this);JBExit.setBounds(300,320,90,20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(10,10,500,400);this.setVis
19、ible(true);public void actionPerformed(ActionEvent e)if(e.getSource()=JBAdd)String snumber=JTNumber.getText();String sguige=JT1.getText();String sjiage=JT2.getText();String swang=JT3.getText();sql = select * from room where 房间编号= + snumber + ; System.out.println(sql);tryClass.forName(sun.jdbc.odbc.J
20、dbcOdbcDriver);Connection cot=DriverManager.getConnection(jdbc:odbc:jiudian,sa,sa);Statement stm=cot.createStatement();ResultSet rs=stm.executeQuery(sql); if(rs.next()JOptionPane.showMessageDialog(null,该号已经存在!);elsesql=insert into room values(+snumber+,+sguige+,0,+sjiage+,+swang+);System.out.println
21、(sql); int i=stm.executeUpdate(sql);if(i0)JOptionPane.showMessageDialog(null,添加成功!);elseJOptionPane.showMessageDialog(null,添加失败!);catch(Exception ee)if(e.getSource()=JBNext)JTNumber.setText(null);JT1.setText(null);JT2.setText(null);JT3.setText(null);if(e.getSource()=JBExit)setVisible(false);new zhuj
22、iemian();public static void main(String args)new Addroom();6.2修改房屋信息输入要修改房间编号,如果房间不存在,则提示“此房间不存在”;如果房间存在有记录,则可任意修改房间规格、价格、与否有网。有网状态为1,无网为0。点击修改,房屋信息保存修改成功;点击重置,一切为空,重新添加;点击退出,返回功能页面。class Getroom extends JFrameimplements ActionListenerJLabel JL =new JLabel(修 改 房 屋 信 息,JLabel.CENTER);JLabel JLNumber=
23、new JLabel(房间编号:);JTextField JTNumber=new JTextField();JLabel JL1 =new JLabel(规格:);JTextField JT1 =new JTextField();JLabel JL2 =new JLabel(价格:);JTextField JT2 =new JTextField();JLabel JL3 =new JLabel(与否有网:);JTextField JT3 =new JTextField();JButton JBAdd =new JButton(修改);JButton JBNext =new JButton(重
24、置);JButton JBExit =new JButton(退出);String sql=;public Getroom()setSize(550,600); setLocation(200,50); String path = d:getroom.jpg; ImageIcon background = new ImageIcon(path); JLabel label = new JLabel(background); label.setBounds(0,0,this.getWidth(),this.getHeight(); JPanel imagePanel = (JPanel) thi
25、s.getContentPane(); imagePanel.setOpaque(false); this.getLayeredPane().add(label,new Integer(Integer.MIN_VALUE); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setTitle(修改房屋信息);this.setLayout(null);JL.setFont(new Font(TimesRoman,Font.BOLD,24); JL.setForeground(Color.red);JL.se
26、tFont(new java.awt.Font(宋体,Font.PLAIN,19);JL.setBounds(100,30,200,40);this.add(JL);JLNumber.setBounds(100,100,100,20);this.add(JLNumber);JTNumber.setBounds(200,100,80,20);this.add(JTNumber);JL1.setBounds(100,140,60,20);this.add(JL1);JT1.setBounds(200,140,80,20);this.add(JT1);JL2.setBounds(100,180,60
27、,20);this.add(JL2);JT2.setBounds(200,180,80,20); this.add(JT2);JL3.setBounds(100,220,60,20);this.add(JL3);JT3.setBounds(200,220,80,20);this.add(JT3);JBAdd.setBounds(80,360,90,20);this.add(JBAdd);JBAdd.addActionListener(this);JBNext.setBounds(190,360,90,20);this.add(JBNext);JBNext.addActionListener(t
28、his);JBExit.setBounds(300,360,90,20);this.add(JBExit);JBExit.addActionListener(this);this.setBounds(10,10,550,450);this.setVisible(true);addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) System.exit(0); );public void actionPerformed(ActionEvent e)if(e.getSource()=JBAdd )
29、String snumber=JTNumber.getText();String sguige=JT1.getText();String sjiage=JT2.getText();String swang=JT3.getText();sql=select * from room where 房间编号=+snumber+;tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver);Connection cot=DriverManager.getConnection(jdbc:odbc:jiudian,sa,sa);Statement stm=cot.create
30、Statement();ResultSet rs=stm.executeQuery(sql);if(rs.next()sql=update room set 房间编号=+snumber+,规格=+sguige+,价格=+sjiage+,与否有网=+swang+where 房间编号=+snumber+;int n=stm.executeUpdate(sql);if(n0)JOptionPane.showMessageDialog(null,修改成功!);elseJOptionPane.showMessageDialog(null,修改失败!);elseJOptionPane.showMessag
31、eDialog(null,此房间不存在!); catch(Exception er) if(e.getSource()=JBNext)JTNumber.setText(null);JT1.setText(null);JT2.setText(null);JT3.setText(null);if(e.getSource()=JBExit)setVisible(false);new zhujiemian();public static void main(String args)new Getroom();6.3查询信息依照规定查询房屋。输入房间号,点击查询,在下方表格浮现房间相应房间规格、房间状态
32、、价格、与否有网。有网状态为1,无网为0。输入新居间号,可以查询新信息。点击退出,返回功能页面。输入房间号,查询房屋状态。public class setroom extends JFrame implements ActionListener private JTable table; JButton JB1 =new JButton(返回); private JScrollPane scpDemo; private JTableHeader jth; private JTable tabDemo; private JButton btnShow; private JButton btnSh
33、ow1; JLabel JLRoom=new JLabel(房间号:); JTextField JTRoom=new JTextField(); / 构造办法 public setroom() / 窗体有关属性定义 JB1.setBounds(400,20,60,30); this.add(JB1); JB1.addActionListener(this); this.setSize(620,400); this.setLayout(null); this.setLocation(100,50); / 创立组件 this.scpDemo = new JScrollPane(); this.sc
34、pDemo.setBounds(10,50,500,300); /final JTextArea textArea=new JTextArea(,300); /JScrollPane scrollPane=new JScrollPane(textArea); this.btnShow = new JButton(查询); this.btnShow.setBounds(300,20,60,30); / 给按钮注册监听 JLRoom.setBounds(10,10,60,60); this.add(JLRoom); JTRoom.setBounds(60,30,100,20); this.add(
35、JTRoom); this.btnShow.addActionListener(new ActionListener() public void actionPerformed(ActionEvent ae) btnShow_ActionPerformed(ae); ); / 将组件加入到窗体中 add(this.scpDemo); add(this.btnShow); / 显示窗体 this.setVisible(true); public void btnShow_ActionPerformed(ActionEvent ae) String sroom=JTRoom.getText();
36、try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection conn = DriverManager.getConnection(jdbc:odbc:jiudian,sa,sa); String sql = select * from room where 房间编号= +sroom + ; System.out.print(sql); PreparedStatement pstm = conn.prepareStatement(sql); ResultSet rs = pstm.executeQuery(); / 计算有多少条记录 i
37、nt count = 0; while(rs.next() count+; rs = pstm.executeQuery(); / 将查询获得记录数据,转换成适合生成JTable数据形式 Object info = new Objectcount5; count = 0; while(rs.next() infocount0 = rs.getString(房间编号); infocount1 = rs.getString(规格); infocount2 = rs.getString(状态); infocount3 = rs.getString(价格); infocount4 = rs.getSt
38、ring(与否有网); count+; / 定义表头 String title = 房间编号,房间规格,房间状态,价格,与否有网; / 创立JTable this.tabDemo = new JTable(info,title); / 显示表头 this.jth = this.tabDemo.getTableHeader(); / 将JTable加入到带滚动条面板中 this.scpDemo.getViewport().add(tabDemo); catch(ClassNotFoundException cnfe) JOptionPane.showMessageDialog(null,数据源错
39、误,错误,JOptionPane.ERROR_MESSAGE); catch(SQLException sqle) JOptionPane.showMessageDialog(null,数据操作错误,错误,JOptionPane.ERROR_MESSAGE); public void actionPerformed(ActionEvent e) if(e.getSource()=JB1)setVisible(false);new zhujiemian(); public static void main(String args) new setroom(); 6.4删除房屋信息输入房间号,删除房屋信息。此时再查询此房间,信息显示为空。class Deleteroom extends JFrameimplements ActionListenerJLabel JL =new JLabel(删除房间,JLabel.CENTER);JLabel JLNumber=new JLabel(房间号:);JTextField JTNumber=new JTextField();JButton JBGet =new JButton(删除);JButton JBNext =new JButton(重置);JButton JBExit =new JButton(退出);